毕业论文(设计)
基于STM32的农业灾害监测系统设计
院:XX 学院(三号黑体字,下同)
业:XXXX
班 级:XXXX 班
名:X X X
号:2006XXXXXXX
指导教师:X X X
20XX 年 X 月 X 日
基于STM32的农业灾害监测系统设计
Design of Agricultural Disaster Monitoring System Based on STM32
摘 要
随着科学技术的发展,在农业生产中的应用信息技术的发展已成趋势。影响作物生长和产量的环境因素有很多,例如环境灾害、光度、温度和湿度,及时调整和改善作物所需的温室环境,防止灾害的发生从而提高生产效率和质量。因此,开发智能温室监控系统,实现温室信息的自动采集和控制,从而达到现代化农业设施要求。
随着数据监控,无线通信和嵌入式技术等不断的应用开发,人们已经建议采集数据采集系统的准确性。速度和数据存储的更高要求。鉴于目前缺乏数据采集系统,我们已经意识到基于STM32F103 ARM Cortex-M3处理器的数据采集系统,模拟输入电压信号和电流信号的连续采集和多通道排序,以及高速ARM处理器数据处理的采集。大规模,实时和大规模的数据。另外,数字信号通常用于传输,因为模拟信号的抗干扰性对传输无用。介绍了由嵌入式STM32F103微处理器和射频收发器芯片nRF905组成的无线传输模块的设计。工作频段在868MHz,使用高增益天线,数据传输速率可达1 MbtS-1,传输距离大于800 m,性能稳定性好。系统结构轻巧,易于维护。适用于雨量控制,防干旱等工业信号数据采集和传输防灾中的数据检测,如雨量收集和水文站水位监测等。
关键字:STM32F103 无线传输 无线传感器 数据采集
农业灾害监测系统,主要应用于农业领域,如“水稻种植基地”、“蔬菜种植基地”等。而本次课题的主要任务则是设计一个基于stm32开发板的农业灾害监测系统,并通过PC端软件界面显示所接收的数据。农业灾害监测系统,是由一个stm32开发板、一个温湿度传感器、一个光照强度传感器、一个串口通讯数据线组成。stm32开发板充当下位机,传感器感应数据,并由程序的接收数据模块控制,通过串口通讯传送到上位机,也就是PC端软件显示界面,在显示界面可以查询实时数据,当数据超过阀值,下位机的蜂鸣器会进行报警。
关键字:STM32开发板 农业灾害监测 传感器 数据采集
Abstract
With the development of science and technology, the application of information technology in agricultural production has become a trend. In agricultural production, there are many environmental factors affecting crop growth and yield, such as environmental disasters, photometry, temperature and humidity, timely adjustment and improvement of greenhouse environment needed by crops, prevention of disasters and thus improve production efficiency and quality. Therefore, the development of intelligent greenhouse monitoring system to achieve automatic collection and control of greenhouse information, so as to meet the requirements of modern agricultural facilities.
With the continuous expansion of data monitoring, wireless communication and embedded technology, people put forward higher requirements for data acquisition system acquisition accuracy, speed and data storage. In view of the shortcomings of the current data acquisition system, we have implemented a data acquisition system based on STM32F103 chip of ARM Cortex-M3 processor, In addition, because the anti-interference ability of analog signals is not conducive to transmission, digital signals are often used for transmission. The design of wireless transmission module composed of embedded STM32F103 microprocessor and RF transceiver chip nRF905 is given. Working in 868 MHz frequency band, the data transmission rate can reach 1 Mbt. s-1, using a high gain antenna, the transmission distance exceeds 800 m, and the stability is good. The structure of the system is light and easy to maintain. It is suitable for data acquisition and transmission of industrial signals such as rainfall control, drought prevention and disaster prevention, such as rainfall collection and water level monitoring of hydrological stations.
Key words:STM32F103 Wireless transmission Wireless Sensor Gateway Data acquisition
Agricultural disaster monitoring system, is mainly used in the agricultural field, such as “rice planting base”, “vegetable planting base”. The main task of this project is to design an agricultural disaster monitoring system based on stm32 development board, and display the received data through the PC software interface. Agricultural disaster monitoring system is composed of a stm32 development board, a temperature and humidity sensor, a light intensity sensor and a serial communication data line. The stm32 development board acts as the lower computer, and the sensor senses the data, which is controlled by the receiving data module of the program. It is transmitted to the upper computer through serial communication, that is, the PC software display interface, where real-time data can be inquired. When the data exceeds the threshold, the buzzer of the lower computer will give an alarm.
Keywords: STM32 development board agricultural disaster monitoring sensor data acquisition
农业灾害监测系统,主要应用于农业领域,如“水稻种植基地”、“蔬菜种植基地”等。本课题的主要任务是设计一个基于stm32开发板的农业灾害监测系统,并通过上位机软件界面显示接收到的数据。农业灾害监测系统由一个stm32开发板、温湿度传感器、光强传感器和串行通信数据线组成。Stm32开发板作为下位机,传感器接收数据,由程序的接收数据模块进行控制。它通过串行通信传送到上位机,即,上位机软件显示界面,可以查询实时数据。当数据超过阈值时,下位机的蜂鸣器将发出警报。
关键词:STM32开发板农业灾害监测传感器数据采集
目录
目录
摘 要 3
Abstract 4
绪 论 6
1 智能环境监控技术的设计 7
1.1 硬件的总体设计 7
1.2 环境监控系统的特性 7
1.3 网关技术 8
1.4 蓝牙技术 8
1.5 主要芯片 9
2 系统硬件设计 10
2.1 系统硬件结构 10
2.2 智能节点监控系统设计 11
2.3 RF部分硬件设计 11
2.4 传感模块 12
2.5网关设计 14
2.6 PCB板设计 15
2.7 抗干扰设计 16
3 进行总体测试 16
结 束 语 20
参考文献 21
附录 1 单片机源程序如下: 23
致 谢 32
绪 论
中国人口众多,但种植的土地非常有限。在此基础上,生产土地有限的程度严重影响作物产值。俗话说得好,“民以食为天”,但中国的农业灾害也大多是干旱,洪水,冰雪,飓风,地震,沙尘暴等,大大减少了农作物的产量。因此,农业灾害监测对中国来说非常重要。
但是,在当代农业灾害监测技术的实际应用中,日本和国外仍存在很多差距,一般国外早期,发展速度快于其他国家,技术成熟和先进。由于我们国家起步较晚,在技术方面仍有许多需要改进的地方。
目前,国内农业防灾监测技术有两个研究方向:智能环境监测系统,通过传感器仿真检测环境参数,计算机作为监控系统,多变量输入/输出控制系统作为核心。它通过相应的传感器输出模拟信号并将其转换为数字信号。第二种是基于微控制器的自动控制系统,用于自动监控和控制环境。在这种情况下,系统可以收集环境参数值,如温度湿度、太阳光照等,并显示并保存。
总的来说,在农业灾害监测技术方面,国内和国外水平仍然存在很大差距。国内技术只是在个体环境因素的监测和控制水平上,但实际上各种环境因素是相互联系的,各种因素的变化也相当复杂,因此,单一因素调控还不够,所以在这种情况下,我国需要加强。
1 智能环境监控技术的设计
1.1 硬件的总体设计
基于 STM32微控制器的智能环境监控系统它主要由多个智能传感器节点,网关和运行在主机PC上的应用组成。智能监控节点连接外部光强,温度和湿度浓度和二氧化碳传感器监测温室环境中的参数,然后发送实时分组到网络中的环境参数。无线网关中的协调器聚合智能。环境监控节点发送的信息和集成环境参数转换为蓝牙网络并发送到PC显示器。本课题设计的智能环境监控系统采用模块之间数据传输的无线模式。本课题设计的智能环境监控系统采用无线模式进行模块间的数据传输。总体设计结构如下图1.1.
无线传感器网络系统图1.1
由此原理图可以看出:
1、网关的协调器负责网络的构建和配置,网关节点扫描网络中的节点信息,等待网关节点发送网络连接命令,建立一个链路。网关的蓝牙模块扫描无线网络并加入AP网络中。主计算机的PC通过无线网络添加到与蓝牙模块相同的LAN中。蓝牙模块在C / S操作模式操作服务器。
2、收集温室中的环境参数。智能传感器节点位于受监控的温室环境中,网关模块在空间中搜索网关网络并请求参与网络以进行数据传输。同时,连接光强度,温度,湿度,二氧化碳浓度传感器的网关模块自动检测温室环境参数,实时发送网关网络中收集的环境参数,最后是网关协调器聚合到节点中。
3、通过蓝牙网关处理环境参数。网关中的网关协调器解包接收的环境参数并将它们发送到蓝牙模块。蓝牙模块将数据打包并发送到WLAN。基于无线传感器网络的基于节点和基于IP的网络通信通过网关-蓝牙网关。
4、主机的PC接收并显示网关发送的数据.PC与网关-蓝牙模块之间的通信通过监控在TCP / IP网络程序框架C / S(客户端/服务器)模式下实现。系统以服务器模式运行网关-蓝牙网关,并发送等待客户端的连接信号。主机远程应用程序可以随时运行并获取网关发送的数据。
1.2 环境监控系统的特性
1、通过网络集中管理无线通信技术的应用,可以扩展数据传输距离和采集范围。根据温室中的结构,将部署节点和网关,并将收集的数据发送到网关和蓝牙网络,以进行集中式网络管理。
2、灵活应用。根据环境监测的需要,可以随时添加或删除监控节点模块,实现数据采集终端即插即用的快速网络访问。
3、高可靠性.网关模块在网络通信中具有自动重连接,稳定性高。标准网络密钥用于网络层数据的加密和解密,数据可靠性高。
4、可扩展性很强。本项目设计的环境监测系统主要用于农业温室栽培也可以用于工业自动化等数据采集系统。根据具体需求,可以灵活改进,可以连接不同的传感器以满足不同的需求。然而,蓝牙无线网络具有高数据传输速度,并且可以在此基础上实现音频和视频的多业务数据传输。
1.3 网关技术
在智能温室监测系统中,为了保证收集数据的有效性,需要在温室内分布大量无线传感器节点进行连续长期监测,并根据传感器节点的数量确定传感器节点的数量。因此,基于上述要求,本文选择了低功耗,易扩展,自组织网络的网关无线通信技术。
网关无线通信技术基于IEEE 802.15.4协议标准,由Invensys,Motorola,Japan,Mitsubishi,Philips共同发起,并具有统一的标准化短距离无线通信技术。在用于速度传输和短程无线通信的系统中。网关技术的主要功能如下。
(1) 传输速率低,主要用于传输速率在10kbps到250kbps之间的系统。
(2)能耗低.网关技术采用低传输率的睡眠模式,降低了设备的功耗。在低功耗待机模式下,使用两个干电池就能够提供超过半年的设备电源。
(3)成本低.网关协议是免费的,协议只占用很小的存储空间,大大降低了应用成本。
(4)每个网关网络的网络容量很大能够容纳255个设备。
(5)使用的频段灵活,使用的网管技术是2.4 GHz,868 MHz和915 MHz。
(6)传输是可靠的。当采用冲突避免策略时,为固定带宽通信服务保留专用时隙,这有效地避免了在发送数据中发生的冲突。MAC层中的数据传输,采用公认的数据传输方法,即要传输的每个数据包需要由接收器接收的确认信息。如果传输有问题,则可以重新发送传输数据。
(7)安全。网关使用AES-128加密算法进行传输,并灵活定义每个应用程序的安全功能,还提供有效的数据包完整性检查(CRC),以支持身份验证和身份验证。
1.4 蓝牙技术
智能温室蓝牙监控系统的应用中,为了避免安装过程中布线的干扰,温室环境参数通过无线技术传输到PC,智能温室监控系统与以太网集成,资源利用互联网。使整个系统更加实用和有效。在智能监控系统中选择蓝牙技术,通过无线网络的网关连接到上位机。
蓝牙是一种支持设备短距离通信的无线技术。它可以在许多设备之间交换无线信息,包括移动电话PDA,无线耳机,笔记本电脑和相关外围设备。“蓝牙”技术的使用可以有效地简化移动通信终端之间的通信,并且还成功地简化了设备和因特网之间的通信,从而使数据传输更快更有效。并拓宽了无线通信的道路。蓝牙适用于分布式2.4 GHz ISM(即工业,科学,医疗)频段,分布式网络结构以及快速跳频和短数据包,以支持点对点和点对多点通信使用技术。其数据速率为1Mbps。使用时分双工传输方案实现全双工传输。此次选择的HC05蓝牙主从模块有6个引脚(VCC,GND,TX,RX,AT,STATUS)。前4个引脚连接到usb到ttl(注意RX,TX交叉布线)到微控制器, AT引脚为高电平,蓝牙模块进入AT状态(即所谓的AT状态,即其他程序可以通过引脚向蓝牙模块发送AT控制命令,如设置波特率,查看版本号,设置mainSlave模式),AT引脚默认处于浮动状态。蓝牙运行程序见附录1.
1.5 主要芯片
本设计中使用的STM32F103芯片使用32位ARM Cortex-M3微处理器,并集成在2.4GHz和2.4GHz IEEE802.15.4收发器之间。Flash Flash,RAM RAM和基于网关系统的内置接口。最大的芯片是它在提高处理能力的同时保持低功耗。芯片中保留了不同版本的代理协议,用户可以使用符合网络的网络协议来开发产品。STM32F103 芯片内部结构图1.2
STM32F103 芯片内部结构图1.2
该芯片具有以下特性:
1、STM32F103 的RF收发器采用高效架构,接收通道集成滤波器使其他通信标准使用2.4 GHz频段共享该频段。带稳压器,VCO,环路滤波器,功率放大器等。
2、包括四个振荡器:高频12MHz RC振荡器,10kHz内部RC振荡器和低频32.768kHz晶体振荡器,各种时钟源为应用设计提供了极大的灵活性。
3、该芯片还包括UART,SPI,TWI,ADC和两个通用定时器,并有24个GPIO引脚与其他外设共用或作为多路复用引脚。最多4个外部中断源(IRQA,RQB,IRQC),IRQD),每个都有一个对应于嵌套向量中断控制器(NVIC)的中断向量。
4、STM32F103支持ARM串行和JTAG调试接口,该系列和JTAG系列功能相同。但不是同时使用。串行线阵列占用2个引脚;JTAG接口占用5个引脚。
5、通用ADC可以在单个或不同模式下模拟来自六个GPIO引脚的模拟信号,也可以模拟VDD_PADSA,VREF和GND.ADS有两个可选功率范围:0V至1.2V和0.1V高电源电压从电源电压到-0.1V.ADC具有DMA模式,其中ADC获得的数据自动传送到RAM。集成参考体积VREF可以由外部电路使用,外部参考可以提供给ADC。
2 系统硬件设计
2.1 系统硬件结构
智能环境监控系统由PC主机部分,网关-蓝牙网关和智能监控节点组成。 PC软件是基于VC Plus环境开发的Socket客户端程序。网关-蓝牙网关由网关协调器和蓝牙节点组成。智能监控节点包括:网关节点,温度和湿度传感器,光强传感器和二氧化碳浓度传感器。智能监控节点中的网关模块和网关协调器中的网关模块在硬件结构上类似,并根据其功能在软件上实现。系统的总体框图2.1
智能温室环境系统的总体框图2.1
由智能温室监控系统的总体框图可以看到,智能传感器节点作为数据采集部件,在无线传感器网络中工作,监控环境信息,可以处理和分析数据,并执行接收到的命令;网关-蓝牙无线网关作为系统的核心部分,可以设置网关和WiF网络,并可以转换协议。环境参数可以通过网关转换传输到蓝牙网络。上位机在无线局域网中工作。在数据的存储和显示部分,上位机PC的无线网络与蓝牙模块一起被添加到无线路由AP的网络中。接下来,在主机PC上运行基于TCP / IP通信的套接字客户端程序,以接收和显示由网关 蓝牙网关发送的环境参数。
网关中的网关协调器网络可以建立三种基本的网络结构,它的功能比网状结构更完美,易于实现和维护。
入口处的蓝牙节点建立无线局域网与主机通信,蓝牙工作方式有两种:一种是Ad-hoc,经常应用于无线网络环境,网络可以直接通信;另一种是基本网络模式(Infra),通常用于存在无线网络覆盖的环境中,并通过蓝牙模块连接到AP无线网络。本主题选择基本网络模式。这种类型的网络功能是AP是网络的整个中心,负责完成传送网络中的所有通信。
在硬件设计中,为了便于系统在设计过程中的测试和修改,大大降低了硬件调试的难度。即使有系统存在问题,易于检查,易于识别问题并进行更改。硬件电路如果出现了问题,则必须对其进行重新设计和制造。因此,可以避免电路板避免零件无问题,节省电路板成本和重复。焊接工艺。根据功能分离板更有利于系统的扩展,可以在原板上重新开发并应用到其他系统。
2.2 智能节点监控系统设计
为了建立用于执行数据收集,处理和无线通信的无线通信网络,智能环境监测系统的若干节点位于检测区域中。为了使所有智能传感器节点自主地参与网络,网络中的所有节点必须能够满足通用协议。只要符合协议标准的节点可以访问系统,硬件和软件都必须满足特定要求。如图所示2.2智能环境监测传感器节点硬件结构框图。
传感器节点硬件结构框图2.2
智能监控节点包括传感器获取模块,微控制器处理单元和数据传输单元。工作流程如下:传感器收集环境参数信息并将其发送到处理器模拟传感器必须进行A / D转换然后发送到处理器。在由数据处理单元处理之后,将其发送到数据发送单元,并通过天线将信息及时发送到网关中心节点。
2.3 RF部分硬件设计
RF主要由三部分组成:外部阻抗匹配变压器(Balun),可提供50Ω的不平衡至均衡的100Ω阻抗变换,实现STM32F103 的最佳负载:由电感器和电容器组成的网络。优化RF性能:带通滤波器滤除不需要的谐波,符合FCC和ETSI限制。
STM32F103 的双向RF端口是内部连接到低噪声放大器(LNA)和功率放大器(PA)的共享差分接口。PA或LNA可以进入高阻态,因此它可以通过共享端口进行发送和接收,而无需传统的TX / RX切换。还有一个备用端口仅提供PA接口。这些接口用于通过外部PA实现更大的输出功率。图2.3为STM32F103 设计原理图 。
STM32F103 整体电路图2.3
2.4 传感模块
1、光强传感器模块
本项目采用的光强度数字传感器为TSL2561。传感器由TAOS引入,具有低功耗,高速的宽范围以及灵活的编程配置。I2C总线接口是TSL2561的访问接口,通过16个内部寄存器来实现控制读写。表 3.3是寄存器地址:
地址 名称 作用
— 命令字寄存器 指定要访问的内部寄存器地址
00h 控制寄存器 控制芯片是否工作
01h 时间寄存器 控制积分时间和增益
02h 门限寄存器 低门限低字节
03h 门限寄存器 低门限高字节
04h 门限寄存器 高门限低字节
05h 门限寄存器 高门限高字节
06h 中断寄存器 中断控制
08h 校验寄存器 生产商测试用
0Ah 器件 ID 寄存器 区分 TSL2560 和 TSL2561
0Ch 数据寄存器 通道 0 低字节
0Dh 数据寄存器 通道 0 高字节
0Eh 数据寄存器 通道 1 低字节
0Fh 数据寄存器 通道 1 高字节
表 3.3 TSL2561 寄存器地址
2、CO2 传感器模块
本项目使用的二氧化碳浓度传感器是MG 811 CO 2模拟输出传感器,稳定性好,温度和湿度变化影响小,对CO 2的灵敏度和选择性优异。它广泛用于家庭,生物发酵过程控制,农业温室监测二氧化碳浓度。传感器结构图2.4
传感器结构图2.4
MG811 CO2传感器基于固体电解质电池的原理:
空气,金| Nasicon ||碳酸盐|金,空气,二氧化碳。当将传感器放置在CO 2环境中时,电极反应公式变为如下:
负极:2Li+ + CO2 + 1/2O2 + 2e - = Li2CO3 正极:2Na+ + 1/2O2 + 2e- = Na2O
总体电极反应:Li2CO3 + 2Na+ = Na2O + 2Li+ + CO2
表2.5是CO2 传感器特性:
适用气体 探测范围 响应时灵敏度
间 恢复时间 加热电阻 加热电 加热电流 压
二氧化碳
CO2 0~
10000ppm ΔEMF=15~
≤60s
30mV ≤90s 35Ω±3Ω 180±20 6V±0.2 mA V
加热功率 测量电压 测试条件 工作条件 贮存条件
≤1200m W
≤24V
环境温度:20±2℃
环境湿度:65±5%%RH 环境氧含量:21%(STD) 环境温
度:-40℃ to 70℃ 湿度:≤95%RH 温度: -20℃-70℃
湿度:≤70%RH
表 2.5 MG811CO2 传感器特性
3、温湿度传感器模块
该次设计使用的DHT11数字温湿度传感器是温度传感器和湿度传感器,由Sensirion生产的单芯片完全对齐,同时具有串行接口,可同时进行温度和湿度测量.DHT11温度和湿度传感器已广泛应用于农业生产,医疗设备工业化,环境监测,空调设备等传感器应用,具有高可靠性、数字输出、自校准等特点。其硬件连接电路如图 2.6。
温湿度传感器 DHT11 电路图2.6
2.5网关设计
智能监控系统采用基于网关技术和蓝牙技术的无线数据采集网关,无线传感器节点将数据传输至网关-蓝牙网关,将网关网络数据转换为协议,并将其传输至以太网我会的。网络数据也必须由网关转换并发送到网关网络。通常,网关-蓝牙网关是网关无线网络和蓝牙无线LAN数据交换的中继点。该设备安装在无线传感器网络和无线LAN之间,它也是网关网络的协调器,也是无线蓝牙的节点。
网关协议转换是在应用层实现用于连接两个相对独立的网络的网关和蓝牙。网关应用层协议的主要功能是根据网关协议来发送由网关传感节点到网关收集的数据,在网关网关协调器节点解析数据的有效载荷,无线网络节点到主计算机传输数据。收集所述主计算机和所述网关被断开,网关的蓝牙网关保存传感器网络中收集到外部存储器中,主计算机中的数据和所述网关进行通信,网关已经被收集在传感器网络数据我会的。当它被发送到WLAN,主机接收和存储,不使用网关到店。主计算机还可以发送一个需要通过网关被发送到的无线传感器网络的命令。网关结构图如2.7 所示:
网关硬件结构框图 2.7
2.6 PCB板设计
为了降低成本,采用纸张设计的无线通信模块采用双层板设计。在无线通信模块的设计中,用于确定模块是否已成功通信的密钥是射频部分。从芯片的无线接口端到天线接口的匹配电路是设计重点,PCB布局的线长和线宽,以及PCB板的材料和厚度都受到这部分电路的影响,因此设计设计它不仅要做。零件的精确选择符合零件的要求,PCB设计布局和布线也非常严格。网关模块和蓝牙模块电路的RF部分首先从芯片的无线接口连接到BALUN(50-100 hm),然后连接到滤波器电路,最后连接到SMA RF天线接口,该接口是特性阻抗为50Ω的馈线。基于上面每个模块的原理图设计,我们选择每个器件的封装,布局,布线,基板准备,器件焊接,调试工作。图2.8显示了硬件的PCB布局。
STM32F103 硬件模块 PCB 板图2.8
2.7 抗干扰设计
(1)抗电源干扰设计在电源线和嵌入式设备的接地线之间放置一个0.1μF的去耦电容,以减小开关电流路径并降低电阻两端的压降,以减小地电位差。将10至100μF的去耦电容连接至印刷电路板的电源输入,以增强电源的抗噪性。可以尽可能地隔离模拟电源和数字电源,并将其与电感器,0Ω电阻器,磁珠隔离。
(2)设计能够承受环境中外部磁场的干扰。网关板和蓝牙板采用钢板屏蔽,外壳接地,以防止对环境的电磁干扰。您不能将逻辑组件的自由输入悬空或接地,但请选择质量好,性能好,测试严格的部件。
(3)针对干扰设计在PCB的布局的部件应尽可能经常地布置以促进循环信号和所述信号houden.Het无线截面为一致的可能的,如天线和过滤器,必须在印刷电路板的其它组分是时钟发生器,晶体振荡器和微处理器的gescheiden.De时钟输入应该尽可能靠近liggen.De模拟和在数字电路和来自其它低频设备远离必须gescheiden.De尽可能,具有高的部件电位和低电位下不太近zijn.Ten其次,输入端的PCB布线和输出端连接到布线圆角的布线避免尽可能和天线部可以用信号线不hinderen.Gebruik而90度折叠线,减少高频噪音。使地线成为无限循环,可以减小电位差,提高电子设备的抗噪性能。
3 进行总体测试
系统功能测试主要包括检查传感器数据是否正确采集,是否建立网关-蓝牙网关,主机是否可以连接系统,数据是否正确接收和显示测试您是否正在实现设计功能。功能流程图如图3.1所示。
系统功能测试流程图3.1
将节点放置在网关网络中,设置为完整的路由器节点,连接室外温度和湿度,光强度和二氧化碳聚焦传感器。实验室内设计网关-蓝牙网关,网关节点上的网关模块设置为协调器通过UART接口连接到蓝牙模块.蓝牙模块采用基本的网络工作模式,加入实验室的AP无线路由器。使用一台笔记本电脑在实验室中为AP添加无线网络,使网关-蓝牙网关和主机工作在同一网络中运行主机客户端程序。
测试过程如下:网关-蓝牙无线网关首先上电,网关协调器设置为形成无线传感器网络,蓝牙节点用作服务器。IP地址设置为192.168.1.123,端口为60000.网关数据采集节点上电并加入协调器网络进行数据采集和传输。运行笔记本上的socket客户端程序,输入IP地址和端口在服务器上,单击“连接”,然后向服务器发送连接请求。连接成功后,将收到数据,其测试结果如图3.2所示。
上位机接收数据3.2
图3.2主机接收数据在系统的整体测试中,为了验证主机接收数据的正确性,网关传感器节点采集的数据通过串口无线传输到PC,如图3.3所示。
串口接收数据 3.3
3.3数据接收接口的显示结果:
1、IP地址和端口号IP地址和端口号是连接服务器的地址。
2、传输区域传输区域可以向网关发送命令数据。
3、接收区域接收传感器节点收集环境参数数据。
“from:0080E102001BC0A8 ”表示网关节点的64位物理地址,并且是全局唯一地址。也可以使用16位网络地址。当节点加入网络时,由协调器或路由器分配。它在网络中是唯一的,可用于通过网络进行设备认证和数据传输。
“RSSI”是接收信号强度,它是无线传输层的可选数据部分。它用于确定通信链路的质量。该数据的值可用于确定是否增加广播传输强度。
剩余数据是在传输传感器测量的环境参数之后获得的值,包括温度和湿度,光强度,二氧化碳浓度。
系统环境试验主要测试系统的稳定性,系统研制成功后,在实验室连续工作72小时,系统安装在温室内进行测试,系统运行稳定可靠。在温室种植前检查环境参数,得到更好的结果,实物如图3.4所示。
STM32F103 硬件板卡实物图3.4
结 束 语
本设计实现了基于STM32智能环境监测系统,达到了温室监测系统的无线传输要求。系统结合网关和蓝牙技术,完成无线传感器网络向无线局域网数据的转换,满足网络化要求。环境监测系统,提高了环境参数传输的实时性和数据共享性。该系统使用灵活方便,具有良好的发展前景。本文的主要工作如下:
1、根据国内外温室系统的研发现状,将无线通信技术应用于环境监测系统,分析比较网关技术特点和蓝牙技术,完成智能环境监测系统STM32的设计。
2、通过分析温室监控系统的特点和要求,提出了网关网络与蓝牙网络相结合的设计理念。通过对常见微处理器的分析和比较,选择计算速度快,功耗低,性价比高的STM32F103 作为系统的控制核心芯片,HC05是蓝牙模块的核心芯片。
3、介绍智能温室监控系统的主要功能,展示整个系统的方案设计,详细描述各部分的软硬件设计,完成系统各部分的硬件设计和软件调试。
4、完成整个系统设计后,系统经过测试,满足预期要求,智能数据采集和传输环境参数,网关-蓝牙网关接收环境参数并进行转换和传输,PC接收并显示环境参数。表明系统的功能和稳定性符合设计要求,具有很强的可用性。
附录 1单片机源程序如下:
参考文献
【1】安鹤峰. 基于STM32处理器的大棚温湿度监控系统设计[J]. 农业科技与装备, 2014(11):15-17.
【2】霍涛, 贾振堂. 基于STM32和STM32F103 的无线通信模块设计与实现[J]. 电子设计工程, 2014, 22(17):106-110.
【3】王丹丹, 宗振海, 陈慧珊, et al. 基于STM32的智能温室远程控制系统的设计[J]. 浙江农业学报, 2014, 26(3):0-791796.
【4】陈致远, 朱叶承, 周卓泉,等. 一种基于STM32的智能家居控制系统[J]. 电子技术应用, 2012, 38(9):138-140.
【5】余欢. 基于STM32的农业环境数据采集终端设计与开发[J]. 上海农业学报, 2016, 32(4):140-146.
【6】卢闯, 王春萌, 彭秀媛, et al. 基于STM32的温室监控系统[J]. 北京农业, 2013(15):282-283.
【7】杨梅. 基于WSNs和STM32W的设施农业装备状态监控系统设计[J]. 自动化与仪器仪表, 2015(1):92-94.
【8】曹圆圆. 基于STM32的温度测量系统[J]. 仪器仪表与分析监测, 2010(1):16-18.
【9】任丰原, 黄海宁, 林闯. 无线传感器网络[J]. 软件学报, 2003, 14(7):1282-1291.
【10】崔莉, 鞠海玲, 苗勇, et al. 无线传感器网络研究进展[J]. 计算机研究与发展, 2005, 42(1):163-174.
【11】Lindsey S . Pegasis : Power-efficient gathering in sensor information systems[C]// IEEE Aerospace Conference Proc. 2005. IEEE, 2005.
【12】Estrin D , Govindan R , Heidemann J , et al. Next century challenges:scalable coordination in sensor networks[C]// 1999.
【13】Perrig A , Szewczyk R , Tygar J D , et al. SPINS: Security protocols for sensor networks.[J]. Wireless Networks, 2002, 8(5):521-534.
【14】Akyildiz I F , Su W , Sankarasubramaniam Y , et al. A survey on sensor networks[J]. IEEE Communications Magazine, 2002, 40(8):102-114.
【15】Perrig A , Szewczyk R , Tygar J D , et al. SPINS: Security Protocols for Sensor Networks[J]. Wireless Networks, 2002, 8(5):521-534.
【16】沙占友. 智能温度传感器的发展趋势[J]. 电子技术应用, 2002, 28(5):6-7.
【17】金伟正. 单线数字温度传感器的原理与应用[J]. 电子技术应用, 2000(6):42-43.
【18】沙占友. 智能化集成温度传感器原理与应用[M]. 机械工业出版社, 2002.
【19】沈永行. 从室温到1800℃全程测温的蓝宝石单晶光纤温度传感器[J]. 光学学报, 2000, 20(1):83-87.
【20】张旭, 亓学广, 李世光, et al. 基于STM32电力数据采集系统的设计[J]. 电子测量技术, 2010, 33(11):90-93.
【21】王永虹, 徐炜, 郝立平. STM32系列ARM Cortex-M3微控制器原理与实践[M]. 北京航空航天大学出版社, 2008.
【22】勾慧兰, 刘光超. 基于STM32的最小系统及串口通信的实现[J]. 工业控制计算机, 2012, 25(9).
【23】王铁流, 李宗方, 陈东升. 基于STM32的USB数据采集模块的设计与实现[J]. 测控技术, 2009, 28(8):37-40.
【24】孙书鹰, 陈志佳, 寇超. 新一代嵌入式微处理器STM32F103开发与应用[J]. 微计算机应用, 2010, 31(12):59-63.
【25】于春雪. 基于STM32F103 的高速以太网接口设计与应用[J]. 电声技术, 2011, 35(9).
附录 1 单片机源程序如下:
/**
*/
/** @addtogroup CMSIS
/** @addtogroup stm32f10x_system
/**
#ifdef __cplusplus
extern “C” {
#endif
/** @addtogroup STM32F10x_System_Includes
/**
/** @addtogroup STM32F10x_System_Exported_types
extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
/**
/** @addtogroup STM32F10x_System_Exported_Constants
/**
/** @addtogroup STM32F10x_System_Exported_Macros
/**
/** @addtogroup STM32F10x_System_Exported_Functions
extern void SystemInit(void);
extern void SystemCoreClockUpdate(void);
/**
#ifdef __cplusplus
}
#endif
#endif /*__SYSTEM_STM32F10X_H */
/**
/**
@}
/
/****************** © COPYRIGHT 2011 STMicroelectronics *END OF FILE/
DHT11.h代码:
#include “dht11.h”
#include “delay.h”
//复位DHT11
void DHT11_Rst(void)
{
DHT11_IO_OUT(); //SET OUTPUT
DHT11_DQ_OUT=0; //拉低DQ
delay_ms(20); //拉低至少18ms
DHT11_DQ_OUT=1; //DQ=1
delay_us(30); //主机拉高20~40us
}
//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
u8 DHT11_Check(void)
{
u8 retry=0;
DHT11_IO_IN();//SET INPUT
while (DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us
{
retry++;
delay_us(1);
};
if(retry>=100)return 1;
else retry=0;
while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~80us
{
retry++;
delay_us(1);
};
if(retry>=100)return 1;
return 0;
}
//从DHT11读取一个位
//返回值:1/0
u8 DHT11_Read_Bit(void)
{
u8 retry=0;
while(DHT11_DQ_IN&&retry<100)//等待变为低电平
{
retry++;
delay_us(1);
}
retry=0;
while(!DHT11_DQ_IN&&retry<100)//等待变高电平
{
retry++;
delay_us(1);
}
delay_us(40);//等待40us
if(DHT11_DQ_IN)return 1;
else return 0;
}
//从DHT11读取一个字节
//返回值:读到的数据
u8 DHT11_Read_Byte(void)
{
u8 i,dat;
dat=0;
for (i=0;i<8;i++)
{
dat<<=1;
dat|=DHT11_Read_Bit();
}
return dat;
}
//从DHT11读取一次数据
//temp:温度值(范围:0~50°)
//humi:湿度值(范围:20%~90%)
//返回值:0,正常;1,读取失败
u8 DHT11_Read_Data(u8 *temp,u8 *humi)
{
u8 buf[5];
u8 i;
DHT11_Rst();
if(DHT11_Check()==0)
{
for(i=0;i<5;i++)//读取40位数据
{
buf[i]=DHT11_Read_Byte();
}
if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
{
*humi=buf[0];
*temp=buf[2];
}
}else return 1;
return 0;
}
//初始化DHT11的IO口 DQ 同时检测DHT11的存在
//返回1:不存在
//返回0:存在
u8 DHT11_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PG端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PG11端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化IO口
GPIO_SetBits(GPIOA,GPIO_Pin_2); //PG11 输出高
DHT11_Rst(); //复位DHT11
return DHT11_Check();//等待DHT11的回应
}
#include “led.h”
#include “delay.h”
#include “sys.h”
#include “usart.h”
#include “lcd.h”
#include “ds18b20.h”
#include “dht11.h”
int main(void)
{
u8 t=0;
u8 temperature;
u8 humidity;
u8 key = 0;
SystemInit();
delay_init(); //延时初始化
// NVIC_Configuration();
uart_init(9600);
LED_Init();
KEY_Init();
LCD_Init();
TIM3_PWM_Init(899,0); //不分频。PWM频率=72000000/900=80Khz
POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,200,16,16,"Mini STM32");
LCD_ShowString(60,70,200,16,16,"DHT11 TEST");
LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(60,200,200,16,16,"modified by Leon");
LCD_ShowString(60,110,200,16,16,"2018/7/22");
while(DHT11_Init()) //DHT11初始化
{
LCD_ShowString(60,130,200,16,16,"DHT11 Error");
delay_ms(200);
LCD_Fill(60,130,239,130+16,WHITE);
delay_ms(200);
}
LCD_ShowString(60,130,200,16,16,"DHT11 OK");
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,150,200,16,16,"Temp: . C");
LCD_ShowString(60,170,200,16,16,"Humi: %");
while(1)
{
if(t%10==0)//每100ms读取一次
{
DHT11_Read_Data(&temperature,&humidity); //读取温湿度值
LCD_ShowNum(60+40,150,temperature,2,16); //显示温度
LCD_ShowNum(60+40,170,humidity,2,16); //显示湿度
}
key=KEY_Scan(0); //得到键值
switch(key)
{
case KEY0_PRES:
LED0=!LED0;
break;
case KEY1_PRES:
LED1=!LED1;
break;
case WKUP_PRES:
LED0=!LED0;
LED1=!LED1;
break;
default:
delay_ms(10);
}
}
}
HC05蓝牙:
#include
typedef unsigned char u8;
typedef unsigned int u16;
u8 r_buf; //蓝牙接收到的字符存储缓冲区
sbit led1 = P1^0; //灯1,当接收字符0时,灯1亮
sbit led2 = P1^1; //灯2,当接收字符1时,灯2亮
sbit led3 = P1^2; //灯2,当接收其它字符时,灯3亮
sbit led4 = P1^3; //蓝牙连接状态灯,当蓝牙连通时,灯4亮
sbit state = P3^6; //蓝牙连通的状态标志位
void delay(u16 z) //延迟函数
{
u16 x,y;
for(x=z;x>0;x–)
for(y=125;y>0;y–);
}
void InitUART() //串口初始化9600
{
//初始化串口定时器9600
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
ES = 1;
EA = 1;
}
void SendOneByte(unsigned char c) //发送字符函数
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
InitUART();
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
r_buf = ‘2’;
while(1)
{
if(state == 1) //蓝牙连通状态判断
{
led4 = 0; //如果蓝牙匹配成功,灯4亮
}
else
{
led4 = 1; //如果蓝牙匹配不成功,灯4不亮
}
}
}
void UARTInterrupt(void) interrupt 4 //串口接收字符
{
if(RI)
{
RI = 0;
//add your code here!
r_buf = SBUF;
if(r_buf == ‘0’) //如果为字符‘0’,灯1亮
{
led1 = 0;
delay(1000);
led1 = 1;
}
if(r_buf == ‘1’) //如果为字符‘1’,灯2亮
{
led2 = 0;
delay(1000);
led2 = 1;
}
else //如果为其它字符,灯3亮
{
led3 = 0;
delay(1000);
led3 = 1;
}
SendOneByte(r_buf); //回发该字符
}
}
致 谢
一个紧张,充实和令人难忘的大学学习生涯即将结束。 微风无法挡住云层,但云层已经夺走了岁月,打开了尘封的记忆。在毕业论文写作过程中,X老师一直悉心指导和严格要求, 您的宝贵意见使我不再像选择,撰写和修改论文那样困惑,但我知道论文的缺点和修订的方向。你诚实严谨的学术态度对我产生了深远的影响,并从中受益匪浅。 我将在以后的学习和工作中记住它。
其次,我要感谢我的兄弟姐妹们帮助我解决问题,这样我就可以克服困难,让我在心理上获得真正的体验。 与此同时,我也改进了技术。当然,我要特别感谢我的父母和亲属在身心方面给予的大力支持。 他们给予我的爱和关怀给了我无限的激情和动力,这样我就可以一如既往地追求自己的青春梦想。 道路很长,道路很长,我会搜索它。 在未来的学习和工作过程中,我一定会投入所有的热情和热情来实现期望!
最后,我想真诚地对参与评论和回复的所有老师说: 你们辛苦了!