109 lines
2.4 KiB
C
109 lines
2.4 KiB
C
#include "stm32f10x.h" // Device header
|
||
#include "Delay.h"
|
||
#include "OLED.h"
|
||
#include "mlx90614.h"
|
||
#include "buzzer.h"
|
||
#include "led.h"
|
||
#include "esp.h"
|
||
#include "String.h"
|
||
#include "key.h"
|
||
|
||
|
||
#define key1 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)
|
||
#define key2 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)
|
||
|
||
int main(void)
|
||
{
|
||
/*****************************
|
||
*操 作:函数初始化
|
||
*时 间:2024-05-14
|
||
*Dragon-H
|
||
*****************************/
|
||
|
||
OLED_Init();//OLED屏初始化
|
||
OLED_ShowImage(47, 10, 32, 32,BYSJ);
|
||
OLED_ShowChinese(32, 44, "毕业设计");
|
||
OLED_Update();
|
||
|
||
SMBus_Init();//MLX90614红外测温初始化
|
||
buzzer_Init();//蜂鸣器初始化
|
||
LED_Init();//LED初始化
|
||
Esp_Init();//ESP-01S初始化
|
||
Key_Init();//按键初始化
|
||
|
||
|
||
/*****************************
|
||
*操 作:自定义变量
|
||
*时 间:2024-05-14
|
||
*Dragon-H
|
||
*****************************/
|
||
double temperature=0.0;//温度
|
||
static float SET_temperature=37.0;//初始设置温度
|
||
|
||
/*****************************
|
||
*操 作:Wifi参数初始化
|
||
*端口号:2024
|
||
*I P: 192.168.4.1
|
||
*时 间:2024-05-16
|
||
*Dragon-H
|
||
*****************************/
|
||
|
||
Esp_SetInstall();//ESP01s 初始化
|
||
|
||
|
||
OLED_Clear();
|
||
OLED_Update();
|
||
|
||
|
||
|
||
/*****************************
|
||
*操 作:OLED初始化显示
|
||
*时 间:2024-05-14
|
||
*Dragon-H
|
||
*****************************/
|
||
OLED_ShowImage(0, 0, 128, 64,Img);
|
||
OLED_ShowString(4,4, "Diploma project", OLED_8X16);
|
||
OLED_ShowChinese(2, 20, "当前温度");
|
||
OLED_ShowChinese(110, 20, "℃");
|
||
OLED_ShowChinese(2, 40, "报警温度");
|
||
OLED_ShowChinese(110, 40, "℃");
|
||
OLED_Update();
|
||
|
||
|
||
while (1){
|
||
Esp_Printf("AT+CIPSEND=0,18\r\n");//AT发送数据指令
|
||
Delay_ms(500);
|
||
temperature=SMBus_ReadTemp();//获取温度
|
||
OLED_ShowFloatNum(70, 20, temperature, 2, 1,OLED_8X16);
|
||
OLED_ShowNum(80, 40, SET_temperature, 2,OLED_8X16);
|
||
Esp_Printf("Temperature:%1.1f\r\n",temperature);//发送温度信息
|
||
|
||
|
||
if( temperature>=SET_temperature){
|
||
buzzer_on();
|
||
LEDGreen_OFF();
|
||
LEDRed_Flash();
|
||
}
|
||
if( temperature<SET_temperature){
|
||
buzzer_off();
|
||
LEDRed_OFF();
|
||
LEDGreen_ON();
|
||
|
||
}
|
||
|
||
//按键判断
|
||
if(key1==1){
|
||
Delay_ms(20);
|
||
while(key1==1);
|
||
SET_temperature++;
|
||
}else if(key2==1){
|
||
Delay_ms(20);
|
||
while(key2==1);
|
||
SET_temperature--;
|
||
}
|
||
|
||
Delay_ms(500);
|
||
OLED_Update();
|
||
}
|
||
}
|