基于STM32的户外环境监测系统的设计

摘要

摘 要: 伴随着电子产品的快速发展,电子测量的应用也越来越广泛,不再局限于军事,转向民用发展。更加使得电子测量技术的到极大的发展。数字信号有着良好的抗材料本身干扰和环境干扰的能力,所以,现在市面上的模拟信号产品逐渐被数字信号产品代替,并且使得测量产品越来越方便。根据市场调查,虽然市场上有很多关于环境监测系统测试仪,但大多数是应用于空气,湖泊,海洋,河流等大型检测系统,关于检测环境的小型简单方便使用的检测系统。本文开发并实现基于一种嵌入式开发平台的 STM32 的 WiFi 模块,结合以上物联网新型概念,实现用户通过网络对环境的实时监控。该系统可以使用户能够对想要知道的情况进行实时的掌握以及控制。通过各种传感器获取家庭内信息(温湿度信息、光照信息、PM2.5),用户在Android界面上可以对这些信息进行掌控。
关键词:环境监测;STM32;传感器;WIFI;Android

引言

在日常生活中,关乎我们的生活质量,也在农业大棚中关乎大棚的产量,合适的,会极大地提高产量。合适的也会极大地提高我们的生活质量。但是。传统的监控系统监控耗时间极长,效率挤满,而且需要人工不间断的监控,费事,费力,才能达到每时 每刻监控的目的。我们采用stm32对外界环境的抗干绕能力也强,可以应用在场合,并且配合Android可以有效的采集多个传感器和信息分析,分析等信息,并置设报响声的系统,数据超过设定的数值,就可以利用响声系统来提醒操作人员进行调控。该系统对可以系统的监控和控制,有不错的效果。

系统的概述和相关原理

2.1 系统的概述
2.1.1 总体设计的方案
本设计包括了主控制器、WIFI模块、温湿度监测、光照监测、PM2.5监测、手机客户端以及电源模块。电源模块为整个系统提供供电,主控制器模块通过串口协议与WIFI模块进行通信,利用串口发送AT指令使其与手机的wifi通信,通过STM32采集传感器检测到的数据,并且通过wifi发送到手机客户端,并可通过手机控制阈值,当数据值超过了阈值,单片机控制语音播报模块进行语音信息的播放。
该系统主要应具备以下功能:
(1)可实现环境监测系统的正常功能;
(2)Arduino手机app远程显示控制能够进行设置报警数值;
(3)STM32通过各种接口控制温湿度传感器,光照强度传感器,空气质量传感器,PM2.5传感器以及大气压强传感器,进而获取环境参数,并显示在LCD5110屏幕上;
(4)能够实现AC-DC降压电路给STM32系统供电
2.1.2 总体框图
该系统采用的是5V供电,主要是以STM32平台作为主控制器,,主控制器模块通过串口协议与WIFI模块进行通信,利用串口发送AT指令使其与手机的wifi通信,通过STM32采集传感器检测到的数据,并且通过wifi发送到手机客户端,并可通过手机控制阈值,当数据值超过了阈值,单片机控制语音播报模块进行语音信息的播放。
本系统总体框图如下:
在这里插入图片描述
2.2.2 WIFI模块
ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。
ESP8266封装方式多样,天线可支持板载PCB天线,IPEX接口和邮票孔接口三种形式;
ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。
支持无线802.11 b/g/n 标准
支持STA/AP/STA+AP 三种工作模式
内置TCP/IP协议栈,支持多路TCP Client连接
支持丰富的Socket AT指令
支持UART/GPIO数据通信接口
支持Smart Link 智能联网功能
支持远程固件升级(OTA)
内置32位MCU,可兼作应用处理器
超低能耗,适合电池供电应用
3.3V 单电源供电

硬件电路设计

3.1 主控电路
STM32F103x8和STM32F103xB增强型系列使用高性能的ARM® Cortex™-M3 32位的RISC内核,工 作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口 和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和1个 PWM定时器,还包含标准和先进的通信接口:多达2个I2C接口和SPI接口、3个USART接口、一个 USB接口和一个CAN接口。
STM32F103xx中等容量增强型系列产品供电电压为2.0V至3.6V,包含-40°C至+85°C温度范围和-40°C至+105°C的扩展温度范围。一系列的省电模式保证低功耗应用的要求STM32F103xx中等容量增强型系列产品提供包括从36脚至100脚的6种不同封装形式;根据不同的封 装形式,器件中的外设配置不尽相同。
在本设计中,采用STM32F103C8T6最小系统当做主控,图3-1为最小系统电路的原理图。
在这里插入图片描述

                       图3-1 STM32F103C8T6最小系统原理图

3.2 WIFI通信模块
WIFI模块又名串口WIFI模块,属于物联网传输层,功能是将串口或TTL电平转为符合WIFI无线网络通信标准的嵌入式模块,内置无线网络协议IEEE802.11b.g.n协议以及TCP/IP协议。传统的硬件设备嵌入WIFI模块可以直接利用WIFI联入互联网,是实现无线智能家居、M2M等物联网应用的重要组成部分。ESP8266是一款超低功耗的模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和互联网的应用设计,可将用户的物理设备连接到WIFI无线网络上,进行互联网或局域网通信,实现联网功能。

在这里插入图片描述
3.3报警模块
报警电路主要由蜂鸣器和LED组成,当环境数据超过阈值时,蜂鸣器报警,LED点亮。
该模块的电路连接图如下图3-3所示。

在这里插入图片描述

核心代码

ESP8266模块支持STA/AP/STA+AP 三种工作模式。
STA 模式:ESP8266模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。
AP 模式:ESP8266模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。
STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。
本系统此次使用AP模式,实现局域网的无线控制。WIFI模块主要是负责系统与手机WIFI的通信,从而实现两者之间的数据传输。MCU与WIFI通信主要是通过串口来实现的,通过发送相关的AT指令,系统就可以完成对WIFI模块的操作以及相应的控制。
其实现的部分软件代码如下:
在这里插入图片描述
Nokia5110的通信协议是一个没有MISO只有MOSI的SPI协议,如果MCU有富裕的SPI接口,也可以利用硬件SPI,但通常没有必要,只需要软件程序模拟即可。本程序使用软件来模拟SPI,
程序如下:
在这里插入图片描述
管脚D/C(LCD_DC)用于选择写的是命令(D/C=0)还是数据(D/C=1)。
Nokia5110的初始化接通电源后,内部寄存器和RAM的内容是不确定的,这需要一个RES低电平脉冲复位一下。当VDD变为高电平,达到VDDmin(或更高)之后,最多100ms,RST输入低电平(电平幅度<0.3VDD)。

在这里插入图片描述

硬件展示

在这里插入图片描述

附录核心代码

附录三:程序部分代码
int main(void)
{

	 delay_init();
	 NVIC_Configuration();
	 TIM_Test();          //定义频率为100HZ的定时器
	 uart_init(115200);     //初始化串口
	 usart3_init(115200);
	 IIC_Init();	         //初始化I2C	
     DHT11_Init();
     Adc_Init();           //初始化ADC	
	 KEY_Init(); 
	 LCD_Init();
	 LCD_Clear();

	 lcd_start();
	 wifiAp_init();
	 sendWifi=1;         
     LCD_Clear();
   while(1)
   {
		 if(COUNT%200==0)                               //500ms更新一次数据
		 {
			  adConvert();                                //读取AD值
		    DHT11_Read_Data(&temperature,&humidity);		//读取温湿度值
		 }

		 key_service();                             //按键服务
		 display_service();                          //显示界面
         Beep();
		 if(COUNT>=4000)
		 {
			 if(sendWifi==1)
			 {
					 LCD_Write_Char(8,5,'s');
					 LCD_Write_Char(10,5,'e');
					 LCD_Write_Char(12,5,'n');
					 LCD_Write_Char(14,5,'d');
					 LCD_Write_Char(16,5,'.');
					 LCD_Write_Char(18,5,'.');
					 LCD_Write_Char(20,5,'.');
					 LCD_Write_Char(22,5,'.');

				   atk_8266_send_cmd("AT+CIPSEND=0,14","OK",200);  //发送数据指令
				   atk_8266_send_data(TxBuffer,"OK",400);  //发送指定长度的数据
				 
				     LCD_Write_Char(8,5,' ');
					 LCD_Write_Char(10,5,' ');
					 LCD_Write_Char(12,5,' ');
					 LCD_Write_Char(14,5,' ');
					 LCD_Write_Char(16,5,' ');
					 LCD_Write_Char(18,5,' ');
					 LCD_Write_Char(20,5,' ');
					 LCD_Write_Char(22,5,' ');
			 } 
				COUNT=0;
		 }
   }
}

获取资料

大家点赞、收藏、关注、评论
查看👇🏻文章下方名片联系我即可~👇🏻

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐