久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2058|回復: 1
打印 上一主題 下一主題
收起左側

智能家居環境監測(stm32f103c8t6單片機+mq7+mq2+lcd+wifi)代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:437641 發表于 2023-11-7 15:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "time.h"
  5. #include "adc_dma.h"
  6. #include "mq2.h"
  7. #include "mq7.h"
  8. #include "dht11.h"
  9. #include "esp8266.h"
  10. #include "gizwits_product.h"
  11. #include "Lcd_Driver.h"
  12. #include "GUI.h"
  13. #include "led.h"
  14. #include "sensor.h"

  15. u8 temperature = 20;              
  16. u8 humidity = 20;
  17. float mq2 = 20;
  18. float mq7 = 10;
  19. char str[10] ={0};

  20. //硬件初始化
  21. void Hardware_Init(void)
  22. {
  23.         delay_init();
  24.         NVIC_Configuration();                  //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  25.         uart_init(115200);                         //串口初始化為115200
  26.         ADCx_Init();                                //ADC初始化
  27. //        TIM4_Init(6000,36000-1);          //定時3s        
  28.         Led_Init();
  29.         Sensor_Init();
  30.         Lcd_Init();        
  31.         Lcd_Clear(BLUE);
  32.         
  33. //        while(DHT11_Init())        //DHT11初始化        
  34. //        {
  35. //                Gui_DrawFont_GBK16(16,30,RED,BLUE,(u8 *)"DHT11_Init FAILED");
  36. //                delay_ms(500);
  37. //        }
  38. }

  39. //協議初始化
  40. void Gizwits_Init(void)
  41. {
  42.         TIM3_Int_Init(9,7199);                //1MS 系統定時
  43.         usart3_init(9600);                        //WIFI 初始化 波特率必須為 9600
  44.         memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));//設備狀態結構體初始化
  45.         userInit();
  46.         gizwitsInit();
  47. }

  48. void userHandle(void);
  49. void TFT_ShowTable(void);

  50. int main(void)
  51. {        
  52.         u8 t=0;                             

  53.         Hardware_Init();
  54.         Gizwits_Init();
  55.         TFT_ShowTable();

  56.         while(1)
  57.         {            
  58.                         gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入                    
  59.                  if(t%10==0)                        //每100ms讀取一次
  60.                 {                                                                          
  61. //                        DHT11_Read_Data(&temperature,&humidity);        //讀取溫濕度值        
  62.                         mq2 = MQ2_GetPPM();
  63.                         mq7 = MQ7_GetPPM();
  64.                 }                                   
  65.                  delay_ms(10);
  66.                 t++;
  67.                 if(t==20)
  68.                 {
  69.                         t=0;
  70.                 }        

  71.                 userHandle();//用戶采集

  72.                 gizwitsHandle((dataPoint_t *)¤tDataPoint);//協議處理
  73.                
  74.                 if(SENSOR_LIGHT == 1)//手頭沒有獨立按鍵了,用光敏傳感器代替
  75.                 {
  76.                         printf("WIFI進入AirLink連接模式\r\n");
  77.                         gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入        
  78.                 }
  79.         }
  80. }

  81. void userHandle(void)
  82. {
  83.     currentDataPoint.valueValue_Tem = temperature;        //Add Sensor Data Collection
  84.     currentDataPoint.valueValue_Hum = humidity;                //Add Sensor Data Collection
  85.     currentDataPoint.valueValue_Mq7 = mq7;        //Add Sensor Data Collection
  86.     currentDataPoint.valueValue_Mq2 = mq2;        //Add Sensor Data Collection
  87.         
  88.         
  89.         Gui_DrawFont_GBK24(23,4,BLUE,YELLOW,(u8 *)"AIR MONITOR");
  90.         
  91.         sprintf(str, "MQ2: %.2fppm", mq2);        
  92.         Gui_DrawFont_GBK16(16,30,BLUE,YELLOW, (u8 *)str);

  93.         sprintf(str, "MQ7: %.2fppm", mq7);        
  94.         Gui_DrawFont_GBK16(16,50,BLUE,YELLOW,(u8 *)str);

  95.         sprintf(str, "TEM: %d℃", temperature);        
  96.         Gui_DrawFont_GBK16(16,70,BLUE,YELLOW,(u8 *)str);

  97.         sprintf(str, "HUM: %d%c", humidity, '%');        
  98.         Gui_DrawFont_GBK16(16,90,BLUE,YELLOW,(u8 *)str);
  99.         
  100.         
  101.         if(currentDataPoint.valueValue_Mq2 >= currentDataPoint.valueMq2_MAX)
  102.         {
  103.                 currentDataPoint.valueWarning_Mq2 = 1;//Add Sensor Data Collection
  104.         }
  105.         else
  106.         {
  107.                 currentDataPoint.valueWarning_Mq2 = 0;//Add Sensor Data Collection
  108.         }
  109.         
  110.     if(currentDataPoint.valueValue_Mq7 >= currentDataPoint.valueMq7_MAX)
  111.         {
  112.                 currentDataPoint.valueWarning_Mq7 = 1;//Add Sensor Data Collection
  113.         }
  114.         else
  115.         {
  116.                 currentDataPoint.valueWarning_Mq7 = 0;//Add Sensor Data Collection
  117.         }
  118.         
  119.         
  120.         if((currentDataPoint.valueValue_Tem >= currentDataPoint.valueTem_MAX) | (currentDataPoint.valueValue_Tem <= currentDataPoint.valueTem_MIN))
  121.         {
  122.                 currentDataPoint.valueWarning_Tem = 1;//Add Sensor Data Collection
  123.         }
  124.         else
  125.         {
  126.                 currentDataPoint.valueWarning_Tem = 0;//Add Sensor Data Collection
  127.         }
  128.         
  129.         if((currentDataPoint.valueWarning_Hum >= currentDataPoint.valueHum_MAX) | (currentDataPoint.valueWarning_Hum <= currentDataPoint.valueHum_MIN))
  130.         {
  131.                 currentDataPoint.valueWarning_Hum = 1;//Add Sensor Data Collection
  132.         }
  133.         else
  134.         {
  135.                 currentDataPoint.valueWarning_Hum = 0;//Add Sensor Data Collection
  136.         }
  137. }

  138. void TFT_ShowTable(void)
  139. {
  140.         Gui_DrawFont_GBK24(23,4,BLUE,YELLOW,(u8 *)"AIR MONITOR");

  141.         DisplayButtonUp(15,28,113,46); //x1,y1,x2,y2
  142.         DisplayButtonUp(15,48,113,66); //x1,y1,x2,y2
  143.         DisplayButtonUp(15,68,113,86); //x1,y1,x2,y2
  144.         DisplayButtonUp(15,88,113,106); //x1,y1,x2,y2
  145. }
復制代碼

原理圖: 無
仿真: 無
代碼: 環境監測.7z (264.33 KB, 下載次數: 60)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1107036 發表于 2024-1-23 16:21 | 只看該作者
大佬好,初學小白一枚。已下載程序,有原理圖或硬件配置圖嗎?想搭建看看效果。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线免费观看色 | 日韩中文字幕在线视频观看 | 久久久精品在线 | 99精品一区| 久久夜夜 | 黄色大片免费观看 | 亚洲一区二区免费 | 九九99九九精彩46 | 一区二区三区视频在线观看 | 成人国产在线视频 | hitomi一区二区三区精品 | 视频羞羞 | 国产成人自拍一区 | 亚洲天堂免费在线 | xxxxx免费视频 | 欧美日韩一区二区三区不卡视频 | 国产精品www | 久草免费在线 | 狠狠伊人 | 91xxx在线观看 | 国产精品久久久久久久免费观看 | 天堂一区二区三区 | 亚洲天堂成人在线视频 | 黄在线免费观看 | 欧美在线一区二区三区 | av天空| 羞羞涩涩在线观看 | 9999国产精品欧美久久久久久 | 中文字幕 国产 | 欧美精品在线看 | 蜜桃视频成人 | 成人亚洲精品 | 视频三区 | www.亚洲 | 国产乱码精品一区二区三区忘忧草 | 久久99精品久久久久久国产越南 | 亚洲一区亚洲二区 | 国产精品久久久久久婷婷天堂 | 日韩视频在线免费观看 | 麻豆亚洲 | 亚洲精品一区二区三区在线 |