起因
自上一篇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表征粒径的方式及异同