基于单片机PM2.5空气质量温湿度检测仪设计
功能
1.产品包括室外机、室内机;
2.室外机接一个温度传感器NTC 10K3435,湿度传感器HR202和PM2.5传感器,用于采集温湿度和PM2.5,外接一个太阳能板用于提供电源,外接一个RF433发送模块用于传输数据;
3.室内机同样接一个温度传感器NTC 10K3435,湿度传感器HR202和PM2.5传感器,用于采集温湿度和PM2.5,外接一个RF433接收模块用于接收数据;
4.室外机每隔一段时间自动唤醒采集温湿度和PM2.5,并发送到室内机;
5.室内机接收到数据后显示在LCD屏上,并做相应报警;
6.室内机可显示时间,可调节时间
硬件实现
1.数据通信采用RF433发送接收模块,功耗小,价格低,单片机自己解码,无需解码芯片(可用网上2块多的模块代替);
左为发送模块,右为接收模块
可用改型号代替,无需买解码芯片
2.自定义传输协议,帧头+数据(温湿度+PM2.5),当室外机检测到有帧头时,开始接收并处理数据。
3.采用廉价的温湿度传感器,通过算法计算温度和湿度(温度传感器NTC 10K3435,湿度传感器HR202)
4.采用云彤科技的激光PM2.5传感器(波特率为9600),比一般的红外的较为准确。
软件功能(一个项目学会多个技能,一通百通)
1.室外机STM8L052自动唤醒,自动休眠,待机功耗极低;
2.STM8L052搭配RF433发送模块,当做发射机,可传输80-150米;
3.stm8s105自动解码RF433模块,节省空间和降低成本;
4.串口接收PM2.5数据,可通过按键更改时间
5.便宜好用的温湿度算法
【资源下载】下载地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
#define Open_time 20 //开机时间
unsigned char send_group[RF_SEND_LENGTH] = {0xff,0x32,0x30,0x00,0x00};
//unsigned char send_group[RF_SEND_LENGTH] = {0x00};//测试数据
unsigned int ADCdata=0;
u16 charge_AD=540;
extern u16 Pm25;//PM25的实际值
bool RTC_Flag=FALSE;
bool Charge=FALSE;//充电标志位
unsigned int dust_value,t=0,h=0,RH_tem=0,RH_tem2=0;
extern unsigned char uart_rxbuf[32];
extern unsigned char j25,flag25,RH_flag,Time_1s,Time_1min_FLAG;
u16 HR_Volt,NTC_Volt,Low_AD;
u8 open_once=0;//开机一次,每次一分钟
extern unsigned int const NTCTAB[];
extern unsigned int const RHTAB[];
extern unsigned char const RHTAB_B[];
extern u16 Time_1min;
u8 AD_flag;
u16 PM25_average[11]={0};//求平均值
u8 PM25_cnt=0;
u16 Pm_avarage=0;//每十个数的平均值
extern u8 Auto_ShutDown;//自动关机计时
bool Powerflag=FALSE;//电源按下标志
u8 shut_down_flag=0;
bool DC_Power=FALSE;//