
基于Lora的迷你气象站,通过TTN和Cayenne LPP测量温度,湿度,压力和风向 ![]() 硬件组件 STMicroelectronics X-NUCLEO-IKS01A1 × 1 STMicroelectronics X-NUCLEO-IKS01A2 × 1 STMicroelectronics B-L072Z-lrwan1发现套件 × 1 手动工具和制造机器 STM32开放式开发环境 CraftBot + 介绍 演示项目展示了Murata / STM Lora模块的易用性: 使用这款B-L072Z-LRWAN1 板与STM的Mems-Sensor Arduino Shield X-NUCLEO-IKS01A1 或X-NUCLEO-IKS01A2 相结合,您可以将无线物联网与温度,压力,湿度和磁传感器等简单传感器相结合。该项目采用演示固件,使用The Things Network 和Cayenne LPP 构建WindVane气象站。 ![]() 3D外壳V1适合堆叠的Lora无线电路板,包括电池 ![]() WindVane套管V1 ![]() EBV楼顶Lora WindVane V2(+36m) ![]() •建筑顶部的风向标V2 除3D打印机,PCB演示板和完整工具集之外的额外要求是一些金属结构硬件,使其易于旋转:28 / 15mm轴承卡在20厘米长的杆(M8杆)上。 一些简单的Lora模块测试显示20km +范围:LinkedIn。 1.设置STM工具和固件 转到STM网站并下载LoraWan 和STM开放开发环境SW4STM32(基于Eclipse)。 安装SW4STM32(Eclipse)并可选地将LoraWan软件(STM32CubeExpansion_LRWAN_V1.1.0)安装在新的工作空间目录中(不要更改目录结构的命名)。 从此项目下载新的End_Node固件,并在工作区中添加LoraWanProject目录。(Zip文件包含完整的项目目录): <工作空间> \STM32CubeExpansion_LRWAN_VANE1.1.0 \项目\多\应用\洛拉\ End_Node \ ... <工作空间> \ STM32CubeExpansion_LRWAN_VANE2.1.0\项目\多\应用\洛拉\ End_Node \ ... 启动.project 文件。位置:.. \End_Node \ SW4STM32 \ B-L072Z-LRWAN1 \ mlm32l07x01 \ .project。查看Eclipse中的代码 下一步是设置Lora网络信息(通过TTN)。 2.获取Lora-Board的设备EUI的B-L072Z-LRWAN1 配备有包含升特劳拉无线电和SMT32L0 MCU一个村田模块。该无线电具有唯一的设备标识符,称为[Device EUI]。该板在工厂配备了固件,通过VirtualCom端口显示设备EUI。因此,通过USB连接您的Loraboard并打开像Putty或TeraTerminal(115200波特率,8位1停止位,noparity,Flowctrl XonXoff)的终端。如果找不到合适的COM端口,请检查系统上的设备管理器并查找ST-link Virtual Comport。你看到这样的事情: ![]() DevEui的终端信息 复制并保存DevEui十六进制代码,您需要在TTN。AppEui和AppKey也将通过TTN获取 - 请参阅下一节。 3.设置您的TTN应用程序和设备。 转到TTN 并打开或设置您的帐户。转到您的控制台并启动一个使用OTAA的新应用程序(通过空中激活)。TTN将发布应用程序EUI,因此请复制此十六进制代码。在您的应用程序中创建一个新设备。这需要上一节的DevEui。TTN还将生成一个名为Application Key的安全密钥,因此也要复制它。它在您的设备概述中显示如下内容: ![]() TIN应用程序和设备设置 您可以使用眼睛图标显示应用程序密钥。您可以使用'<>'更改十六进制代码样式 - 非常智能将其复制到C代码中。 ![]() 4.自定义您的Lora应用程序C代码:Comissioning.h 现在,要使设备中的固件对TTN应用程序唯一,您需要调整OTAA lora ID的设置。转到comissioning.h包含文件,并使用上一节中的TTN数据更改LORAWAN_APPLICATION_EUI和LORAWAN_APPLICATION_KEY的十六进制代码。LORAWAN_DEVICE_EUI 由软件读取,无需更改。 ![]() 保存文件并编译整个项目。转到Debug目录并将.bin文件复制到临时驱动器(当插入Lora板时,ST-link将自动生成外部驱动器,复制并通过.bin文件)。电路板上的ST-link控制器将闪烁STM32L0 MCU并重启电路板。 备注:您也可以使用IKS01A2版本的Mems-shield,但这需要一些软件库调整,因为它在屏蔽上使用不同的压力传感器。它在物理上适合于相同的外壳/外壳。 5.Lora WindVane应用程序正在运行 闪烁后,B-L072Z-LRWAN1 板复位并开始运行。您可以按黑色复位按钮重置电路板手册。 打开终端连接并观察控制台。固件将在开始校准时首先说明。这是为了使磁传感器计算将操作值转换为正确的方向角所需的最大最小值。校准期间,BlueLED闪烁10秒钟。将电路板放在平坦的位置(XY平面),并朝向南北等转动一下。 10秒后,它被校准并且控制台显示OTAA活动并将给出状态。如果您距离TTN网关足够近,则该板将加入并且您的信息每10秒发送一次。这10秒的测试,在实际情况下,你应该改变APP_TX_DUTYCYCLE在main.c中的价值15分钟左右(值设置以毫秒为单位)。终端监视器在屏幕上转储数据的一些计算值 - 仅用于验证目的。 如果您不想查看此数据,可以设置已定义的编译器变量:VERBOSE_ENABLED 。 6.TTN控制台 - Cayenne LPP格式 一旦您将电路板加入TTN网络,您就可以在TTN控制台中看到设备数据(数据部分)。数据来自一系列字节。此信息以Cayenne LPP格式设置:[频道] [类型] [数据]。在Main.c中,您可以找到实现此功能的功能LoraTxData() 。 现在,您可以在TTN中将有效载荷格式预先设置为Cayenne LPP,TTN将向您显示转换后的数据。它看起来像这样: ![]() 有效载荷示例TTN 有效载荷被转换为可识别的字段 - 太棒了! 关于此应用的一些评论:Wind Direction不是常见的LPP类型,因此风角通过analog_in_5(LPP channel5)传递。其他信息: Analog_in_5是风向角(0是北,90东,180南等) Analog_in_3是电池状态,单位为% Digital_out_6是蓝色LED的状态(开/关) Gps_4是固定坐标,可以在代码中修改。 有效载荷字段的其他名称如命名 备注:LPP信道与用于通信和下行链路到TTN网关的TTN信道无关。 备注:您可以通过TTN-Application Channel 2:01h或00h向Lora Board发送下行链路信息,以打开或关闭蓝色LED。 7.卡宴应用和控制台 要将此信息从TTN推送到您的Cayenne控制台,您必须将TTN中的“ 集成”设置为“Cayenne”,并在Cayenne 项目中使用设备EUI: 开始一个项目 选择“LoRa” - >物联网 - > Cayenne LPP作为设备: ![]() Cayenne设置 项目设置完成后,您可以看到收到的数据字段,并选择您希望以何种格式查看控制台,包括随时间变化的数据,图表,仪表等。此外,您应该可以在移动设备上查看它。Cayenne app 。到目前为止,Android版Cayenne 上的应用程序还没有加载项目 -WIP? ![]() V2卡宴仪表盘(EBV楼顶) 8.电池操作 对于电池操作,B-L072Z-LRWAN1 板配有3xAAA 电池座。为了使电池正常工作,需要关闭电路板上的ST-link控制器并断开复位。通过电池供电不会为ST-link控制器供电,但复位仍然会影响MCU复位,因此需要断开连接。 这可以通过删除SB37连接来完成。不幸的是,这不是跳线选项,所以你必须拆除非常小的零欧姆电阻器(0603)。SB37位于电路板的背面。有关详细信息,另请参阅用户手册UM2115 。 同时取下短截线SB18 ,这样电池就不会被红色电源指示灯排出。 9.3D打印外壳,版本1 -2 -3 有三个3D打印外壳支持B-L072Z-LRWAN1 +X-NUCLEO-IKS01A1 屏蔽。(你也可以使用IKS01A2 版本)。在物理上它适合在同一住房)。 用于打印外壳的STL文件可以在ThingIverse 上找到。有3个版本: V1 :紧密的外壳,正面和背面之间有针脚连接 V2 :较大的外壳,带有滑入式边缘,使其更紧密。 V3 :与V2相同,但前部有气流鼻,后部有气口。 V3可以更好地测量湿度和温度,因为在阳光明媚的日子里,套管会加热,当冷却时,湿气可能会被困在套管中。V3以某种方式防止这种情况 - 但外壳更丑陋...... ![]() 最好用ABS塑料或Polymaker的Pc-Max等特殊塑料进行印刷。为防止连接部件(前部和后部)翘曲,最好的结果是使用筏板和支撑套件,从头向下(或自下而上)打印: ![]() 后端打印与. .注意筏板和打印它的底部,以避免翘曲。 |