基于LORA的一主多从监测系统
爱喝纯牛奶的柠檬
物联网工程专业,擅长C语言、STM32、ESP8266……
展开
-
基于lora的一主多从监测系统
关联:基于lora的智慧农业、基于lora的智慧农场、基于lora的智慧矿井、基于lora的智慧牧场。这个算是一个目录吧,涵盖了我这个专题下的所有文章,感兴趣的小伙伴可以去看看。原创 2024-11-09 21:40:35 · 259 阅读 · 0 评论 -
基于LORA的一主多从监测系统_状态维护
这个状态维护是最近加的,可能是由于工作后的习惯,总会特意关注系统的整体状态,因为用到了4G模块,并且还要和子节点交互,所以我们必须要有个状态来维护4G和云平台之间的连接,同时也要维护和子节点的连接状态,我的实现想法是,每次上传数据前对MQTT的连接状态进行判断,如果状态不对,则重新连接云平台,如果云平台尚未连接成功,则放弃上传将收到的数据保存下来,等待网络恢复后进行上传。这样做的好处是如果云平台丢失连接设备也能有一些自我恢复的能力,算是往成品靠近。并且也会统计与云平台断开的次数。原创 2024-11-03 17:25:19 · 217 阅读 · 0 评论 -
基于LORA的一主多从监测系统_实物设计
最近代码写的差不多了,基本一主一从已经定下,并且经过24小时测试还算比较稳定,所以打算把硬件实物定下,之前用的杜邦线,看着也比较杂乱不是很好看,于是打算使用pcb来替代,这样也比较整洁可靠,二来也看着高级一点,哈哈哈。主节点PCB如下图所示,主节点,我习惯叫网关板,他主要是有4G、LORA、STM32、RTC模块、三个双色LED用来表示设备状态,三个按键用来为后面功能做预留,蜂鸣器、OLED屏幕可以展示一些必要信息。目前都已经在检查阶段了,估计很快就能打板拿到实物了。原创 2024-11-03 17:07:08 · 428 阅读 · 0 评论 -
基于LORA的一主多从监测系统_4G模块上巴法云
临时添加一个更新,更换云平台为巴法云,事情的起因是因为阿里云这个老六,早上睡了一觉起来发短信告诉我云平台给我停了,得交钱,好嘛,不过也没办法现在这基本都收费,当然还有onenet可以用,别问我为什么不用,主要是因为onenet现在整的太复杂了,以前用的多现在也不想用了。巴法云这个显示还是很明了的,个人比较喜欢这种,但是同样这个也看不了设备的在线情况,只能看到订阅者,如果我是推送消息上云那就看不到我的在线情况,这个或许也是我没整明白,等我研究研究,目前上云测试是没什么问题了。原创 2024-10-31 21:56:41 · 261 阅读 · 0 评论 -
基于LORA的一主多从监测系统_主从节点交互
上面就是大概的流程,如果没有在指定时间收到子节点回复的数据则认为子节点收超时,进入到下一个节点的问询过程,这个过程基本都差不多,目前这个过程比较简单,没有太过复杂的东西,下面是我处理单个节点的函数,仅供参考。------>解析数据,判断数据的完整性,如果数据完整则对数据进行转化保存,等待上传。------>延时等待子节点回复。------>主节点发送问询帧。------>子节点回复。原创 2024-10-31 21:01:11 · 205 阅读 · 0 评论 -
基于LORA的一主多从监测系统_4G模块基本驱动
4G模块我这边使用的是大夏龙雀的4G模块,如果是新人购买,9.9就能买到测试套装,还是比较划算的,这个模块也是通过串口使用AT命令交互的,对之前使用过ESP8266的小伙伴来说应该不会很难,之所以选择4G模块而不选择ESP8266也是因为考虑到整体系统的使用场景,以野外或者长距离为主,使用WiFi会有很多局限性,所以选择4G。所有的指令以 AT 开头,结束,在本文档中表现命令和响应的表格中,省略了,仅显示命令和响应。内为可选内容,如果命令中有多个参数,以逗号"。原创 2024-10-30 22:40:20 · 317 阅读 · 0 评论 -
基于LORA的一主多从监测系统_4G模块连接阿里云
4G模块我这边使用的是大夏龙雀的4G模块,如果是新人购买,9.9就能买到测试套装,还是比较划算的,这个模块也是通过串口使用AT命令交互的,对之前使用过ESP8266的小伙伴来说应该不会很难,之所以选择4G模块而不选择ESP8266也是因为考虑到整体系统的使用场景,以野外或者长距离为主,使用WiFi会有很多局限性,所以选择4G。上述是我实际测试所填,具体可以参考代码内容,大夏龙雀这个4G模块还是很良心的,厂家也提供了一个测试代码,我们可以用这个测试代码加以修改就可以使用,如下。下面是我实际的debug信息。原创 2024-10-30 22:22:23 · 309 阅读 · 0 评论 -
基于LORA的一主多从监测系统_数据发送
数据上传我这里使用了问询的方式,这样的好处一是可以用来统计节点的存活状态,二是可以避免冲突,主节点通过向从节点发送问询帧,从节点收到问询帧后开始向主节点发送数据,同时我们也可以加入不同的帧类型,比如控制帧、问询帧、心跳帧等等,拓展性会好很多。大概的流程如下,如果收状态机触发,则清除状态机后开始判断帧内容,如果为问询帧则将数据发送,发送完后清空缓存为下一次做准备。目前设计的很简单还是透传的过程,也不涉及对lora模块的具体配置。原创 2024-10-20 16:57:26 · 261 阅读 · 0 评论 -
基于LORA的一主多从监测系统_协议制定
【注2】帧内容中的7E转义为7D 5E, 7D转义为7D 5D。帧内容长度计算转义后的帧内容长度。帧内容就是我们实际发送的数据,数据需要按照下述表格中的顺序填充。该字节以后所有内容(即关键字+帧内容+校验和)字节数。【注1】协议中使用大端字节(高字节在前低字节在后)。【注1】协议中如果需要添加关键字,依次顺添加就可。心跳帧是主机到从机,从机再到主机双向。从机到主机,表示请求新增一个设备。累加转义后的关键字+帧内容。应答帧是对主机来检查。原创 2024-10-15 12:58:39 · 271 阅读 · 0 评论 -
基于LORA的一主多从监测系统_光照强度传感器
我们使用准备好的空间接收返回值即可HAL_ADC_GetValue(&hadc1);,这个返回的是一个电压值,我们通过公式计算就能换算到相对光照值,至此我们光照强度传感器的驱动代码已经完成。本系统使用了普通的ADC光照强度传感器,我们需要再CUBEMAX里面配置好ADC的相关参数,这里我们使用PB1来做光照传感器的接口,对C8T6来说也就是ADC1的第九个通道。我们先按照上图配置,将gpio绑定到ADC1_IN9,同时使能为。原创 2024-10-10 13:40:44 · 261 阅读 · 0 评论 -
基于LORA的一主多从监测系统_BMP280气压传感器
网上目前能找到的寄存器手册是博士的,手册是全英文的,但我们只需要关系重点信息,比如这个ID,这个ID就是我们去读器件指定的一个地址,可以读到一个值,这个值就是这个器件的ID,这个寄存器是可读寄存器,一般这个ID是出厂就固定的,不可修改。这个是我们需要好好去研究的寄存器,我们所需要的压力数据就是从这个寄存器获得,分别有三个寄存器,这三个寄存器分别保存压力数据的高位、低位、小数位,注意0xF9里面只有bit7-bit4是我们的需要的,其余四个bit我们不用关心。这些地址我们无需关心,原创 2024-10-10 13:27:40 · 567 阅读 · 0 评论 -
基于LORA的一主多从监测系统_0.96OLED
我这里使用硬件I2C,使用HAL的I2C操作函数HAL_I2C_Mem_Write,这个函数是在阻塞模式下将大量数据写入特定的内存地址,函数原型为:HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)原创 2024-10-09 22:14:11 · 479 阅读 · 0 评论 -
基于LORA的一主多从监测系统_AHT20温湿度传感器
通过简单的代码测试后,我们在debug下可以看到已经能正常读到数据了,其中0x1C为状态字节 00011100,通过第4个bit为1表示OTP 存储器数据完整性测试(CRC)通过,说明我们温湿度数据获取成功。通过手册,我们可以知道当传感器上电后需要等到五ms才能读取,这个一般可以不用管,但是再发送完测量命令后需要等待80ms测量完成,我们需要做一些延时操作。当然,最重要的是我们如何将获取的数据转换为实际的温度和湿度,通过查看手册,我们可以得到转换的具体公式。这个实际数据值看着也差不多,说明获取无误。原创 2024-10-08 22:47:09 · 536 阅读 · 0 评论 -
基于LORA的一主多从监测系统_框架搭建
这个地方的配置按照下图即可,配置没问题了点击GENERATE CODE即可。原创 2024-10-07 23:00:19 · 440 阅读 · 0 评论 -
基于LORA的一主多从监测系统_前言
最近想用手头的东西做一个小项目,也算是一个共用框架,这个框架可以做很多东西,比如基于lora的智慧农场,基于lora的智慧牧场,基于lora的智慧城市,智慧矿井等。这个项目我对他的定位是可以用于课设以及毕设,如果作为毕设需要在这个基础上再做一些丰富,比如加上远程OTA功能,这个算是一个亮点。整个系统的主要的思维,也就是多个从节点将数据采集后上传至主节点,主节点起到一个网关的作用,可以将子节点数据上传至云端,比如onenet、阿里云、巴法云等公共物联网云平台或者自建云平台。原创 2024-10-07 22:45:06 · 516 阅读 · 0 评论
分享