资料介绍
描述
在过去的几个月里,我一直在为使用Seeed LoRa-E5 (STM32WLE5JC) 模块的客户开展概念验证 (PoC) 项目,因此我的办公桌上有几个备用开发套件。
我也一直在移植我的一些Windows 10 IoT Core项目。NET Core 5 ,因此它们可以在RaspberryPiOS 上运行的Raspberry PI3 / 4设备上工作。这让我想到,像 Raspberry PI 这样功能强大的设备的LoRaWAN连接可能对某些专业应用很有用。
在对System.IO.PortsNuGet包进行了一些实验之后。我决定做一个 .NET Core 5 版本的 Seeed LoRa-E5 库。
许多其他作者已经详细记录了在RaspberryPI 设备上安装.NET Core ARM32/64 运行时的过程,因此我不会在这里介绍。
我主要使用Microsoft Visual Studio 2019 (而不是Visual Studio Code ),所以我花了一些时间探索使部署和调试更容易的工具。为了改善我使用的开发体验
- Raspberry Debugger ,它为 Visual Studio 2019 提供了非常流畅的运行时安装、应用程序部署和调试体验。
- XRDP用于远程访问,因为 RPI 设备在我家后面的车库中无头运行。(我这样做是为了降低我家庭办公室的RAK7258 网关报告的信号强度)。
我用珠宝商的螺丝刀提起了 Grove 连接器上用于传输和接收线的锁定片,这样我就可以交换它们了。(我用结标记交叉电缆,因此很明显它们已被修改)
nanoFramework / TinyCLR串口库之间有一些细微的差别。
// set parameters
serialDevice.BaudRate = baudRate;
serialDevice.Parity = serialParity;
serialDevice.StopBits = stopBitCount;
serialDevice.Handshake = Handshake.None;
serialDevice.DataBits = dataBits;
serialDevice.NewLine = "\r\n";
atCommandExpectedResponse = string.Empty;
serialDevice.Open();
serialDevice.WatchChar = '\n';
serialDevice.DataReceived += SerialDevice_DataReceived;
//Ignoring the return from this is intentional
this.SendCommand("+LOWPOWER: WAKEUP", "AT+LOWPOWER: WAKEUP", SendTimeoutMinimum);
例如,nanoFramework 具有 watchChar ,因此更容易过滤对DataReceived 事件的调用
private static void SerialDevice_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
switch (e.EventType)
{
case SerialData.Chars:
//Debug.WriteLine("RX SerialData.Chars");
break;
case SerialData.WatchChar:
Debug.WriteLine("RX: SerialData.WatchChar");
SerialPort serialDevice = (SerialPort)sender;
// Uncomment this to see buffer size ebb and flow
//Debug.WriteLine($"RX: SerialData.WatchChar Bytes:{serialDevice.BytesToRead}");
string response = serialDevice.ReadExisting();
Debug.WriteLine($"RX :{response.Trim()} bytes:{response.Length} read from {serialDevice.PortName}");
break;
default:
Debug.Assert(false, $"e.EventType {e.EventType} unknown");
break;
}
}
但是.Net Core 没有
private static void SerialDevice_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort serialPort = (SerialPort)sender;
switch (e.EventType)
{
case SerialData.Chars:
string response = serialPort.ReadExisting();
Debug.WriteLine($"RX:{response.Trim()} bytes:{response.Length}");
break;
case SerialData.Eof:
Debug.WriteLine("RX :EoF");
break;
default:
Debug.Assert(false, $"e.EventType {e.EventType} unknown");
break;
}
}
TinyCLR串口库只支持字节数组的发送,所以AT 命令需要转换。
while (true)
{
byte[] txBuffer = UTF8Encoding.UTF8.GetBytes(ATCommand);
int txByteCount = serialDevice.Write(txBuffer);
Debug.WriteLine($"TX: {txByteCount} bytes");
...
}
这些实现细节只是不同的“哲学”方法,所以不是主要问题。
我假设读者熟悉LoRaWAN、配置 LoRaWAN 模块和 LoRaWAN 网络。
The Things Network(TTN)网关、应用程序和设备的配置已经在其他几个Hackster.IO项目中详细介绍过,因此在此不再赘述。
该项目是我博客上一系列帖子的摘要,其中我详细介绍了Seeed LoRa-E5 LoRaWAN库的构建。
该库旨在为 .NET 开发人员构建用于 .Net Core 驱动设备的 LoRaWAN 连接应用程序的“管道”。
Github 存储库包含一个示例应用程序,该应用程序展示了如何使用库发送和接收消息以及支持的不同配置选项。
脚注
Visual Studio 2019的RaspberryDebugger扩展使.NET Core项目在RaspberryPI 设备上的部署和调试成为“无摩擦”过程。它工作得很好,我受到启发下载了RaspberryDebugger 代码(它第一次编译的奖励),并且正在修复几个问题。
- 太阳能供电的LoRa现场网关客户端
- Wilderness Labs Meadow LoRa Field网关客户端
- NET Core LoRaWAN客户端使用RAK3172模块
- Seeed IoTea LoRa解决方案
- Arduino MKR WAN 1300 LoRa现场网关客户端
- Arduino Nano Easy Sensors LoRa Field网关客户端
- 使用LoRa E5的低功耗雪深传感器
- 使用ST Cube编程器和IDE对LoRa E5迷你设备进行编程
- 基于Seedstudio的LoRa E5迷你板 0次下载
- 使用MQTT集成来监控控制基于LoRa E5的物联网设备
- 使用Microsoft AJAX Library创建自定义客户端脚本的资料说明 6次下载
- Cmd Markdown客户端免费下载 11次下载
- CSDN博客客户端源码 1次下载
- CoolpyCould客户端 18次下载
- 基于USB的加密视频客户端的设计与实现
- 适用于Linux的基于Rust的同步客户端介绍 449次阅读
- 分享一款别样的ssh客户端-PortX 449次阅读
- 如何找到连接到服务器的客户端计算机的IP地址 1494次阅读
- 服务器Server和客户端Client的区别 1153次阅读
- MQTT客户端介绍 2180次阅读
- 基于LwIP的HTTP客户端设计 2473次阅读
- 基于LwIP的TCP客户端设计 2112次阅读
- 基于RAW API的UDP客户端设计 1066次阅读
- 密钥服务器和客户端常见问题解答 1117次阅读
- SSH 客户端各种特性和使用说明 1430次阅读
- 数据是怎么样保证准确的从客户端发送到服务器端 1837次阅读
- 鸿蒙应用如何唤起 QQ 安卓客户端进行授权 3474次阅读
- 亚太天能科技E5/E5c指纹锁简介 6552次阅读
- Zoom的Web客户端和WebRTC有什么关系 1.4w次阅读
- 深度解析LoRa和LoRaWAN的区别 8.9w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多