我国水果栽培面积很大, 但设施装备的水平低下, 90%以上的设施仍以简易型为主. 土地利用率低, 保温、采光性能差, 作业空间小, 不便于机械操作, 更谈不上对设施内的温、光、水、肥等环境因子的综合调控[1]. 为了提高水果种植栽培的信息化水平, 实现现代水果栽培系统采集基本信息采集, 课题采用无线通信模块完成水果栽培信息采集系统开发, 实现自动采集信息、上传数据、上位机接收数据处理并存储等功能.
HC-12串口无线通信模块是新一代的多通道嵌入式无线通信模块. 无线工作频段为433.4–473.0 MHz, 可设置多个频道, 步进为400 KHz, 总共100个. 模块最大发射功率为100 mW, 5000 bps空中波特率下接收灵敏度为–116 dBm, 在旷野平地或海边测试有1000 m的通信距离, 在有少量车及树和灯柱的马路上测试距离有500 m, 在各种高楼间一楼地面直线测试距离是250 m, 在室内则可以覆盖一栋楼, 有少量死角, 不能穿钢筋地板. 因此适用于种植业信息采集.
2 系统硬件结构设计系统硬件框图如图1所示. 电路设计采用了四路传感器来分别测量4个参数, 环境变化被传感器感知后阻值发生变化, 从而引起电阻两端电压变化, 通过与芯片自带的标准电压进行比较后, 从ADC端口获取到一个数值, 通过逐次逼近的方法将输入的模拟电压转化为数字量, 在下位机芯片中写入一个与传感器阻值所对应的表格, 在读取ADC值之后通过查询表格得出此时外界环境的温度、湿度、照度、土壤湿度等参数打包通过无线方式发送给上位机. 其中, 以ATmega48芯片为核心的主控电路模块设计如图2所示[2,3].
2.1 传感器模块电路设计
在传感器电路中, 每一个传感器都有阻值并有对应电阻与之并联分压, 通过ADC读取获得传感器采集的数值[4]. 空气湿度传感器需要一个标准变化的1 k方波, 实现对外界湿度的采集. 采用R25=10 KΩ/1%, B25/85=3435 K/1%的NTC热敏电阻, 型号为MST103C1-87MM, 图3[5]中RT1为温度传感器, 与10K电阻并联, C1滤波电容来去除噪声, TMP-ADC连接到ATMEG48芯片PC2号针脚. 图3中HR202为湿度传感器, 湿度传感器两端接RH-IO1和RH-IO2, 通过I/O高低电平的变化提供一个电压变化的方波, 实现湿度传感器一次检测, 与HR202并连一个1M的大电阻, C2滤波电容去掉噪声, RH-ADC连接芯片获取传感器信息. 其中温度传感器和湿度传感器的阻值变化是非线性的变化, 在下位机中写入对照表来查询所测的ADC变化的值相对应的参数. 土壤湿度传感器和光照强度传感器的阻值是随着环境的变化发生线性的变化, 通过查询技术手册参数得出该传感器的数值变化计算公式, 在获取ADC值后带入公式计算获得测量的数据. 光照传感器采用SGPT324P, 图4[6]中土壤湿度传感器采用FC-28传感器模块, 通过电位器调节湿度控制阈值, 湿度低于设定值时, DO输出高电平, 高于设定值时, DO输出低电平; 模拟量输出AO可以和AD模块相连, 通过AD转换, 可以获得土壤湿度更精确的数值, 由此来检测土壤湿度.
2.2 无线通信模块设计
HC-12[7]无线串口通信模块是新一代的多通道嵌入式无线数据传输模块, 通信模块工作频段为433.4–473.0 MHz, 最大发射功率为100 mW, 20 dBm. 在5000 bps空中波特率下接收灵敏度–116 dBm, 开阔地 1000 m的通信距离. 图5是HC-12模块工作电路图, 主芯片是STM8S103和RFIC芯片, STM8S103芯片是程序存储器, 在无数据发送时处于等待状态, 活跃后经过一段时间停机, 低功耗模式, 使用外设的时钟还可以单独关闭. HC-12模块使用无线通信代替传统通信时的连线, MCU、PC设备向模块发送数据, 模块接收信息并通过天线将信息发送到空中, 右侧的模块接收到左侧模块的信息, 通过TXD接口将左侧设备的数据还原到右侧PC端. 一个模块只能工作于接收或发送模式, 不能同时收发数据.
HC-12模块有4种通信模式, 分别用FU1、FU2、FU3和FU4表示. 各个模块之间只需要调节好通信模式和保持模块间的波特率相同, 收发另一个模块的信息即可. 我们将多传感器信息监测系统在FU3模式下工作, FU3模式优点是可根据串口波特率自动调节空中波特率, 保证在低波特率下通信距离最远. 每一个下位机模块分别使用一个通信模块与同ID的高能节点实现对接, 高能节点通过数据包将数据发送到上位机. 使用透传模式, 空中波特率、无线通信频道保持一致. 此模块不限制一次连续往串口发送的字节数. 但因为外部环境复杂, 且空中有很多干扰因素的存在, 在接收到传感器发送来的数据时往往会出现丢失数据、收到的字节是错乱的、收不到数据等等各种意外情况. 所以在上位机和下位机之间建立了一套简单的通信协议, 上位机与下位机采用校验通信, 下位机收到特定的数据, 校验之后向上位机发送采集到的数据. 这样避免了信息丢失且延长了系统的寿命.
2.3 电源模块设计
电源供电电路采用干电池供电或USB供电, ATmega48芯片在低压时会掉电停止工作, 而1.5 V的锂电池不能对芯片采取直接供电, 必须经过升压电路之后得到稳定的5V电压对芯片和传感器监测部分进行供电, 或者是采用模块上的USB供电器模块直接利用可充电设备对模块进行充电[8].
提供USB充电电源模式, 正向电流通过USB的VIN引脚进入AP5056芯片, AP5056是单片机锂离子电池恒压线性管理芯片, 是适用于USB供电的完整性充电器. AP5056基于内部MOSFET结构的芯片, 预设充电电压固定4.2 V, AP5056是充电提供稳压电源的芯片, 与芯片连接的C4和C7是滤波电容, 芯片5引脚BAT输出电压, 经过LED之后显示4.2 V电压状态输出BAT+级. 7号干电池提供电源时, 直接从BAT+和BAT–进行供电, 经过DW01芯片, DW01+是锂电池专用保护芯片, 单体锂电池充电时接在B+和B-之间, 在充电过程中, 锂电池两端电压超过4.35 V时锂电池立即停止充电, DW01的OC脚输出信号使充电控制MOS管M2关断. 电池包从P+和P–输出稳定电压. 电池或USB接口提供电源, 首先对经过PNP三极管和19N10L后输出到QX-2303芯片中, PNP和19N10L是电源电路的保护开关, 起过流保护的作用. QX2303是高效率低纹波的PFM升压DC-DC变化器, QX2303与L1、C5、C6、C8就可以完成将低输入的干电池电压转换为所需要的5 V标准电压.
3 软件设计 3.1 监测程序设计首先读取ADC口的数值, 根据查表或者计算得出传感器当时所测量到的环境数据, 针对于不同种类的传感器, 所使用的表格和计算公式是完全不同. 以温度传感器为例, 是用二分法逐渐逼近表格中我们所测量到的温度的值, 可以精确到小数点后两位有效数字, 而照度的计算则是利用照度传感器的说明书通过计算得出公式, 然后和照度仪所测量的结果进行比较, 修正计算公式, 得出比较准确的数值. 得出公式之后将采集到的信息编写代码计算后发送到上位机, 在上位机中经过数据还原就可以使用下位机采集四个参数, 监测是实时进行的, 只有在接收到上位机发送的代码经过校验自身ID后才开始向上位机发送数据.
3.2 通信程序设计下位机代码由ICCV7 for AVR程序编写, 主要分为通信和传感器监测两个部分. 由于单片机和电脑的处理速度差别巨大, 需要对收到的数据进行整合判断. 下位机和上位机对于通信协议部分代码的校验、逻辑判断处理思路上很类似, 区别在于下位机C语言不是面对对象开发, 上位机C#是面向对象的语言, 可以运用相同的逻辑判断来处理通信协议[8].
数据采集及通信流程图如图7所示. 为了保证上位机和下位机稳定运行, 也为了保证在复杂环境下实现远距离的通信, 系统采用通信协议和数据包的格式, 采用校验码的通信协议, 下位机一次性发送一个数据包, 增加了数据传输的可靠性和稳定性. 每一个下位机在烧录程序是给予一个独有的ID号码用于区别于其他下位机, ID内有若干传感器节点, 通过通信协议来实现对不同ID号的下位机控制. 经过实验可知, 使用通信协议后, 无线通信的容错率、可靠性、通信距离大大提高, 系统工作持续进行. 下位机一次性发送9个byte给上位机,
起始位为0xAA, 第2位到第8位是我们需要的数据位, 第9位为0xBB其中照度占用2位, 土壤湿度占用1位, 温度占用2位, 空气湿度占用1位, 所有的数据均小于0x80, 便于校验. 接收到数据之后, 需要对下位机发送的16进制数据整理和计算得到所需要的数值.
3.3 上位机软件程序设计上位机软件采用Microsoft Visual Studio 2010程序编写. 上位机通信采用和下位机无线模式的串行通信. 调用串口接收函数DataReceived对传输的数据进行整理, 建立新的数组接收数据, 在通信部分与下位机类似, 因为上位机和下位机运行速度的不同, 每次收到不同的数据时需要进行校验分析, 提取相应的数据通过文字显示到相应的位置, 通过C#中的控件来实现画图模式, 实现对数据的直观体现. 采集机号采用下拉菜单的选择模式, 当选择某一ID号码时, 上位机同该ID号对应的下位机群组开始建立通信, 下位机工作并发送数据去上位机实现对农业信息的监测功能. 上位机数据处理流程图如图8所示.
上位机软件部分: I/O口操作、定时设定、波形显示、通信模块、数据保存以及结果显示六大部分. 上位机调用系统的I/O口函数, 在程序初始运行时访问计算机I/O并获取计算机I/O显示到combox1的下拉菜单中. 选择不同的I/O口和不同的波特率对应下位机. numericUpDown1中设置定时时间, 定时向下位机发送Send_data函数, Send_data中包括与下位机的通信协议, 下位机根据上位机发送的通信协议通过自己独有的ID号来判断是否为自己开始发送监测到的数据, 如果判断为否, 那么下位机处于休眠状态, 上位机两秒接收一次来自下位机发送的数据, 定时器的内容为依据定时时间将接收到的数据添加到richtextbox1中, 同时两秒发送一次Send_data, 而保存操作是将richtextbox1中的数据同监测当时的温度添加到指定位置的TXT文本中.
绘制图线操作为采集到的四个传感器图线, 分别为照度(lux); 环境温度(℃); 土壤湿度(%); 空气湿度(%)四个函数, 其中环境温度根据实际测量一般在25 ℃左右, 照度根据白天和夜晚的不同会有较大的差别, 环境湿度线是随着环境温度来变化的一条曲线, 日常温度是25 ℃时, 一般环境湿度的曲线呈线性曲线. 在环境温度发生变化是环境湿度曲线会变化, 所以采集环境湿度一般是先获取温度传感器的参数, 然后获取温度传感器的温度, 根据不同的温度利用不同的衰减曲线进行计算最后得出环境湿度值. 在上位机中, 点击按键选取不同的传感器曲线, 利用点画线的方式在panel1中绘制曲线, 曲线纵坐标为曲线值的大小分布, 曲线横坐标是系统时间, 因为随着时间推进曲线会占满屏幕, 当曲线画图充满屏幕后把曲线的初始坐标清零, 即清空屏幕大小的曲线横坐标长度, 在新的画布上根据获取到的参数不同来画线直观的体现此时环境的变化. 温度绘制曲线如图9所示. 实际温度以触摸温度传感器导致变化显示.
4 实际数据采集及通信实验
传感器节点安装在种植环境中, 节点同节点、上位机之间的通信受到外界干扰较大, 例如农作物高度, 投放节点的高度会影响通信距离. 为了保证节点之间通信可以进行可靠的通信和覆盖大部分的种植环境, 为投放传感器节点, 实现节点的优化投放需要做传感器节点有效通信距离的实验获取节点有效传输距离[9].
实验是在空旷的地表进行, 周围无高大建筑、无电磁信号干扰. 实验时有微风, 气温为28 ℃左右, 天气晴朗, 将传感器节点放置在约0.3 m的高度来测量该位置的各项参数, 种植土壤环境使用采集到的土壤来模拟种植环境. 节点标准工作电压为5.0 V, 使用HC-12作为通信模块, 焊接信号天线来增强通信的距离. 有效通信实验为上位机在离节点1 m处采集到的信号为初始的测量值, 调整HC-12的通信模式使其在FU3下进行, 一人持上位机步行离开节点, 以20 m为一个基点. 每隔10 s停止等待节点发送10次数据, 观察数据的完整性以及是否出现了错误数据等, 直至上位机无法接受到传感器节点发送的数据停止行程, 获得单个节点在通信距离的衰减表格如表1所示.
通过实验得知, 使用HC-12在空旷地点通信时, 通信距离可达300米左右, 这在传统的农业信息无线传感器节点监测是一个巨大的突破. 其次, 尝试使用新的算法, 给一个独特的ID群组簇, 5个传感器节点全部设置为ID=1; 上位机遍历发送数据给下位机命令ID=1的节点开始工作时, 将ID=1的群组将某一个节点设置为该ID群组的高能节点, 用来发送数据节点, 其余4个节点发送数据给高能节点, 由高能节点四次求平均值得出该区域内的参数发送给上位机, 这样大大减少传感器节点给上位机发送的数据量, 延长了普通节点的寿命, 并且普通节点离高能节点的距离是比较近的, 可以保证每一次发送的数据接收效果好. 高能节点只需要接收ID群组内的信息保存并求平均值然后发送给上位机, 高能节点不需要传感器, 需要大量的存储空间方便查询数据, 大大减少了能源消耗, 高能节点是传感器节点群组中和上位机进行联系的桥梁, 所以高能节点的HC-12模块使用可充电的电源模块, HC-12模块的信号线也被加强, 普通节点在地表位置就可以接触测量种植信息, 高能节点需要在0.5 m或者1.0 m的高度, 这样可以使通信距离大大增加.
5 结论根据已有的研究发现, 传感器节点的布置位置, 节点布置方式, 节点数量多少都影响我们对于农业信息监测的准确性, 保证足够少的节点数量监测到足够多的距离是农业信息监测永远的课题. 在保证节点监测覆盖率的情况下, 正六边形放置的节点要比正四边形放置的节点放置的数量少, 从文献[10]分析可得在相同传输距离下, 我们在长时间放置传感器节点监测时, 采用正六边形方式放置的传感器节点耗能比正四边形节点的耗能少, 节点电压也高于正四边形, 这为我们传感器节点部署指明了道路.
[1] |
孙玉文, 沈明霞, 陆明洲, 等. 无线传感器网络在农业中的应用研究现状与展望. 浙江农业学报, 2011, 23(3): 639-644. |
[2] |
夏朝俊, 顾春新, 李彬. 精准农业无线传感器网络的研究与实现. 机电工程, 2015, 32(3): 439-442. |
[3] |
戴振华. 基于Zigbee协议的农业温湿度数据采集系统开发. 湖南科技学院学报, 2017, 38(6): 23-25. |
[4] |
陈诚, 李必军, 张永博. 基于无线传感器网络的农业信息采集系统设计. 安徽农业科学, 2016, 44(10): 242-245. DOI:10.3969/j.issn.0517-6611.2016.10.082 |
[5] |
李晓东, 吴永烽, 李光林, 等. 基于太阳能的无线土壤水分传感器的研制. 农业工程学报, 2010, 26(11): 13-18. DOI:10.3969/j.issn.1002-6819.2010.11.003 |
[6] |
Bauer J, Siegmann B, Jarmer T, et al. On the potential of Wireless Sensor Networks for the in-field assessment of bio-physical crop parameters. Proceedings of the 39th Annual IEEE Conference on Local Computer Networks Workshops. Edmonton, AB, Canada. 2014. 523–530.
|
[7] |
HC-12无线串口通信模块用户手册. www.wavesen.com. [2014-09-18].
|
[8] |
丁筱玲, 杨翠翠, 吴玉红, 等. 基于无线网络的环境监测与智控灌溉系统设计研究. 节水灌溉, 2015(7): 86-89, 94. |
[9] |
岳学军, 王叶夫, 洪添胜, 等. 基于信道测试的橘园WSN网络部署试验. 农业机械学报, 2013, 44(5): 213-218. DOI:10.6041/j.issn.1000-1298.2013.05.037 |
[10] |
张永棠, 周富肯, 吴圣才. 精确农业无线传感器网络节点部署研究. 江苏农业科学, 2017, 45(3): 200-205. |