Altium Designer畫的空氣檢測儀電路原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (42.46 KB, 下載次數(shù): 41)
下載附件
2018-8-18 04:21 上傳
0.png (63.7 KB, 下載次數(shù): 54)
下載附件
2018-8-18 04:22 上傳
0.png (9.41 KB, 下載次數(shù): 44)
下載附件
2018-8-18 04:22 上傳
0.png (7.35 KB, 下載次數(shù): 50)
下載附件
2018-8-18 04:22 上傳
單片機源程序如下:
- #include "stm32f10x.h"
- #include "Delay.h"
- #include "SYS.h"
- #include "USART_1.h"
- #include "USART_2.h"
- #include "USART_3.h"
- #include "BMP280.h"
- #include "R8025AC.h"
- #include "AM2320.h"
- #include "BH1750.h"
- #include "ff.h"
- #include "IIC.h"
- #include "LED.h"
- #include "ESP8266.h"
- //#include "usb_lib.h"
- //#include "hw_config.h"
- //#include "usb_pwr.h"
- #include "Timer.h"
- #include "KEY.h"
- #include "SPI.h"
- #include "string.h"
- #include "extra_fun.h"
- extern u16 PM1_0,PM2_5,PM10;
- float Temperature,Humi;
- u16 Lux;
- s32 Pressure;
- void BSP_Init()
- {
- delay_init();
- IIC_Init();
- //uart_init(115200);
- USART2_Init();
- USART3_Init();
- SPI1_Init();
- KEY_Init();
- LED_Init();
- SD_Record_Init();
- R8025AC_Init();
- BMP280_Init();
-
- delay_ms(1000);//等待ESP8266初始化完成
- delay_ms(1000);//等待ESP8266初始化完成
- delay_ms(1000);//等待ESP8266初始化完成
- delay_ms(1000);//等待ESP8266初始化完成
- delay_ms(1000);//等待ESP8266初始化完成
-
- if(ESP8266_Init())
- {
- Set_LED2(1);
- USART3_BUF_Clear();//清除緩存
- while(!strstr((const char *)USART3_BUF, "WIFI GOT IP")){}//等待wifi配置
- Set_LED2(0);
- }
- USART3_Write("AT+CIPMODE=1\r\n", 14);//透傳模式
- delay_ms(1000);
- USART3_Write("AT+CIPMUX=0\r\n", 13);//單連接
- delay_ms(1000);
-
- R8025AC_Get_NTPtime();//獲取NTP時間
-
- TIM3_Int_Init(9,7199);
- Set_LED3(1);
- }
- int main(void)
- {
- u8 Flag_BH1750;
-
- BSP_Init();
-
- while(1)
- {
- if(Time_200ms>200)
- {
- Time_200ms=0;
-
- if(Flag_BH1750==0)
- {
- Flag_BH1750=1;
-
- BH1750_Wake();//啟動BH1750
- }else
- {
- Flag_BH1750=0;
-
- BH1750_Get(&Lux);//讀取BH1750
- }
-
- BMP280_Get(&Temperature, &Pressure);//讀取BMP280
- }
-
- if(Time_1000ms>60000)//SD卡1分鐘記錄一次
- {
- Time_1000ms=0;
-
- SD_Record(PM1_0, PM2_5, PM10, Temperature, Humi, Pressure, Lux);
- }
-
- if(Time_3000ms>3000)//3秒鐘一次
- {
- Time_3000ms=0;
-
- AM2320_Get(&Humi);//讀取AM2320
- }
-
- if(Time_20000ms>20000)
- {
- Time_20000ms=0;
-
- Set_LED2(1);
- ESP8266_SendDate(PM1_0, PM2_5, PM10, Temperature, Humi, Pressure, Lux);//上傳數(shù)據(jù)
- Set_LED2(0);
- }
-
- if(key_flag)//是否有按鍵按下
- {
- if(key_flag==1)
- {
- key_flag=0;
- R8025AC_Get_NTPtime();//獲取NTP時間
- }else if(key_flag==2)
- {
- key_flag=0;
- USART3_Write("AT+RESTORE\r\n", 12);//恢復出廠設置
- while(1)
- {
- Set_LED1(0);
- Set_LED2(0);
- Set_LED3(0);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
數(shù)據(jù)手冊.rar
(4.56 MB, 下載次數(shù): 51)
2018-8-17 22:20 上傳
點擊文件名下載附件
數(shù)據(jù)手冊 下載積分: 黑幣 -5
電路圖.rar
(602.38 KB, 下載次數(shù): 61)
2018-8-17 22:20 上傳
點擊文件名下載附件
電路圖 PCB 下載積分: 黑幣 -5
程序.rar
(1.06 MB, 下載次數(shù): 71)
2018-8-17 22:20 上傳
點擊文件名下載附件
程序 下載積分: 黑幣 -5
|