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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm32+攀藤G1空氣質量檢測源碼與參考資料下載

[復制鏈接]
跳轉到指定樓層
樓主
     攀藤G1是一款數字式通用顆粒濃度傳感器,可以用于獲得單位體積內空氣中懸浮顆粒物個數及質量,即顆粒物濃度,并以數字接口形式輸出。傳感器采用激光散射原理。即令激光照射在空氣中的懸浮顆粒物上產生散射,同時在某一特定角度收集散射光,得到散射光強隨時間變化的曲線。進而微處理器利用基于米氏(MIE)理論的算法,得出顆粒物的等效粒徑及單位體積內不同粒徑的顆粒物數量。輸出為單位體積內各濃度顆粒物質量及個數。

攀藤G1傳感器傳輸協議串口默認波特率:9600bps,校驗位:無,停止位:1位。模塊工作在連續采樣方式下,模塊在每一次采樣結束后主動發送采樣數據,采樣響應時間小于600毫秒,數據更新時間小于2秒。模塊發送數據包定義32個字節。控制器只要讀取串口中數據,處理、傳喚得到需要的數值。

屏幕顯示的污染級別對應的顏色,嚴格按照這個配色來的,照片顏色顯示質量不如實際顯示顏色鮮艷。照不出效果。

合體到一塊了,內部空間。

電路原理圖如下:



stm32單片機源程序如下:
  1. #include"led.h"
  2. #include"LCD.h"
  3. #include"delay.h"

  4. extern u16  Conce_PM1_0;       // PM1.0濃度
  5. extern u16  Conce_PM2_5;       // PM2.5濃度
  6. extern u16  Conce_PM10;        // PM10濃度

  7. u16 IAQI[8]={0,50,100,150,200,300,400,500};
  8. u16 PM10[8]={0,50,150,250,350,420,500,600};
  9. u16 PM25[8]={0,35,75,115,150,250,350,500};

  10. u16 IAQIPM10;        //PM10空氣質量分指數
  11. u16 IAQIPM25;        //PM2.5空氣質量分指數
  12. u16 CpPM10;                //PM10濃度
  13. u16 CpPM25;                //PM2.5濃度
  14. u16 BpHi;                        //與Cp相近的污染物濃度限值的高值
  15. u16 BpLo;                        //與Cp相近的污染物濃度限值的低值
  16. u16 IAQIHi;                //與BpHi對應的空氣質量分指數
  17. u16 IAQILo;                //與BpLo對應的空氣質量分指數
  18. u16 AQI;                        //空氣質量指數
  19. u8  Max=10;                //Max=0,首要污染物為PM25,Max=1,為PM10,Max=2雙重污染

  20. void delay_BUSY(void)          // 觸摸顯示屏 發送延時
  21. {
  22.                 u16 a;
  23.                 for (a=0; a<100; a++) ;
  24.                 while(HMI_BUSY);                   // 當發送完之后,等待BUSY為0

  25. }

  26. void Window(void)
  27. {
  28.                 printf("CLS(0);");
  29.                 printf("DS48(10,12,'唐山',7,0);");
  30.                 printf("DS32(110,28,'實時空氣質量指數(AQI)',7,0);");
  31.                 printf("CIR(92,160,56,4);");
  32.                 printf("CIR(92,160,55,4);");
  33.                 printf("DS24(55,198,'AQI指數',4,0);");
  34.                 printf("CIR(239,160,55,4);");
  35.                 printf("CIR(239,160,56,4);");
  36.                 printf("DS24(180,198,'首要污染物',4,0);");
  37.                 printf("CIR(386,160,55,4);");
  38.                 printf("CIR(386,160,56,4);");
  39.                 printf("DS24(340,198,'PM2.5濃度',4,0);");
  40.                 printf("BOXF(50,265,100,280,2);");                //綠色
  41.                 printf("BOXF(100,265,150,280,4);");                //黃色
  42.                 printf("SCC(37,64480);");
  43.                 printf("BOXF(150,265,200,280,37);");        //橙色
  44.                 printf("BOXF(200,265,250,280,1);");        //紅色
  45.                 printf("SCC(19,38921);");
  46.                 printf("BOXF(250,265,300,280,19);");        //紫色
  47.                 printf("SCC(18,30724);");
  48.                 printf("BOXF(300,265,350,280,18);");        //褐紅色
  49.                 printf("DS16(48,285,'0',7,0);");
  50.                 printf("DS16(91,285,'50',7,0);");
  51.                 printf("DS16(140,285,'100',7);");
  52.                 printf("DS16(190,285,'150',7);");
  53.                 printf("DS16(240,285,'200',7);");
  54.                 printf("DS16(290,285,'300',7);");
  55.                 printf("DS16(340,285,'500',7);");
  56.                 printf("DS16(369,178,'ug/m3',7,0);");
  57.                 printf("CBOX(0,0,479,318,5,4);");
  58.                 printf("PL(0,76,479,76,4);");
  59.                 printf("DS16(400,265,'13:20:36',7);");
  60.                 printf("DS16(395,285,'2016-5-18',7,0);");
  61.                 printf("\r\n");

  62. //                delay_BUSY();                //當發送完之后,等待BUSY為0
  63. }


  64. void AQI_Count(void)                                //計算AQI指數,判斷首要污染物
  65. {
  66.                 u8 i=0;
  67.                 u8 j=0;

  68.         
  69.                 CpPM10=Conce_PM10;
  70.                

  71.                
  72.                 for(i=0;i<7;i++)
  73.                 {
  74.                                 if((CpPM10>PM10[i])&&(CpPM10<PM10[i+1]))
  75.                                 {
  76.                                                 BpHi=PM10[i+1];
  77.                                                 BpLo=PM10[i];
  78.                                                 IAQIHi=IAQI[i+1];
  79.                                                 IAQILo=IAQI[i];
  80.                                                 IAQIPM10=(IAQIHi-IAQILo)*(CpPM10-BpLo)/(BpHi-BpLo)+IAQILo;
  81.                                 }
  82.                                 else if(CpPM10==PM10[i])
  83.                                 {
  84.                                                 IAQIPM10=IAQI[i];
  85.                                 }
  86.                                 else if(CpPM10>=600)
  87.                                 {
  88.                                                 IAQIPM10=((50/6)*(CpPM10-600))/10+500;         //爆表
  89.                                 }
  90.                 }

  91.                 CpPM25=Conce_PM2_5;
  92.                                 
  93.                 for(j=0;j<7;j++)
  94.                 {
  95.                                 if((CpPM25>PM25[j])&&(CpPM25<PM25[j+1]))
  96.                                 {
  97.                                                 BpHi=PM25[j+1];
  98.                                                 BpLo=PM25[j];
  99.                                                 IAQIHi=IAQI[j+1];
  100.                                                 IAQILo=IAQI[j];
  101.                                                 IAQIPM25=(IAQIHi-IAQILo)*(CpPM25-BpLo)/(BpHi-BpLo)+IAQILo;
  102.                                 }
  103.                                 else if(CpPM25==PM25[j])
  104.                                 {
  105.                                                 IAQIPM25=IAQI[j];
  106.                                 }
  107.                                 else if(CpPM25>=500)
  108.                                 {
  109.                                                 IAQIPM25=CpPM25;         //爆表
  110.                                 }
  111.                 }
  112.                
  113.                 if(IAQIPM10>IAQIPM25)
  114.                 {
  115.                                 AQI=IAQIPM10;
  116.                                 Max=1;
  117.                 }
  118.                 else if(IAQIPM10<IAQIPM25)
  119.                 {
  120.                                 AQI=IAQIPM25;
  121.                                 Max=0;
  122.                 }else if(IAQIPM10==IAQIPM25)
  123.                 {
  124.                                 AQI=IAQIPM10;
  125.                                 Max=2;
  126.                 }
  127. }

  128. void Display(void)
  129. {
  130. //                        printf("CLS(0);\r\n");                          //清屏
  131. //      printf("PIC(0,0,1);");                //畫圖

  132.         
  133. //      printf("SBC(2);");                                //設置背景色
  134. //      printf("TPN(2);");                                //觸摸屏模式
  135. //      printf("BTN(6,396,278,475,315,0);");        //熱點區域按鈕
  136. //      printf("BTN(7,0,0,479,274,0);\r\n");

  137.         
  138.                                 printf("DS48(350,132,'%4d ',7);",Conce_PM2_5);      // PM2.5輸出
  139. //                        printf("PS64(0,10,100,'PM1.0:%5d',2);\r\n",Conce_PM1_0);      // PM1.0輸出
  140. //                                printf("DS48(0,10,240,'PM10 :%5d',3);\r\n",Conce_PM10);      // PM10 輸出
  141. //                        delay_BUSY();                //當發送完之后,等待BUSY為0
  142. //                                printf("DS48(0,0,'PM2.5:%4d  ',1);",Conce_PM2_5);      // PM2.5輸出
  143. //                                printf("DS48(0,60,'PM10 :%4d  ',2);",Conce_PM10);      // PM10 輸出
  144.                                 printf("DS48(55,135,'%4d ',3;",AQI);      // AQI
  145. //                                        printf("DS48(0,240,'IAQIPM10:%4d  ',5;",IAQIPM10);      // PM2.5輸出
  146.                                 if(Max==0)
  147.                                 {
  148.                                                 printf("DS32(203,145,'PM2.5',14);");      // PM2.5 輸出                                
  149.                                 }
  150.                                 else if(Max==1)
  151.                                 {
  152.                                                 printf("DS32(203,145,' PM10',14);");      // PM10 輸出                                
  153.                                 }else if(Max==2)
  154.                                 {
  155. //                                                printf("DS32(203,135,'PM2.5',14)");
  156. //                                                printf("DS32(203,160,' PM10',14)");
  157.                                 }
  158.                         
  159.                                 if(AQI<=50)
  160.                                 {
  161.                                                 printf("DS24(60,235,' 優                                                       ',5)");
  162.                                 }
  163.                                 else if((AQI>50)&&(AQI<=100))
  164.                                 {
  165.                                                 printf("DS24(60,235,'          良                                              ',5)");
  166. ……………………

  167. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
設計說明.doc (460 KB, 下載次數: 40)
激光PM2.5 傳感器攀藤G1資料包.zip (6.95 MB, 下載次數: 32)
STM32F103C8T6-2原理圖.pdf (54.8 KB, 下載次數: 24)
PM2.5 Program.zip (913.7 KB, 下載次數: 50)






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

使用道具 舉報

沙發
ID:539902 發表于 2019-5-16 16:13 | 只看該作者
求源碼
回復

使用道具 舉報

板凳
ID:585455 發表于 2019-9-9 13:57 | 只看該作者
感謝分享
回復

使用道具 舉報

地板
ID:376018 發表于 2020-1-29 19:07 | 只看該作者
求源碼下載。謝謝分享
回復

使用道具 舉報

5#
ID:688772 發表于 2020-1-30 13:37 | 只看該作者
感謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区在线视频 | 亚洲一区视频在线 | 久草视频在线看 | 97伊人| 黄在线免费观看 | 国产美女一区二区 | 91短视频网址 | jlzzjlzz国产精品久久 | 在线视频 中文字幕 | 日韩人体在线 | 久草在线高清 | 欧美日韩国产精品一区 | 美女啪啪国产 | 欧美一区二区三区在线看 | 国外激情av| 91久久视频| 91精品在线看 | 国产精品久久久久久久久久了 | 日本电影一区二区 | 国产线视频精品免费观看视频 | 精品在线看| 激情欧美一区二区三区中文字幕 | 东方伊人免费在线观看 | 免费一看一级毛片 | 成在线人视频免费视频 | 激情伊人网 | 国产区久久 | 91麻豆久久久 | 午夜天堂精品久久久久 | 殴美一级片| 亚洲成年影院 | 中文字幕高清 | 羞羞在线观看视频 | 亚洲综合色视频在线观看 | 亚洲久久 | 日韩亚洲视频 | 欧美a区 | 99re在线视频 | 日韩电影中文字幕在线观看 | 阿v视频在线观看 | 亚洲色片网站 |