精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>帶有Netduino的C#智能物聯網交換機

帶有Netduino的C#智能物聯網交換機

2022-11-08 | zip | 0.03 MB | 次下載 | 免費

資料介紹

描述

智能物聯網交換機

我研究這個話題已經有一段時間了(看看我以前的項目)。我是物聯網的忠實粉絲,尤其是家庭自動化。這些應用程序有可能帶來社會和生活水平的巨大變化。猜猜看,我必須通過一個新平臺應用物聯網:C#感謝 Wilderness Labs。

讓我們開始吧!

1. 所需材料

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

2.Netduino 設置

Netduino 是一款開發板,可讓您使用 C# 編寫代碼來創建 IoT 應用程序。它使用 .NET 微框架。它就像一個 Arduino,具有許多令人興奮的附加功能,例如 -

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

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

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

繼續從上面的鏈接下載 VS 2015 的社區版本。

現在,在您安裝后,請按照以下說明進行操作 -

?
pYYBAGNonCGADYs1AAHtoo8alHg145.png
荒野實驗室網站
?

?

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

3. 接線連接

現在您已經完成了所有設置,請轉到 Netduino Samples repo 并下載 Blink 程序,然后使用 VS2015 在您的 Netduino 上運行它以確保一切正常。

https://github.com/WildernessLabs/Netduino_Samples

?
poYBAGNonCSAb69oAAIKeufqDUk963.png
讓 Binky 啟動并運行
?

關注此視頻以獲得更多幫助。

?

在此之后,您將設置為我們的項目連接連接。按照下圖進行連接。

?
poYBAGNonCuAWtAfAAq4sSyjpEw242.jpg
?

看看 Fritzing 的連接。

?
pYYBAGNonC-AdFoRAACdBMew2vI554.png
?

DHT11 的連接非常簡單。

3.3V -傳感器的 VCC

Gnd -傳感器的 Gnd

數字引腳 2 -傳感器的輸出引腳

完成后,您就可以開始為您的項目編寫代碼了。

4. Netduino 的編碼部分

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

現在,要配置 DHT11 傳感器,首先您需要 4 端子原始傳感器,因為我使用的庫只有在所有 4 個引腳都正確連接到電路板時才會運行。

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;
       }
   }
}

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

這是中繼代碼:

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
           }
       }
   }
}

讓我們通過創建一個 Xamarin 應用程序來控制它,從而使開發板變得智能。

5. Xamarin 應用程序部分

現在我們已經準備好這些東西,我們將創建一個簡單的 Xamarin 應用程序,該應用程序顯示開關的狀態(打開或關閉),并有 2 個按鈕可以將開關的狀態從關閉更改為打開。

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

獲取狀態代碼片段

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;   
    }
}

上面這段代碼向服務器請求開關狀態,并根據燈開關的狀態返回真或假。

設置狀態代碼片段:

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);
    }
}

這段代碼向服務器發送一個請求,告訴服務器應該將電燈開關設置為哪個狀態。

請注意所有信息交換是如何通過字節完成的,第一個字節告訴服務器請求哪個操作,而第二個字節在必要時包含數據。

我已經使用 cssharpguy 的教程來創建我的簡單應用程序。這是視頻教程

?

我遵循了連接的 CoffeeMaker 教程,并為該項目使用了相同的應用程序。

?
pYYBAGNonDOAWQ2OAAG8_TFm9G0639.png
?

現在一切都完成了,該項目已準備好運行。這是顯示項目工作的視頻教程。

?

該視頻是我以前的項目之一,但工作原理是相同的。我無法獲得 Netduino 教程視頻,因為我的 Netduino 板目前遇到一些問題,我的板開始工作后將立即更新視頻。

感謝大家閱讀這個項目。請尊重并與您的朋友分享。:-)


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

評論

查看更多

下載排行

本周

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

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

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