|
近日學(xué)習(xí)STM32串口通信,手上又有現(xiàn)成的PM2.5傳感器和藍(lán)牙HC-06模塊,于是做了一個小型的空氣檢測并通過藍(lán)牙實時往手機發(fā)送的小系統(tǒng),并且通過L298N電機驅(qū)動可以控制一個電機進(jìn)行空氣清新,因為電機還沒到,而且空氣凈化的過濾器也沒有,所以我這個暫時只是一個簡單的實現(xiàn)空氣凈化的模擬機,具體的空氣過濾環(huán)節(jié)還請讀者自行設(shè)計。
這是我這次使用的傳感器圖片,在某寶上可以買到,100大洋左右
IMG_20191130_195057.jpg (4.64 MB, 下載次數(shù): 54)
下載附件
2019-11-30 19:52 上傳
,
這是程序運行的結(jié)果,天津這兩天空氣質(zhì)量太差了,學(xué)校寢室室內(nèi)濃度都100+
1575114848236.jpg (5.81 MB, 下載次數(shù): 53)
下載附件
2019-11-30 19:57 上傳
Screenshot_2019-11-30-18-07-11-498_com.shenyaocn..png (301.92 KB, 下載次數(shù): 63)
下載附件
2019-11-30 19:57 上傳
程序的話,我在這兒就不粘出來了,下載了那個包都能看見,接線也在包里,四個按鍵的作用都有說明,我在這兒就不一一解釋了,那個傳感器可以測PM2.5和PM10,一秒發(fā)送十個字節(jié),其中四個字節(jié)是有效的數(shù)據(jù),如果購買傳感器的話,都會有的,具體實現(xiàn)的功能很簡單,就控制電機轉(zhuǎn)的三個擋位,還有一個實時發(fā)送數(shù)據(jù)并自動控制電機的擋位,如果想要PM10數(shù)據(jù)的讀者可自行設(shè)計一下。
剛?cè)腴T單片機沒多久,大神勿噴。
接線
電機PWM輸出→PF9
PM2.5傳感器TX→PA10
藍(lán)牙HC06RX→PA9
探索者四個按鍵功能
up→根據(jù)PM2.5數(shù)據(jù)自動控制電機并實時上傳數(shù)據(jù)到藍(lán)牙串口
2→電機全速運行
1→電機中速運行
0→電機慢速運行
單片機源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "beep.h"
- #include "key.h"
- #include "lcd.h"
- #include "pwm.h"
- #include "exti.h"
- u8 MOTOR;
- int main(void)
- { u8 key; //保存鍵值
- u8 x=0;
- u8 t;
- u8 T1;
- u8 T2;
- float temp;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級分組2
- delay_init(168); //延時初始化
- uart_init(9600); //串口初始化波特率為115200
- LED_Init(); //初始化與LED連接的硬件接口
- KEY_Init(); //初始化與按鍵連接的硬件接口
- LCD_Init(); //初始化LCD FSMC接口
- EXTIX_Init(); //初始化外部中斷輸入
- TIM14_PWM_Init(2000-1,840-1);
- POINT_COLOR=RED; //畫筆顏色:紅色
- while(1)
- {
- POINT_COLOR=RED;
- LCD_ShowString(30,40,210,24,24,"The Air Purifier");
- LCD_ShowString(30,70,200,16,16,"PRPOTOTYPE TEST");
- LCD_ShowString(30,90,200,16,16,"TJUT");
- LCD_ShowString(30,180,200,16,16,"DATA:");
- LCD_ShowString(78,210,200,16,16,"PM2.5:000.0 ug/m^3"); //先在固定位置顯示小數(shù)點
- T1=USART_RX_BUF[1];
- T2=USART_RX_BUF[2];
- temp=(float)(T1+(T2*256))/10;
- if(MOTOR)
- {
- printf("\r\nPM2.5:");
- printf("%5.1f\r\n",temp);
- if (temp>200)
- TIM_SetCompare1(TIM14,1999);
- else
- TIM_SetCompare1 (TIM14,temp*10);
- }
- T2=temp;
- LCD_ShowxNum(126,210,T2,3,16,0);
- temp-=T2;
- temp*=10;
- LCD_ShowxNum(158,210,temp,1,16,0);
- LED0=!LED0;
- delay_ms(1000);
-
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
空氣凈化器(程序).7z
(336.7 KB, 下載次數(shù): 66)
2019-12-1 03:09 上傳
點擊文件名下載附件
主程序和功能介紹 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|