- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
传感网应用开发主讲教师:陈超颖
01LORA温湿度节点应用程序开发目录CONTENT
LORA温湿度节点应用程序开发步骤:整理代码工程:基于完成驱动移植的工程模板上进行操作,备份模板“LoRaModemProject”,修改副本文件为“LoRaModemSensorTempRhProject”,IDE打开工程文件后,关注一下几个函数:LoRa_Send():发送LoRa无线数据OLED_InitView():设置OLED初始显示内容,调用hal_oled.c的接口函数,只支持英文,要显示中文,需要用软件工具取字模,再在OLED上显示字模数据
4.PlatformInit():初始化硬件平台,包括时钟、OLED屏、SX1278等,系统其它部件初始化在此处添加、完善代码,例如直接调用初始化函数对定时器、SPI、GPIO等进行,也可以用STM32CubeMX自动生成后,再将代码添加到此处
main():重点实现接收网关命令的解析响应、温湿度传感器数据的采集,因此,增加两个进程函数,接收到数据后的解析响应函数MyRadioRxDoneProcess()和传感数据读取函数LoRa_GetSensorDataProcess();
2.设计函数LoRa_DataParse(),解析网关请求信息并响应传感数据,结构为HEAD+CMD+NET_ID+LORA_ADDR+LEN+DATA+ACK,把该函数加到MyRadioRxDoneProcess()中,收到无线数据后的回调函数,进行消息解析和响应;通信协议:帧头定义、设备网络ID和地址,区分网络中的设备,同一个网络拥有相同的网络ID,不同设备的地址是唯一的。还可以用不同的载波频率区分载波频率,修改NS_Radio内的频率宏定义。这里主要通过宏定义方式。数据发送接收都需要校验,添加校验函数checksum(),从head到chk前一个字节的和,只保留低八位。添加定位一帧数据中帧头首次出现位置的函数ExtractCmdfram();
3.程序调试:设计函数GetHexStr()将数组内各元素用16进制展示,用于程序调试和监控;4.修改OLED_InitView(),提示当前温湿度信息;5.传感器定时采集数据,修改PlatformInit()函数,初始化时增加定时器,原工程使用了Tim3,调用Tim3McuInit(),设为1ms中断响应一次,中断回调函数中的计数参数增1;在LoRa_GetSensorDataProcess()中,当计数到1000时,读取传感器数据,实现1s采集一次温湿度数据。
感谢观看
文档评论(0)