Catalog
  1. 1. 摘 要
  2. 2. Abstract
  3. 3. 引 言
  4. 4. 方案的选择与设计
    1. 4.1. 系统总体设计方案
    2. 4.2. 多个传感器节点采集方案
    3. 4.3. 网络方案
    4. 4.4. 视频采集方案
  5. 5. 硬件设计与实现
    1. 5.1. 节点设计
    2. 5.2. 传感器节点设计
    3. 5.3. 光照传感器节点
    4. 5.4. 温湿度传感器节点
    5. 5.5. CO2传感器节点
    6. 5.6. 土壤湿度传感器节点
    7. 5.7. 控制器节点设计
    8. 5.8. 灌溉节点
    9. 5.9. 照明节点
    10. 5.10. 通风节点
    11. 5.11. 协调器网关设计
    12. 5.12. 协调器设计
    13. 5.13. WIFI网关设计
    14. 5.14. 图像传输设计
    15. 5.15. 电源模块设计
    16. 5.16. 智慧农场沙盘设计
    17. 5.17. 沙盘外壳制作
    18. 5.18. 元器件支架的制作
  6. 6. 软件设计与实现
    1. 6.1. 下位机系统软件设计
    2. 6.2. 传感器节点软件设计
    3. 6.3. 控制器节点部分软件设计
    4. 6.4. 网关协调器软件设计
    5. 6.5. 上位机软件设计
    6. 6.6. 物联网服务器的选择与设计
    7. 6.7. PC上位机的软件开发
    8. 6.8. Android 软件开发
  7. 7. 调试及调试结果
  8. 8. 结 论
  9. 9. 致 谢
  10. 10. 参考文献
毕业设计

我的毕业设计
2018年6月,电子信息科学技术专业,感谢曾经教育过我的姜余祥老师,杨萍老师,田景文老师,张争珍老师,邹莹老师。

摘 要

本毕业设计基于传感器技术、Zigbee技术、计算机网络技术设计并实现了现代智慧农场系统。系统由下位机信息采集和上位机信息处理两大部分构成。
下位机由传感器模块,数据处理模块,数据传输模块等构成。上位机由服务器, 安卓客户端以及 H5 界面组成。共同实现农场环境数据的采集、存储,显示、控制和视频监测等功能。基本过程为传感器采集信息,STM32 单片机处理底层数据,通过Zigbee节点发送到协调器网关;网关通过WIFI模块与云端服务器建立MQTT网络链接,将多个传感器数据发送到物联网云平台进行存储,在安卓端和PC端实时访问农场传感器数据和对农场现场进行控制。
通过该系统,可以实时监测和控制农场环境变化,从而有效的控制植物生长,达到科学管理的效果。

关键词:传感器 无线网络 远程控制 智慧农场


Abstract

This graduation project is based on sensor technology, Zigbee technology and computer network technology to design and implement the modern intelligent farm system. The system consists of two parts: information acquisition of lower computer and information processing of host computer.
The slave computer is composed of sensor module, data processing module, data transmission module and so on. The upper computer is composed of server, Android client and H5 interface. The functions of farm environment data acquisition, storage, display, control and video monitoring are realized together. The basic process collects information for the sensor, STM32 SCM processes the underlying data and sends it to the coordinator gateway through the Zigbee node. The gateway establishes a MQTT network link through the WIFI module and the cloud server. It sends multiple sensor data to the cloud platform of the Internet of things to store and access the farm in real time in Android and H5 clients. Sensor data and control of farm site.
The system can monitor and control the change of farm environment in real time, thus effectively controlling plant growth and achieving scientific management effect.

Key words: Sensor wireless network remote control intelligent farm


引 言

随着我国的工业化进程不断加快,农业作为我国的第一产业支撑着 8 亿人口的生活,农业与国民经济的协调发展成为当代人面临的重大课题。十九大提出了要大力发展农业。目前我国农业发展技术水平不够高,还用着传统的农业耕种方式,所以农业信息化的发展模式从技术层面和服务层面都不够清晰和明确。
智慧农业是集物联网,互联网计算机技术等发展农业生产的新的理念,可以解决我国现阶段农业发展面临的经济发展和农村资源有限矛盾、食品安全问题、农业生产效率落后于发达国家的问题,从而助推农业加速腾飞。
此次设计的现代智慧农场的实现是结合国内外物联网解决情况而提出的。智慧农场的智能监控系统具有传感数据多样性,远程监控智能性,管理科学性等特点。实现农场管理智能化,让用户不用去田间,随时随地通过手机 APP 就可以实现农场生产的实时监控,对于农场大棚农作物生长做到充分放心。


方案的选择与设计

本系统根据农业生产的实际情况设计了系统的总方案;也对物联网架构的各个部分方案的进行了对比并确定最终采用的方案,同时设计了方案的具体流程图,对方案进行了说明。


系统总体设计方案

图 1.1 系统方案总图

本系统采用物联网的三层架构:感知层负责采集底层传感器数据,是“眼睛”和“耳朵”;传输层负责传感器和服务器之间的信息传递,是“神经网络”;应用层负责数据的分析以及最终的数据展示和操作,是“大脑”和“双手”。在各层之间,有上传数据、和下行控制等,所传递的信息多种多样,传输的方式也多种多样。
感知层用四个节点,分别为光照,温湿度,土壤湿度,CO2 浓度传感器,经过Zigbee 节点短距离通信到 Zigbee 接收协调器端,接收协调器通过串口将数据给到STM32 网关,将数据整理打包后通过 Wifi 和以太网传输到云服务器,最终在客户端显示各个类型的传感器数据。
同理,应用层客户端发送控制指令,通过以太网和 wifi 网络,发送到 STM32 网关,STM32 网关解析数据包,通过 Zigbee 发送协调器发送到各个控制器节点,控制大棚环境参数。


多个传感器节点采集方案

考虑到此系统主要采集大棚温湿度,土壤湿度,光照和可燃气体等数据;要通过控制灌溉,灯光,和排气来达到我们所想要的控制功能,底层传感器数量多。所以考虑采用多个终端传感器数据通过无线网络方式传输到一个协调器上进行数据的集中处理。

  • 方案一:采用蓝牙方式作为底层传输数据的方案,各个传感器节点用蓝牙节点和蓝牙协调器进行数据交互。具体芯片选择 NRF51822,该芯片满足一对多要求,温度范围-40°~80°,可以应用于多个底层传感器传输到协调器的短距离网络通信。

优点:
1.温度适应范围广;
2.全功能数字接口;
缺点:1.功耗大;
2.满足不了数量庞大的节点与协调器通信,组网规模小;
3.通信距离较短;
4.价格高。

  • 方案二:采 Zigbee 采集传感器并且传输数据的方案。具体芯片选择 CC2530,该芯片工作频段为 2.4GHz ,空旷环境传输范围可达 100m,可以应用于多个底层传感器传输到协调器的短距离网络通信。

优点:
1.功率较小;
2.组网规模大,一个协调器可与上百 Zigbee 节点通信;
3.成本低;
4.安全性好。
缺点:传输速率较低。

综合考虑到实际农业大棚生产中,低层本,功耗较小,组网规模大的特点,采用方案二,用 Zigbee 技术作为底层传感器的采集和传输方案,使用 Zigbee 对多个传感器采集数据同时也通过协调器对相应节点进行控制达到科学管理的效果。底层数据多个传感器节点向协调器发送数据,协调器也可以向控制器节点发送控制指令。


网络方案

图 1.2 节点方案

考虑最终数据需要上传到云服务器,底层下位机使用 MQTT 协议与服务器进行交互。

  • 方案一:底层数据向服务器传输数据使用 GPRS;

    优点:采用传输范围广,覆盖面大,可移动性高;
    缺点:2G 网络传输速率较低,不能及时传输比较大的数据量,受外界干扰情况明显信号不稳定。

  • 方案二:采用 WIFI 在局域网内组网,方便控制,通过 wifi 进行整个系统大的连接。此方案的特点是数据从底层硬件到上层服务器的数据通信速率大、信号稳定、网络延迟小。但是 WiFi 传输距离小,并且覆盖面积有限。

由于本系统要传输图片或者视频流,WIFI 信号强,并且实际生产中,农业大棚是固定的场所,不必经常移动,没有必要用 GPRS,所以采用 WIFI 方案。特点是可以在网络条件差的环境中也可以保持图像数据和大量传感器数据的正常传输,保证系统的正常运作,而且 GPRS 信号不是特别稳定,传输图片消费流量比较大,成本较高, 采用 WIFI 模式可以保证系统的稳定运行。
为了保证系统的兼容性,所以 PC 端编写 H5 上位机,安卓端编写 APP,保证客户可以随时观测农场情况。
Zigbee 协调器接收到 Zigbee 节点发过来的信息之后;进行数据格式的处理,然后上传路由器,路由器再通过以太网与云服务器交换信息,将数据存储在云服务器中。安卓端和 H5 客户端编写网络程序对云服务器数据操作,就可以实现网络远程操作的功能了。

图 1.3 网络方案设计


视频采集方案

  • 方案一:采用 STM32F103ZET6 加 OV7060 摄像头采集模块采集图像。

在调试过程中发现 OV7060 采集图像较为模糊,大小只有 100K,虽然可以上传服务器观看,但是用户体验度较差。在农业观测中一般要观测植物的具体生长情况, 以方便做出科学决策,所以要求视频和图像要比较清晰。OV7060 采集图像占用单片机内存较大,所以要用到 SD 卡,传输图片到网络相关编程较为复杂。

  • 方案二:树莓派Camera 采集图像,再通过树莓派自带 WIFI 模块上传。

树莓派可以运行 LINUX 的 Debian 系统;并且自带 Python 软件,用 Python 调用树莓派的 Camera 采集图像,然后上传到云服务器。
在试验方案的论证过程中,验证得到树莓派摄像头采集图像可通过编程改变像素大小;最大可达到 1920*1080 的大小,图片为很高清的图片。
Linux下Python传输图片程序较为简单,相比两种方案,所以最终采用方案二,使用树莓派采集图像并且上传到服务器显示。


硬件设计与实现

本部分主要讲述了硬件部分的设计思路和具体实现。包括节点部分,协调器与网关部分,采集图像部分,电源模块部分,沙盘模型制作部分。


节点设计

Zigbee 节点组网容量大,理论上一个协调器可以收集 200 个以上节点信息;本课题用作模型演示,在下位机采用八个 Zigbee 节点,其中四个为传感器节点,采集农场相关环境数据;四个为控制器节点,控制农场终端电器,数据交互使农场环境科学合理管理。


传感器节点设计

传感器节点总共 4 个,分别为光照传感器节点;温湿度传感器节点;土壤湿度传感器节点;CO2 传感器节点。

图2.1 传感器节点原理图

传感器节点硬件原理图如上图所示,开发软件环境为 Altium Designer 软件。Altium Designer 是原 Protel 软件开发商 Altium 公司推出的一体化的电子产品开发系统,主要运行在 Windows 操作系统。这套软件通过把原理图设计、电路仿真、PCB 绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。
核心处理器采用 STM32F103C8T6,STM32F103C8T6 是一款基于 ARM Cortex-M 内核 STM32 系列的 32 位的微控制器,程序存储器容量是 64KB,需要电压 2V~3.6V。此芯片成本低,IO 口扩展相对较多,板载资源丰富,有 PWM,ADC,I2C 和串口等丰富接口;在工业生产和电子产品中都有大规模应用,所以本毕业设计采用了这一款芯片作为下位机节点的数据采集和数据交互芯片。
因为节点传感器只需要采集几个简单的传感器数据,所以在原理图绘制中只绘制了STM32 最小系统包括核心处理器。传感器节点模块5V 电压输入,经过AMS1117-3.3 降压模块,将电压转换成 STM32f103c8t6 芯片所需要的电压。STM32 核心主板设计外围电路有复位按键,LED 指示灯,BOOT 下载开关选择,SW 下载接口,和传感器接口的部分。
本毕业设计有四个传感器节点,每个传感器节点都有采集四种类型传感器数据和发送数据的功能,在最终实物上只需要接插不同的传感器数据和不同的 Zigbee 节点就好了。
在 PCB 硬件设计上,将所有传感器的接口和位置都留出来,焊接不同位置,就可以实现同一块 PCB 采集不同数据的方式了。本设计布线科学合理,PCB 设计为双层板,因为电路较为简单,不考虑信号隔离等因素。PCB 设计整齐美观大方,而且实用,经焊接测试可以采集数据,正常工作。

图2.2 传感器节点PCB图


光照传感器节点

BH1750 环境光传感器内置 16 位的模数转换器,它能够直接输出一个数字信号, 不需要再做复杂的计算。这是一种更精良的和容易使用简易电阻器的版本,通过计算电压,来获得有效的数据。
这款环境光传感器能够直接通过光度计来测量。光强度的单位是流明”lx”。当物体在均匀的光照下它能够在每平方米获得 1lx 的光通量,它们的光强度是 1lx。
STM32 的 PA0 和 PA1 两个 I/O 口通过 I2C 方式采集 BH1750 传感器数据,经过数据处理转换,最后通过 STM32 串口一(PA9,PA10)发送到 Zigbee 节点,Zigbee 节点与 Zigbee 协调器短距离无线组网;将光照数据无线短距离通信传送到协调器, 完成数据的传输。

图2.3 光照传感器节点实物图


温湿度传感器节点

温湿度采集选用 DHT11 温湿度模块,DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,传感器包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个 DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在 OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为 4 针单排引脚封装,连接方便。
DHT11 成本低,操作简单,并且稳定。在日常生活上和工业生产中都有大量应用。
STM32 的 PA5 这个 I/O 口通过单总线方式采集 DHT11 温湿度传感器数据,经过数据处理转换,最后通过 STM32 串口一(PA9,PA10)发送到 Zigbee 节点,Zigbee 节点与 Zigbee 协调器短距离无线组网;将光照数据无线短距离通信传送到协调器,完成数据的传输。

图2.4 DHT11 传感器节点实物图


CO2传感器节点

因为农业大棚植物的生长需要光合作用,吸收 CO2 来产生养料|,所以 CO2 的浓度也是要测量的,CO2 的采集选用 MH-Z19 二氧化碳气体传感器。
MH-Z19 二氧化碳气体传感器是一个通用型、小型传感器,利用非色散红外(NDIR)原理对空气中存在的 CO 2 进行探测,具有很好的选择性,无氧气依赖性, 寿命长。内置温度补偿;该传感器是将成熟的红外吸收气体检测技术与精密光路设计、精良电路设计紧密结合而制作出的高性能传感器。
STM32 的串口二(PA2 和 PA3)这个通过串口方式采 MH-Z19 CO2 传感器数据, 经过数据处理转换,最后通过 STM32 串口一(PA9,PA10)发送到 Zigbee 节点,节点与协调器短距离组网;将 CO2 数据传送到协调器,完成 CO2 数据的传输。CO2 传感器低功耗,工作比较稳定稳定性;在生活中空气质量监控应用十分广泛。

图2.5 CO2传感器节点实物图


土壤湿度传感器节点

农业生产中经常要确定植物生长是否缺水,所以我们要检测土壤湿度。选型为TELESKY 土壤湿度传感器。
传感器有两个输出量,一个是开关变量电压,一个是模拟信号电压。当土壤比较湿的时候,模块的数字管脚会输出低电压,模块的模拟管脚会有线性变化的电压。干燥时候数字口输出高电压,模拟管脚输出低电压。数字管脚可以与单片机直接相连。
通过单片机来检测高低电平,由此来检测土壤湿度;模拟管脚可以和单片机数字转模拟管脚模块相连,通过模数转换,可以获得土壤湿度更精确的数值,本设计采用模拟管脚检测传感器土壤湿度情况。

图2.6 土壤湿度传感器节点实物图


控制器节点设计

控制器节点总共有四个,三个不同的类型,其中有一个灌溉,两个照明和一个排气节点;四个控制器来改变农业大棚内光照,温湿度,和气压状况,使农业大棚中的农作物更好地生长。
在经过查找资料后,选用了 IRLR7843NMOS 管,该 NMOS 的 Vgs 导通电压最小为为 1.5V 最大 2.3V,Vds 为 15V;I(D)为 12A。我们的所有控制电器为 12V, Zigbee 引脚低电平为 0V,高电平为 5V;完全满足功率等要求。所以选用该 NMOS。

图2.7 控制器节点原理图

当不同 Zigbee 节点收到指令时;该节点 P05 管脚给高低电平,高电平时,栅极(G)为高电压,源极(S)和漏极(D)之间导通。P2 上用电器电压变为 12V,电器开始工作;反之 Zigbee 的 P05 管脚为低电平时;NOMS 不导通,P2 接插件上没有压降,电器不工作。
由于四个节点的控制器都是开关类型电器,本质上是完全一样的。所以四个控制器节点在硬件 PCB 上用相同电路,通过对 Zigbee 节点编号进行不同节点控制;由于植物照明灯,抽水电机,和风扇都是功率和电压相对较大的电器,所以采用 NMOS 开关电路;MOS 管可功率大,我们只应用开关特性,栅源电压 uGS 决定其工作状态。

图2.8 控制器节点PCB图

NMOS 的特性,Vgs 大于一定的值就会导通,适合用于源极接地时的情况(低端驱动),只要栅极电压大于参数手册中给定的 Vgs 就可以了,漏极 D 接电源,源极 S 接地。需要注意的是 Vgs 指的是栅极 G 与源极 S 的压差,所以当 NMOS 作为高端驱动时候,当漏极 D 与源极 S 导通时,漏极 D 与源极 S 电势相等,那么栅极 G 必须高于源极 S 与漏极 D 电压,漏极 D 与源极 S 才能继续导通。

图2.9 控制器节点实物图


灌溉节点

灌溉节点 12V 电压供电;经过 AMS1117-5.0 转为 5V 给 Zigbee 节点供电,Zigbee 节点接收到灌溉指令后,NOMS 栅极为高电平,电路形成回路,12V 抽水机开始工作, 给植物进行灌溉浇水。
抽水电机为直流电机,通过电机转动,抽调排气室空气,可以使水流能从抽水管流出。

图2.10 灌溉节点抽水机实物图


照明节点

照明节点有两个,为植物专用照明红蓝灯,由不同的 Zigbee 节点进行控制。照明节点 12V 电压供电;经过 AMS1117-5.0 转为 5V 给 Zigbee 节点供电,Zigbee 节点接收到不同编号的照明指令后,NOMS 栅极为高电平,电路形成回路,12V 植物灯开始工作,给植物进行照明。

图2.11 光照节点植物灯实物图


通风节点

农业大棚内空气的浓度对植物生长影响比较大,所以需要经常排气或者送气。本设计采用一个 12V 的小风扇来模拟真实大棚的排送气系统。
风扇节点 12V 电压供电;经过 AMS1117-5.0 转为 5V 给 Zigbee 节点供电,Zigbee 节点接收到排气指令后,NOMS 栅极为高电平,电路形成回路,12V 排气扇开始工作, 给植物进行排气和送气。


协调器网关设计

图2.12 排气节点风扇实物图

协调器网关部分核心处理器为 STM32f103ZET6。STM32f103ZET6 特点是增强型,32 位基于 ARM 核心的带 512K 字节闪存的微控制器 有 USB、CAN、11 个定时器等丰富资源。因为想要在协调器网关一级添加显示界面,经过评估和测试,核心处理器采用STM32f103zet6,该芯片有 144 可用的引脚;足够大显示屏使用,此外 512K flash 也足够存储数量大的数据和程序。

图2.13 协调器网关实物图


协调器设计

协调器部分又分为两个小部分,一个是接收协调器,负责接收 Zigbee 传感器四个节点上传的环境数据;一个是发送协调器,负责给四个控制节点发送下行数据,控制环境参数。
两个协调器与核心处理器 STM32 通过串口进行数据交互,占用了 STM32 的串口一,PA10 接传感器接收协调器,PA9 接发送控制协调器。

图2.14 协调器实物图


WIFI网关设计

网络通信模块采用 ESP8266 WIFI 串口模块, ATK-ESP8266 模块采用串口(LVTTL)与 MCU(或其他串口设备)通信,内置 TCP/IP 协议栈,能够实现串口与WIFI 之间的转换。
通过 ATK-ESP8266 模块,传统的串口设备只是需要简单的串口配置,即可通过网络 WIFI)传输自己的数据。ATK-ESP8266 模块支持 LVTTL 串口,兼容 3.3V 和 5V 单片机系统,可以很方便与单片机进行连接。从而快速构建串口-WIFI 数据传输方案, 方便我们的设备使用互联网传输数据。

图2.15 Wifi 网关实物图


图像传输设计

Raspberry Pi(中文名为“树莓派”) 是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于 Linux。
树莓派摄像头支持 1080p30,720p60 和 VGA90 视频模式,它通过一根 15 厘米的带状电缆连接到树莓派上的 CSI 端口。树莓派 Camera 对农场内部环境进行监控;因为树莓派供电情况是 5V 2A;设计的 PCB 供电板不足;不满足树莓派要求电流,会出现系统死机不能正常做工作的情况。所以考虑用仅有的 12V 开关电源降压后供电, 设计了电路,12V 直流电经过 12V 转 5V 降压模块可以为树莓派提供 2A 电流,使树莓派进行正常工作。

图2.16 树莓派摄像实物图


电源模块设计

系统设计多个较大功率的电器以及部分低电压器件,供电情况较为复杂。考虑到系统供电简洁性和合理性,供电电源采用 12V 开关电源作为供电源头。
制作 PCB 板供电模块,在原理图上 P1 管脚引入 12V 开关电源;12V 电压给到电机和灯管,经过 AMS1117 5.0 降压芯片将电压将为 5V,5V 电压给到传感器节点和协调器网关。

图2.17 电源供电板原理图

PCB 电路板开关电源从左侧Power in 引入;开关 P2 导通后便可以提供五个 12V 的电压以及八个 5V 的电压。12V 线路线宽设计较粗,适用于功率大的大电流电器, 可以满足本系统用电工作情况。

图2.18 电源供电板PCB图


智慧农场沙盘设计

考虑到本设计美观性和结构稳定性,所以外壳制作用比较工艺的方法。沙盘外壳制作采用 CAD 绘图,亚克力板为材料;元器件支撑采用 3Dmax 制作 3D 模型, MakerBot 打印实物模型。


沙盘外壳制作

沙盘外壳模型绘制采用 Auto CAD 绘制。AutoCAD(Autodesk Computer Aided Design)是 Autodesk(欧特克)公司首次于 1982 年开发的自动计算机辅助设计软件, 用于二维绘图、详细绘制、设计文档和基本三维设计,现已经成为国际上广为流行的绘图工具。AutoCAD 具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。
在设计外壳的时候,首先要对作品的大小有一个整体的概念,要知道自己的作品大概的大小是多少,如何设计才能使作品安排更加美观合理。
然后是具体设计,由于单个节点 PCB 板宽度为 5CM,结合多个传感器节点所占宽度以及其他器件所占位置,最终确定整个模型的长度为 80CM,高度为 50CM。
多个亚克力板之间连接采用螺丝和 L 型铁片固定,所以还要考虑到亚克力打孔的间距和数量。同时要注意某些电器比如风扇的固定,所以也要在侧板上做大小合适的正方形,打孔要精确到毫米级。

图2.19 CAD绘制侧板图

模型绘制完毕后,材质选择亚克力材料。亚克力材料是一种开发较早的重要可塑性高分子材料,具有较好的透明性、化学稳定性和耐候性、易染色、易加工、外观优美,在建筑业中有着广泛应用。


元器件支架的制作

支架用 3Dmax 制作 3D 模型,3Dmax 是 Discreet 公司开发的(后被 Autodesk 公司合并)基于 PC 系统的三维动画渲染和制作软件。在应用范围方面,广泛应用于广告、影视、工业设计、建筑设计、三维动画、多媒体制作、游戏、辅助教学以及工程可视化等领域。

图2.20 3Dmax 制作3D模型图

本毕业设计有部分元器件需要固定和支撑,采用 3DMAX 绘制 3D 模型。需要制作的 3D 模型有三种,一块协调器网关支架模型,三块后背支撑支架,两块节点支撑模型。绘制 3D 模型过程中需要考虑的有 PCB 板和 3D 模型大小匹配关系,支架受力情况,支架打孔与沙盘模型的的连接情况。
打印模型软件使用 Makerbot Replicator。Makerbot Replicator 是美国 Makerbot 公司于 2014 年 1 月 CES 大会上发布的 MakerBot 第五代产品之一,MakerBot Replicator 在可打印体积上比第四代大 11%,并加入了无线和以太网功能,融合了云计算技术, 不仅支持移动 APP 应用程序,也能通过 APP 应用程序实现打印的远程监控。

图2.21 MakerBot制作3D模型图

制作打印3D模型过程为:首先在3Dmax绘制3D模型,保存为x3g文件;然后用Makerbot软件打开x3g模型,设置打印相关参数,最后将将打印文件发送到3D打印机器里面,等待打印,最后出来完整模型。

图2.22 支撑和支架实物图


软件设计与实现

软件设计主要分为两个部分:下位机系统软件的设计与实现;上位机系统软件设计与实现。


下位机系统软件设计

下位机系统软件设计主要包括传感器节点部分软件设计,控制器节点部分软件设计,协调器网关部分软件设计。
软件开发环境使用到了 Keil μVision5 IDE和IAR For 8051,编程语言为 C语言。

图3.1 Keil μVision5 IDE软件环境图

传感器节点和网关协调器的软件开发使用 Keil μVision5 IDE 软件;Keil μVision5 IDE 引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。
Zigbee节点和协调器的软件开发使用 IAR For 8051 软件;IAR Embedded Workbench For 8051是一套功能强大的C/C++开发工具,广泛支持来自各种制造商的8051设备。软件环境受提供了集成在用户友好的 IDE中的项目管理,编辑器,构建工具和调试器。

图3.2 IAR For 8051软件环境图


传感器节点软件设计

传感器节点部分共有四个,每个工作方式和接口都不同。

图3.3 传感器节点软件设计流程图

温湿度传感器采用单总线方式,光照传感器采用 I2C 方式,CO2 采用串口方式, 土壤湿度采用 ADC 方式。在传感器节点的软件设计中,除了采集传感器数据部分各不相同外,其余部分软件流程一样。
首先硬件初始化,与 Zigbee 协调器建立短距离无线通信连接;然后采集传感器数据。因为考虑到降低节点功耗,而且农场传感器数据实时性要求不是很高,所以采取一段时间采集一次数据。判断定时器时间是否到达,然后进行下一次数据采集。


控制器节点部分软件设计

控制器节点总共有四个。本质上是一样的,都是 Zigbee 节点控制 NMOS 开关电路,只是每个 zigbee 节点编号不同。
具体流程为:控制节点硬件初始化,然后与 Zigbee 协调器建立网络连接,然后开始判断是否接收到协调器下发的控制指令,假如接收到,就开启控制电器的开关。

图3.4 控制器节点软件设计流程图


网关协调器软件设计

网关协调器部分设计相对比较复杂,也是承载整个设计的中心点,协调云端服务器和底层传感器顺利地数据交互。
软件流程为:首先硬件初始化,通过 ESP8266 模块与网络服务器建立 TCP 连接; 然后进入两个串口定时器中断,一个中断来判断是否接收到节点传感器数据,如接收到,就将传感器数据打包,然后发送到云端服务器;如没有收到节点传感器数据么就发送一个心跳数据包,仍然与服务器保持网络连接。

图3.5 网关与协调器软件设计流程图

另一个串口定时器中断来判断是否接收到服务器下发的控制数据包,假如接收到控制数据包,那么发送相应的控制指令到对应的Zigbee节点。


上位机软件设计

上位机软件设计包括:物联网服务器的选择与设计;Android软件开发;PC端软件开发。Android APP软件开发使用Android Studio IDE,编程语言为Java语言和XML 语言;PC端HTML5 软件开发选择 Sublime Text3,编程语言为HTML5,CSS和JS语言。


物联网服务器的选择与设计

现在物联网技术越来越成熟起来,诞生了很多比较完善的物联网解决方案,本毕业设计选择中国移动的ONENET云平台。

图3.6 OneNet云服务器后台界面

OneNET 平台作为中国移动通信集团推出的专业物联网开放云平台,提供了丰富的智能硬件开发工具和可靠的服务,助力各类终端设备迅速接入网络,实现数据传输、数据存储、数据管理等完整的交互。
OneNET 的接入协议包括 EDP、MQTT、TCP 透传等,主要是面向通过 TCP 与OneNET直连的终端,OneNET 将接收到的数据按照协议解包存储,并以 API 的方式提供给应用层使用。
ONENET 支持 EDP 网络协议,可以上传很大容量的数据流,比如图片数据流,GPS位置信息,时间信,传感器数据流等;最重要的是支持友好的应用编辑界面, 用户上传后,可以在应用界面自由编辑想要的界面,Onenet 支持按钮,地图,柱状图,折线图等选多插件,是现在物联网云平台做的比较完善的支持方案。


PC上位机的软件开发

在电脑终端界面选择上,是有多种选择方案的,比如 MFC, Windows Form 等应用,虽然这些应用原生性比较好,但是我们要考虑用户使用的兼容性。这些都是应用在 Windows 系统上的,比如某个客户用的是个人电脑是 Linux 系统或者苹果系统, 就会存在问题,所以经过思考,最后选择了 H5 作为开发界面,这样用户只要有浏览器就可以访问网页了。
HTML5界面开发软件采用Sublime Text,可用于Mac,Windows和Linux。无论使用何种操作系统,Sublime Text具有强大的 Python API,允许插件增强内置功能。
Sublime Text使用自定义UI工具包,针对速度和美观进行了优化,同时利用每个平台上的本地功能。

图3.7 HTML5界面的开发

HTML5 开发界面有比较多的插件,这些插件功能强大而且美观;在本毕业设计中运用了按钮插件,折线图,图像插件和表盘插件。
四个按钮插件通过 JS 语言控制功能,向服务器发送命令,修改命令数据流的值, 然后通过 EDP 协议,下发到网关,控制我们的控制器节点可以控制灯光,通风和灌溉。按钮有两个状态,ON 和 OFF,如果是 EDP 设备,开关控件将会向设备下发上面设置的开关开值,或者关值,否则会把开关关值作为数据点新增到数据流。开关设备需要实时上报数据点来表明当前的开关状态。开关设备的命令内容是“NAME:{V}”,NAME 表示控制器的数据流名称,’V’有两个值,’0’代表关值,’1’ 代表开值。
折线图也是JS控件,通过访问服务器传感器数据流,将特定的值显示到相关位置,展示的数据有温湿度,土壤湿度,光照强度等数据。图像区展示树莓派传输的图片,显示农作物的生长情况。
图片控件有三种模式,第一种,上传什么图片显示什么图片。第二种,根据数据流设置后得到的数据流链接来显示图片。第三种,上传多张图片,并且给每张图片给定一个值,根据数据流返回的值与设定的值做比较来确定哪张图显示。本毕设采用的形式为第二种,使用树莓派高清摄像头采集图像,然后将图片转换成BMP格式封装到HTTP协议,上传到图像数据流,最后显示在相关图片控件上。


Android 软件开发

Android 软件开发使用Android Studio。Android Studio基于Gradle的构建,支持Android 专属的重构和快速修复,提示工具以捕获性能、可用性、版本兼容性等问题,支持ProGuard和应用签名,基于模板的向导来生成常用的Android应用设计和组件功能强大的布局编辑器,可以拖拉UI控件并进行效果预览。我们可以使用这个软件来完成安卓开发,所需要掌握的编程语言为XML界面编程语言和JAVA语言。

图3.8 程序开发界面

安卓客户端的制作方便客户远程观测农场数据和操控农场环境。当客户外出可以观看和控制农场大棚情况。
安卓软件流程为首先初始化界面等 API,然后与服务器建立 TCP 网络连接;接下来如果 Button 发送控制命令,就用 POST 方法发送相应数据包到服务器;同时android 端也会不断向服务器用 GET 方法访问数据,最后显示到界面。

图3.9 APP开发软件流程图

查询单个数据流方法:
{
"errno": 0, "error":“succ”, "data": //数据流信息
{
"id":"temperature", //数据流名称,设备范围内唯一"tags":["Tag1","Tag2"], //数据流标签
"unit":"celsius", //单位"unit_symbol":"C", //单位符号
"create_time":"xxxx-xx-xx 10:22:22", //创建时间"current_value":{…}, //该数据流下数据点最新值"update_at":"xx-xx-xx" //该数据流下数据点最新上传时间
}
}
HTTP 方法 POST 数据
URL //api.heclouds.com/devices/device_id/datastreams
HTTP api-key: 242RprHyALimOZLCKiXeT7IRdLM= //masterkey 或者设备
apikey
{
"id":"temperature" //数据流名称 示例:温度"tags":["Tag1","Tag2"], //数据流标签(可选,可以为一个或多个) "unit":"celsius", //单位(可选)
"unit_symbol":"C" //单位符号(可选)
}

图3.9 安卓智慧农场主界面


调试及调试结果

本部分主要介绍了本课题设计中软件和硬件的调试。硬件调试部分阐述了从底层的焊接和电路布线的调试,软件调试部分阐述了软件设计时编写程序遇到问题的和解决问题的一些过程。
调试遇到的问题:
1.布线电流大小与线宽的问题
解决方法:在一开始设计布线过程中,没有考虑电流问题,所以设计的第一款芯片在回来焊接调试过程中,大电流通过 10mil 的线宽时,有轻微发热现象,询问老师, 并且在网上查找资料后,了解到线宽与电流有着比较重要的关系,一般来说,电流越大,设计线宽也应该越大。
PCB 铜厚为 35um;所以想要通过 2A 电流至少保证线宽为 0.8 毫米以上, 在老师指导下,又设计了第二款 PCB 供电板,这次没有发热,而且电器能正常运行, 感觉解决了问题,而且学习到了新的知识。
2.微小芯片的焊接方法
对于STMf103 这种比较小的芯片没有怎么焊接过,封装为 LQFP 的 64 引脚封装; 不是很容易焊。对照网上视频多练习了几遍,完成就比较顺利了。
系统整体供电解决方案
本设计电子模块较多,每个模块供电情况不同;STM32 供电需要 3.3V,各个传感器模块需要 5V,电机和灯需要 12V,0.8A 的大电流;树莓派需要 5V 2A 的电流; 所以评估过后采用 12V 开关电源,进行降压对各个模块供电。

图4.1 开关电源实物图

图4.2 系统整体实物图


结 论

本设计从选题、论证、查阅相关资料、确定设计方案到设计的实现前后共历时近两个月,并且基本实现了预期效果,可以远程监控农业大棚模型的温湿度,光照等环境参数;能够远程控制大棚模型中光照,灌溉以及排气。完成硬件大棚模型一个,软件上位机两个。
因为在毕设工作量大,总共经历了以下几个过程,一.设计总方案;二.设计各个模块方案;三.设计底层传感器电路 PCB;四.焊接底层传感器 PCB;五.调试底层各个传感器程序;六.调试 CC2530 Zigbee 模块节点程序;七. 调试 CC2530 Zigbee 模块协调器程序;八.调试 STM 网关程序;九.调试设置云端服务器相关程序;十.调试安卓端程序和 H5 上位机程序;十一.设计 CAD 亚克力外壳,设计 3D 打印支架;十二.安装总体结构。
在这些过程中有大部分是比较熟悉的,比如调试程序和画电路,以及 H5 上位机编写等。还有很多设计不是很深的技术;比如 PCB 绘制,和微小元器件的焊接,大三的时候学习了部分知识,但是没有运用到实际中,毕设把绘制 PCB 这个用到了; 非常感谢姜老师对我的帮助,在画 PCB 的时候告诉我很多快捷的方式,和很多注意事项。涉及 Android 编写程序,所以需要写关于 JAVA 的相关程序,因为本专业是电系信息科学与技术,关于电子方面,所以更加偏向于硬件,本科上没有 JAVA 的相关课程,所以课余时间自学了 JAVA 相关课程,在安卓端写代码就比较方便了,关于本毕设用到的一些 Android 技术都掌握了。因为最后想把本设计实现产品化,制作了智慧农场的沙盘,,沙盘外壳采用了亚克力材料。硬度符合要求,而且透明材料比较美观。
学无止境,虽然大四即将毕业了,但是在做本次毕设中还是学习到了很多新的知识,和解决问题的思路思想。只要肯钻研,下功夫,没有什么是完成不了的。
本次毕设也就告一段落了,回想自己本次毕设的目的,还是想利用自己所学到一些知识来为社会做一点微小的贡献,农业生产关系到国家富强,大学生作为国家未来的力量,应当有社会责任感和担当,利用自己所学,为社会去做一点贡献。


致 谢

感谢此次的毕设中给与我无私帮助毕设指导老师杨萍老师,还有智慧城市物联网社团的所有指导老师田景文老师,姜余祥老师,邹莹老师,张争珍老师;大学四年老师们不仅在学业上给予了我宝贵的知识,也在工作生活上对我有许许多多的帮助,最重要的是从他们身上学习到了宝贵的精神品质;做人要谦虚努力,为人正直;做事要精益求精,要有奉献精神;老师们教会我的太多太多,遇到好老师是人一生的幸运,今后我也会努力工作和学习。


参考文献

[1] 孔晓波.物联网概念和演进路径[J].电信工程技术与标准化,2009:12 [2]黄松飞.山东寿光的物联网样板[J].通信世界,2009:46
[3] 刘志硕.关于我国物联网发展的思考[J].综合运输,2010:2
[4] 潘永雄.新编单片机原理与应用.第二版[M].西安电子科技大学出版社[5]杨光祥.STM32 单片机原理与工程实践[M].武汉理工大学出版社,2013:6 [6]华成英.模拟电子技术基础.第四版[M].高等教育出版社
[7] 傅劲松.电子制作实例集锦[M].福建科学技术出版社
[8] 刘 宏.余勤科.PCB 电路设计实用指南[M].西安:西安电子科技大学[9]张毅刚.虚拟仪器技术介绍[9].国外电子测量技术,2006,25(6):5-6
[10] 夏路易,石宗义.电路原理图与电路板设计教程 Protel 99SE[M].北京广益印刷有限公司,2002:6

Author: Jone-Mark
Link: http://94.191.80.102:4000/2019/04/01/graduation-project/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.