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