電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶有RAK3372 EVB的NET nanoframework LoRaWAN開源

帶有RAK3372 EVB的NET nanoframework LoRaWAN開源

2023-06-12 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

早在 2022 年 8 月,我就在我的博客上發(fā)布了.NET nanoFramework RAK3172 庫用法,介紹如何將RAK3172LoRaWAN-NetNF 庫STM32F7 Discovery / Sparkfun Thing Plus ESP32 WROOMRAK3172 分線板一起使用。

在我的.NET nanoFramework 和 RAK WisBlock 傳感器 Hackster 項目中,我記錄了如何獲取。NET nanoFramework在RAKwireless RAK11200 wisBlock WiFi 核心模塊/ RAK2305 WiFi Espressif ESP32 無線模塊 上運行并讀取一系列傳感器。

WisBlock Core通常是物聯(lián)網(wǎng)解決方案的處理單元,但沒有任何設備可以同時運行 .NET nanoFrameworkLoRaWAN連接。

通常,WisBlock Core會運行一個使用Wisblock 無線Wisblock 傳感器模塊的自定義應用程序。例如,RAK3373 核心模塊可以使用RAK2305 無線模塊連接到無線接入點。

然后我意識到“如果RAK3372 核心模塊可以控制RAK2305 無線模塊,那么也許RAK2305 無線模塊可以控制RAK3372 核心模塊

第一步是將RAK3372 核心RAK2305 無線模塊安裝在RAK5005-O 基板。

poYBAGSBRM-AR3cbAAkogPNaXcc476.jpg
FTDI RAK3373 RAK5005 RAK2305 測試臺
?

然后使用nanoff加載.NET nanoFramework運行時

poYBAGSBRNGAY0nTAADktoSp-kw652.png
使用 nanoff 更新 RAK2305 設備。
?

RUI3串行操作模式表明RAK3172應該能夠處理串行和串行 2 端口上的 AT 命令。

pYYBAGSBRNSAQSVzAAB2dwQtONU826.png
RAK3172 RUI3 串行操作模式
?

nanoFramework使用 TXD0 和 RXD0(用于閃爍和調(diào)試),因此只有 TXD1(IO17) 和 RXD1(IO16) 可用。

poYBAGSBRNiAc9HyAAINFhjGDO4425.png
RAK2305原理圖
?

RAK2305 TXD1 和 RXD1 連接到 BTB40_M 連接器上的 PIN34 和 PIN33 然后將RAK2305模塊插入RAK5005上的BTB40_F IO 擴展槽。

pYYBAGSBRNyAU4AYAAJ61sPW5QE337.png
RAK5005 連接器原理圖
?

RAK5005 TXD1 連接到 PIN33,RXD1 連接到 BTB40_F 連接器上的 PIN34 。RAK5005 TXD1 連接到 PIN 33,RXD1 連接到 CPU 插槽 BTB40_F 連接器上的 PIN34(TX/RX 在此處交叉)。RAK3372插入RAK5005上的 BTB40_F 插座。

poYBAGSBRN-AMRk4AAHDbdN7MKM022.png
RAK3327原理圖
?

RAK3372 TXD1 連接到 PIN33,RXD1 連接到 BTB40_M 連接器上的 PIN34 。RAK3372 原理圖中的 TXD1 和 RXD1 標簽不正確)。

然后我使用 BreakOutSerial 應用程序來確認連接。

public static void Main()
{
   Debug.WriteLine("devMobile.IoT.LoRaWAN.nanoFramework.RAK3172 BreakoutSerial starting");

   try
   {
      // set GPIO functions for COM2 (this is UART1 on ESP32)
      Configuration.SetPinFunction(Gpio.IO21, DeviceFunction.COM2_TX);
      Configuration.SetPinFunction(Gpio.IO19, DeviceFunction.COM2_RX);

      Debug.Write("Ports:");
      foreach (string port in SerialPort.GetPortNames())
      {
         Debug.Write($" {port}");
				}
	 Debug.WriteLine("");

	using (_SerialPort = new SerialPort(SerialPortId))
	{
	   // set parameters
	   _SerialPort.BaudRate = 115200;
	   _SerialPort.Parity = Parity.None;
	   _SerialPort.DataBits = 8;
	   _SerialPort.StopBits = StopBits.One;
	   _SerialPort.Handshake = Handshake.None;
	   _SerialPort.NewLine = "\r\n";
	   _SerialPort.ReadTimeout = 1000;

	   //_SerialPort.WatchChar = '\n'; // May 2022 WatchChar event didn't fire github issue https://github.com/nanoframework/Home/issues/1035

	   _SerialPort.DataReceived += SerialDevice_DataReceived;
	   
	   _SerialPort.Open();

	   _SerialPort.WatchChar = '\n';

	   _SerialPort.ReadExisting(); // Running at 115K2 this was necessary

	   for (int i = 0; i < 5; i++)
	   {
	      string atCommand;
	      atCommand = "AT+VER=?";
	      //atCommand = "AT+SN=?"; // Empty response?
	      //atCommand = "AT+HWMODEL=?";
	      //atCommand = "AT+HWID=?";
	      //atCommand = "AT+DEVEUI=?";
   	      //atCommand = "AT+APPEUI=?";
	      //atCommand = "AT+APPKEY=?";
	      //atCommand = "ATR";
	      //atCommand = "AT+SLEEP=4000";
	      //atCommand = "AT+ATM";
	      //atCommand = "AT+NWM=1";
	      //atCommand = "AT?";
	      //atCommand = "+++";
	      Debug.WriteLine("");
	      Debug.WriteLine($"{DateTime.UtcNow:hh:mm:ss} {i} TX:{atCommand} bytes:{atCommand.Length}--------------------------------");
	      _SerialPort.WriteLine(atCommand);
	   
	      Thread.Sleep(5000);
	   }
	}

	Debug.WriteLine("Done");
      }
      catch (Exception ex)
      {
         Debug.WriteLine(ex.Message);
      }
   }


   private static void SerialDevice_DataReceived(object sender, SerialDataReceivedEventArgs e)
   {
      SerialPort serialPort = (SerialPort)sender;

      switch (e.EventType)
      {
         case SerialData.Chars:
            break;

         case SerialData.WatchChar:
            string response = serialPort.ReadExisting();
            //Debug.Write($"{DateTime.UtcNow:hh:mm:ss} RX:{response} bytes:{response.Length}");
            Debug.Write(response);
            break;
         default:
            Debug.Assert(false, $"e.EventType {e.EventType} unknown");
            break;
         }
      }
   }
}
poYBAGSBROOAJT37AAC4T42ROjQ260.png
BreakoutSerial Visual Studio 2022 調(diào)試輸出
?

然后,我RAK3172LoRaWANDeviceClient應用程序config.cs中配置了DevEUI、JoinEUI 和 AppKey 。

namespace devMobile.IoT.LoRaWAN
{
   public class Config
   {
#if DEVEUI_SET
      public const string devEui = "...";
#endif
#if OTAA
      public const string JoinEui = "...";
      public const string AppKey = "..."
      //public const string AppKey = "03C06FBFC2F3B396DE07ECF09404F6FE";
#endif
#if ABP
      public const string DevAddress = "...";
      public const string NwksKey = "...";
      public const string AppsKey = "...";
#endif
   }
}

RAK3172LoRaWANDeviceClient支持的功能配置了一系列編譯時指令。

//#define ST_STM32F769I_DISCOVERY      // nanoff --target ST_STM32F769I_DISCOVERY --update 
//#define  SPARKFUN_ESP32_THING_PLUS  // nanoff --platform esp32 --serialport COM4 --update
#define RAK_WISBLOCK_RAK2305 // nanoff --update --platform esp32 --serialport COM4
//#define DEVICE_DEVEUI_SET
//#define FACTORY_RESET
//#define PAYLOAD_BCD
#define PAYLOAD_BYTES
//#define OTAA
//#define ABP
//#define CONFIRMED
//#define UNCONFIRMED
//#define REGION_SET
//#define ADR_SET
//#define SLEEP

SendMessageTimer 在網(wǎng)絡加入成功時啟動。每次調(diào)用 SendMessageTimerCallback 時,RAK3172LoRaWANDeviceClient應用程序都會發(fā)送一條消息。

pYYBAGSBROaAGYp_AAC89a50y00702.png
RAK3712LoRaWANDeviceClient Visual Studio 調(diào)試器輸出
?
poYBAGSBROqAG-f2AAE-1RDgtmk626.png
RAK3712LoRaWANDeviceClient 物聯(lián)網(wǎng)設備“實時數(shù)據(jù)”選項卡
?

執(zhí)行摘要

在花了一些時間查看原理圖后,運行.NET nanoFramwork 的RAK3372 Wisblock BaseRAK2305 / RAK19007組合工作正常。RAK5005及其內(nèi)置太陽能電池充電(其他基本模塊也具有此功能)和附加的WisBlock 模塊將是“概念驗證” LoRaWAN項目的良好平臺。

附加物

我不確定運行默認軟件的RAK4361 核心模塊是否可以工作。

pYYBAGSBROyAeOj6AAB7nscyDG0902.png
RAK4631 RUI3 串行操作模式
?

RAK4361 中,RUI3 串行操作模式文檔 AT 命令將僅在串行(USB 端口)Serial1(TDX0/RXD0) 上處理。


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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  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開發(fā)指南
  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數(shù)字電路基礎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次下載  |  免費