STM32项目分享:基于物联网的灭火器智能监测系统
“我们不做一锤子买卖,只做技术成长的长期伙伴!”
目录
一、视频展示
二、项目简介
三、原理图设计
四、PCB硬件设计
五、程序设计
六、资料分享
一、视频展示
基于物联网的灭火器智能监测系统 -视频分享
二、项目简介
题目:基于物联网的灭火器智能监测系统
主控:STM32F103C8T6
显示:oled显示
传感器:
气压传感器
GPS模块
DS18B20温度传感器
esp8266连接阿里云
声光报警:蜂鸣器+LED
三按键
DC供电
功能:
1、屏幕实时显示当前气压,温度。
2、可按键设置最低气压阈值,最高温度。
3、手机云智能app可查看当前数据。
4、当灭火器气压低,或者温度高于阈值,开启声光报警,手机端有文字提示。
5、单片机显示当前经纬度信息。
6、显示固定生产日期
三、原理图设计
四、PCB硬件设计
五、程序设计
#include "stm32f10x.h" // Device header
#include "delay.h"
#include "lcd.h"
#include "GPS.h"
#include "usart.h"
#include "IOput.h"
#include "pwm.h"
#include "timer.h"
#include "adc.h"
#include "ds18b20.h"extern u8 receiving_flag; // 新增一个标志,用于标记是否开始接收数组
extern u16 buf[20],res;
u8 f,max_wd=30,dec_qy=10,ERROR_FLAG;u8 light=10,show_flag,light_dec=40,time,open_flag;
float yali;u8 count,vt=5;
int main (void)
{delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);Usart2_Init(9600);OLED_Init();delay_ms(1);OLED_Clear();Usart1_Init(9600);output_init();input_init();TIM_PWM_Init(71,9999);TIM2_Int_Init(71,9999);Adc_Init();DS18B20_Init();while(1){temp_get();count++;if(time_count>=100){time_count=0;if(time!=0)time--;if(time==0)time=0;}yali=Get_ADC_Voltage_Average(1,10)*10*12;key_scan();if(key1_flag==1){OLED_Clear();key1_flag = 0;show_flag++;if(show_flag >= 4){show_flag = 0;}}if(show_flag==0){OLED_ShowCH(0, 0, " 灭火器监测系统 "); OLED_ShowCH(0, 2, "气压:"); OLED_Showdecimal(40, 2, yali, 2,2, 16);OLED_ShowCH(0, 4, "温度:"); OLED_ShowNum(40, 4, wd, 2, 16); }if(show_flag==1){OLED_ShowCH(0, 0, "生产日期:");OLED_ShowCH(0, 2, "2024年5月20日");parseGpsBuffer();printGpsBuffer();}if(show_flag==2){OLED_ShowCH(0, 0, " 阈值修改 ");OLED_ShowCH(0, 2, "最大温度:");OLED_ShowNum(72, 4, max_wd, 2, 16); if(key2_flag==1){key2_flag=0;max_wd++;}if(key3_flag==1){key3_flag=0;max_wd--;}if(max_wd>=100 || max_wd<=0)max_wd=0;}if(show_flag==3){OLED_ShowCH(0, 0, " 阈值修改 ");OLED_ShowCH(0, 2, "最低气压:");OLED_ShowNum(72, 4, dec_qy, 2, 16); if(key2_flag==1){key2_flag=0;dec_qy++;}if(key3_flag==1){key3_flag=0;dec_qy--;}if(dec_qy>=41 || dec_qy<=0)dec_qy=0;}if(wd>=max_wd || yali<=dec_qy){ERROR_FLAG=1;BEEP=0;}else{ERROR_FLAG=0;BEEP=1;}if(count>=30){count = 0;USART_SendData(USART1,'B');delay_ms(1);USART_SendData(USART1,'a');delay_ms(1);USART_SendData(USART1,yali);delay_ms(1);USART_SendData(USART1,'b');delay_ms(1);USART_SendData(USART1,wd);delay_ms(1);USART_SendData(USART1,'c');delay_ms(1);USART_SendData(USART1,ERROR_FLAG);delay_ms(1);USART_SendData(USART1,'E');delay_ms(1);}}
}
六、资料分享
点击即可查看当前资料分享。