电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>NET nanoframework和RAK WisBlock传感器开源

NET nanoframework和RAK WisBlock传感器开源

2023-06-12 | zip | 0.00 MB | 次下载 | 免费

资料介绍

描述

 

介绍

RAKwireless RAK11200 WisBlock WiFi 核心模块RAK2305 WiFi Espressif ESP32 无线模块基于.NET nanoFramework支持Expressif ESP32 处理器

RAKWisBlock 系统广泛的传感器选择,我想看看让它们的代表性样本工作有多难。

小心RAK11200RAK2305 40 针连接器,如果处理不当,它们会损坏(WisBlock 模块也应拧到主板上)。

SHT3C温湿度传感器

SHT3C 传感器模块是最便宜的模块之一(2023 年 2 月 4.60 美元)并且具有。NET nanoFramework IoT.Device支持,因此它看起来是一个不错的起点。

poYBAGSBRYiAW-q8AAYo_hYa_Xw748.jpg
RAK5005基板、RAK1901传感器和RAK11200核心WisBlock模块
 

示例代码适用于RAK11200 CoreRAK2305 无线模块。

public class Program
{
   public static void Main()
   {
      Debug.WriteLine("devMobile.IoT.RAK.Wisblock.RAK11200RAK1901 starting");

      try
      {
         // RAK11200 & RAK2305
         Configuration.SetPinFunction(Gpio.IO04, DeviceFunction.I2C1_DATA);
         Configuration.SetPinFunction(Gpio.IO05, DeviceFunction.I2C1_CLOCK);

         I2cConnectionSettings settings = new(1, Shtc3.DefaultI2cAddress);

         using (I2cDevice device = I2cDevice.Create(settings))
         using (Shtc3 shtc3 = new(device))
         {
            while (true)
            {
               if (shtc3.TryGetTemperatureAndHumidity(out var temperature, out var relativeHumidity))
               {
                  Debug.WriteLine($"Temperature {temperature.DegreesCelsius:F1}°C  Humidity {relativeHumidity.Value:F0}%");
               }

               Thread.Sleep(10000);
            }
         }
      }
      catch (Exception ex)
      {
         Debug.WriteLine($"SHTC3 initialisation or read failed {ex.Message}");

         Thread.Sleep(Timeout.Infinite);
      }
   }
}

NuGet 包(尤其是Units.Net包)可能存在版本控制问题,因此可能需要进行一些“修补”。

pYYBAGSBRYuALFicAACChnfto48911.jpg
显示温度和湿度读数的 Visual Studio 2022 输出窗口
 

GNSS GPS 定位模块 u-Blox MAX-7Q 传感器

我使用TinyGPSPlusNF库来处理RAK1910 GNSS GPS 定位模块上的u-blox7 GNSS 模块生成的NMEA0183消息。

pYYBAGSBRZCAA26uAAjdg4aIEO0890.jpg
RAK5005 主板上的 RAK 11200 和 RAK1910
 
poYBAGSBRbOAb03zAAm4rT0Qahg263.jpg
RAK5005 主板上的 RAK 2305 和 RAK1910
 

RAK WisBlock Pin Mapper工具输出用于RAK1910、RAK5005-O WisBlock 底板RAK11200

poYBAGSBRbaAWz1gAADY4f78GS0612.jpg
RAK WisBlock 引脚映射器
 
poYBAGSBRcOAXkddAAXATNcy3BM172.png
RAK5005 WisBlock基板框图
 

为了节省电力,GPIO27 用于打开/关闭 RAK1910 模块。

pYYBAGSBRcWAFs1FAABEfaDxq6M317.png
 

在查看 RAK2305 和 RAK5005 原理图并进行一些实验后,我发现串行端口 TX/RX 线也必须颠倒,因为这两个设备通常会连接到WisBlock 核心模块。

pYYBAGSBRciAY77LAAE2uf6nf9E403.jpg
RAK2305模块原理图
 
pYYBAGSBRNyAU4AYAAJ61sPW5QE337.png
 

该演示应用程序基于MBoude的TinyGPSPlusNF,该库解析RAK1910生成的NMEA 0183语句

public class Program
{
   private static TinyGPSPlus _gps;

   public static void Main()
   {
      Debug.WriteLine($"devMobile.IoT.RAK.Wisblock.RAK1910 starting TinyGPS {TinyGPSPlus.LibraryVersion}");

      try
      {
         Configuration.SetPinFunction(Gpio.IO21, DeviceFunction.COM2_TX);
         Configuration.SetPinFunction(Gpio.IO19, DeviceFunction.COM2_RX);

         _gps = new TinyGPSPlus();

         // UART1 with default Max7Q baudrate
         SerialPort serialPort = new SerialPort("COM2", 9600);

         serialPort.DataReceived += SerialDevice_DataReceived;
         serialPort.Open();
         serialPort.WatchChar = '\n';

         // Enable the GPS module GPS 3V3_S/RESET_GPS - IO2 - GPIO27
         GpioController gpioController = new GpioController();

         GpioPin Gps3V3 = gpioController.OpenPin(Gpio.IO27, PinMode.Output);
         Gps3V3.Write(PinValue.High);

         Debug.WriteLine("Waiting...");

         Thread.Sleep(Timeout.Infinite);
      }
      catch (Exception ex)
      {
         Debug.WriteLine($"UBlox MAX7Q initialisation failed {ex.Message}");

         Thread.Sleep(Timeout.Infinite);
      }
   }

   private static void SerialDevice_DataReceived(object sender, SerialDataReceivedEventArgs e)
   {
      // we only care if got EoL character
      if (e.EventType != SerialData.WatchChar)
      {
         return;
      }

      SerialPort serialDevice = (SerialPort)sender;

      string sentence = serialDevice.ReadExisting();

      if (_gps.Encode(sentence))
      {
         if (_gps.Date.IsValid)
         {
            Debug.Write($"{_gps.Date.Year}-{_gps.Date.Month:D2}-{_gps.Date.Day:D2} ");
         }

         if (_gps.Time.IsValid)
         {
            Debug.Write($"{_gps.Time.Hour:D2}:{_gps.Time.Minute:D2}:{_gps.Time.Second:D2}.{_gps.Time.Centisecond:D2} ");
         }

         if (_gps.Location.IsValid)
         {
            Debug.Write($"Lat:{_gps.Location.Latitude.Degrees:F5}° Lon:{_gps.Location.Longitude.Degrees:F5}° ");
         }

         if (_gps.Altitude.IsValid)
         {
            Debug.Write($"Alt:{_gps.Altitude.Meters:F1}M ");
         }

         if (_gps.Location.IsValid)
         {
            Debug.Write($"Hdop:{_gps.Hdop.Value:F2}");
         }

         if (_gps.Date.IsValid || _gps.Time.IsValid || _gps.Location.IsValid || _gps.Altitude.IsValid)
         {
            Debug.WriteLine("");
         }
      }
   }
}

NuGet 包(尤其是Units.Net o nes)可能存在版本控制问题,因此可能需要进行一些“修补”。

pYYBAGSBRc6AFVtAAAEhhW36WEE063.jpg
显示位置信息的 Visual Studio 2K22 输出窗口
 

123456

和别人玩得开心

RAK11200 WisBlock WiFi 模块有两个 I2C 端口,在RAK5005 WisBlock 基板上,Wisblock 传感器和RAK1920 WisBlock 传感器适配器模块 Grove 插座重新连接到 I2C1。

poYBAGSBRdSAYiPCAAjsz09H_Nk063.jpg
带有 Seeedstudio Grove SHT31 传感器的 RAK1920 Wisblock 传感器适配器
 

123456

pYYBAGSBRd2AUH7sAAq08qIh-60217.jpg
RAK1920 Wisblock 传感器适配器与 Adafruit SHT31-D 传感器
 

123456

public class Program
{
    public static void Main()
    {
        Debug.WriteLine("devMobile.IoT.RAK.Wisblock.RAK1920SHT31 starting");

        try
        {
            Configuration.SetPinFunction(Gpio.IO04, DeviceFunction.I2C1_DATA);
            Configuration.SetPinFunction(Gpio.IO05, DeviceFunction.I2C1_CLOCK);

            I2cConnectionSettings settings = new(1, (byte)I2cAddress.AddrLow);

            using (I2cDevice device = I2cDevice.Create(settings))
            using (Sht3x sht31 = new(device))
            {
                while (true)
                {
                    var temperature = sht31.Temperature;
                    var relativeHumidity = sht31.Humidity;

                    Debug.WriteLine($"Temperature {temperature.DegreesCelsius:F1}°C  Humidity {relativeHumidity.Value:F0}%");

                    Thread.Sleep(10000);
                }
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine($"SHT31 initialisation or read failed {ex.Message}");

            Thread.Sleep(Timeout.Infinite);
        }
    }
}

NuGet 包(尤其是Units.Net on es)可能存在版本控制问题,因此可能需要进行一些“修补”。

poYBAGSBReCAd9pmAACyy1Q0AH8720.jpg
Visual Studio 2K22 输出窗口显示温度和湿度信息
 

执行摘要

.NET nanoFramework 库按预期运行良好。我最终花了更长的时间让 GPS 工作,因为我不得不参考原理图来弄清楚它是如何连接的。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  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次下载  |  免费