基于STM32的环境监测系统 (esp8267)(下)

简介: 基于STM32的环境监测系统 (esp8267)(下)

基于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)


目录
相关文章
|
10天前
|
传感器 监控 物联网
基于STM32+微波雷达设计的非接触式睡眠监控系统
本项目开发一种非接触式的睡眠监控系统,该系统利用先进的60GHz毫米波雷达技术和STM32微控制器,实现了对人体在睡眠过程中的存在感知、运动感知以及生理指标如呼吸频率、心率的实时监测。系统能够自动评估睡眠质量,并在用户睡眠周期结束时提供睡眠评分。为了确保用户能够在任何地点了解自己的睡眠状况,系统集成了Wi-Fi模块,可以将收集到的数据上传至华为云物联网平台,并通过专门设计的移动应用程序供用户远程访问。此外,系统还具备超阈值报警功能,当检测到异常的生理指标时会发出警报提醒。本地1.44寸TFT LCD显示屏用于实时显示监测到的信息,包括生理指标和环境数据。为了全面监测用户的健康状况,系统还加入了
38 0
基于STM32+微波雷达设计的非接触式睡眠监控系统
|
1天前
|
存储 机器学习/深度学习 编解码
基于STM32的车牌识别系统
基于STM32的车牌识别系统
7 0
|
1天前
|
传感器 测试技术 芯片
基于STM32的环境监测系统 (esp8266)(上)
基于STM32的环境监测系统 (esp8266)(上)
6 0
|
1天前
|
传感器 数据采集 监控
基于STM32的温室大棚环境检测及自动浇灌系统设计
基于STM32的温室大棚环境检测及自动浇灌系统设计
13 0
|
1月前
|
存储 传感器 Linux
STM32微控制器为何不适合运行Linux系统的分析
总的来说,虽然技术上可能存在某些特殊情况下将Linux移植到高端STM32微控制器上的可能性,但从资源、性能、成本和应用场景等多个方面考虑,STM32微控制器不适合运行Linux系统。对于需要运行Linux的应用,更适合选择ARM Cortex-A系列处理器的开发平台。
142 0
|
3月前
|
前端开发 安全
stm32f407探索者开发板(十一)——SystemInit时钟系统初始化剖析
stm32f407探索者开发板(十一)——SystemInit时钟系统初始化剖析
106 0
|
4月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
334 2
|
3月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
548 0
|
4月前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
465 4
|
4月前
|
传感器
【经典案例】STM32F407使用HAL库配置I2C详解
STM32F407是一个强大的微控制器,广泛应用于嵌入式系统中。在许多应用中,我们需要使用I2C总线来与传感器、EEPROM、显示屏等外设进行通信。本文将详细介绍如何使用STM32 HAL库来配置和使用I2C接口。
523 2