電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶有Netduino的C#智能物聯(lián)網(wǎng)交換機(jī)

帶有Netduino的C#智能物聯(lián)網(wǎng)交換機(jī)

2022-11-08 | zip | 0.03 MB | 次下載 | 免費(fèi)

資料介紹

描述

智能物聯(lián)網(wǎng)交換機(jī)

我研究這個(gè)話題已經(jīng)有一段時(shí)間了(看看我以前的項(xiàng)目)。我是物聯(lián)網(wǎng)的忠實(shí)粉絲,尤其是家庭自動(dòng)化。這些應(yīng)用程序有可能帶來(lái)社會(huì)和生活水平的巨大變化。猜猜看,我必須通過(guò)一個(gè)新平臺(tái)應(yīng)用物聯(lián)網(wǎng):C#感謝 Wilderness Labs。

讓我們開(kāi)始吧!

1. 所需材料

  • 繼電器模塊(我在這個(gè)項(xiàng)目中使用了 2 通道繼電器)
  • 原型面包板
  • DHT11 用于溫度監(jiān)測(cè)。
  • Android 設(shè)備(運(yùn)行 Xamarin 應(yīng)用程序)
  • 盒子(我用的是木制的)
?
poYBAGNonBiAVWWIAAno5AuPPKw077.jpg
所需材料!
?

2.Netduino 設(shè)置

Netduino 是一款開(kāi)發(fā)板,可讓您使用 C# 編寫(xiě)代碼來(lái)創(chuàng)建 IoT 應(yīng)用程序。它使用 .NET 微框架。它就像一個(gè) Arduino,具有許多令人興奮的附加功能,例如 -

  • 使用 WiFi 或以太網(wǎng)連接
  • SD 卡支持額外的持久存儲(chǔ)(高達(dá) 2GB)。
  • 多得多.....

因此,要使用 Netduino,您將需要 Visual Studio 2015,它可以讓您創(chuàng)建 .NET Micro Framework 應(yīng)用程序。(請(qǐng)注意,仍然不支持 Visual Studio 2017)

?
poYBAGNonByAILL-AAGueMy4yzA929.png
Visual Studio 下載鏈接
?

繼續(xù)從上面的鏈接下載 VS 2015 的社區(qū)版本。

現(xiàn)在,在您安裝后,請(qǐng)按照以下說(shuō)明進(jìn)行操作 -

?
pYYBAGNonCGADYs1AAHtoo8alHg145.png
荒野實(shí)驗(yàn)室網(wǎng)站
?

?

設(shè)置此設(shè)備有些困難,因此我建議您加入其社區(qū),該社區(qū)非常活躍且樂(lè)于助人。我使用了 N3 以太網(wǎng),所以我不需要 Netduino 部署設(shè)置部分。但是由于提供的軟件,設(shè)置起來(lái)很容易。

3. 接線連接

現(xiàn)在您已經(jīng)完成了所有設(shè)置,請(qǐng)轉(zhuǎn)到 Netduino Samples repo 并下載 Blink 程序,然后使用 VS2015 在您的 Netduino 上運(yùn)行它以確保一切正常。

https://github.com/WildernessLabs/Netduino_Samples

?
poYBAGNonCSAb69oAAIKeufqDUk963.png
讓 Binky 啟動(dòng)并運(yùn)行
?

關(guān)注此視頻以獲得更多幫助。

?

在此之后,您將設(shè)置為我們的項(xiàng)目連接連接。按照下圖進(jìn)行連接。

?
poYBAGNonCuAWtAfAAq4sSyjpEw242.jpg
?

看看 Fritzing 的連接。

?
pYYBAGNonC-AdFoRAACdBMew2vI554.png
?

DHT11 的連接非常簡(jiǎn)單。

3.3V -傳感器的 VCC

Gnd -傳感器的 Gnd

數(shù)字引腳 2 -傳感器的輸出引腳

完成后,您就可以開(kāi)始為您的項(xiàng)目編寫(xiě)代碼了。

4. Netduino 的編碼部分

現(xiàn)在,您的硬件已連接好,您已準(zhǔn)備好對(duì) Netduino 進(jìn)行編碼。我們將使用Netduino Samples Git repo 項(xiàng)目中提供的Request HandlerMapleServer Generation文件。將這些文件添加到您的 VS 項(xiàng)目中非常容易。此外,對(duì)于中繼編碼,我們將使用 Git 存儲(chǔ)庫(kù)的中繼示例或連接的咖啡機(jī)示例。下面提供了指向我的 Git 存儲(chǔ)庫(kù)和 Netduino Samples Git 存儲(chǔ)庫(kù)的鏈接。

現(xiàn)在,要配置 DHT11 傳感器,首先您需要 4 端子原始傳感器,因?yàn)槲沂褂玫膸?kù)只有在所有 4 個(gè)引腳都正確連接到電路板時(shí)才會(huì)運(yùn)行。

using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
namespace Glovebox.Netduino.Drivers {
   public class DHT11 : DhtSensor{
       //private OutputPort m_op;
       //private OneWire m_ow;
       private OneWireBus.Device m_dev;
       public DHT11(Cpu.Pin data1, Cpu.Pin data2):base(data1,data2,Port.ResistorMode.Disabled)
       {
        //   m_op = new OutputPort(pin, false);
       }
       public float ConvertAndReadTemperature() {
           var data = 0L;
           // if reset finds no devices, just return 0
           if (m_ow.TouchReset() == 0)
               return 0;
           // address the device
           m_ow.WriteByte(Command.MatchROM);
           WriteBytes(m_dev.Address);
           // tell the device to start temp conversion
           m_ow.WriteByte(Command.StartTemperatureConversion);
           // wait for as long as it takes to do the temp conversion,
           // data sheet says ~750ms
           while (m_ow.ReadByte() == 0)
               System.Threading.Util.Delay(1);
           // reset the bus
           m_ow.TouchReset();
           // address the device
           m_ow.WriteByte(Command.MatchROM);
           WriteBytes(m_dev.Address);
           // read the data from the sensor
           m_ow.WriteByte(Command.ReadScratchPad);
           // read the two bytes of data
           data = m_ow.ReadByte(); // LSB
           data |= (ushort)(m_ow.ReadByte() << 8); // MSB
           // reset the bus, we don't want more data than that
           m_ow.TouchReset();
           // returns C
           // F would be:  (float)((1.80 * (data / 16.00)) + 32.00);
           return (float)data / 16f;
       }
       public void StartConversion() {
           // if reset finds no devices, just return 0
           if (m_ow.TouchReset() == 0)
               return;
           // address the device
           m_ow.WriteByte(Command.MatchROM);
           WriteBytes(m_dev.Address);
           // tell the device to start temp conversion
           m_ow.WriteByte(Command.StartTemperatureConversion);
       }
       public float ReadTemperature() {
           var data = 0L;
           // reset the bus
           m_ow.TouchReset();
           // address the device
           m_ow.WriteByte(Command.MatchROM);
           WriteBytes(m_dev.Address);
           // read the data from the sensor
           m_ow.WriteByte(Command.ReadScratchPad);
           // read the two bytes of data
           data = m_ow.ReadByte(); // LSB
           data |= (ushort)(m_ow.ReadByte() << 8); // MSB
           // reset the bus, we don't want more data than that
           m_ow.TouchReset();
           // returns C
           // F would be:  (float)((1.80 * (data / 16.00)) + 32.00);
           return (float)data / 16f;
       }
       public static float ToFahrenheit(float tempC) {
           return (9f / 5f) * tempC + 32f;
       }
       private void WriteBytes(byte[] data) {
           for (var i = 0; i < data.Length; i++)
               m_ow.WriteByte(data[i]);
       }
       private static class Command {
           public const byte SearchROM = 0xF0;
           public const byte ReadROM = 0x33;
           public const byte MatchROM = 0x55;
           public const byte SkipROM = 0xCC;
           public const byte AlarmSearch = 0xEC;
           public const byte StartTemperatureConversion = 0x44;
           public const byte ReadScratchPad = 0xBE;
           public const byte WriteScratchPad = 0x4E;
           public const byte CopySratchPad = 0x48;
           public const byte RecallEEPROM = 0xB8;
           public const byte ReadPowerSupply = 0xB4;
       }
   }
}

這是我要使用的庫(kù)的代碼。只需通過(guò)“使用”命令將其添加到 DHT11 顯示文件中,然后將 D5 引腳配置為輸出并在調(diào)試窗口上打印其狀態(tài)。而已!

這是中繼代碼:

using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using System.Threading;
namespace Relay
{
   public class Program
   {
       public static void Main()
       {
           // create an output port (a port that can be written to) and connect it to Digital Pin 2
           OutputPort relay = new OutputPort(Pins.GPIO_PIN_D2, false);
           OutputPort relay = new OutputPort(Pins.GPIO_PIN_D3, false);
           // run forever
           while (true)
           {
               relay.Write(true); // turn on the LED
               Thread.Sleep(500); // sleep for 1/2 second
               relay.Write(false); // turn off the relay
               Thread.Sleep(500); // sleep for 1/2 second
           }
       }
   }
}

讓我們通過(guò)創(chuàng)建一個(gè) Xamarin 應(yīng)用程序來(lái)控制它,從而使開(kāi)發(fā)板變得智能。

5. Xamarin 應(yīng)用程序部分

現(xiàn)在我們已經(jīng)準(zhǔn)備好這些東西,我們將創(chuàng)建一個(gè)簡(jiǎn)單的 Xamarin 應(yīng)用程序,該應(yīng)用程序顯示開(kāi)關(guān)的狀態(tài)(打開(kāi)或關(guān)閉),并有 2 個(gè)按鈕可以將開(kāi)關(guān)的狀態(tài)從關(guān)閉更改為打開(kāi)。

以下是 2 個(gè)代碼片段,可幫助您更多地了解上述功能。

獲取狀態(tài)代碼片段

public async Task<bool> GetLightSwitchStatus()
{    
    using (var s = new Sockets.Plugin.TcpSocketClient())  
    {       
        await s.ConnectAsync(NetduinoIp, Port);    
        byte[] data = new byte[2];        
        data[0] = ReadLightSwitchState;     
        data[1] = ReadLightSwitchState;       
        s.WriteStream.Write(data, 0, 2);    
        s.ReadStream.Read(data, 0, 1);      
        return data[0] == ByteTrue;   
    }
}

上面這段代碼向服務(wù)器請(qǐng)求開(kāi)關(guān)狀態(tài),并根據(jù)燈開(kāi)關(guān)的狀態(tài)返回真或假。

設(shè)置狀態(tài)代碼片段:

public async Task SetLightSwitchStatus(bool on)
{
    using (var s = new Sockets.Plugin.TcpSocketClient())
    {
        await s.ConnectAsync(NetduinoIp, Port);
        byte[] data = new byte[2];   
        data[0] = WriteLightSwitchState;  
        data[1] = (byte)(on ? ByteTrue : ByteFalse);    
        s.WriteStream.Write(data, 0, 2);
    }
}

這段代碼向服務(wù)器發(fā)送一個(gè)請(qǐng)求,告訴服務(wù)器應(yīng)該將電燈開(kāi)關(guān)設(shè)置為哪個(gè)狀態(tài)。

請(qǐng)注意所有信息交換是如何通過(guò)字節(jié)完成的,第一個(gè)字節(jié)告訴服務(wù)器請(qǐng)求哪個(gè)操作,而第二個(gè)字節(jié)在必要時(shí)包含數(shù)據(jù)。

我已經(jīng)使用 cssharpguy 的教程來(lái)創(chuàng)建我的簡(jiǎn)單應(yīng)用程序。這是視頻教程。

?

我遵循了連接的 CoffeeMaker 教程,并為該項(xiàng)目使用了相同的應(yīng)用程序。

?
pYYBAGNonDOAWQ2OAAG8_TFm9G0639.png
?

現(xiàn)在一切都完成了,該項(xiàng)目已準(zhǔn)備好運(yùn)行。這是顯示項(xiàng)目工作的視頻教程。

?

該視頻是我以前的項(xiàng)目之一,但工作原理是相同的。我無(wú)法獲得 Netduino 教程視頻,因?yàn)槲业?Netduino 板目前遇到一些問(wèn)題,我的板開(kāi)始工作后將立即更新視頻。

感謝大家閱讀這個(gè)項(xiàng)目。請(qǐng)尊重并與您的朋友分享。:-)


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)