任务要求:

基于温湿度传感节点和光照度传感节点,要求轮询读取温湿度传感节点,光照度传感节点,将接收数据透传串口。

一、修改设备地址

//定义网络编号和设备地址,网络地址不需要修改同在同一网络内。
#define MY_NET_ID  0xD0C2  //网络ID
#define ADDR_MIN 1         //最小起始地址
#define ADDR_MAX 2         //最大终结地址

二、网关请求函数

void LoRa_SendRead( uint16_t NetId, uint8_t addr )用于发送读取传感器数据命令给指定网络设备参数为网络ID,addr为设备地址。

void LoRa_SendRead( uint16_t NetId, uint8_t addr )
{uint8_t TxBuffer[BUFFER_SIZE];TxBuffer[0]=START_HEAD;TxBuffer[1]=CMD_READ;TxBuffer[2]=(uint8_t)(NetId>>8);TxBuffer[3]=(uint8_t)NetId;TxBuffer[4]=addr;TxBuffer[5]=CheckSum((uint8_t *)TxBuffer, 5);Radio.Send( TxBuffer, 6);
}

三、Lora数据解析

数据解析和其他传感一致,只有一下代码发生改变。

        //传感数据显示到OLED屏上char OledBuf[32];memset(OledBuf, ' ', 32);memcpy(OledBuf+1, &DATASTAR_DATA, (LEN_DATA-1)>30?30:(LEN_DATA-1));OLED_ShowString(0,4, (uint8_t *)OledBuf);
#ifndef TRANSPARENCY//打印接收到的信息到调试助手char output[BUFFER_SIZE*5]={0};memset(output, '\0', BUFFER_SIZE*5);GetHexStr((uint8_t *)LoRaRxBuf, len, (uint8_t *)output);//十六进制显示函数printf("收到%d个字节的LoRa无线数据:%s\r\n", len, (const char *)output);//提取响应数据中的传感数据uint8_t StrBuf[BUFFER_SIZE*5]={0};memset(StrBuf, '\0', BUFFER_SIZE*5);memcpy(StrBuf, &DATASTAR_DATA, LEN_DATA-1);printf("网络ID=0x%04X,源地址=%d\r\n", ((((uint16_t)NETH_DATA)<<8)+NETL_DATA), ADDR_DATA);printf("传感数据:%s\r\n",StrBuf);
#elseUSART1_SendStr((uint8_t *)DestData, 7+(*(DestData+6)));//透传
#endif /*(ENGINEER_DEBUG != false)*/ }

四、网关轮询函数

LoRa_ReadSensorProcess(uint8_t AddrMin, uint8_t AddrMax) // 轮询起始地址:AddrMin;轮询最后地址:AddrMax;在开始定义了两个参数。

例: LoRa_ReadSensorProcess(ADDR_MIN, ADDR_MAX);

void LoRa_ReadSensorProcess(uint8_t AddrMin, uint8_t AddrMax)
{static uint16_t time = 1000;static uint8_t addr = 1;if(User0Timer_MS > time){User0Timer_MS = 0;time = randr( 1000, 4000 );//给定一个随机间隔时间,减少信道冲突概率
#ifndef TRANSPARENCYprintf("读取网络ID为0x%04X, 地址为%d的传感节点\r\n", MY_NET_ID, addr);
#endif//显示屏提示轮询地址和网络号char StrBuf[32];memset(StrBuf, '\0', 32);sprintf(StrBuf, " ID:%04X,Addr:%d", MY_NET_ID, addr);OLED_ShowString(0,2, (uint8_t *)StrBuf);//清除显示屏第3、4行的内容memset(StrBuf, ' ', 32);OLED_ShowString(0,4, (uint8_t *)StrBuf);LoRa_SendRead( MY_NET_ID, addr++ );//发送读取传感命令,轮询地址+1if(addr > AddrMax)//轮询地址大于最大值{addr = AddrMin;//轮询地址最小值}GpioToggle( &Led1 );//发送数据切换亮灯指示}
}

五、主函数调用

主函数不断轮询传感器数据,Lora无线射频接收数据后,调用Lora数据解析函数将传感器信息取出。

int main( void )
{PlatformInit();while( 1 ){//IWDG_PrmRefresh( );//喂独立看门狗MyRadioRxDoneProcess();//LoRa无线射频接收数据处理进程LoRa_ReadSensorProcess(ADDR_MIN, ADDR_MAX);}
}

Lora网关节点汇聚传感器数据相关推荐

  1. python如何控制传感器_在Python中单行写入传感器数据

    我正在尝试使用Python将来自2个传感器节点的数据写入CSV文件.在AT模式下,通过Xbee Series 1进行通信,2个传感器节点上的Xbee终端设备将数据传递给连接到我的计算机的Xbee协调器 ...

  2. 节点还没注册,LoRa网关却收到数据?

    为什么刚购买的节点还没有注册,就可以在网关上看到节点发送的上行数据,其实很多刚接触到LoRa的朋友都会有这样的疑问. LoRa其实是一种无线信号传输,只要网关和节点处于同一个信道,网管就能接收到节点发 ...

  3. 新大陆物联网-Android实现网关功能-连接云平台并上传传感器数据-获取执行器指令并执行-Android网关开发-通信-数据上传云平台-JAVA原理讲解-免费云平台使用-竞赛2022国赛真题

    目录 一.任务要求 二.开发环境 三.网关上线 四.数据上传与命令下发 五.JSON命令解析思路 六.总结 一.任务要求 我们将要实现的效果是:Android开发平板与Lora板进行有线串口通信,解析 ...

  4. java传感器编程_JSensorReader 无线传感器网络环境,直接从节点读取 采集数据的java程序 Script 249万源代码下载- www.pudn.com...

    文件名称: JSensorReader下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 9946 KB 上传时间: 2015-12-29 下载次数: 0 详细说明 ...

  5. ROS节点获取TIA_go机器人传感器数据,并上传到指定服务器做深度学习处理

    Brief 正如标题所言,该小项目包括三部分,如下 ROS节点获取机器人数据 socket和服务器数据传输,包括了数据上传和获取 服务器深度学习处理数据 1 ROS节点获取机器人数据 1.1 数据结构 ...

  6. 基于物联网网关的水电表传感器数据采集系统

    水表.电表以及各种不同类型的传感器在工业生产中十分常见,成为物联网远程监控的重点.需要将用水量.用电量.温湿度.压力等数据采集上来,集中监控生产环境信息并产生预警通知,有助于保障安全稳定的生产环境,能 ...

  7. lora网关软件设计_用LoRa实现的物联网应用,到底好在哪里?

    腾讯云loT应用创新大赛自开启以来,收到了众多小伙伴们的投稿作品,本文是对其中的一篇优秀作品的摘录.LoRa作为一种远距离无线电技术,具有功耗低.传播距离远等优点,适合部署在机房.智慧建筑等物联网应用 ...

  8. 基于LoRa网关的医院室内环境监测物联网系统

    随着生活水平的大幅度提高,人们对身体健康越来越重视,对医疗卫生环境也产生新的要求.大中型医院有着系统完善的科室,前来就诊的人流量巨大,对环境的需要十分严格,同时诊疗用品.试剂.药品等也可能污染空气,需 ...

  9. 工程小白问题:数采网关、智慧网关、物联网关、工业网关、DTU透传网关、边缘网关、协议网关、通讯管理机、中控网关、LORA网关、PROFIBUS网关、HART网关,都啥区别?如何判断是否符合工程要求?

    什么是数采网关,LoRa数采网关\NB-IOT数采网关\HART数采网关profibus DB 数采网关 数采网关就是数据采集网关,一端对接各种数据采集终端.电子仪器仪表,一般都是工业现场总线通讯传输 ...

  10. 亿佰特Lora网关技术为马拉松保驾护航

    2021年10月份成都马拉松跑步比赛开始报名了,身边很多感兴趣的朋友都在纷纷报名.按照朋友的话说,报名马拉松不是为了去跑步,就是为了体验马拉松跑到路边景色及配套设施. 根据介绍,野外超级马拉松现场许多 ...

最新文章

  1. MySQL · 社区动态 · MariaDB 10.2 前瞻
  2. 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据...
  3. linux系统程序PPT,Linux 系统应用与程序设计 问题.ppt
  4. 按部就班——图解配置IIS5的SSL安全访问
  5. Java EE中的配置管理
  6. Java(19)JDBC
  7. 中英文对照 —— 航空航天航海、交通运输工具
  8. 30.构建单机多容器环境-故障31.构建单机多容器环境
  9. python相关函数_Python 函数相关概念
  10. 测试丢包_如何使用ping和tracert命令检测丢包
  11. 关闭 mysql redo_MySQL redo log总结
  12. 【校园网环境下知网研学下载文献出现“下载文献 当前IP没有获取权限或服务器异常”处理办法】
  13. 小信号放大运算放大器使用要依照三步骤,4个细节更重要
  14. HTML 表格与表单 个人简历
  15. 32个Python爬虫项目实战
  16. 初入职场“荒野求生”,五条靠谱的生存指南
  17. 响应式黄色高端家居装修生活空间类网站pbootcms模板(PC+WAP)
  18. 恶魔的奶爸英语 初级教程
  19. 面向对象:怪蜀黍PK奥特曼
  20. 给linux文件夹设置权限

热门文章

  1. MySQL学习笔记(12)—— SQL触发器:
  2. 免费GB网络硬盘|网盘|网络U盘|最好的免费网络硬盘|赚钱网盘
  3. 前端,自定义印章效果
  4. JS的基本概念和语法
  5. java wlan_浅谈无线局域网WLAN
  6. java垃圾回收文件分析
  7. PS2有线手柄的SPI协议
  8. MATLAB GUI编程总结
  9. 计算机机房系统建设,计算机机房系统建设方案(范文).pdf
  10. 使用PIL和OpenCV在PC上模拟动画OLED / LCD显示器