零基础打造全屋智能控制系统 篇二十:又到一年雾霾季,终极版智能家居空气站节点DIY
话说一年一度的雾霾季即将来临,大家的空气净化器滤芯都有没有换新呢。或者有没有在618的时候买买了不吃亏买了不上当的352 X50空气净化器:
当然,本篇并不是来说空气净化器的,而是来解决空气净化器新风的自动化的,再准确点,是教大家搭建空气站节点的。当然,由于本系列已经写到第20篇,所以一些诸如系统搭建什么的教程还希望大家能参考之前的文章,这里不再累述。不过值得注意的是,一些文章写的比较早,所以安装的细节和一些版本号都有所升级,所以必要时候还是需要借助搜索引擎和官网。
其实关于空净以及新风的自动化以及空气站打造,在之前的文章里也有提及:
甚至,我还把空气检测模块藏到了墙壁里:
虽然之前做的在功能上都没什么问题,但是有时候会想了解下房间里的环境状况,亚克力版的虽然有显示屏但是说实话颜值上称不上好看,放哪都觉得有些奇怪,入墙版的要查个数据还要开手机APP,也略显麻烦。于是就有了本篇的内容:
3D打印版的床头空气站,实现的功能是实时监测室内的颗粒物浓度,二氧化碳浓度,以及温湿度。并可以将数据上传至HomeAssitant,DOMOTICZ,HomeBridge等平台,和其他诸如空净,新风机进行联动。屏幕的话,是根据背面的按钮可以在时间温湿度、PM10、PM2.5、CO2界面上进行切换:
平时的话,就可以放在床头,或是其他地方,如果选对了打印材料的颜色,也能和家居比较好的融合,至少不丑:
同时大家也可以看到最后一张的屏幕明显要暗些,那是因为空气站内置光线传感器,会根据环境亮度来调节屏幕亮度,这样放在床头到了晚上睡觉的时候,屏幕的亮度就会自动调到最低,也不影响睡眠,半夜醒的时候瞄眼时间也很是方便。当然,这里要说的是,做这样一个东西,最大的难度是3D打印(本文需要的所有文件和rules代码会在最后给出),不过据说现在各大城市社区都有创客中心之类的场地,可以免费使用3D打印机,只需要自己准备耗材即可,大家有兴趣的可以自己查下。而这样的空气站,一卷1kg的耗材大约能打印6个左右,就按50元/kg算,平均成本也就10元,可以说是相当的廉价了。
一、所需材料
一、攀藤科技PMS5003颗粒物传感器
久经考验的攀藤科技的颗粒物传感器,旗下型号也非常多,除了最基础的5003,还有带温湿度和甲醛的5003T等衍伸型号,不过因为ESPEASY固件只能读取颗粒物,所以这里只推荐大家买最基础的型号,大约现在只有80元不到了。当然,如果你觉得你有一定基础,可以购买高阶型号然后自行修改ESPEASY插件编译使用。
二、Senseair S8 二氧化碳传感器
同样也是久负盛名的一颗传感器,其二氧化碳量程为0-2000ppm,通过uart连接可以获得0-10000的扩展量程,目前售价只有160元左右,楼主经常购买的马家店铺还包邮,可以与上面的颗粒物传感器一起购买。
三、温湿度传感器
这次用的是si7021,但是最近尝试用博世的BME280感觉更好,建议大家买BME280,还多了气压功能,售价5V版的一般在15元左右,3.3V版的贵些,建议买5V的就行。
四、光线传感器
这里用的是TSL2561,但实际使用下来BH1750更好用些,建议大家选购BH1750,两者价格几乎一致。10元左右。
五、按钮开关
用来切换屏幕显示内容的,因为买的时候按钮颜色随机的,所以我是自己打印了一个按钮使用,可以和空气站同色,当然,大小也有些差别。记得打印时一起打印。售价1元-2元。
六、D1 MINI
相对nodemcu小巧了许多,功能近乎一致,这也是最近偏爱的一款mcu,售价大约16元,通常可以和温湿度传感器,光线传感器,开关,杜邦线等附件一站购齐。
七、杜邦线
建议大家直接购买成品,省的自己做端子,我们其实只需要母头的就够了,买一版40P的也就2,3块钱,足够用了。
八、串口屏
UsartGPU26B串口屏,差不多是我找到的最好用的同时也是最便宜的液晶屏。之前大家也见到过。价格大约是42元,可惜这家店不包邮,所以花费可能在50元左右。
外壳模型里的卡位是根据D1 MINI, PMS5003,常规开关设计的,这些元器件可以完美卡入,而两个螺丝柱是固定光线传感器和温湿度传感器的,最右侧的卡位可以卡炜盛的MH-Z14二氧化碳传感器,不过这个传感器比S8只便宜30来块,但是无论是尺寸、灵敏度、响应时间都和S8差太远,所以不推荐,这里加这个卡位纯粹是因为手上有。
二、准备工作
一、杜邦线
因为我们用到了6个子设备分别需要供电,所以要做一个一转7的杜邦线来接各个子设备的GND,而5.5和3.3V设备也有若干,所以也要做1转多的线,而温湿度传感器和光线传感器为I2C接口,可以直接并联,所以也需要做2转4的转换线,还有开关、屏幕、二氧化碳传感器等就是单根或双根的线。可以直接用现成的。
二、PMS5003的准备
传感器出来的第一根线接USB的5V,第二根接GND,第5根接RXD,一般来说我们就需要这三根线,分别接上母口端子的杜邦线即可。这里提醒一句的是,5V 3.3V GND的线最好各自用一种颜色,方便自己辨认。
三、D1 MINI
这个就更简单了,因为标准Micro USB接口,一般接在WIN10上都会自动安装USB-TTL的驱动,我们所要做的就是去github下载ESPEASY固件,最近的几个版本rules 的delay命令有bug,屏幕显示可能不完美。大家可以下载6月,5月的release,文末打包的是8月的,大家也可以用:
运行FlashESP.exe,选择D1 MINI的端口号,固件上选择test_ESP8266_4096.bin的即可,刷完之后按板子上的reset重启MCU,然后通过手机或电脑搜索WIFI就能搜索到一个SSID为ESP_0的WIFI,连接密码为configesp,连入后选择家里的WIFI输入密码,板子会自动连接,并告知你DHCP到的IP地址,然后我们在电脑端浏览器里输入这个地址,就能进入ESPEASY的配置页面了:
四、屏幕准备
其实屏幕准备有点烦,但是楼主都帮你们设定好了,最后下载的文件里,打开GpuMaker.exe
然后选择端口为USB-TTL的端口,波特率设置为115200,打开串口后,点击全部上传即可,对了,这里还需要额外用到一个USB-TTL工具,大约10元,和杜邦线店家一起买就成,大约长这样:
接线的时候记得,屏幕是5V接USB-TTL的5V,GND接GND,RX接TX,TX接RX。
至此,所有的准备工作都已经完成了,下面就开始接线了。
三、接线测试
一、接线
这里提醒大家的是,如果你是小白,那么请务必按照文中提供的接线方式来接线,引脚啥的都不要搞错。这样之后的rules复制进去就能直接使用,而不需要自己再进行修改啥的。
GND一转多杜邦线连接所有子设备的GND
5V接PMS5003和二氧化碳传感器以及其他5V传感器的VCC端
3.3V接3.3V传感器的VCC端
SDA接传感器的SDA,SCL接传感器的SCL。
PMS5003的第5根线接MCU的D6
二氧化碳的UART接MCU的D3、D4
开关的VCC记得接3.3V,output接D5
二、通电配置
检查仔细确认所有接线无误后上电,这一点非常重要,然后我们打开ESPEASY的web配置界面,首先在TOOLS Advanced里做如下设置:
就是红框里的这些,确认无误后submit。
然后我们进到Device页面,按照顺序进行设置:
注意,顺序,Name GPIO一定要和表格上一模一样,传感器可以不同,但是Value值的名字也要一样,下面是每个传感器的相应设置:
温湿度:
BME280的话Value还会多一个气压,名字默认就好,interval是轮询时间,一般设为60秒,你也可以调到30,但是不要太短,8266的算力有限。很容易web界面卡死,Decimals,温度设为小数点后1位,湿度就不要保留小数,这个关系到屏幕显示,不要弄错。
光感:
不同传感器界面不同,这个没关系,只要保证设备名叫Light,Value值光感那一项叫lux就好,Decimals这里随意。
二氧化碳
GPIO分别为D3和D4,如果设置后发现读数读不出(传感器通电后需预热一段时间才能读数,耐心等待几分钟),就将页面里1st GPIO和2nd GPIO的位置对调即可。
PMS5003颗粒物传感器
虽然需要设置TX和RX,但实际只要TX接线即可,同样的,没有读数的话就是TX设置成D7,RX设置成D6
这是切换界面的开关用的,如图设置就好。
这个是虚拟设备,分别记录屏幕当前状态,传送给HomeBridge的空气质量等级,背光亮度等,有兴趣可以根据rules里面的代码自行学习rules的用法,这里是无脑教程,就不多说了。
Rules设置
因为rules的最大字节数是2048,但是因为涉及到屏幕状态等,所以代码较长,就分别添加在3个rules的页面内:
同样的,这些代码也会放在文末的文件夹里共享,供大家学习参考,其中三个Rules Set的顺序并无要求。
屏幕是5V供电,记得接+5V,据称3.3也能正常工作,不过未做过测试,而屏幕的RX请连接MCU的TX。
然后组装好,上电测试:
不知道为啥,上电屏幕会镜像,第一台没这毛病,所以大家碰到这个情况也不用担心,因为MCU指令一发就会正常:
对着机器吹了一口烟,就爆表了……
四、数据传送
按照上述教程,做出来的其实是一台单机版的空气站,数据并不会保存或传送,但实际上如果作为智能家居的一部分,就需要在rules里面添加数据传输的命令,这里就列举两条基本的http发送和mqtt publish。
SendtoHttp:
在espeasy中使用SendtoHttp命令是不需要任何额外设置的,只要ESPEASY本身有网络,例如我们想把CO2的值传给domoticz,可以用下面的命令:
在rules里面可以用 on C02#ppm do来触发这个动作的执行。
Publish:
关于Mqtt的使用,建议大家阅读楼主之前的文章:
所以本系列真的是系列文章,大家千万别看一篇觉得很难,其实整个系列是从浅入深的节奏进来的。
只要你设置好了,就能在domoticz或homeassitant里看到数据的更新情况了:
五、自动化设置
大家看了上图,是不是对楼主家的颗粒物状况感到很惊讶,其实这个也在之前的文章里面提过,大家有兴趣的可以看看正压新风机的使用:
这里不说具体做法,因为大家使用的系统和设备都不同,这里只谈谈逻辑。首先是有新风机的状况,其实新风机主要作用还是换气和通风,所以楼主家的设定是任意房间CO2大于800ppm,就开启新风,进入150风量模式,如果CO2持续升高至1000ppm,就将风量设置200,CO2到1200ppm,就设定300的风量。CO2如果超过1500ppm,风量就到400。这是我自动化的最高档,因为EraClean Fresh600新风在500和600风量下会有些吵,并且600的风量经济性不够好,这些评测里都说了。那么什么时候关呢?是所有CO2传感器的数值都低于600ppm并且每个房间的PM10都低于35,同时户外PM10也低于40的时候,机器才会关,为啥这里要扯到户外PM10呢,因为正压新风开着的时候在室内形成了一个微正压的环境,这就会让户外的脏空气不能通过门缝窗缝进入到室内,而如果将新风机关闭,但是户外空气颗粒物又处于较高值的时候,室外的脏空气和室内的洁净空气会通过一切缝隙进行交换。这样室内的空气也就会被污染,所以这时候要保持正压新风的低风量开启,保持家中空气的洁净程度。当然,除此以外,新风机也与油烟机和热水器做了联动,当热水器燃烧或油烟机工作的时候新风机也会开到最大风量来为室内补充氧气。
当然,除了新风外,净化器的自动话也很重要,即使有新风,也需要净化器的辅助,因为很多时候人的活动也会产生pm2.5污染,例如炒菜或者抽烟。所以净化器的设置就相对非常简单了,就是当对应区域pm10高于35的时候自动开启净化器,当低于20的时候关掉就好了。当然,如果你没有新风机,同时也可以设定为当户外PM10高于一定值时就开启净化器,持续对室内空气进行净化。
最后,附上本文所用到的固件,rules设置以及外壳模型:百度云盘
Tingao
校验提示文案
air04
校验提示文案
stars
校验提示文案
clcavril
校验提示文案
羊城鸠通腚抬
校验提示文案
东东哥93
校验提示文案
惡魔吹著笛子來
校验提示文案
海绵菌
校验提示文案
包子大人1001
校验提示文案
赞美猴小猴
校验提示文案
kenlui
校验提示文案
blueteeth
校验提示文案
甲基甘油
校验提示文案
陈永仁的爹
校验提示文案
微糖少冰
校验提示文案
flying_dog
校验提示文案
star_liu
校验提示文案
轻风见
校验提示文案
轻风见
校验提示文案
轻风见
校验提示文案
POKO哑虎呸呸
校验提示文案
blueteeth
校验提示文案
petersunsonson
校验提示文案
值友8254374363
校验提示文案
happier250
校验提示文案
feebool
校验提示文案
feebool
校验提示文案
jccg315
校验提示文案
小狗尾巴草
校验提示文案
会飞的王小菜
校验提示文案
会飞的王小菜
校验提示文案
骑着神马的帅锅
校验提示文案
clcavril
校验提示文案
值友1722659480
校验提示文案
la_fayette
校验提示文案
值友2978479197
校验提示文案
clcavril
校验提示文案
石头听画
校验提示文案
轻风见
校验提示文案
clcavril
校验提示文案