IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于Lora的远程农业监测与控制系统,过程回顾及经验总结 -> 正文阅读

[嵌入式]基于Lora的远程农业监测与控制系统,过程回顾及经验总结

最近毕业设计终于是告一段落了,大概断断续续边做边玩搞了两个月吧,论文还没写麻了。

今天写这篇博客的主要目的是记录梳理一下自己做毕设的过程,同时也希望自己的毕设经验能给有需要的人提供一些帮助。

一、基本信息

题目:基于Lora的远程农业监测与控制系统

目的:通过Lora子节点采集好各种传感器的信息,发送给汇聚节点,汇聚节点将数据通过ESP8266上传至云端,使用了微信小程序进行监测与控制

元器件:正点原子lora模块3个、正点原子STM32F103ZET6最小系统开发板3个、MQ2气敏传感器(替代二氧化碳传感器)、雨滴传感器、土壤湿度传感器、光照传感器、DHT11温湿度传感器、水位传感器、三路继电器、12V转5V、3.3V电源模块

成品:

主要元器件图片:

二、设计思路

下面的过程略微有点长,不过算是记录了我详细的思考过程,有需要的小伙伴可以看看

其实我觉得设计思路是整个毕设最重要的部分,因为它决定着你后续工作的展开,这里我仅提供自己的设计思路做以参考,希望大佬多多指点。

子节点:采集各种传感器数据,在接收到汇聚节点的指令后发出数据

汇聚节点:发送指令与接收子节点返回的数据

整体思路:汇聚节点发出获取A节点数据的指令后立马开启接收函数,并且对收到的值进行判断以确保没有丢包,如果数据不完整会再次重复发送过程,三次不成功后将跳过对A节点的询问,直接开始对B节点进行询问。

子节点采集好各种传感器数据后,在接收到子节点的查询指令后,使用串口3通过Lora发出,同时会在末尾加上校验数据,比如0X55,当汇聚节点收到数据后可以直接判断末尾是否为0x55,确保数据的完整性。

这里我们有一个需要注意的问题,如果不对子节点进行地址和信道的单独设置会使得数据在发送时存在干扰问题。通过研究正点原子Lora使用手册,可以使用定向传输,在进行Lora配置时,对每个子节点进行信道、地址单独配置,发送数据时携带上目标节点的信道和地址即可。

参考下图(来源AN1801A ATK-LORA-01 无线串口模块使用说明):

最重要部分:个人认为最重要的就是汇聚节点对子节点的轮询,因为我们不可能同时访问到两个子节点,就算可以也会存在数据干扰,因此我们需要轮流询问子节点,简单理解就是一次只能跟一个人交流,面对一群人时我们只能一个一个的交流。

我的初步想法是在一个while循环里通过判断一个节点是否接收完毕然后开始下一个节点,这样的话感觉理论上是没有什么问题的,但是和导师说完我的想法后,导师直接说我想的过于简单,建议我使用一个实时操作系统来完成轮询。

后面我经过思考发现,如果只是在while里面轮询,对于数据上传和命令下发是非常不友好的。因为我们的要求是对子节点的控制命令优先级要高于对节点数据采集。并且我们在收到数据后还要进行数据上云的步骤,如果只是普通while循环的话是远远不够的。

最终通过网上查询相关资料,和简单了解之后我是用了FreeRTOS系统,另一部分原因也是正点原子官方提供的开发板资料里面有一些FreeRTOS的使用里程和教程。

三、整体设计方案及结构图

1、系统整体设计
系统整体是基于STM32、Lora和FreeRTOS、微信小程序、onenet开发,分别由终端节点、汇聚节点、云平台、小程序用户端四大部分组成。每个终端节点由STM32和Lora模块组成,其主要任务是完成对农田温湿度、土壤湿度、水位、二氧化碳、降雨量、光照等数据量的采集、完成对数据的简单处理,保证数据的可用性,同时也要也要完成对灌溉设备、补光设备、换气设备的控制实现人工干预创造适合农作物生长的环境。终端节点在采集到数据后通过低耗能Lora将数据上传至汇聚节点。汇聚节点在通过Lora接收到数据后将数据上传至云平台,用户端可以随时通过小程序链接云平台完成对数据的读取和对设备的控制。


2、汇聚节点设计
汇聚节点硬件主要是由STM32、Lora和ESP8266组成。在FreeRTOS的系统中,分别设置五个主要任务,并且按照一定的优先级执行,同时也要响应ESP8266接收到的云端下发数据。在轮询到Lora任务时,接收到子节点数据后进行判断,如果数据完整则进行简单处理后上传云平台。


3、子节点设计
子节点主要是通过STM32采集各种传感器数据和控制设备,采集到的数据通过简单处理后在接受到查询命令时通过Lora发给汇聚节点。同时也要接收汇聚节点的控制命令,对控制设备进行操作。

四、系统软件设计

虽然整个软件设计比较简单或者说大多是重复工作,比如传感器的ADC采集,但是我尽可能多用集中方式来实现,感兴趣的小伙伴可以做个参考。如果有不对的地方或者更优解欢迎指出。

1、子节点A软件设计

上面这个过程可能有些许复杂,我自己画的可能也有点问题。下面我会再详细的叙述一遍代码执行过程。

因为是毕业设计暂时在答辩未完成前不会公布太过于详细的代码

有这方面需要的可以私聊我一起讨论解决

分割线—————————————————————

时间2022年3月10日,忙完了一些事有点空了,接着上面的继续。

如果你没有看明白上面的流程图,那么没关系,可以看看我下面的文字叙述,及主要代码分析

(1)、模块配置

这个地方我们可以参考正点原子的ATK-LORA配置软件 V1.2,软件的下载地址可以去这里面寻找:开发工具专栏-OpenEdv-开源电子网

指令帮助一栏里面有相应配置指令的使用方式,我这里的配置代码如下所示:

//为防止通信产生干扰可以自己修改这里的模块配置参数,如果另一侧是用上位机接收,
	  //就在上位机调试APP中修改为对应的参数即可,不然两个模块无法通信
	  lora_send_cmd((u8 *)"AT+ADDR=FF,F1",(u8 *)"OK",200); //设置地址
	  lora_send_cmd((u8 *)"AT+CWMODE=0",(u8 *)"OK",200); //设置为省电模式
	  lora_send_cmd((u8 *)"AT+TMODE=1",(u8 *)"OK",200); //设置为定向传输
	  lora_send_cmd((u8 *)"AT+TPOWER=3",(u8 *)"OK",200); //设置发射功率20db
	  lora_send_cmd((u8 *)"AT+WLRATE=24,2",(u8 *)"OK",200); //设置信道为24,空中速率2.4
	  lora_send_cmd((u8 *)"AT+WLTIME=0",(u8 *)"OK",200); //设置休眠时间为1S
	  lora_send_cmd((u8 *)"AT+UART=7,0",(u8 *)"OK",200);//设置波特率115200,无校验 

我们要特别注意地址、信道、传输模式、空中速率的配置,这里有必要说一下传输模式的区别。

传输模式一共有三种,分别是{0 一般模式}、{1 唤醒模式}、{2 省电模式}、{3 信号强度模式},信号强度模式我并未测试,但是前面两种我已经测试完毕。

一般模式:这个模式下可以进行无线透明、定向传输数据,接收方必须是工作在一般模式和唤醒模式

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:45:28  更:2022-03-10 22:47:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:46:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码