基于蓝牙通信的智慧农业温湿度监视系统设计
2023-06-26任明辉
任明辉
摘要:温湿度监视是温室大棚管理的重要环节,传统的温湿度采集技术存在铺设维护成本过高、自动化程度较低、操作隐患较大等问题。针对上述情况,文章设计了一种新型农业温湿度监视系统,通过连接数字温湿度传感器采集数据,采用蓝牙无线通信的方式传输温湿度数据并集中控制,同时利用基于Java开发的数据库与可视化界面对数据进行存储和查看,以此实现降低铺设成本、优化操作模式、提升农业自动化水平、保障农业安全生产的效果,以期为农业大棚数字化管理提供技术参考。
关键词:物联网;温湿度传感器;蓝牙;串口通信
中图分类号:TN915.5 文献标志码:A
0 引言
当今时代是一个信息化的时代,随着互联网的普及,生活中越来越多的方面可以利用互联网实现简单操作,比如线上教学、线上办公甚至线上诊疗。而物联网也是基于互联网衍生的一项技术。
我国是人口大国,每天消耗的粮食不计其数,如果粮食出现危机,将会引发社会问题,所以中国人的粮袋子必须紧紧抓在自己手上。虽然在以袁隆平院士为代表的科研人员的努力下,我国已经实现了水稻自由和小麦自由,基本解决了温饱问题。但是,由于自然条件的限制,许多品种还需要从国外进口,如玉米、西兰花等,还要解决核心技术受制于人的卡脖子问题,利用物联网技术,让粮食生产插上科技的翅膀是一个重要途径。粮食生产最重要的是生长环境,因此有了温室大棚技术。但是,种子对环境的敏感度要求温室大棚内的温湿度必须达到一个合适的范围,因此温湿度的检测对于瓜果蔬菜的种植有着十分重要的作用。另外,温湿度数值的采集需要工作人员进出温室棚,但频繁的进出对温室棚的温湿度会有很大的影响,所以非接触式温湿度采集系统非常关键。传统的温湿度監视系统一般采用现场总线的方式,可以统一供电,可靠性高。然而,温湿度传感器节点铺盖面广,成本高,线路故障维修困难。本设计采用蓝牙无线传输的方式,极大地减少了人力、物力和财力,当某一节点出现问题,只需拆下此节点维修即可,并不会影响其他节点。而且,由于是通过蓝牙传输,不需要工作人员进入查看,在很大程度上节省了人力、物力和财力。
本文介绍了一种基于蓝牙模块的无线温湿度检测系统的设计与制作,下位机以STM32单片机为核心,使用蓝牙JYD-10M模块进行数据的传输,温湿度传感器DHT11作为数据采集单元进行相关数据的收集,实时对该环境下的温湿度监视。测量数据通过串口屏模块实时显示,并将收集的信息通过串口传输到上位机,利用数据库进行存储,通过可视化界面对收集的信息进行查看。本系统设计有管理员登录、查看历史信息、根据所种品种查看最适宜温湿度等功能,其难点是蓝牙组网的搭建、上位机与下位机的串口通信。
1 硬件设备需求分析
1.1 微控制器模块
本系统采用STM32微控制器,具体系统功能如图1所示。它具有32位处理器,可分为多种类型,是一种中低端设备。Arm Cortex-M3集成了嵌入式Flash和RAM存储器的内核,可提供更高的代码效率;有112个快速I/O端口;添加了许多可用的外围设备以提高效率。与普通单片机相比,这种微控制器具有更高的效率和可用性,能捕获定时器、I2C通信接口等。计算和处理速度较强大,片内和片外设备较丰富,为功能和扩展提供了良好的平台。
1.2 蓝牙传输模块
蓝牙(bluetooth)的名称来自10世纪丹麦的一位王者,用于指代协调无线LAN标准的蓝牙技术。自发明以来,蓝牙一直是智能手机数据传输的重要手段。早期的蓝牙模块功耗非常高,不宜一直处于工作状态,近年来开发的低功耗蓝牙完美地解决了这一问题。蓝牙的种类繁多,协议也不同,以其高效率成为当今信息时代的主要数据传输方法。
有别于HC05,JDY-10M不仅具备透传功能,还具备蓝牙组网的功能,大大扩展了其实用性。JDY-10M透传模块基于蓝牙4.0协议,工作频段2.4 GHz,调制方式为GFSK,最大发射功率8 db,最大发射距离50 m,具有低功耗、尺寸小、信号强、数据传输稳定等特点;模块支持Android和IOS系统的手机数据透传,支持一对一、一对多、多对多数据传输与控制;支持组网LED灯等功能。
1.3 温湿度模块
本系统的温湿度传感器采用DHT11模块,它是一种具有校准数字信号输出的温湿度复合传感器。采用特殊的数字模块采集技术和温湿度传感技术,保证了产品的高可靠性和优良的长期稳定性。数字式温湿度传感器DHT11湿度测量范围为5%~95% RH,其误差值在±5% RH以内;温度测量范围为-20.0~+60.0 ℃,其误差值在0.2 ℃以内。其较低的功耗完全能由电池承担,不需要额外的电路接入。
DHT11的校准系数以在信号被检测的处理期间,由传感器内部调用的程序的形式储存在OTP内存中。单总线串行接口使得系统集成更容易、更快,四针单排引脚功能如表1所示,其技术资料很容易在网上获得,这里不再赘述。
1.4 声光报警模块
在超出预设值的警告方面,采用了声光报警的模式,利用单片机的中断系统,通过随时设定从机的温湿度报警值,来达到目的。
具体来说,根据单片机接收的温度和湿度传感器发送的数据,对其进行处理,并与参数设置的上限和下限进行比较,如果高于上限值,则报警并正常显示数据。
在报警电路中,声光报警系统由红色LED和蜂鸣器构成,当输入温度和湿度的上限和下限时,系统将进行实时采样,并判断温度和湿度与输入的温度和湿度之间的差异。当检测到的实时温度和湿度高于设定值时,将发出警报,即红色LED亮起,蜂鸣器鸣响。
2 管理平台需求分析
2.1 管理平台总体设计
智慧农业温湿度监测系统分为5大模块,包括2个基础模块和3个功能模块,具体如下。
串口通信模块:基础模块。包含串口通信功能的实现和异常处理的重构。
数据库模块:基础模块。包含数据库的初始化操作和基本的功能操作。
用户管理模块:功能模块。通过设置管理员,对系统进行保护;通过调用数据库模块,对储存在数据库的管理员进行增删改的操作。
数据处理模块:功能模块。由于数据是以bit进行传输的,需要对数据进行一定程度的处理才能使用。本模块可对数据进行处理保存,并可进行显示、查找、更新等操作。
界面:功能模块。为可视化的界面,方便用户操作系统。
2.2 上位机与下位机之间的串口通信
串行通信指按位发送和接收字节,其最重要的参数是比特率、数据比特、停止比特和奇偶校验。对于两个通信端口,这些参数必须匹配。
波特率是以每秒比特数的形式从发送器向接收器传输数据的速度,数值越高,就可以在越短的时间内传输更多的数据。波特率的标准一般是1 200,2 400,4 800,9 600等。但是由于接收端的采样频率不匹配,一般波特率的阈值为11 520,本设计的波特率设置为9 600。
本设计利用RXTX实现了上位机与下位机的串口通信,由于传输数据和接收数据是按bit进行,为了方便操作,设计了两个相应的功能函数,进行十六进制转bit操作与bit转十六进制操作,方便读写。
2.3 数据库与数据表的设计
本设计基于MySQL数据库,是一个关系型数据库管理系统。作为目前最广泛使用的数据库,MySQL的应用为温湿度监测得到的数据提供了良好的数据存储场所;作为关系型数据库管理系统,能将数据存储在不同的数据表。不仅操作简单方便、功能可靠,还提高了数据库的运行速度和灵活性。
2.4 其余功能函数
在具体功能实现的过程中,会用到一些相同或相似的操作,方便起见,本设计额外编写了辅助函数,如获取当前时间函数、数据转换函数等。其中,由于获取的数据为十六进制字符串,而且只取其中几位,故而编写了数据转换函数,将字符串数据中需要的数据取出,转换成十进制字符串,再根据存储规则存入数据库。
3 下位机功能实现
3.1 蓝牙协议设计
本设计共有9个蓝牙设备,其中有串口屏的为主机,其余8个为从机,按序号分成1—8号从机。轮询机制为主机首先访问一号从机,若一号从机有数据,则一号从机向主机发送数据,若一号从机没有数据,则向主机发送控制帧,表示没有数据可以发送;访问完一号从机后,主机访问二号从机,若二号从机有数据,则二号从机向主机发送数据,若二号从机没有数据,则向主机发送控制帧,表示没有数据可以发送。如此,6个从机依次进行,访问完8个从机后,主机会再次返回到一号从机,循环进行。
蓝牙构建网络为星形拓扑网络,在蓝牙网络中,主机控制网络内各个设备之间的通信。蓝牙协议规定,在网络内部,只有主机可以访问从机,而从机不能访问主机,从机之间也不能相互访问。基于此,蓝牙开发公司设计了一种网络内部的调度机制,主机在一次循环中只可以访问从机一次。
3.2 温湿度传感器程序设计
DHT11采用单总线,即只有一根数据线。自用户发送第一次信号开始,它从低速转换到高速模式。主机的开始信号结束后,DHT11开始发送相应信号,并触发一次信息采集。
在接收数据时,等待数据线拉高,延长一段时间后,再次检测数据线是否为高。温湿度的读取流程如图2所示。
当主机检测到DHT11应答信号并确认无误后,将接收和识别来自DHT11的温湿度数据信号。其中,高电平短表示数字0,高电平长表示数字1。
用户发送一次开始信号(低电平)DHT11从低速模式转换到高速模式,等待主机开始信号(拉高)后,DHT11发送相应信号,送出40 bit的数据,并触发一次信号采集,用户可选择读取部分数据。
等待数据接收完畢后,从机会对数据进行校验处理,对于从机,设定一个初始的警报值,当温湿度超过这个界限时,LED发光报警。之后,将数据存入寄存器,等待数据发送,待数据发送完毕后清空发送标志位,延时后等待下次发送。如表2所示,为所发送的数据中有效部分的组成格式。
3.3 延时模块
由于单片机一般是以晶振频率MHz为机器周期计算,如果晶振是12 MHz,那么它的机器周期就是12/(12×10^6)=1 μs,这代表这个计数器每计数一次需要1 μs。
通常情况下,在12 MHz晶振下,16位定时器满计数是65 536次,每次1 μs,最大能计时65.536 ms,那么65 536减去多少就是定时多少,如(65 536-X)/256,就是定时X μs。那么T=1/(X/12)就是一个机器周期,(65 536-Z(初值))×T就是定时的时间,
如是12 MHz的晶振,那么TH0=(65 536-50 000)/256,TL0=(65 536-50 000)/256,就是设置了50 ms的定时。
3.4 串口屏程序设计
本系统所用串口屏为USART HMI智能串口集成TFT液晶模块,其最大的特点是所有的控件都以地址区分,类似于C51的地址指针,且这个地址对应的存储空间是独占的,所有空间都是用地址表示,可以将其理解为双口RAM。定义好一个地方,再将这个地方放上数据或参数,那么HMI屏幕就会按照定义的对外提取数据并显示在界面上。不同的数据对应不同的界面,屏幕在显示数据时会提取控件里分配的地址,因此数据可以随时更新。编写程序在屏幕里执行后,系统会进行数据处理、数据比较、页面切换等。
4 上位机功能实现及测试
4.1 Web服务器
智慧农业温湿度监测平台与服务器之间采用WebSocket协议。首先,客户端向Web服务器发送HTTP请求;然后,服务器会对这个请求解析并做出响应和执行;最后,生成HTTP格式数据包返回客户端。
4.2 React簡介
前端利用React技术。React是一个用于构建用户界面的JavaScript库,主要用于构建UI,许多人将其视为MVC体系结构的视图部分。使用React开发可以轻松地创建用户交互界面,设计简洁的状态视图,在数据改变时,可以高效地更新渲染界面。因其使用了虚拟DOM的概念,性能更好、速度更快。
4.3 服务器设计
本系统采用“前端+后端”的形式,前端接收到数据或请求发送给后端,调用后端相应接口进行数据处理,并将结果返回给前端。主要利用GetMapping与PostMapping两种注解,GetMapping主要用于处理get请求,Post Mapping主要用于处理post请求。在前端会将打包回来的数据进行解析,提取有用的部分进行操作。
4.4 功能测试
4.4.1 采集数据测试
先要安装设备,包括蓝牙模块与电源,安装好后,打开主机与8个从机,等待连接。因为超过预定的温湿度限制会亮灯并发出警报,会扰乱宿舍环境,故将温度与湿度调高,使其在正常工作的前提下不会触发警报。
选取一天的上午9点到下午1点,每隔半小时手动记录温湿度的数据。由于数据重复,选择每4个从机取一个平均值,记录如表3所示。
当温度或湿度超过设定数值时,触发声光报警,功能测试正常。
4.4.2 历史记录功能测试
经过断断续续的选取,在系统的历史记录功能中进行展示,如表3所示,可正常保存温湿度数据。在保存中,按照相应的逻辑,只有当数据发生变化时进行保存,效率更高,对于使用者也非常友好。
4.4.3 信息服务功能测试
在信息服务中展示预存储的一些常见作物,这些作物相对于大棚种植所耗费的资源来说,种植所得的经济收益更高,也符合新型职业农民的种植需求。
4.4.4 串口通信功能测试
在串口界面,管理员可以根据接入的串口进行选择连接,在连接过程中会有相应的提示,如连接失败,一般为串口已被占用、不是串口设备、监听串口过多等;如果成功,会提示连接成功。
5 结语
本设计基于高性能的STM32嵌入式处理器,通过连接数字温湿度传感器,采用蓝牙无线通信的方式,传输收集到的温湿度数据并集中控制。将8个分散出去的从机采集到的数据通过蓝牙无线传输模块发送给主机,在主机上通过串口屏将数据依次显示,并制作了可视化界面便于管理者随时查看历史信息。
参考文献
[1]王睿.无线通信网络技术与应用——蓝牙技术[J].信息记录材料,2020(6):215-216.
[2]徐鑫秀,赵士原.基于DHT11传感器的机房温湿度控制系统设计[J].现代信息科技,2020(14):57-59.
[3]卜永波,罗小玲,陈一.基于DHT11传感器的温湿度采集系统[J].计算机与现代化,2013(11):133-135.
[4]聂壹琦,金力.基于RFID射频识别技术的物品寻找APP设计与实现[J].现代信息科技,2020(1):76-78.
[5]龙祖连,宁爱民,幸敏.基于Arduino与App Inventor设计的植物管家系统[J].电脑知识与技术,2018(22):63-64.
[6]蔡逢煌,王武.C语言单片机系统软件架构的教学研究[J].电气电子教学学报,2020(4):77-82.
[7]李双双. 图表工具平台的设计与实现[D].吉林:吉林大学,2021.
(编辑 沈 强)
Design of intelligent agricultural temperature and humidity monitoring system based on bluetooth communication
Ren Minghui
(Heze Special Communication Bureau, Heze 274000, China)
Abstract: Temperature and humidity monitoring is an important part of greenhouse management. The traditional temperature and humidity collection technology has problems such as high laying and maintenance costs, low automation, and large operational risks. In response to the above situation, the article designs a new type of agricultural temperature and humidity monitoring system, which collects data by connecting digital temperature and humidity sensors, transmits temperature and humidity data through bluetooth wireless communication and centralized control. At the same time, a database and visualization interface based on Java are used to store and view the data, in order to reduce laying costs, optimize operation modes, and improve agricultural automation level To ensure the effectiveness of agricultural safety production and provide technical reference for digital management of agricultural greenhouses.
Key words: Internet of Things; temperature and humidity sensor; bluetooth; serial communication