功能:
1.监测当前温湿度值,烟雾浓度,火焰,燃气浓度
2.监测到的所有数据显示在OLED屏幕并通过WIFI模块上传至手机app
3.具体功能:
当检测到燃气时,自动进行声光报警并开启风扇;
当检测到火焰时,自动驱动水泵进行灭火;
当检测到烟雾浓度超标时,自动进行报警并且开启风扇排气;
当前传感器检测到的火焰信息,温湿度信息,燃气信息,烟雾信息以及报警信息将实时发送到手机端进行显示。
4.OLED屏幕上显示温湿度、烟雾浓度、燃气浓度,当前所设置阈值
接线示意图
实物图
部分源码
main.c源码:
#include "stm32f10x.h"
#include "OLED_I2C.h"
#include "delay.h"
#include "usart1.h"
#include "timer.h"
#include "adc.h"
#include "dht11.h"
#include <stdlib.h>
#include <string.h>
#include "led.h"
#define juli PBin(10) //负载控制端口
u8 Temperature,HUM;
unsigned char wendu[16];//温度
unsigned char shidu[16];//湿度
unsigned char baojing[16];//烟雾存储空间
unsigned char yuliang[16];//煤气存储空间
unsigned char baojing1[50];//烟雾报警变量
unsigned char baojing2[50];//燃气报警变量
unsigned int Smoke ;//烟雾
unsigned int Gas ; //燃气
unsigned char setn = 0;
unsigned int rain_max=50 ; //燃气报警值
int YW_Alarm=30; //烟雾报警值
u8 biaozhiwei=0;//标志位
unsigned char Alarm_Buf[16]="Warning";
char buf[39];
extern unsigned char RxCounter,Usart1RecBuf[64];
extern char bUsart1RecFlag;
//ESP8266相关函数
#define ESP_RECV_PTYPE_NULL 0
#define ESP_RECV_PTYPE_DATA 1
unsigned char cur_conn_id;
char *strx=0;
void Clear_Buffer(void)//清空缓存
{
u8 i;
for(i=0;i<64;i++)
Usart1RecBuf[i]=0;//缓存
RxCounter=0;
}
void esp_ap_mode(void)
{
Clear_Buffer();
Uart1_SendStr("AT+CWMODE=2\r\n"); <mode>:1-Station模式,2-AP模式,3-AP兼Station模式
strx = strstr((const char*)Usart1RecBuf,(const char*)"OK");
while(strx == NULL)
{
Clear_Buffer();
Uart1_SendStr("AT+CWMODE=2\r\n");
DelayMs(500);
strx = strstr((const char*)Usa