基于STM32的环境监测系统 (esp8267)(上)+https://developer.aliyun.com/article/1627383
7.4 OLED显示屏模块
在显示模块的选择上,一般常见的是OLED和LCD两种,本系统选用0.96寸的OLED显示屏将检测的环境数据显示出来。
OLED显示屏驱动电流小,可以自己发亮,不像LCD屏需要背光灯,其响应速度也比同类型的LCD快;能耗方面,同等亮度下,虽然LCD能耗低一些,但是背光源长亮的条件下,LCD的能耗会超过OLED,从侧面说明在此等的状态下,OLED的能耗要优于LCD;
OLED裸屏总共种接口包括:6800、8080两种并行接口方式、3线或4线的串行SPI接口方式、IIC接口方式(只需要2根线就可以控制OLED),本次实验的OLED采用的就是IIC接口方式。
IIC主从通信过程
主设备往从设备写入数据需要有下面的过程:
1.主设备发送一个起始信号(START)。
2.主设备在数据线上广播从设备地址。
3.确定数据传输方向(R/W)。
4.等待从设备应答信号(ACK)。
5.主设备发送数据到从设备,从设备接收到后,会返回给主设备一个应答信号,直到主设备发送完数据,或者从设备返回一个NACK信号,表示从设备不再接收数据。
6.数据发送完毕,主设备发送终止信号(STOP)。
目前,OLED显示屏技术被看作是下一代屏幕科技的创新领域,同时也是下一代平面屏幕的强力应用技术,而且作为新兴技术产品,无论是在价格优势还是性能方面,都要强于过去传统的LCD显示屏。0.96寸的OLED显示屏实物图
本系统中OLED显示屏有四个引脚,分别是引脚1是接地的引脚,和STM32F103最小系统板的GND相连;引脚2为VCC,是OLED显示屏的供电引脚,其工作电压的范围为3.3V-5V;引脚3为SCL时钟线与STM32F103最小系统板的PB6端口相连接;引脚4为SDL数据线与STM32F103最小系统板的PB7相连接。
7.5 WIFI通信模块
在数据传输方面,采用下位机上传至上位机。本系统决定采用ESP8266作为WiFi通信模块。ESP8266是一款非常受欢迎的低成本、高性能Wi-Fi模块。它集成了Wi-Fi功能和TCP/IP协议栈,并可以通过串口与主控制器进行通信。
以下是对ESP8266模块的详细讲解:
- 架构和功能:ESP8266模块采用了32位的Tensilica处理器架构,通常是ESP8266EX芯片。它集成了Wi-Fi无线网络连接功能和TCP/IP协议栈,具有可靠的数据传输能力。ESP8266还包含用于控制、调度和管理网络连接的固件。
- Wi-Fi功能:ESP8266支持802.11 b/g/n无线标准,并且可以作为Wi-Fi客户端或者Wi-Fi接入点(AP)运行。作为客户端,ESP8266可以连接到现有的Wi-Fi网络,实现与互联网的通信。作为AP,它可以创建自己的Wi-Fi网络,允许其他设备连接到它并进行数据交换。
- 通信接口:ESP8266模块通常通过串口(UART)与主控制器进行通信,使用AT指令集作为通信协议。主控制器可以通过发送AT指令给ESP8266来控制Wi-Fi连接、数据传输和网络配置。除了串口,ESP8266还可以通过SPI和I2C等接口与其他外部设备进行通信。
(1)具有三种工作模式:Station:用于连接热点的模式;AP:用于作为热点的模式;Station+AP:两个功能可以同时打开。
(2)支持无线802.11b/g/n标准。
(3)在该系统内设置有CTP/IP协议线,并支持多路TCP Client连接。
(4)在其内部的控制单元位32位,可兼做应用MCU。
(5)此模块功耗非常低,适合外部电源供电使用。
(6)ESP8266模块是市面上常见的数据传输的模块。它的体积非常小而且设计精巧,面积与一元硬币相仿,可以很容易将其装进到各种系统中。
7.6 蜂鸣器报警模块
环境检测系统在检测到空气质量超出某一特定的阈值后,便会由单片机控制蜂鸣器开和关,起到报警通知到相关人员的用处。
蜂鸣器一般分为无源和有源两种,无源蜂鸣器的内部结构中没有振荡器与源,需要加一个音频信号去进行驱动,这个音频信号一般为2K-5K的方波,通过控制音频信号的频率,能够达到“哆瑞咪发”的效果;而有源蜂鸣器则自带振荡器,通上直流电后,当I/O口输入对应电平时,才会发声报警。
本系统中使用的蜂鸣器模块引脚连接说明如下:在输入端引脚1为I/O口与单片机的PA5端口相连接,单片机的输出高低电平,来控制蜂鸣器是否鸣叫;引脚2是接地的引脚,与单片机的GND相连;引脚3为VCC,是蜂鸣器模块的供电引脚,其工作电压为5V。
8、软件主程序设计
主程序负责实现设计的所有功能,从总体系统结构上看,是以STM32单片机为核心,对各个模块进行初始化,引入各个子程序模块的头文件,从而实现各个模块的调用,各个模块互相统筹合作,通过网络将数据上传到上位机,并且展示给用户,从而实现整体的功能逻辑。结合环境的功能需求,对环境检测系统所需求的软件架构进行了设计。
9、云台的使用(ONENET)
本次设计的上位机采用的是onenet云平台。onenet云平台是由中国移动打造的物联网开放的平台,可以快速的完成设备开发部署,能够轻松的帮助用户实现产品的接入与产品的连接,为智能系统和智能产品提供了方便可靠的物联网连接方案。onenet云平台适配各种网络协议和网络环境,同时还支持大量的传感器设备和智能设备的接入,而且简单易学,功能强大,可以让初学者轻易上手。onenet云平台满足了本设计的需求。针对其使用,首先要完成的准备工作有以下几个步骤:
(1)创建onenet云平台账号并登录。
(2)点击控制后台,找到产品开发。
(3)添加产品,填写添加产品的信息。
(4)添加设备,在详情里面可以看到设备ID、创建时间、授权信息、接入方式等需要用到的信息。
配置完成后的服务器界面如下图所示。
使用原理:各个模块分别作用,将感知到的环境数据传输到STM32单片机中,进行处理,通过ESP8266WiFi模块传输到上位机即onenet云平台,此时在onenet云平台可以详细的看到各个模块检测的数据。其工作流程为:模块先将数据传入到STM32单片机中,接着 STM32F103单片机控制WiFi模块进行与上位机的通信,将数据上传到onenet云平台。至此,设计完成了上位机与下位机的通信。
10、功能测试
将程序烧录进STM32单片机后,对系统供电,首先观察OLED显示器是否显示正常,若正常,则说明电路没有问题,接着观察所出现的数据是否符合预期设想变化,之后观察其他的传感器是否都在正常进行工作,每个传感器模块在显示屏上是否有数值输出,若一切正常,则表示没有问题。用上位机可以验证WiFi模块功能是否正常,即上位机的数据是否同步准确。若是单个数据没显示,则检查代码是否有错误,或者观察对应的传感器是否有损坏现象。检查完毕后,对各个传感器进行不同环境下测试。
(1)开机动画显示。系统上电后,首先ESP8266进行联网配置,同时OLED屏幕上显示ESP8266初始化,同时在下方还有进度条显示,若成功,则进度条正常读条完成,若不成功,则进度条卡住等待,观察上电状态,符合设想目标,测试完毕。
(2)在ESP8266完成正常初始化后,系统各模块工作正常,符合设想目标,测试温湿度模块读取数据。观察OLED屏幕,在OLED第一行显示获取环境的温度,第二行显示获取环境的湿度,第三行显示获取环境的光照值,第四行显示获取环境的空气质量,观察上电状态,各模块读取数据状态正常,符合设想目标,测试完毕。
(3)温湿度检测模块,DHT11温湿度传感器的测试比较容易,在自然条件下对数据进行记录,然后对着DHT11温湿度传感器哈几口气,观察数值变化情况,若前后数据均在合理范围之内的情况下,如温度变化范围是0到40摄氏度,湿度为百分之0到100,哈气后的温度对应缓慢上升,湿度对应有所增加,则认为DHT11温湿度传感器的测试通过。
(3)光照强度监测,针对环境光照值,利用光敏监测模块,在自然条件下,用手轻轻捏住光敏探头,并观察OLED上的光照值是否发生明显下降变化,并检验小于阈值20时,灯是否会打开。若均符合实验预想,则测试通过。
(4)空气质量检测,针对MQ-135空气质量传感器模块,它可以检测多种有害气体,例如:氨气、硫化物和烟雾等。测试选用燃烧后的木棍作为道具,燃烧后的木棍气体中包含烷类气体及石油液化气,操作是将木棍点燃,随后使木棍变成熄灭状态,然后使其缓缓靠近MQ-135传感器,观察OLED显示数值变化,并检验大于阈值180时,蜂鸣器能否正常报警鸣叫,风扇是否打开转动。若均符合实验预想,则测试通过。
(5)上位机检测,在完成上述的各个模块功能检测后,检查在onenet云平台上是否能实时监测系统获取的环境数据,检查数据接收的最新时间,若均符合实验预想,则测试通过。
至此,所有工作的模块都已经检测完毕,当所有的模块都能正常工作时,意味着环境检测系统设计成功。
11、总结
本设计是基于STM32F103C8T6单片机来实现的,核心主控芯片连接光照强度检测模块、温湿度检测模块、空气质量检测模块;OLED显示屏;电源稳压降压模块;WiFi通信模块和蜂鸣器报警模块,并通过WiFi通信模块把数据上传到onenet云平台,可在上位机上实时观看。当空气质量达到某一特定的阈值时,会自动控制蜂鸣器进行报警,便于及时做出措施改善,使所处的环境达到或接近一个最佳的程度。
本文所设计的环境检测系统,能够成功应用于户外的环境。经过实际运行的结果反馈表明,本系统可实现“全面采集温湿度、光照强度和空气质量的信息,正确的显示在OLED显示屏上,并将信息实时传至onenet云平台”的功能。本系统工作稳定、抗干扰能力强、操作起来简单便捷,满足了现代环境检测的设计要求。
12、附录(运行视频、实物图片)
图片展示:
视频展示:
基于stm32的环境监测(esp8266)