起因
自上一篇DIY空氣檢測(cè)儀以來(lái),已經(jīng)過(guò)去了一整年,期間收到了很多詢問(wèn)。在這期間文中方案工作穩(wěn)定,但是室內(nèi)污染物除了甲醛、PM2.5呀,還有因密閉空間產(chǎn)生的二氧化碳超標(biāo)問(wèn)題,通常建議室內(nèi)二氧化碳保持在1000ppm以下比較好,通常辦公室和家里會(huì)處在1000以上一點(diǎn)點(diǎn)氯氣檢測(cè)儀,如果是人多的話可能會(huì)到2000甚至3000ppm,那就會(huì)感覺(jué)很悶了。
這不,空調(diào)季節(jié)~開(kāi)窗通風(fēng)時(shí)間變少,所以開(kāi)始著手給我那方案增加一個(gè)二氧化碳檢測(cè)功能。
DIY空氣檢測(cè)儀——攀藤G5ST+OpenWrt(附代碼)前言看過(guò)我前幾篇租房布置的文章就知道,這房間的污染源也不算小了,為了給自己安個(gè)心,DIY檢測(cè)下空氣那是必須的(魂淡,不就是想玩DIY嗎)生活不是租來(lái)的——單身公寓初步布置簡(jiǎn)記生活不是租來(lái)的——單身公寓初步布置簡(jiǎn)記追加修改(2016-06-...NightCoffee| 贊36 評(píng)論32 收藏168查看詳情增強(qiáng)方案
原先因?yàn)榭紤]盡可能少的購(gòu)買額外設(shè)備,所以把路由器作為了主控,去讀取串口傳感器數(shù)據(jù)并上傳,當(dāng)我選型定了使用攀藤的CO2傳感器時(shí),發(fā)現(xiàn)我如果需要再讀取一個(gè)串口傳感器的數(shù)據(jù),那我還需要再買個(gè)USB串口的連接器,這樣看起來(lái)復(fù)雜度變的很高,而且花費(fèi)也不小。
又考慮到原先方案如果人就在家,因?yàn)闆](méi)有顯示屏,想直接看當(dāng)前數(shù)據(jù)還得登錄網(wǎng)站去看也是頗為麻煩,以及路由器有時(shí)候重啟呀,折騰刷機(jī)呀都要重新折騰下腳本,也是麻煩事,傳感器還必須和路由器放一起。正好前陣子Arduino很火,不如就玩玩Arduino吧!
所以先定了這樣的組合方案:G5ST+DS-CO2-20+Arduino+12864 OLED顯示屏
那么問(wèn)題又來(lái)了,這樣徹底就只能本地顯示了,完全沒(méi)法聯(lián)網(wǎng)上傳數(shù)據(jù),看了眼Arduino的聯(lián)網(wǎng)方案價(jià)格……剛好看到esp8266的wifi方案,于是直接轉(zhuǎn)投了nodemcu
nodemcu是基于esp8266開(kāi)發(fā)的板子,所以天生自帶WiFi,如果運(yùn)算量和外接設(shè)備不多的話完全夠用,所以最終定下這樣的方案:
G5ST+DS-CO2-20+Nodemcu+12864 OLED顯示屏
這里顯示屏可以自己隨便換著玩,但是普通LCD看著挺Low的……
所以還是選OLED的好一些,就是尺寸很小,不過(guò)能看就行了……
零件開(kāi)箱
由于之前一直沒(méi)玩過(guò)Arduino之類的東西,所以基本是啥配件都沒(méi)有……沒(méi)有杜邦線……沒(méi)有面包板……電源也沒(méi)有,所以全部馬云爸爸家購(gòu)買,一共添置了以下東西,共計(jì)大約300大洋不到
1. MB102 面包板+電源模塊+65條面包線
2. NodeMCU Lua WiFi 測(cè)試板 開(kāi)發(fā)板 基于ESP8266WiFi模塊 CP2102
3. 攀藤 二氧化碳 傳感器 CO2 DS-CO2-20 + 轉(zhuǎn)2.54mm排針 轉(zhuǎn)接板
4. 0.96寸白色 I2C IIC通信 128*64 OLED液晶屏模塊
5. 開(kāi)關(guān)電源 適配器 9V/1A
由于算是個(gè)偽開(kāi)箱……所以直接上個(gè)最終成品圖好了
接線方法
首先把面板包放在桌子上
然后把電源模塊插上去,最好正負(fù)極按面包板提示放
然后在另一頭插上nodemcu,為啥在另一個(gè)頭插呢,因?yàn)榉奖氵Busb呀!
接下去中間就是安放OLED顯示屏和留給2個(gè)傳感器的位置了,愛(ài)咋放咋放,注意自己面包板哪行哪列是連通的就可以。
放完器件就是接線
,這里所用到的器件都可以用5V供電,所以把電源模塊那一側(cè)切換到5V
然后把各自的VCC和GND接到面包板上的這一側(cè)即可
顯示屏是I2C的,所以只需要2條IO接線,我是這樣接的SCL->nodemcu D1,SDA->nodemcu D2,這樣可以直接用自帶demo跑起來(lái),因?yàn)閐emo內(nèi)定義的就是這2個(gè)引腳為I2C
傳感器因?yàn)槭谴诘模砸埠芎?jiǎn)單,對(duì)于G5ST只需要把TX接到nodemcu上即可,而DS-CO2-20是查詢式的傳感器,所以TX RX都要接上,這里我這樣接(想直接套用我代碼的就按我這樣接吧。。)
G5ST TX -> nodemcu D7
DS-CO2-20 TX -> nodemcu D5,RX -> nodemcu D6
程序設(shè)計(jì)思路
由于之前沒(méi)接觸過(guò)這類東西,尤其對(duì)Lua也不熟悉,所以對(duì)于nodemcu來(lái)說(shuō)Lua對(duì)我是沒(méi)任何優(yōu)勢(shì)的……
直接拿起了Arduino IDE + nodemcu的配置包,下載好一些必用庫(kù)(比如Adafruit_GFX和Adafruit_SSD1306),用起了C語(yǔ)言
首先我們用到的資源:2個(gè)軟串口,1個(gè)顯示屏,1個(gè)WiFi
問(wèn)題點(diǎn)發(fā)生在下面幾個(gè)模塊:
顯示屏I2C地址到底是多少?
根據(jù)賣家說(shuō)明,I2C可在顯示屏背面進(jìn)行焊接選擇,默認(rèn)是0x78,所以傻傻的打開(kāi)了demo把地址改成了0x78結(jié)果啥都沒(méi)亮……經(jīng)過(guò)網(wǎng)上搜尋。。。原來(lái)在這里給顯示庫(kù)的I2C地址應(yīng)該要右移一位……也就是應(yīng)該寫0x3C
雙軟串口怎么玩?
Arduino內(nèi)可以使用softwareserial.listen()方法來(lái)切換到某一個(gè)軟串口,但這個(gè)方法在nodemcu不可用。
正確方法是需要使用某個(gè)軟串口時(shí),應(yīng)該關(guān)閉所有其他軟串口xxxxx.enableRx(false);只打開(kāi)當(dāng)前軟串口xxxxxx.enableRx(true);
串口校驗(yàn)數(shù)據(jù)要不要管?
對(duì)于DS-CO2-20這種查詢式的我覺(jué)得可以不管,但對(duì)于G5ST返回?cái)?shù)據(jù)最好還是校驗(yàn)一下,不然很容易有異常數(shù)據(jù),導(dǎo)致結(jié)果不可靠。
其它的就自己閱讀代碼吧,寫的也很爛,仍然是用的lewei的平臺(tái)保存數(shù)據(jù),不過(guò)跑了一天沒(méi)啥問(wèn)題就這樣吧。
二氧化碳檢測(cè)結(jié)果和通風(fēng)必要性
跑了一天來(lái)說(shuō)說(shuō)結(jié)果吧~
可能是房間密閉性也不太好,二氧化碳濃度最高只有1400ppm,除非直接對(duì)著傳感器哈氣
中間開(kāi)窗,開(kāi)空氣循環(huán)扇強(qiáng)制通風(fēng)了20分鐘,可以看到20分鐘就能顯著下降到與戶外接近水平(大氣中好像400多ppm?)
大約關(guān)窗后2小時(shí)回到1000ppm,再過(guò)4小時(shí)到達(dá)通風(fēng)前效果。
經(jīng)過(guò)一個(gè)晚上,加上一個(gè)無(wú)人的白天,可以看到按我房間密閉條件大約最高就1200左右了,人離開(kāi)后1個(gè)小時(shí)達(dá)到1000以下,8個(gè)小時(shí)后達(dá)到與室外基本平衡
總結(jié)來(lái)說(shuō)就是通風(fēng)20分鐘,維持6小時(shí)
,所以夏季還是得多開(kāi)窗通風(fēng)呀,每日一通都不是太足夠,最好三通,然后睡覺(jué)前也通個(gè)風(fēng),
當(dāng)然最好的方案還是上新風(fēng)機(jī)了
附:程序代碼
起因
自上一篇DIY空氣檢測(cè)儀以來(lái),已經(jīng)過(guò)去了一整年,期間收到了很多詢問(wèn)。在這期間文中方案工作穩(wěn)定,但是室內(nèi)污染物除了甲醛、PM2.5呀,還有因密閉空間產(chǎn)生的二氧化碳超標(biāo)問(wèn)題,通常建議室內(nèi)二氧化碳保持在1000ppm以下比較好,通常辦公室和家里會(huì)處在1000以上一點(diǎn)點(diǎn),如果是人多的話可能會(huì)到2000甚至3000ppm,那就會(huì)感覺(jué)很悶了。
這不,空調(diào)季節(jié)~開(kāi)窗通風(fēng)時(shí)間變少,所以開(kāi)始著手給我那方案增加一個(gè)二氧化碳檢測(cè)功能。
DIY空氣檢測(cè)儀——攀藤G5ST+OpenWrt(附代碼)前言看過(guò)我前幾篇租房布置的文章就知道,這房間的污染源也不算小了,為了給自己安個(gè)心,DIY檢測(cè)下空氣那是必須的(魂淡,不就是想玩DIY嗎)生活不是租來(lái)的——單身公寓初步布置簡(jiǎn)記生活不是租來(lái)的——單身公寓初步布置簡(jiǎn)記追加修改(2016-06-...NightCoffee| 贊36 評(píng)論32 收藏168查看詳情增強(qiáng)方案
原先因?yàn)榭紤]盡可能少的購(gòu)買額外設(shè)備二氧化碳檢測(cè)儀,所以把路由器作為了主控,去讀取串口傳感器數(shù)據(jù)并上傳,當(dāng)我選型定了使用攀藤的CO2傳感器時(shí),發(fā)現(xiàn)我如果需要再讀取一個(gè)串口傳感器的數(shù)據(jù),那我還需要再買個(gè)USB串口的連接器,這樣看起來(lái)復(fù)雜度變的很高,而且花費(fèi)也不小。
又考慮到原先方案如果人就在家,因?yàn)闆](méi)有顯示屏,想直接看當(dāng)前數(shù)據(jù)還得登錄網(wǎng)站去看也是頗為麻煩,以及路由器有時(shí)候重啟呀,折騰刷機(jī)呀都要重新折騰下腳本,也是麻煩事,傳感器還必須和路由器放一起。正好前陣子Arduino很火,不如就玩玩Arduino吧!
所以先定了這樣的組合方案:G5ST+DS-CO2-20+Arduino+12864 OLED顯示屏
那么問(wèn)題又來(lái)了,這樣徹底就只能本地顯示了,完全沒(méi)法聯(lián)網(wǎng)上傳數(shù)據(jù),看了眼Arduino的聯(lián)網(wǎng)方案價(jià)格……剛好看到esp8266的wifi方案,于是直接轉(zhuǎn)投了nodemcu
nodemcu是基于esp8266開(kāi)發(fā)的板子,所以天生自帶WiFi,如果運(yùn)算量和外接設(shè)備不多的話完全夠用,所以最終定下這樣的方案:
G5ST+DS-CO2-20+Nodemcu+12864 OLED顯示屏
這里顯示屏可以自己隨便換著玩,但是普通LCD看著挺Low的……
所以還是選OLED的好一些,就是尺寸很小,不過(guò)能看就行了……
零件開(kāi)箱
由于之前一直沒(méi)玩過(guò)Arduino之類的東西,所以基本是啥配件都沒(méi)有……沒(méi)有杜邦線……沒(méi)有面包板……電源也沒(méi)有,所以全部馬云爸爸家購(gòu)買,一共添置了以下東西,共計(jì)大約300大洋不到
1. MB102 面包板+電源模塊+65條面包線
2. NodeMCU Lua WiFi 測(cè)試板 開(kāi)發(fā)板 基于ESP8266WiFi模塊 CP2102
3. 攀藤 二氧化碳 傳感器 CO2 DS-CO2-20 + 轉(zhuǎn)2.54mm排針 轉(zhuǎn)接板
4. 0.96寸白色 I2C IIC通信 128*64 OLED液晶屏模塊
5. 開(kāi)關(guān)電源 適配器 9V/1A
由于算是個(gè)偽開(kāi)箱……所以直接上個(gè)最終成品圖好了
接線方法
首先把面板包放在桌子上
然后把電源模塊插上去,最好正負(fù)極按面包板提示放
然后在另一頭插上nodemcu,為啥在另一個(gè)頭插呢,因?yàn)榉奖氵Busb呀!
接下去中間就是安放OLED顯示屏和留給2個(gè)傳感器的位置了,愛(ài)咋放咋放,注意自己面包板哪行哪列是連通的就可以。
放完器件就是接線
,這里所用到的器件都可以用5V供電,所以把電源模塊那一側(cè)切換到5V
然后把各自的VCC和GND接到面包板上的這一側(cè)即可
顯示屏是I2C的,所以只需要2條IO接線,我是這樣接的SCL->nodemcu D1,SDA->nodemcu D2氨氣檢測(cè)儀,這樣可以直接用自帶demo跑起來(lái),因?yàn)閐emo內(nèi)定義的就是這2個(gè)引腳為I2C
傳感器因?yàn)槭谴诘模砸埠芎?jiǎn)單,對(duì)于G5ST只需要把TX接到nodemcu上即可,而DS-CO2-20是查詢式的傳感器,所以TX RX都要接上,這里我這樣接(想直接套用我代碼的就按我這樣接吧。。)
G5ST TX -> nodemcu D7
DS-CO2-20 TX -> nodemcu D5,RX -> nodemcu D6
程序設(shè)計(jì)思路
由于之前沒(méi)接觸過(guò)這類東西,尤其對(duì)Lua也不熟悉,所以對(duì)于nodemcu來(lái)說(shuō)Lua對(duì)我是沒(méi)任何優(yōu)勢(shì)的……
直接拿起了Arduino IDE + nodemcu的配置包,下載好一些必用庫(kù)(比如Adafruit_GFX和Adafruit_SSD1306)二氧化碳檢測(cè)儀,用起了C語(yǔ)言
首先我們用到的資源:2個(gè)軟串口,1個(gè)顯示屏,1個(gè)WiFi
問(wèn)題點(diǎn)發(fā)生在下面幾個(gè)模塊:
顯示屏I2C地址到底是多少?
根據(jù)賣家說(shuō)明,I2C可在顯示屏背面進(jìn)行焊接選擇,默認(rèn)是0x78,所以傻傻的打開(kāi)了demo把地址改成了0x78結(jié)果啥都沒(méi)亮……經(jīng)過(guò)網(wǎng)上搜尋。。。原來(lái)在這里給顯示庫(kù)的I2C地址應(yīng)該要右移一位……也就是應(yīng)該寫0x3C
雙軟串口怎么玩?
Arduino內(nèi)可以使用softwareserial.listen()方法來(lái)切換到某一個(gè)軟串口,但這個(gè)方法在nodemcu不可用。
正確方法是需要使用某個(gè)軟串口時(shí),應(yīng)該關(guān)閉所有其他軟串口xxxxx.enableRx(false);只打開(kāi)當(dāng)前軟串口xxxxxx.enableRx(true);
串口校驗(yàn)數(shù)據(jù)要不要管?
對(duì)于DS-CO2-20這種查詢式的我覺(jué)得可以不管,但對(duì)于G5ST返回?cái)?shù)據(jù)最好還是校驗(yàn)一下,不然很容易有異常數(shù)據(jù),導(dǎo)致結(jié)果不可靠。
其它的就自己閱讀代碼吧,寫的也很爛,仍然是用的lewei的平臺(tái)保存數(shù)據(jù)二氧化碳檢測(cè)儀,不過(guò)跑了一天沒(méi)啥問(wèn)題就這樣吧。
二氧化碳檢測(cè)結(jié)果和通風(fēng)必要性
跑了一天來(lái)說(shuō)說(shuō)結(jié)果吧~
可能是房間密閉性也不太好,二氧化碳濃度最高只有1400ppm,除非直接對(duì)著傳感器哈氣
中間開(kāi)窗,開(kāi)空氣循環(huán)扇強(qiáng)制通風(fēng)了20分鐘,可以看到20分鐘就能顯著下降到與戶外接近水平(大氣中好像400多ppm?)
大約關(guān)窗后2小時(shí)回到1000ppm,再過(guò)4小時(shí)到達(dá)通風(fēng)前效果。
經(jīng)過(guò)一個(gè)晚上,加上一個(gè)無(wú)人的白天,可以看到按我房間密閉條件大約最高就1200左右了,人離開(kāi)后1個(gè)小時(shí)達(dá)到1000以下,8個(gè)小時(shí)后達(dá)到與室外基本平衡
總結(jié)來(lái)說(shuō)就是通風(fēng)20分鐘,維持6小時(shí)
,所以夏季還是得多開(kāi)窗通風(fēng)呀,每日一通都不是太足夠,最好三通,然后睡覺(jué)前也通個(gè)風(fēng),
當(dāng)然最好的方案還是上新風(fēng)機(jī)了
附:程序代碼
騰元達(dá)編輯,轉(zhuǎn)載請(qǐng)注明出處
- 2021-09-08
pm2.5檢測(cè)儀 歡迎##簡(jiǎn)陽(yáng)PM2.5揚(yáng)塵監(jiān)測(cè)系統(tǒng)環(huán)境檢測(cè)儀##集團(tuán) - 2021-09-08
在線式二氧化碳檢測(cè)儀 - 2021-09-08
pm2.5檢測(cè)儀 云南玉溪 揚(yáng)塵監(jiān)測(cè)PM10監(jiān)測(cè)PM2.5監(jiān)測(cè)TSP檢測(cè)儀揚(yáng)塵監(jiān)測(cè)儀 - 2021-09-08
pm2.5檢測(cè)儀 河北滄州 PM2.5揚(yáng)塵在線檢測(cè)儀揚(yáng)塵在線監(jiān)測(cè)儀揚(yáng)塵檢測(cè)儀 - 2021-09-08
SKY2000-CL2氯氣檢測(cè)儀,江西氯氣檢測(cè)儀,便攜式氯氣檢測(cè)儀 - 2021-09-08
pm2.5檢測(cè)儀 淄博 揚(yáng)塵監(jiān)測(cè)PM10監(jiān)測(cè)PM2.5監(jiān)測(cè)TSP檢測(cè)儀揚(yáng)塵監(jiān)測(cè)儀 - 2021-09-07
甲醛檢測(cè)儀怎么測(cè)甲醛最準(zhǔn)? - 2021-09-07
乙炔傳感器 光電傳感技術(shù)研究所簡(jiǎn)介 - 2021-09-06
粒徑檢測(cè)儀 環(huán)保儀器儀表招商 LBT-E3016型塵埃粒子計(jì)數(shù)器 - 2021-09-06
粒徑檢測(cè)儀 XRD、TEM、AFM表征粒徑的方式及異同