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