基于STM32 WiFi仓库烟雾温湿度报警检测系统设计与制作_第1页
基于STM32 WiFi仓库烟雾温湿度报警检测系统设计与制作_第2页
基于STM32 WiFi仓库烟雾温湿度报警检测系统设计与制作_第3页
基于STM32 WiFi仓库烟雾温湿度报警检测系统设计与制作_第4页
基于STM32 WiFi仓库烟雾温湿度报警检测系统设计与制作_第5页
已阅读5页,还剩38页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1产品功能分析.....................................................1

2产品设计方案遴选.................................................1

2.1产品开发板的选择...........................................1

2.2WiFi模块的选择.............................................2

2.3温湿度传感器的选择.........................................3

2.4烟雾传感器的选择...........................................3

2.5显示屏的选择...............................................3

2.6系统框图设计...............................................4

3产品设计技术标准.................................................6

4产品硬件设计.....................................................6

4.1STM32F103开发板............................................6

4.2ESP8266WiFi模块............................................8

4.3DHT11温湿度传感器..........................................9

4.4MQ-2气体传感器............................................10

4.5LCD1602液晶显示屏.........................................11

4.6蜂鸣器....................................................12

4.7继电器....................................................13

5产品软件设计....................................................14

5.1软件开发环境..............................................14

5.1.1KeiluVision5软件开发环境...........................14

5.1.2Androidstudio软件开发环境..........................15

5.2软件开发流程..............................................16

5.3主程序流程图..............................................17

5.4子程序流程图..............................................18

5.5产品程序清单..............................................20

6产品使用说明书..................................................20

I

湖南商务职业技术学院毕业设计

6.1电路的组装................................................20

6.2产品的调试................................................21

6.3产品装配图................................................21

6.4产品使用说明..............................................22

7参考资料........................................................23

8附录............................................................24

8.1附录1元器件清单...........................................24

8.2附录2电路原理图...........................................25

8.3附录3PCB设计图............................................26

8.4附录4产品实物图...........................................27

8.5附录5主程序代码...........................................28

II

湖南商务职业技术学院毕业设计

基于STM32WiFi仓库烟雾温湿度报警检测系统设计

与制作

1产品功能分析

随着科技的发展,各种物联网设备的应用日益广泛,仓库安全监控系统成

为了保障仓库内财产安全的重要手段之一。而在仓库中,烟雾、温度和湿度等

因素对库内物品的安全与保密性具有重要影响。因此,设计并制作一套基于ST

M32WiFi的仓库烟雾温湿度报警检测系统具有重要的实际意义。

本产品旨在通过STM32F103单片机、ESP8266模块,结合传感器技术和无

线通信技术,实现对仓库烟雾、温度和湿度的实时监测和报警功能。本系统由

STM32F103单片机、ESP8266、按键、LCD1602、烟雾传感器、温湿度传感器、

继电器、蜂鸣器、LED等构成。

STM32F103单片机是一款基于Arm内核设计的高性能微控制器,具有高性

能、丰富的外设、可靠、易于开发的特点。ESP8266模块是一款功能强大且价

格实惠的WiFi芯片,它具有高度集成化的特点,适合于物联网应用的开发。

总体来说,该系统具有自动化监测、及时报警、远程通知等优势。它的设

计和制作旨在提高仓库的安全性和管理效率,降低火灾和物品损失的风险。

2产品设计方案遴选

在进行电路的组装前需要分析适合该产品的硬件,使该产品更好的发挥其

功能。

该产品需要我们提供STM32F103开发板,ESP8266WiFi模块,MQ-2烟雾传

感器,DHT11温湿度传感器,LCD1602液晶显示屏这些模块,然后我们需要在这

些模块中考虑性能,环保问题。

2.1产品开发板的选择

方案一:ArduinoUNO开发板。ArduinoUNO的存储空间有限,仅有32KB

的Flash存储器,对于复杂的项目来说可能不够容纳代码和数据。其次,

ArduinoUNO采用的ATmega328P微控制器是8位处理器,处理速度和性能较低。

此外,ArduinoUNO本身没有内置的网络连接功能,如果需要进行网络通信,

1

湖南商务职业技术学院毕业设计

需要使用额外的扩展模块。最后,ArduinoUNO并不支持操作系统,无法进行

多任务处理和操作系统级别的功能。

方案二:STC89C51开发板。STC89C51的存储空间较小,仅为8KB,对于复

杂的项目来说可能不足以储存大量的代码和数据。其次,该单片机运行速度较

慢,主频仅为12MHz,对于一些需要高速计算和响应的应用来说可能不够迅捷。

此外,STC89C51的适用范围相对较窄,主要用于低要求且资源有限的嵌入式系

统开发,对于复杂度较高的应用来说可能不够强大。

方案三:STM32F103开发板。STM32F103是一款功能强大的32位单片机。

STM32F103基于ARMCortex-M系列处理器,拥有32位的计算能力和强大的处

理性能,能够处理复杂和高速的任务。STM32F103具有多种外设,如GPIO、

UART、SPI、I2C、ADC、PWM等,以及丰富的通信接口和传感器接口,使其能够

满足各种应用需求。STM32F103系列提供不同的存储选项,包括闪存、片上RAM

和外部存储器接口,可以灵活满足不同项目的存储需求。ST提供了一套完整的

开发工具链,包括开发板、集成开发环境(如STM32CubeIDE)、调试器和编译

器等,使开发过程更加高效和便捷。综上所述,STM32F103具有强大的性能、

丰富的外设和功能、灵活的存储选择以及集成的开发工具链,使其成为一款优

秀的单片机平台。

综合上面的设计方案,我选择了方案三的STM32F103开发板,拥有庞大的

开发者社区和丰富的资料资源,适合外接传感器,且功能强大,处理和运行能

力好,所以我选择使用STM32F103开发板进行设计。

2.2WiFi模块的选择

方案一:EMW1062WiFi模块。EMW1062WiFi模块的固件功能有限,

可能缺少一些高级功能,如支持更复杂的网络协议和安全性。此外,该模块

的成本相对较高,对于预算有限的项目来说可能不太适合。

方案二:ESP8266WiFi模块。ESP8266WiFi模块价格相对较低,适合

于成本敏感的项目。且集成了WiFi功能,支持TCP/IP协议栈,具备可靠的

网络连接和高效的数据传输能力。ESP8266可以以透明传输模式或作为单片

机来编程,支持多种开发环境和编程语言。具有多个GPIO、PWM、SPI、

I2C等接口,可以方便地与其他设备进行通信和扩展。

综上所述,我选择使用ESP8266WiFi模块,低成本、强大功能、丰富

的开发资源、灵活的配置选项、丰富的外设接口和强大的社区支持等优势,

成为物联网和嵌入式系统中广泛应用的WiFi模块。

2

湖南商务职业技术学院毕业设计

2.3温湿度传感器的选择

方案一:SHT11温湿度传感器。首先,SHT11传感器的通信协议复杂,

SHT11传感器使用一种复杂的串行通信协议进行数据传输,需要一定的学习

和理解成本。其次,相对于一些简单的温湿度传感器,SHT11传感器的价格

较高,可能会增加项目成本。

方案二:DHT11温湿度传感器。首先,DHT11传感器的价格相对较低,

适用于大规模应用或项目成本有限的情况下。其次,DHT11传感器的连接

和读取操作简单,只需要通过单一的数字信号线与微控制器通信即可。再次,

DHT11传感器提供较高的温度和湿度测量精度和采用高质量的传感元件和

芯片,具有较好的稳定性和可靠性。

综合上述方案,我选择了方案二DHT11温湿度传感器,成本低,易操

作,稳定可靠。

2.4烟雾传感器的选择

方案一:MQ-7气体传感器。首先,MQ-7传感器只能检测一氧化碳气体,

对其他有害气体的检测能力较弱。其次,在湿度较高的环境中可能会出现误

报或灵敏度下降的情况。

方案二:MQ-2气体传感器。首先,MQ-2传感器能够检测多种易燃气体

和烟雾,适用于多种应用场景。其次,MQ-2传感器具有较高的灵敏度,能

够检测到较低浓度的气体。再次,MQ-2传感器使用方便,只需要简单的连

线和电路即可工作,而且价格相对较低,适合大规模应用或有限成本的项目。

综合上述方案,我选择了方案二,因为MQ-2气体传感器的价格较为实

惠,灵敏度较高,而且检测气体多样。

2.5显示屏的选择

方案一:OLED12864液晶显示屏。首先,OLED12864显示屏易受烟雾、

水汽等污染物影响,可能导致显示效果模糊或损坏。其次,OLED显示屏寿

命相对较短,在连续使用的情况下,可能会出现亮度不均或出现坏点的问题。

再次,OLED12864显示屏像素点较小,显示的细节和字体可能不够清晰,

对光和湿度敏感,可能需要额外的防护措施。

方案二:LCD1602液晶显示屏。首先,LCD1602显示屏有更长的使用寿

3

湖南商务职业技术学院毕业设计

命,不容易出现亮度不均和坏点的特点。其次,LCD1602显示屏显示效果更

稳定,受外界环境的影响较小,能够在宽范围温度下正常工作。再次,

LCD1602显示屏显示字符和图标更清晰,适合简单的文本和数字显示且像素

点相对较大,更容易识别和观看。而且LCD1602显示屏有更广泛的应用和更

大的市场支持,使其易于获取和集成到不同的电子设备中。

综合上述方案,我选择了方案二的LCD1602液晶显示屏支持的范围广,

效果更稳定,显示字符和图标更清晰,更有经济价值。

2.6系统框图设计

本产品由STM32F103单片机、ESP8266WiFi模块、按键、LCD1602液晶

显示屏、MQ-2烟雾传感器、DHT11温湿度传感器、继电器、蜂鸣器、LED

等构成。

4

湖南商务职业技术学院毕业设计

图2.1系统框图

5

湖南商务职业技术学院毕业设计

3产品设计技术标准

[1]J-STD-001E电气与电子组件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E电子组件的可接受性要求

[3]IPC-7711/21电子组件和电路板的返工&返修

[4]GB/T11457-2006信息技术软件工程术语

[5]GB/T8566-2007信息技术软件生存周期过程标准

[6]GB/T8567-2006计算机软件文档编制规范

4产品硬件设计

4.1STM32F103开发板

STM32F103单片机自带2个ADC转换,方便我们在设计烟雾和一氧化碳的

时候免去了需要加外部ADC进行转换,非常方便;STM32F103单片机有着很强

大的通信功能和控制功能具有5个串口进行通信。

STM32F103单片机的特点有:

1.STM32F103系列的起振晶部分采用了RTC,低负载的方式,而没有像传统

的单片机使用比较廉价的圆柱晶振。

2.引脚个数为48个。

3.工作频率为72MHZ

4.单片机具有3个普通定时器和1个高级定时器。

5.单片机具有2个2位/16通道的ADC模数转换。

6.使用了3.3V稳压芯片,可以保证最大输出300mA电流。

7.支持ST-LINK和JTAG调试下载。

8.存储资源为64kbbyteFLASH和20byteSram。

6

湖南商务职业技术学院毕业设计

图4.1STM32F103实物图

图4.2STM32F103原理图

7

湖南商务职业技术学院毕业设计

4.2ESP8266WiFi模块

ESP8266模块是一款超低功耗的UART-WiFi透传模块,功能非常强大,通

信距离很远,价格低,体积小,方便嵌入任何产品,支持AP,STA,AP+STA三种

模式,简洁高效的AT指令。ESP8266无线模块工作电压是3.3V,单片机5V电

压满足其工作电压要求,而且体积很小,价格非常便宜。

图4.3ESP8266WiFi模块实物图

排母

U14

A1018

TXDGNDGND

27

ENIO2

36

RSTIO0

45A9

+3V33V3RXD

ESP8266

无线

图4.4ESP8266WiFi模块原理图

8

湖南商务职业技术学院毕业设计

4.3DHT11温湿度传感器

DHT11温湿度传感器占用的面积比较小,采用的是单总线的数据传输

方式。它的抗干扰能力非常的强,经常用于机房检测、高炉测温、家庭温度

控制等方面,适合于很多空间比较小的场合和数字温度检测等领域。传感器

转换时间为75ns,比传统DS1820速度要快很多。它检测的结果以数字量方

式串行传送。具有超快响应、抗干扰能力强、品质卓越、性价比极高等优点。

图4.5DHT11温湿度传感器实物图

图4.6DHT11温湿度传感器原理图

9

湖南商务职业技术学院毕业设计

4.4MQ-2气体传感器

MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡。

当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度

的增加而增大。

MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃

蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应

用的低成本传感器。

图4.7MQ-2气体传感器实物图

图4.8MQ-2气体传感器原理图

10

湖南商务职业技术学院毕业设计

4.5LCD1602液晶显示屏

LCD1602显示屏拥有长使用寿命、不容易出现亮度不均和坏点的特点。

LCD1602显示屏受外界环境的影响较小,能够在宽范围温度下正常工作。

LCD1602显示屏显示字符和图标清晰,适合简单的文本和数字显示且像素点

相对较大,更容易识别和观看。

图4.9LCD1602液晶显示屏实物图

图4.10LCD1602液晶显示屏原理图

11

湖南商务职业技术学院毕业设计

4.6蜂鸣器

ActiveBuzzer蜂鸣器是一种带有内置驱动电路的蜂鸣器。它只需要输入一

个交替电压信号,就可以发出一定频率的声音。源蜂鸣器通常带有两个引脚,

一个用于连接电源,另一个用于连接控制信号。当控制信号为高电平时,蜂鸣

器发出声音;当控制信号为低电平时,蜂鸣器停止发声。

图4.11ActiveBuzzer蜂鸣器实物图

VCC

R4Q1

S8050

1KU10

蜂鸣器

GND

图4.12ActiveBuzzer蜂鸣器原理图

12

湖南商务职业技术学院毕业设计

4.7继电器

JDQ-5继电器拥有体积小、低功耗、工作稳定可靠、可靠性高和寿命长的优

点。多种脚位安装方式,方便与其他电路进行连接,能够通过控制电路的开闭,

实现信号的转换和放大作用。

图4.13JDQ-5继电器实物图

R10

D21KVCC

IN4148

U10LED2

Q1

U1152LEDJDQ1

3S8050

2VCC

41

1GND

JDQ-5

图4.14JDQ-5继电器原理图

13

湖南商务职业技术学院毕业设计

5产品软件设计

随着时代的进步,若想达到时代的标准,还需借助各种软件技术的支持。

例如我们经常使用的KeiluVision5和Androidstudio软件程序。通过编写编译

程序,然后烧录开发板或下载至手机APP中即可。

5.1软件开发环境

5.1.1KeiluVision5软件开发环境

首先,通过USB串口线一端与电脑PC端连接,一端与STM32开发板连

接,然后新建工程,选择开发板和端口,编写代码,编译完后进行烧录。之

后观察STM32开发板上有两个灯(D1和D2)是否亮了(其中D1长亮为

STM32开发板卡上电正常,D2灯闪烁为程序状态指示灯可供软件调试或者

程序运行指示),若是两灯有相应亮灯情况则是说明开发板是正常的,且程

序烧录正常。

图5.1KeiluVision5软件开发页面

14

湖南商务职业技术学院毕业设计

5.1.2Androidstudio软件开发环境

首先,新建Android工程,编写代码,编译完后打开虚拟机进行模拟发

送。然后生成.apk文件下载至手机,与STM32开发板的ESP8266_WiFi进行

连接,实现软硬件互联互通,发送数据进行测试,若是手机APP有实时收发

数据情况则是说明手机APP是正常的,且连接正常。

图5.2Androidstudio软件开发页面

15

湖南商务职业技术学院毕业设计

5.2软件开发流程

KeiluVision5软件编写过程:建立工程,编写代码,连接STM32开发坂,

编译就会生成后缀为.uvprojx的工程文件和.c的C语言文件。

Androidstudio软件编写过程:建立工程,编写代码,编译就会生成后

缀为.xml的Android文件和.java的Java文件,打开系统虚拟机进行测试,测试

无误后生成.apk的应用文件,下载至手机。

编译的过程中会出现一些问题,开发板型号设置错误,端口号定义错误,

或是代码编写错误,编译框都会打印出这些错误,然后对照错误进行修改,

直到编译通过。当代码编译通过时仍可能存在错误,直到效果与代码匹配上

时即为通过。有时仍需考虑硬件电路接线错误等问题。具体的开发流程如图

所示。

图5.3KeiluVision5开发流程图图5.4Androidstudio开发流程图

16

湖南商务职业技术学院毕业设计

5.3主程序流程图

图5.5主程序流程图

17

湖南商务职业技术学院毕业设计

5.4子程序流程图

图5.6ESP8266WiFi子程序流程图图5.7DHT11温湿度传感器子程序流程图

18

湖南商务职业技术学院毕业设计

图5.8MQ-2烟雾传感器子程序流程图图5.9LCD1602液晶子程序流程图

图5.10蜂鸣器子程序流程图图5.11按键子程序流程图

19

湖南商务职业技术学院毕业设计

5.5产品程序清单

图5.12产品程序清单

6产品使用说明书

6.1电路的组装

遵守焊接的基本规范:

(1)焊接桌面干净整齐,选好元器件位置,正负极区分,安放到万用板上。

(2)烙铁达到适宜温度,按照四十五度角和焊锡丝接触在三到五秒内完成

操作。焊接时需注意不要焊接到其他的元器件,注意安全。

(3)模块接线到面包板,用杜邦线连接。由于线较多,所以整个过程中需

细致。请勿带电操作,避免损坏开发板。整个布局需要美观大方且简洁。

(4)检查整个布局有无接线错误问题。

(5)确认无误即可进行下一步烧录程序。

20

湖南商务职业技术学院毕业设计

6.2产品的调试

测试开发板,连接开发板到电脑PC端,查看STM32开发板D1灯是否长亮且D2

灯是否闪烁。

测试WiFi,使用手机APP对WiFi进行调试。连接ESP8266_WiFi,手机APP可

以正常连接和设置、接收数据即可。

测试手机APP。用Androidstudio软件将手机APP代码生成APK文件,下载至

手机后连接ESP8266_WiFi,若能正常控制设置及显示数据即可。

测试显示屏,烧入测试的代码查看显示屏是否亮起,显示预设文字和烟雾、

温湿度数据。若是无反应检查是否接线错误重新烧入,直到显示。

测试烟雾模块,检查烟雾模块代码正确性,后进行烧入测试,查看烟雾测

试数据是否正常。若不正常则是接线、滑动电阻阻值问题或反接的问题,重新

连接即可。

测试温湿度模块,检查温湿度模块代码正确性,后进行烧入测试,查看温

湿度测试数据是否正常。若不正常则是接线或反接的问题,重新连接即可。

整体连接,烧入编写好的代码,检查是否有反应。手机APP存在并能够连接

ESP8266_WiFi且显示数据,液晶显示屏显示有数据则为正常。

6.3产品装配图

图6.1产品装配图

21

湖南商务职业技术学院毕业设计

6.4产品使用说明

检查桌面干净整洁,产品无误即可进行操作。

(1)连接电源,液晶显示屏的第一行会显示TEMP:XXCHUM:XX%,第二

行显示SMOKE:XX%。(注:“XX”为传感器测得的数值)。

(2)通过手机APP连接ESP8266_WiFi,在手机APP页面会出现“连接”

按钮,点击即可连接到STM32开发板系统,在手机APP页面会显示实时温度、

湿度、烟雾、温度上限、湿度上限、烟雾上限的数据。

(3)设置上限方式:1.从手机APP上设置“温度上限、湿度上限、烟

雾上限”。直接点击相应设置的输入框输入上限并点击“发送”按钮即可调

节温度上限、湿度上限、烟雾上限。2.从万用板上设置“温度上限、湿度上

限、烟雾上限”。按下K1(万用板左边按键),进入“温度上限”设置,

液晶显示屏会显示“SettheTEMP”,按下K2(万用板中间按键)即可将上

限+1,按下K3按键(万用板右边按键)即可将上限-1;再次按下K1,进入

“温度上限”设置,液晶显示屏会显示“SettheHUM”,设置如第一步;

第三次按下K1,进入“烟雾上限”设置,液晶显示屏会显示“Setthe

SMOKE”,设置如第一步;第四次按下K1,保存并退出设置,液晶显示屏

显示烟雾、温度、湿度数据。

(4)使用完毕需收好产品,轻拿轻放,切勿使用暴力。

22

湖南商务职业技术学院毕业设计

7参考资料

[1]孙书鹰,陈志佳,寇超.新一代嵌入式微处理器STM32F103开发与应用[J].微计

算机应用,2010,31(12):59-63.

[2]洪树亮.基于STM32F103住宅智能防火防盗报警系统的设计[D].兰州交通大

学,2016.

[3]孙波,刘士彩,王玉潇等.基于STM32F103单片机的烟雾报警器设计[J].电子世

界,2018(20):132-133.DOI:10.19353/ki.dzsj.2018.20.071.

[4]范兴隆.ESP8266在智能家居监控系统中的应用[J].单片机与嵌入式系统应

用,2016,16(09):52-56.

[5][1]曹振民,陈年生,马强等.基于ESP8266的无线控制电路设计[J].工业控制计算

机,2017,30(01):68-69.

[6]王小祥.基于ESP8266的DHT11温湿度检测[J].数字技术与应

用,2019,37(08):34-35.DOI:10.19695/12-1369.2019.08.19.

[7]梁竹君.基于ESP8266温湿度检测系统设计[J].科技创新与应用,2020(01):95-97.

23

湖南商务职业技术学院毕业设计

8附录

8.1附录1元器件清单

附表1.1元器件清单

24

湖南商务职业技术学院毕业设计

8.2附录2电路原理图

25

湖南商务职业技术学院毕业设计

8.3附录3PCB设计图

26

湖南商务职业技术学院毕业设计

8.4附录4产品实物图

附图4.2产品实物图反面

27

湖南商务职业技术学院毕业设计

8.5附录5主程序代码

#include"stdio.h"

#include"led.h"

#include"delay.h"

#include"sys.h"

#include"adc.h"

#include"timer.h"

#include"usart1.h"

#include"LCD1602.h"

#include"string.h"

#include"dht11.h"

voidChange_data_handle(void);

voidSHOW_AND_BAOJING_Handle(void);

u8KEY_SCAN(void);//按键函数

u8key,PPM,Temperature,HUM;

u16PPM_MAX=60,Temperature_MAX=40,HUM_MAX=70;//烟雾温湿度上限初始值

unsignedcharAlarm_Buf[16]="Warning";

charbuf[30];

externunsignedcharRxCounter,Usart1RecBuf[64];

externcharbUsart1RecFlag;

//ESP8266相关函数

#defineESP_RECV_PTYPE_NULL0

#defineESP_RECV_PTYPE_DATA1

unsignedcharcur_conn_id;

char*strx=0;

28

湖南商务职业技术学院毕业设计

voidClear_Buffer(void)//清空缓存

{

u8i;

for(i=0;i<64;i++)

Usart1RecBuf[i]=0;//缓存

RxCounter=0;

}

voidesp_ap_mode(void)

{

Clear_Buffer();

Uart1_SendStr("AT+CWMODE=2\r\n");

//<mode>:1-Station模式,2-AP模式,3-AP兼Station模式

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

while(strx==NULL)

{

Clear_Buffer();

Uart1_SendStr("AT+CWMODE=2\r\n");

delay_ms(500);

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

}

/*

<ssid>:字符串参数,接入点名称

<pwd>:字符串参数,密码最长64字节,ASCII

<chl>:通道号

<ecn>:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK

*/

29

湖南商务职业技术学院毕业设计

Clear_Buffer();

Uart1_SendStr("AT+CWSAP=\"TEST\",\"12345678\",1,3\r\n");

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

while(strx==NULL)

{

Clear_Buffer();

Uart1_SendStr("AT+CWSAP=\"TEST\",\"12345678\",1,3\r\n");

delay_ms(500);

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

}

/*

AT+CIPMUX=1

OK

*/

Clear_Buffer();

Uart1_SendStr("AT+CIPMUX=1\r\n");

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

while(strx==NULL)

{

Clear_Buffer();

Uart1_SendStr("AT+CIPMUX=1\r\n");

delay_ms(500);

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

}

/*

30

湖南商务职业技术学院毕业设计

AT+CIPMUX=1时才能开启服务器;关闭server模式需要重启?

AT+CIPSERVER=1,8080

OK

*/

Clear_Buffer();

Uart1_SendStr("AT+CIPSERVER=1,8080\r\n");

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

while(strx==NULL)

{

Clear_Buffer();

Uart1_SendStr("AT+CIPSERVER=1,8080\r\n");

delay_ms(500);

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

}

}

voidesp8266_init()

{

Usart1_Init(115200);

Uart1_SendStr("ESP8266Init\r\n");

Uart1_SendStr("AT\r\n");//模块测试

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

while(strx==NULL)

{

Clear_Buffer();

Uart1_SendStr("AT\r\n");

31

湖南商务职业技术学院毕业设计

delay_ms(500);

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"OK");

}

esp_ap_mode();

}

voidesp_send_buf(unsignedcharconn_id,char*buf,unsignedcharlen)

{

printf("AT+CIPSEND=%d,%d\r\n",cur_conn_id,len);

strx=strstr((constchar*)Usart1RecBuf,(constchar*)">");

delay_ms(200);

if(strx==NULL)

{

return;

}

Uart1_SendStr(buf);

strx=strstr((constchar*)Usart1RecBuf,(constchar*)"SENDOK");

delay_ms(100);

if(strx==NULL)

{

return;

}

}

intmain(void)

{

u16test,test_adc;

32

湖南商务职业技术学院毕业设计

delay_init();//延时函数初始化

NVIC_Configuration();

//设置NVIC中断分组2:2位抢占优先级,2位响应优先级

KEY_IO_Init();

TIM2_Int_Init(1000-1,72-1);//定时器初始化,定时1MS

//Tout=((arr+1)*(psc+1))/Tclk;72000/72=1000us

//Tclk:定时器输入频率(单位MHZ)

//Tout:定时器溢出时间(单位us)

delay_ms(300);

DHT11_Init();//DHT11初始化

RELAY_Init();//继电器初始化

BEEP_DISENABLE();//蜂鸣器初始化

LCD_Init();//1602初始化

Adc_Init();//ADC初始化

esp8266_init();//ESP8266初始化

while(1)

{

test_adc=Get_Adc_Average(ADC_Channel_9,20);

//读取通道9的AD值,读取20次的平均值

PPM=test_adc*99/4096;//12位AD,把AD值转换成百分比0~99

PPM=PPM>=99?99:PPM;//最大值不能超过99

DHT11_Read_Data(&Temperature,&HUM);//读取温湿度值

SHOW_AND_BAOJING_Handle();

Change_data_handle();//按键调节

if(test++>20)//ESP8266延时一段时间,发送一次数据

{

33

湖南商务职业技术学院毕业设计

esp_send_buf(0,buf,27);

test=0;

}

delay_ms(1);

}

}

externu8FLICKER;

voidSHOW_AND_BAOJING_Handle(void)

{

unsignedcharshow_buf[16];//显示缓存区

if(Temperature>=Temperature_MAX)//温度超限

{

memcpy(buf,Alarm_Buf,8);//把Alarm_Buf里的字符串拷贝到buf中

buf[7]='!';

if(FLICKER)//超标显示闪烁

{

LCD_Write_String(0,0,"");

}

else

{

sprintf(show_buf,"TEMP:%02dC",(u16)Temperature);

//转换显示格式为TEMP:00C

LCD_Write_String(0,0,show_buf);//显示

}

34

湖南商务职业技术学院毕业设计

}

else

{

sprintf(show_buf,"TEMP:%02dC",(u16)Temperature);

//转换显示格式为TEMP:00C

LCD_Write_String(0,0,show_buf);//显示

memcpy(buf,show_buf,8);//将温度显示字符拷贝到buf中

}

buf[8]=',';

if(HUM>=HUM_MAX)//湿度超限

{

memcpy(buf+9,Alarm_Buf,8);//把Alarm_Buf里的字符串拷贝到buf中

if(FLICKER)//超标显示闪烁

{

LCD_Write_String(9,0,"");

}

else

{

sprintf(show_buf,"HUM:%02d%%",(u16)HUM);

//转换显示格式为HUM:00%

LCD_Write_String(9,0,show_buf);//显示

}

}

else

{

sprintf(show_buf,"HUM:%02d%%",(u16)HUM);

//转换显示格式为HUM:00%

35

湖南商务职业技术学院毕业设计

LCD_Write_String(9,0,show_buf);

memcpy(buf+9,show_buf,7);//将湿度显示字符拷贝到buf中

}

buf[16]=',';

if(PPM>=PPM_MAX)//烟雾超限

{

memcpy(buf+17,Alarm_Buf,7);

buf[24]='!';

buf[25]='!';

if(FLICKER)//超标显示闪烁

{

LCD_Write_String(0,1,"");

}

else

{

sprintf(show_buf,"SMOKE:%02d%%",PPM);

//转换显示格式为SMOKE:00%

LCD_Write_String(0,1,show_buf);

}

}

else

{

sprintf(show_buf,"SMOKE:%02d%%",PPM);

//转换显示格式为SMOKE:00%

LCD_Write_String(0,1,show_buf);

memcpy(buf+17,show_buf,9);

}

36

湖南商务职业技术学院毕业设计

buf[26]='\r';

buf[26]='\n';

if(Temperature>=Temperature_MAX||HUM>=HUM_MAX||PPM>=PPM_MAX)

//温度湿度烟雾超限

{

RELAY=1;//继电器开启

BEEP_ENABLE();//蜂鸣

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论