茶园环境监测物联网系统设计
2023-06-04欧阳林群杨逸辉阮承治吴鸿兴邓瑶铃
欧阳林群,杨逸辉,阮承治,吴鸿兴,邓瑶铃
(武夷学院 1.机电工程学院;2.农机智能控制与制造技术福建省高校重点实验室,福建 武夷山 354300)
中国是一个农业大国,茶叶一直是出口创汇的主要农产品之一,因此茶叶的产量与振兴农村经济和增加农民收入密切相关[1]。茶树的生长环境较为苛刻,在土壤水分含量占80%~90%时,茶树的生长速度最快,叶芽产量最大,品质最优。但是,当含水量大于93%时则会出现茶树烂根现象,小雨40%时则会出现叶芽受损,生长缓慢,甚至死亡的现象[1],所以在茶园中引入现代科学技术来精准控制茶园生态环境,增加产量是一种必要的措施。武夷山市是中国知名的茶叶生产基地,茶相关产业的规模大,历史悠久[3]。在近年来,随着智慧农业的兴起,将现代科学技术引入农业生产中,提高产量,是一种势在必行的趋势[3]。在现代科学技术的加持下,通过无线通信技术,实时获取土壤湿度、成分以及光照强度等环境信息,便能对茶园生态环境进行科学管理,对茶树生长提供科学指导。
基于以上分析,本文设计了一种基于STM32的无线传感器远程环境实时监控物联网系统,系统采用LoRa无线传输技术,通过光照强度传感器,土壤湿度传感器等获取数据,之后通过LoRa模块将数据发送到主机端,主机端在接收到数据后解析出传感器数据再将其显示出来。主机通过WiFi模块连接网络,就可以在手机软件上查看到实时数据。
1 总体方案
本设计是基于STM32单片机的茶园环境监测物联网系统,该系统将采集的传感器数据通过LoRa通信模块发送到主机,再通过ESP8266发送到云端实现在手机端实时查看数据控制设备。该系统的电源供电电路通过电池输入后经过压降芯片降至5V和3.3V直流电,再经过滤波电容后给系统的控制器和各个子模块供电;从机控制器先通过采集温湿度传感器,空气成分传感器,土壤成分传感器的数据,再通过LoRa通信模块发送到主机,主机将数据处理并显示,再由WiFi模块将数据发送到云端以供用户手机查看茶园环境信息;单片机的掉电存储系统由AT24C02以及SD卡共同组成,其中AT24C02负责保存系统的配置信息,而SD卡负责保存传感器采集的数据。系统总体由SD卡电路,显示电路,LoRa通信模块,WiFi模块,掉电存储电路,温湿度传感器,光照传感器,空气成分传感器,土壤成分传感器等子模块组成。系统总体设计方案,如图1所示。
图1 系统总体设计
2 系统硬件电路的设计
本系统的设计主要以STM32单片机为主控制器,该系统主要由SD卡电路,显示电路,LoRa通信模块,WiFi模块,掉电存储电路,温湿度传感器,光照传感器,空气成分传感器,土壤成分传感器等子模块组成。
2.1 单片机最小系统
该最小系统主要是由复位电路、SWD电路等构成,并由3.3V压降电路提供直流电源支持单片机的正常运行[5]。本设计中单片机最小系统,如图2所示。
2.2 主要子模块电路
2.2.1 电源电路
在本系统中使用AMS1117作为系统电源的压降芯片,将电源输入的12V直流电降压为3.3V和5V,为STM32和各个模块供电[6]。在开关闭合后,输出的电压经过两个LED灯,当两个LED灯都正常亮起时表示电源电路正常运行,其电路如图3所示。
图3 电源电路
2.2.2 WiFi模块电路
本系统中WiFi模块使用的是ESP8266-12F,此模块负责将数据由本地上传到云端实现手机查看数据[6]。模块通过串口与单片机通信,在运行时其GPIO15要接地,否则不能正常运行;在下载程序时GPIO0要接低电平,其中U9和U10开关分别用于控制RST和GPIO0两引脚的电平,其电路如图4所示。
图4 ESP8266 WiFi模块
2.2.3 SD卡电路
单片机通过SPI通信,4根SPI总线全部接上45K的上拉电阻,该模块必须使用3.3V的电压才能驱动,使用5V有可能烧毁SD卡。在本系统中SD卡的主要功能为存储传感器数据以及保存交互界面的图片素材,使用8GB的SD卡即可。SD卡的驱动电路,如图5所示。
图5 SD卡驱动电路
2.2.4光照传感器电路
本系统使用的光照传感器是BH1750,其采用I2C协议来与单片机通信,使用时要将ADD引脚接地。通过芯片手册可知通讯地址为0x46。该传感器具有稳定性好、误差小、价格低等特点,且分辨率高达1~65535lux,能够监测日常环境中的光照变化[9],其电路如图6所示。
图6 光照传感器电路
3 系统软件的设计
本系统程序是基于C语言环境进行开发编写的,通过编写主程序和子程序从而实现主机对从机的调用,子程序的设计包含显示程序、DHT11温湿度获取程序、SD卡程序等。
3.1 主程序设计
程序开始执行时先在主函数完成各个外设的初始化,例如SD卡初始化,外部中断初始化,定时器初始化,屏幕初始化,传感器初始化。在初始化完成后从机等待主机发来的命令,若从机成功接收到采集数据命令则实行对相应的数据采集;若没有接收到采集数据命令,则进行从机设备的重新启动并初始化,此时采集的数据相当于零。然后将获得的数据通过TFT屏幕显示出来,保存数据到SD卡并发送到云端。控制系统主程序流程,如图7所示。
图7 主程序流程图
3.2 主要的子程序设计
3.2.1 显示程序设计
在本系统中TFT屏幕用于显示来自传感器的数据以及与用户交互。首先在屏幕完成初始化,之后打印一下SD卡的状态,在SD卡无误后正式进入系统界面显示传感器数据,在按下“设置”按钮后进入配置系统页面,其中可以修改系统时间,屏幕休眠时间,各个从机的地址,信道等等,在配置完成后点“保存”即可将配置信息存入AT24C02,或者点击“返回”不保存配置信息,显示流程如图8所示。
图8 TFT显示流程图
3.2.2 DHT11温湿度获取程序设计
主程序首先初始化连接该模块的IO口以实现DHT11的初始化,然后等待数据的采集,在主程序调用该子程序后开始采集数据,采集完成后再将数据发送给单片机,流程如图9所示。
图9 DHT11获取温湿度流程图
3.2.3 SD卡程序设计
本SD卡用于存储传感器数据以及显示界面的图片素材。首先单片机完成SPI通信的初始化,在完成SPI初始化后,SD卡写入一系列命令。在SD卡初始化无误后,与ESP8266通信获取实时时间,此时间用于判断是否新建一个文件保存传感器数据,因为本系统按天保存每天的数据。当日期更新系统创建一个新文件用于保存数据,在每次写入数据前要判断文件是否存在,不存在时则再次新建文件,写入数据结束后关闭文件,程序流程如图10所示。
图10 SD卡程序流程图
4 实验测试及分析
在系统设计完成后就开始测试系统是否符合设计要求,本系统的调试主要内容是LoRa通信以及SD卡数据存储还有硬件调试与分析[5]。
4.1 LoRa串口通信调试
在LoRa串口通信模块的调试中,首先通过单片机发送一系列AT指令给LoRa模块,这些AT指令包括设置通信地址、信道、速率、波特率、工作模式、发射功率等。每条指令发送完成,模块正确接收到数据后就会返回“OK”,否则返回“ERROR”,当所有参数设置完成后模块就开始正常工作。由测试结果可知,此系统符合设计需求。
4.2 硬件调试与结果分析
硬件调试的第一步是先测试各个模块上电后是否能正常工作,其次是对画好的PCB进行电气检测,查看是否有短路、断路等问题,以免电子元件焊接在PCB上通电时烧毁。最后是验证各个模块在PCB上是否能正常工作,例如:LoRa是否能接收和发送数据,单片机能否正常工作,电源电压是否稳定,WiFi模块是否能连接,传感器采集数据是否正常等。在发生故障后及时断电,并检查串口打印的数据以及PCB上是否有过热的部位,在一切正常后检查TFT屏幕的数据是否正常、完整,各个模块是否正常工作。设计与制作的系统实物,如图11所示。可以观察到接收到的传感器数据,由此可以得出结论,该系统符合设计需求。
图11 实物图
4.3 软件界面
手机软件显示的主界面,如图12所示,该界面负责接收并显示传感器数据和设备状态,以及控制各个从机的工作状态。
图12 软件显示图
4.4 光照传感器结果分析
光照传感器的分析结果,如图13所示。光照传感器在一天中不同时间所获取的光照强度数值与测光表所测数据对比,单位Lux。由图13中可以观察到传感器数据与测光仪数据差值不大,由此可以得出结论,该系统符合设计需求。
图13 光照传感器结果分析
5 结论
本系统在经过长期的硬件和软件调试运行后,已经完成了对环境中的温度湿度,光照,空气成分等数据的采集,并且能够通过LoRa无线通信技术进行远距离通信,在主机端能够通过ESP8266上传数据到云端并在手机端通过软件查看实时数据和控制各个从机。该控制系统经过调试已经能够满足设计需求,能够实时查看并控制设备,采集的数据具有参考价值,能够对茶园生态环境的科学化信息化管理提供帮助,对茶叶的生长提供科学的管理和干预。