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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Micropython/STM32F405:1小時制作PM2.5檢測儀視頻演示

[復制鏈接]
跳轉到指定樓層
樓主

    制作一個PM2.5檢測儀的想法是好,在1個小時內能否制作出一個PM2.5檢測儀呢?利用C/C++是貼近硬件的語言來做的話,要花好長一段時間甚至半年先學習C語言以后,再考慮動手制作,更不用說1個小時內制作出一個PM2.5檢測儀。(視頻+代碼演示)

    接下來我介紹一個在1個小時內制作一個PM2.5的方法,首先介紹一下我從網上發現的一個好東西:TPYBoard開發板;它擁有自家的解析器、編譯器、虛擬機和類庫二次開發和環境,價格在python開發板里來說也是相當親民,可以開發很多有意思的小玩意,相當的不錯啦~


    1. PM2.5檢測儀的目的

    采用TPYBoard開發板為控制處理器,通過串口由PM2.5灰塵傳感器GP2Y1010AU0F檢測低程度的空氣污染PM2.5能夠甄別香煙和室內/室外灰塵,并通過SPI接口由LCD5110顯示屏顯示當前空氣粉塵濃度(ug/m?)。當空氣中粉塵濃度達到所設定限度點亮不同的LED燈來知道當前空氣質量等級。

    本系統電路簡單、工作穩定、集成度高,調試方便,測試精度高,具有一定的實用價值。該檢測儀通過Python腳本語言實現硬件底層的訪問和控制細顆粒物檢測傳感器,每間隔一定時間,傳感器自動進行檢測,檢測到的空氣粉塵濃度數據通過串口上傳至主控板,主控板收集到數據后,同樣使用Python腳本語言將PM2.5的檢測結果顯示到LCD5110上。

我們先一起看一下最終的成品演示效果視頻



    參照1:TPYBoardLED亮燈狀態與 PM2.5日均濃度對應的指數等級對應表:

PM2.5值數
日均濃度值(ug/m3 )
空氣質量等級
LED燈狀態
0~50
0-35

綠燈亮
50~100
35-75

綠燈亮
100~150
75-115
輕度污染
藍燈亮
150~200
115-150
中度污染
黃燈亮
200~300
150-250
重度污染
紅燈亮
>300
>250
嚴重污染
紅燈亮



    參照2: TPYBoard的硬件特點:
    -----------------------------------------------------------------------------------
    √ STM32F405RG MCU.
    √ 168 MHz Cortex-M4 CPU with 32-bit hardware floating point.
    √ 1 MiB flash storage, 192 KiB RAM.
    √ USB口, 支持 串口,通用存儲,HID協議。
    √ SD卡插槽。
    √ MMA76603軸加速度計.
    √ 4 LEDs, 1復位按鈕, 1通用按鈕.
    √ 3.3V0.3A板載 LDO , 可從USB口或者外置電池供電。
    √ 實時時鐘。
    √ 30個通用IO口,其中28個支持5V輸入輸出。
    √ 2個 SPI接口, 2個 CAN接口, 2個I2C接口, 5個USART接口.
    √ 14個 12-bit ADC引腳。
    √ 2個DAC 引腳。
    -----------------------------------------------------------------------------------

    2. 材料準備

    制作PM2.5檢測儀所需材料如下:
    1.PM2.5粉塵傳感器1個,檢測PM2.5(細顆粒物)傳感器,TXD串口輸出。
    2.TPYBoard開發板1塊,主要用來當主控開發板,讀入傳感器數據。
    3.Lcd5110顯示屏1個,主要用來顯示檢測的信息。
    4.杜邦線若干。
    5.數據線一條。


    3.硬件接線方法

    3.1 傳感器的針腳

    傳感器上一共六根線,從1到6依次是GND,VCC,NC,NC,RX,TX。其中我們只用三根線,電源(GND,VCC)和串口(TX),傳感器與TPYBorad接線參照圖1,具體用哪個串口請參照官方網站上文檔TPYBoard 關于串口的使用,小編用的串口為  UART(2) is on: (TX, RX) = (X3, X4)  = (PA2,  PA3),因為只需要將數據傳到PTYBoard,所以只用到RED即PTYBoard的X4引腳。

   
    圖1
    3.2 LCD5110的針腳

    先看一下LCD5110針腳含義吧(注意:LCD5110的針腳有些不一樣的

    TPYBoard的針腳與5110的針腳對應關系如下:

    TPYBoard       LCD5110    memo
    ----------------------------
    # any   Pin     => RST       Reset pin (0=reset, 1=normal)
    # any   Pin     => CE        Chip Enable (0=listen for     input,   1=ignore input)
    # any   Pin     => DC        Data/Command (0=commands, 1=data)
    # MOSI        => DIN       data flow (Master out, Slave in)
    # SCK        => CLK       SPI clock
    # 3V3 or any Pin    => VCC       3.3V logic voltage (0=off, 1=on)
    # any Pin       => LIGHT     Light (0=on, 1=off)
    # GND        => GND

    還是看不明白的話,直接上針腳編號吧

    TPYBoard       LCD5110    memo
    ----------------------------
    Y10          => RST       Reset pin (0=reset, 1=normal)
    Y11          => CE        Chip Enable (0=listen for input, 1=ignore input)
    Y9          => DC        Data/Command (0=commands, 1=data)
    X8          => DIN       data flow (Master out, Slave in)
    X6          => CLK       SPI clock
    VCC
    Y12         => LIGHT     Light (0=on, 1=off)
    GND

                           圖2

    3.3 PM2.5檢測儀整體接線方法

    按照圖1、圖2所示將PM2.5粉塵傳感器以及5110顯示屏與PTYBoard連接起來,硬件連接完畢,如圖3:

                              圖3
    4.PM2.5粉塵傳感器工作原理及數據處理

    4.1 PM2.5粉塵傳感器工作原理

    PM2.5粉塵傳感器的工作原理是根據光的散射原理來開發的,微粒和分子在光的照射下會產生光的散射現象,與此同時,還吸收部分照射光的能量。

    當一束平行單色光入射到被測顆粒場時,會受到顆粒周圍散射和吸收的影響,光強將被衰減。如此一來便可求得入射光通過待測濃度場的相對衰減率。而相對衰減率的大小基本上能線性反應待測場灰塵的相對濃度。光強的大小和經光電轉換的電信號強弱成正比,通過測得電信號就可以求得相對衰減率,進而就可以測定待測場里灰塵的濃度。在傳感器的中間有一個洞,這個洞可以讓空氣在里面流通。在洞的兩個邊緣 ,一面安裝有一個激光發射器,另一面安裝有激光接收器。這樣一來,空氣流過這個小洞,空氣里的顆粒物呢就會擋住激光,從而產生散射,另一面的接收器,是依據接收到的激光強度來發出不同的信號的(其實就是輸出不同的電壓值)。這樣一來,空氣里的顆粒物越多,輸出的電壓越高,顆粒物越少,輸出的電壓越低。

    內部結構如圖內部結構仿真圖所示:

  

    4.2 PM2.5粉塵傳感器傳感器數據處理

    上面說了傳感器的原理,接下來就說說它傳出來的信號和對于接收到的信號的計算吧。

    這個傳感器的輸出數據是靠串口進行傳輸的,傳感器會通過串口每10ms不到(一般3~4ms)發送一個數據,數據的類型大致是個“0X00”這樣的16進制的數據。每次的數據會以“0XAA”作為起始端,以“0XFF”作為結束端。共7個數據位,7個數據位中包含了起始位,結束位,數據高位,數據低位,數據高校驗位,數據低校驗位和校驗位(校驗位是怎樣計算出來的,下面會講到)。數據格式大致如下:


   

    其中校驗位長度=Vout(H)+Vout(L)+Vref(H)+Vref(L)的長度。

    數據的組成一共是有7個數據位,但是只有Vout(H)和Vout(L)這兩個數據才是我們真正所需要的。我們需要依照這兩個數據算出來串口輸出的數字數據,從而通過數模轉換公式來計算出輸出的電壓。進一步的通過比例系數計算出空氣中顆粒物的數量。下面來說一下怎么計算。

    傳感器輸出的數據分為高位和低位,其中呢Vout(H)為高位,Vout(L)為低位。因為串口傳進來的Vout(H)和Vout(L)是16進制的,第一步先轉化成10進制的(這個大家都會,不多說了)。然后根據這兩個輸出值的10進制數計算出串口輸出數值的電壓。

    公式如下(其中Vout(H)和Vout(L)是已轉化為10進制的):

    Vout=(Vout(H)*256+Vout(L))/1024*5

    這樣就算出來了他輸出出來的電壓了,再根據比例系數A,就可以計算出空氣中的顆粒物的值了。(A的值一般是在800到1000,具體的數值還要根據你買到的傳感器的精度,準確度和誤差值進行確定。我現在用的是800。)

    5.PM2.5粉塵傳感器的采樣頻率及程序編碼

    5.1PM2.5粉塵傳感器的采樣頻率

    PM2.5粉塵傳感器的采樣頻率是非常高的,一般3~4ms發送一個16進制的采樣數據,也就是說傳感器通電(接通VCC和GND)后,每隔3~4ms發送一個16進制的采樣數據,這么高的采樣頻率作為一個檢測儀來說顯然是沒有必要的。

    TPYBoard通過串口接收粉塵傳感器數據,使用串口當然先定義串口,通過打開就可以接收串口數據,關閉串口就停止接收數據的特點,來自由控制PM2.5粉塵傳感器的采樣頻率。

   5.2程序編碼

    我們main.py中,采用首先定義串口,其次是打開串口接收采樣數據,最后關閉串口,并且處理采樣數據及顯示,依次循環。

    6.運行測試

    接線ok后,導入font.py文件和upcd8544.py文件(主要用于5110顯示數據),再運行main.py即可看到當前的空氣質量等級以及PM2.5的濃度值了。

7.代碼部分




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

使用道具 舉報

沙發
ID:71423 發表于 2016-8-29 09:50 | 只看該作者
精彩
回復

使用道具 舉報

板凳
ID:156845 發表于 2016-12-22 14:04 | 只看該作者
感謝分享 謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黑人一级片视频 | 在线观看毛片网站 | 精品国产成人 | 国产在线观看免费 | 男女羞羞视频大全 | av片免费观看 | 久久人体 | 国户精品久久久久久久久久久不卡 | 男女羞羞在线观看 | 红色av社区| 剑来高清在线观看 | 日韩久草 | 自拍偷拍第一页 | 人人干97| 国产在线中文 | 亚洲国产精品一区二区三区 | 久久美女网 | 国产99精品 | 九九视频在线观看视频6 | 亚洲福利免费 | 婷婷久久一区 | 91精品久久久久久久久久入口 | 日韩在线xx| 日韩av手机在线观看 | 精品免费国产视频 | 91精品成人久久 | 欧美精品一区二区三区在线播放 | 久久99精品久久久久久国产越南 | 91人人视频在线观看 | 成人中文网 | 久久久久国产精品一区三寸 | 久久精品二区 | 亚洲一区二区三区免费观看 | www.色婷婷| 国产精品视频导航 | 免费午夜视频 | 国产精品综合色区在线观看 | 欧美激情精品久久久久久 | 日韩中文一区 | 午夜一区 | 男女午夜免费视频 |