真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何用TPYBoard開發(fā)板制作PM2.5檢測儀

今天就跟大家聊聊有關(guān)如何用TPYBoard開發(fā)板制作PM2.5檢測儀,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)是專業(yè)的雙湖網(wǎng)站建設(shè)公司,雙湖接單;提供網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行雙湖網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

下面主要分享下怎樣用更少的成本,短暫的時間。自己動手制作更加精確的pm2.5檢測儀。

那么PM2.5(細顆粒物)是什么?(廢話段)

         因為各國標準不一樣,天氣預(yù)報也報空氣質(zhì)量,預(yù)報的空氣質(zhì)量與實際的空氣質(zhì)量一樣嗎?但這個問題,想動手制作一個PM2.5檢測儀,有了自己動手制作的PM2.5檢測儀的話,當(dāng)空氣質(zhì)量較差或者嚴重污染的時候,提醒家人,同學(xué)和身邊的人盡量減少戶外活動,真正減少吸入細顆粒物。

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

接下來我介紹一個在1個小時內(nèi)制作一個PM2.5的方法。

1. PM2.5檢測儀原理

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

該檢測儀通過Python腳本語言實現(xiàn)硬件底層的訪問和控制細顆粒物檢測傳感器,每間隔一定時間,傳感器自動進行檢測,檢測到的空氣粉塵濃度數(shù)據(jù)通過串口上傳至主控板,主控板收集到數(shù)據(jù)后,同樣使用Python腳本語言將PM2.5的檢測結(jié)果顯示到LCD5110上。

參照1:TPYBoardLED亮燈狀態(tài)與 PM2.5日均濃度對應(yīng)的指數(shù)等級對應(yīng)表:

  

PM2.5值數(shù)

  

日均濃度值(ug/m3 )

空氣質(zhì)量等級

LED燈狀態(tài)

0~50

0-35

優(yōu)

綠燈亮

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 floatingpoint.

ü  1 MiB flash storage, 192 KiB RAM.

ü  USB口, 支持 串口,通用存儲,HID協(xié)議。

ü  SD卡插槽。

ü  MMA76603軸加速度計.

ü  4 LEDs, 1復(fù)位按鈕, 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開發(fā)板1塊,主要用來當(dāng)主控開發(fā)板,讀入傳感器數(shù)據(jù)。

3.Lcd5110顯示屏1個,主要用來顯示檢測的信息。

4.杜邦線若干。

5.數(shù)據(jù)線一條。

3.硬件接線方法傳感器的針腳

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

如何用TPYBoard開發(fā)板制作PM2.5檢測儀

圖1

LCD5110的針腳

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

如何用TPYBoard開發(fā)板制作PM2.5檢測儀

                   圖2

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

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

           如何用TPYBoard開發(fā)板制作PM2.5檢測儀

                         圖3

PM2.5粉塵傳感器工作原理及數(shù)據(jù)處理PM2.5粉塵傳感器工作原理

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

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

內(nèi)部結(jié)構(gòu)如圖內(nèi)部結(jié)構(gòu)仿真圖所示:

如何用TPYBoard開發(fā)板制作PM2.5檢測儀

內(nèi)部結(jié)構(gòu)仿真圖

PM2.5粉塵傳感器傳感器數(shù)據(jù)處理

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

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

如何用TPYBoard開發(fā)板制作PM2.5檢測儀

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

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

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

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

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

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

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

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

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

程序編碼

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

運行測試

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

下面鏈接是我用煙熏的演示視頻,供大家參考一下。

http://v.youku.com/v_show/id_XMTY5NjM5NDYwMA==.html

源代碼

把我寫的程序的源碼分享給大家,有需要的可以參考一下。


#main.py
import pyb
import upcd8544
from machine import SPI,Pin
from pyb import UART
from ubinascii import hexlify
from ubinascii import *

#M0 = Pin('X1', Pin.OUT_PP)
i=0
K=1
T=0
E=0
F=0
W=0
P=0
L=0
SHUCHU=0



 

A=800#A比例系數(shù),在北方一般使用800-1000.南方空氣好一些,一般使用600-800.這個還和你使用的傳感器靈敏度有關(guān)的,需要自己測試再定下來。

G=1024/5#G為固定系數(shù),是為了把串口收到的數(shù)據(jù)轉(zhuǎn)換成PM標準值。

SHI=0#后面會賦值轉(zhuǎn)換成十進制的數(shù)值。

#*******************************主程序**********************************

#pyb.delay(5000)
SPI = pyb.SPI(1) #DIN=>X8-MOSI/CLK=>X6-SCK
#DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in)
#CLK =>SPI(1).SCK  'X6' SPI clock
RST    = pyb.Pin('Y10')
CE     = pyb.Pin('Y11')
DC     = pyb.Pin('Y9')
LIGHT  = pyb.Pin('Y12')
while True:
    u2 = UART(2, 2400)
    pyb.delay(1000)
    #print('kaishi ')
    u2.deinit()
    pyb.delay(10)
    if(u2.any()>0):
        W=1
        _dataRead=u2.readall()
        #print('_dataRead=',_dataRead)
        R=0
        while (W>0):
            #print('截取開始')
            T=_dataRead[R]
            if(T==170):
                E=R+1
                F=R+2
                #R=_dataRead[65]
                #print('十位=',_dataRead[E])
                #print('個位=',_dataRead[F])
                W=0
            R=R+1
        P=_dataRead[E]
        L=_dataRead[F]
        SHI=P*256+L#把串口收到的十六進制數(shù)據(jù)轉(zhuǎn)換成十進制。
        SHUCHU=SHI/G*A
    if(SHUCHU<35):
        Quality = 'Excellente'
        print('環(huán)境質(zhì)量:優(yōu)','PM2.5=',SHUCHU)
        pyb.LED(1).off()
        pyb.LED(2).on()
        pyb.LED(3).off()
        pyb.LED(4).off()
    elif(35        Quality = 'Good'
        print('環(huán)境質(zhì)量:良好','PM2.5=',SHUCHU)
        pyb.LED(1).off()
        pyb.LED(2).on()
        pyb.LED(3).off()
        pyb.LED(4).off()
    elif(75        Quality = 'Slightly-polluted'
        print('環(huán)境質(zhì)量:輕度污染 ','PM2.5=',SHUCHU)
        pyb.LED(1).off()
        pyb.LED(2).off()
        pyb.LED(3).on()
        pyb.LED(4).off()
    elif(115        Quality = 'Medium pollution'
        print('環(huán)境質(zhì)量:中度污染 ','PM2.5=',SHUCHU)
        pyb.LED(1).off()
        pyb.LED(2).off()
        pyb.LED(3).on()
        pyb.LED(4).off()
    elif(150        Quality = 'Heavy pollution'
        print('環(huán)境質(zhì)量:重度污染 ','PM2.5=',SHUCHU)
        pyb.LED(1).on()
        pyb.LED(2).off()
        pyb.LED(3).off()
        pyb.LED(4).off()
    elif(250        Quality = 'Serious pollution'
        print('環(huán)境質(zhì)量:嚴重污染 ','PM2.5=',SHUCHU)
        pyb.LED(1).on()
        pyb.LED(2).off()
        pyb.LED(3).on()
        pyb.LED(4).off()
    lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT)
    lcd_5110.lcd_write_string('AQI Level',0,0)
    lcd_5110.lcd_write_string(str(Quality),0,1)
    lcd_5110.lcd_write_string('PM2.5:',0,2)
    lcd_5110.lcd_write_string(str(SHUCHU),0,3)

看完上述內(nèi)容,你們對如何用TPYBoard開發(fā)板制作PM2.5檢測儀有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


當(dāng)前文章:如何用TPYBoard開發(fā)板制作PM2.5檢測儀
標題路徑:http://weahome.cn/article/ihcjpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部