【導(dǎo)讀】最近在研究怎么在樹莓派上接入各種傳感器,初步完成了氣壓溫濕度還有pm2.5/pm10的檢測功能,本來覺得有些配置上寫出來可能會比較復(fù)雜,但是看到值友casatift幾篇原創(chuàng)的受歡迎程度,決定也出來分(pian)享(jin)下(bi)。
首先說明下,基于arduino的方案,從性價比上來說相對樹莓派要高很多,畢竟一個樹莓派200大洋,一個arduino的板子才1、20來塊,如果只是為了監(jiān)測監(jiān)測市內(nèi)的溫濕度空氣質(zhì)量啥的,其實還是arduino這種小板子性價比高。那么又想省錢又想省事的話,淘寶還有不少商家拿攀藤g5+單片機搭出來的pm2.5檢測的成品,1、200也不貴。我寫的這篇東西,更適合已經(jīng)有了或者將要買樹莓派的值友。
樹莓派好在做這種小的電子diy時候?qū)懘a方便,c、python或者其他的語言,只要linux上有的、有g(shù)pio相關(guān)的包,都可以用,會什么用什么。而且可以在電視上放放視頻、實現(xiàn)簡單的nas、http服務(wù)器之類的功能。外設(shè)也和pc基本兼容。哪天玩膩了還可以干點別的東西。
首先完成體照片鎮(zhèn)樓:
采購清單
樹莓派2:
200左右,要是圖便宜的話,可以收個二手一代樹莓派,100多應(yīng)該能拿下,其他的像橙子派之類的跟風(fēng)產(chǎn)品,也有g(shù)pio口,自稱和樹莓派兼容,不知道實際如何,價格90多。
GY-68模塊:
芯片也就是bmp180,監(jiān)測氣溫氣壓。淘寶大概7-13塊
SHT20:
監(jiān)測氣溫、濕度,25塊左右,這個記得買模塊sht20只是上面的芯片名稱。
攀藤g5:
檢測pm2.5/pm10,用的是激光散射的方式,相對比較準確, 110-130左右的樣子。
LCD1602模塊:
我是跑中關(guān)村的中發(fā)市場買的,藍白屏(下面哪種,藍底白字,上面的是綠底,黑字)帶背光3.3v,18塊,回來看淘寶才發(fā)現(xiàn)便宜點,買時候注意是5v還是3.3v的,我是因為買的擴展板只能插3.3v的。
雜物:
面包板、公對母、公對公杜邦線,加一塊10快錢吧,淘寶有賣套裝的。如果要裝lcd1602,而且不用擴展板,記得再買個10k的電位器。
上面是必選物品,下面是可選物品:
GY-30:
測光強的,說實話沒多大用,就是為了個好玩,8、9塊錢
DVK512擴展板:
買這個是為了接線方便(尤其是lcd1602,3.3V的lcd1602直接插上就可以),i2c總線接口和uart接口也單獨引出了,接線方便。另外集成了時鐘電路、二極管小燈,usb轉(zhuǎn)串口之類的功能。
性價比一般80塊,當時也是頭腦一熱,自己面包板搭也是可以的,買這個就是圖個最后樣子好看點,另外就是樹莓派1代不推薦,因為2帶gpio是40針,一代只有26針,沒法直接插上,還得用杜邦線引出。
免驅(qū)wifi網(wǎng)卡:
一般賣樹莓派的店家都有,插上之后配好系統(tǒng)里配好路由就能用,20+。
樹莓派2的外殼:
15、6塊,也是買樹莓派時候可以捎上一個。
連線:
首先是傳感器部分,因為我選擇的傳感器就兩種接口,i2c和串口的,所以接線比較簡單,上圖:
然后是LCD1602,這個分兩種情況,一個是買了擴展板的,直接把插到對應(yīng)的插槽里就行,如果沒買的話自己搭,參考這個(注意這是5v的圖,千萬別把3.3v的lcd1602照貓畫虎接上去):
系統(tǒng):
我用的rasbian,怎么刷系統(tǒng)、配網(wǎng)絡(luò)之類的不說了,可以參考這個教程:鏈接
說幾個注意的地方:
1、要啟用i2c接口
登陸后運行raspi-config
Advanced Options->I2c->YES
之后重啟
2、安裝i2c-tools
apt-get install i2c-tools
安裝好后運行i2cdetect -y 1(樹莓派1應(yīng)該是改成0)
應(yīng)該有類似下面的內(nèi)容出現(xiàn),其中的23、40、77是應(yīng)該出現(xiàn)的,沒有的話說明接線圖左邊的一溜有沒接對的,其中23是GY-30, 40是sht20,77是GY-68:
3、配置串口,以方便讀取攀藤g5的數(shù)據(jù)
因為樹莓派就一個串口,默認貌似開了內(nèi)核串口輸出,這樣就沒法用來讀攀藤g5的數(shù)據(jù)了,所以需要關(guān)閉。
修改/boot/cmdline.txt里面的內(nèi)容為:
dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
保存,重啟。
完成后輸入命令cat /dev/ttyAMA0 -b -v
之后應(yīng)該看到有幾行亂碼出現(xiàn):
這樣就說明pm2.5的傳感器也連接好了,現(xiàn)在就可以上代碼了,我把我python寫的腳本開源出來,方便大家(里面有些程序配置的說明,參考就可以)
因為要長期運行需要裝個supervisor 達到自動啟動腳本守護的功能:
apt-get install supervisor安裝
之后在/etc/supervisor/conf.d/里新建個配置文件,內(nèi)容如下
[program:yeelink_poster.py]
command=python /自己的腳本路徑/yeelink_poster.py
autorstart=true
directory=/自己的腳本路徑/
autorestart=true
startsecs=10
startretries=36
redirect_stderr=true
stdout_logfile=/自己的腳本路徑/log.txt
stderr_logfile=/自己的腳本路徑/err.txt
之后自己在這個頁面上注冊個賬號,然后添加設(shè)備傳感器,之后把設(shè)備id、傳感器id、api_key都填入python代碼里就行。
至此大功告成。
然后其實做之前也是不大了解這些東西的,但是實際做起來發(fā)現(xiàn),只要把線連好了,網(wǎng)上大把的開源代碼可供參考,我的代碼里幾個讀取傳感器數(shù)據(jù)的代碼都是參照別人開源的改來的?,F(xiàn)在互聯(lián)網(wǎng)發(fā)達,自己diy些東西方便太多了。
如果有條件,后續(xù)用wifi插座或者用繼電器模塊diy一下,就可以相對智能的控制家里的加濕器、還有一些低端沒有傳感器的凈化器(譬如ffu)。
推薦閱讀: