零基础打造全屋智能控制系统 篇三:只需100元,让你的DIY净化器实现空气质量联动和远程控制
追加修改(2017-05-30 11:43:42):
lua脚本分享链接有误,现更新为http://pan.baidu.com/s/1pL0RN9D
在前两篇文章里,介绍了domoticz的搭建,小米和博联设备的联入。以及如何让domoticz运行的更稳定,和blocky的应用。如果你没读过,可以参考以下链接:
因为楼主没有博联RM2,所以RM2的内容有些缺失。但其在广大智能家居爱好者中有着不错的保有量,所以这儿放上本站值友@vonzeng s缩写的RM2接入Domoticz的详细介绍:
在此也要特别感谢我的领路人@blindlight ,是他第一个给大家挖的坑,不过大神比较高冷一些,不屑于写这种入门级的小白教程,但是这两天我也得到了不少来自他的帮助。大家也可以去看看他挖的坑:
因为之前讲的都是现有的品牌产品接入domoticz,但是如果都是使用现有的成品来接,那和原厂的app又有什么不同,即使是能打通两个品牌之间的通路,其应用还是太少。例如很多值友都有DIY新风或净化器,但是在控制上只能依靠自己手动去开关。也有动手能力强一些的会买DIY的检测仪,然后通过检测仪来接DIY净化器等,但是,DIY的检测仪并不十分便宜,而且要实现远程控制会很繁琐。所以楼主今天的文章就是教大家一种方法,以非常低廉的方式来实现这一功能,而且步骤非常简单,除了在domoticz使用外,还能单机独立运行控制。
使用到的硬件
nodemcu V3开发板:
这儿记得买V3的,这样可以上扩展版,淘宝售价最低大约是20元不到。
攀藤PMS5003激光颗粒物传感器:
这个产品就不多说了,大名鼎鼎,小米 AIRX等空气净化器和PM检测仪都用了这款传感器。淘宝售价最低在80元左右。当然,如果你还要便宜,那么弄个20块的夏普GP2Y10也是可以的,不过楼主并不推荐。
继电器:
如果只想控制一个设备开关的话,这样一个单位的继电器就够用了,大约4-5元。可以在购买nodemcu开发板的店铺一并购买,节约运费(BTW,卖此类物品的店铺很多都有首件特价,很是优惠)
杜邦线:
同上,可以在一家店购买,大约2元就可以买到几十根,记得买双头母头的就行。
可选配件nodemcu扩展板:
这个板大约也就6,7块,扩展比较多的时候还是非常实用的,建议大家一起买了吧,反正运费都掏了不是。
我们来算下总价:开发板18元+传感器84元+继电器4元+杜邦线2元+扩展版7元=115元,外加个10元运费,也就125元,离标题的100元差距不大,应该算不上标题党吧。
固件刷写
这一部分是重点,也是本篇文章的核心。这里要向大家介绍的是一个开源的固件项目——ESPEASY。想必大家看这名字就应该明白这东西用起来十分的EASY吧。而事实也是如此,基本上,如果你使用官方开发板刷机的话,就和往优盘COPY东西一样简单。(因为集成了PMSX003的PLUG-IN的固件官方还没更新,所以本篇使用稍显复杂的ARDUINO IDE刷机)
先介绍下ESPEASY吧,官网地址是:https://www.letscontrolit.com/wiki/index.php/ESPEasy
这个固件主要是将各种传感器,继电器接入domoticz之类的智能家居平台。介绍太多大家估计也不太愿意看,有兴趣的可以去官网看看。下面先展示下我利用easyesp做的一个卧室空气质量监测的节点,同时该节点还负责控制eraclean tower净化器的开关:
这个节点同时能检测空气PM值,CO2含量,以及环境亮度,因为是放在橱顶的,所以外壳也就随便找了手上有的桐木板上下封了下。
另一面还有个eraclean的遥控器,eraclean是用2.4G遥控的,这个破解比较难,所以就直接从开关里接了两个线出来接在继电器上,通过domoticz控制继电器闭合,达到远程开启净化器的目的。其在domoticz里显示如下:
而即使你没有domoticz,也可以直接在ESPEASY的WEB界面里查看各种数值:
当然,你心情好,可以给他加个屏幕,让它直接变成一个独立的空气检测仪:
不过这个属于进阶内容,今天先不说,我们还是扯回原题,说说ESPESAY。
如果你是第一次使用nodemcu,可能需要下载安装一个CH340的驱动程序,这个大家自己找下。
ESPEASY目前最新Pre-release版本为Release v2.0.0-dev8,下载页面是:https://github.com/letscontrolit/ESPEasy/releases ,当然,大家看到这篇文章的时候可能又有了新版,那就下载最新版即可,下载完之后解开压缩包:
双击运行FlashESP8266.exe ,选择你的nodemcu端口,以及想要刷的firmware,即可。不过要记住的是我们的板子是4M版本,所以要选4096的文件,而normal和test的区别主要在normal只包含了稳定版的插件,而test则包含正在testing的插件。
点击flash等他刷完就好了。官方版本目前已包含MH-Z19二氧化碳传感器的插件,攀藤PMSX003的插件固件估计要等dev9才会合成。所以目前想用攀藤传感器插件的话需要通过Arduino-IDE来自己刷,本来楼主是想在这讲一堆如何使用Arduino如何刷ESPEASY的事,但是想来有些小白看到就会吓到,所以这儿只放一个如何使用Arduino IDE刷机的连接,有兴趣的值友可以前往查看:https://www.letscontrolit.com/wiki/index.php/Tutorial_Arduino_Firmware_Upload
而对于广大小白们,楼主已经把包编译好了,大家下载完之后,直接拷贝到FlashESP8266.exe的文件夹下,然后选择这个固件刷机就好:
下载地址:http://pan.baidu.com/s/1hrTpDBY
ESPEASY设置
刷完了之后,大家记得按下开发板上的rst键,然后掏出手机。搜索无线网络,会发现一个叫SSID叫做ESP_0的无线网络,连接,密码是:configesp,连上之后,打开网关页面,默认是192.168.4.1。
然后选择你家的无线网络,输入密码,单击connect,接着nodemcu就会重启,这会你要做的就是去路由器设置页面找到nodemcu的IP地址(此处强烈建议将IP地址设置为静态IP)
像楼主路由器分派的IP地址是114,那么我们在浏览器里直接输入192.168.10.114就可以直接访问ESPeasy的设置页面,打开如下:
看到这个界面,那么恭喜你,99%的步骤已经做完了,我们第一步要做的是配置domoticz。点击config,有四个edit按钮,选第一个,然后把自己的domoticz服务器地址,端口添进去:
记得勾选enable,如果你有用户名密码的话也不要忘了填。然后单击submit就好了。然后我们去domoticz里面新建一个虚拟传感器,首先要新建一个虚拟硬件:
ESP001是你自己取得,这儿只是示例,这样设置好了之后点击增加:
然后点击创建虚拟传感器:
注意,这里的名称请使用英文,具体原因等会就知道了。而传感器类型选择文本。然后我们转去设备界面,查看这个传感器的IDX是多少:
如图,我这是83,记得就好,让我们回到ESPEASY去设置攀藤,我们打开DEVICES标签页,选个空白的EDIT:
Device选择Particle Sensor - PMSX003,Name填自己想要的(没测试过中文)。delay就是刷新间隔,自己随便设,这儿是5秒,GPIO不用填,因为这个插件用的是硬串口,你选了也不会生效。Send Date to controller1打勾,后面IDX填上刚才建立的那个83。Enabled勾选。然后submit提交。接着我们把板子断电,来连接攀藤传感器和继电器。
先来看看nodemcu的布局,因为继电器和传感器都是5V的,但是nodemcu只有一个5V接口,所以如果没有扩展版的话,就要自己想办法了,这个我这就不多说了,这么点手工都不会的话,还是趁早放弃吧。如果有扩展版的话,就把继电器和传感器的电源都接到VIN上,VIN是正极,GND是负极。然后继电器的控制端我们就在D5 D6 D7 D8里面随便选一个吧,楼主这儿用的是GPIO 16,也就是D0。攀藤的TX数据线则接到开发板的RX。这儿放一张攀藤的接线图,我们用到只有从右往左数的第1,2,5根线:
当然,大家看到PIN3可以对传感器进行休眠操作,这个可以延长传感器的使用寿命,但是这传感器正常情况下常开寿命也能有2年。2年80块的实时监控费楼主觉得很便宜了,所以就不教大家用了,有兴趣可以自己研究。
所以线接好了之后就可以通电,上电后我们再次进入ESPEASY的WEB界面,应该可以看到有数值了(没有的话稍等下)
这样就好了,然后我们转到domoticz,查看下传感器数值:
嗯,会看到此时数值已经从ESPEASY传到domoticz了。不过因为是一个三段数值,所以其实我们很难用它,所以下一步是把这三个数值分开。我们先新建2个传感器(嗯,楼主不想要PM1.0的所以就只要两个),不过这次大家类型请选Custom Sensor ,Axis Lable填ug/m³。然后去查看这两个传感器的IDX号
然后我们前往事件触发器,编辑lua脚本:
然后我们看到传感器页面:
这两个数值是不是出来了呢,嗯,然后我们去房间区域里把最早的那个三段式的传感器塞到$Hidden Devices里,这样,我们就看不到它了。然后点开日志,就可以看到历史曲线了(最长7天)。
这个PM还是一路走高啊,所以下面我们来设置与空净的联动。如果是已经接入domoticz的设备,我们只要做个blocky就行,这儿还是说说刚才接在Nodemcu上的那个继电器吧。继电器的使用楼主就不唠叨了,你都能DIY出空净新风了,这个不是事,楼主来说说继电器的触发。刚才说了楼主是把继电器的控制口接到了GPIO 16,也就是D0上。所以命令如下:
开:
http://192.168.10.114/control?cmd=GPIO,%2c16%2c1
关:
http://192.168.10.114/control?cmd=GPIO,%2c16%2c0
其中%2c后面的16就是继电器接的端口号。前面的地址是你ESPEASY的IP地址。大家可以先在浏览器里进行测试:
应该能得到如上的反馈。
然后我们就去domoticz里面新建一个虚拟开关,设置如下:
然后保存,我们就可以试着点击这个开关来操作继电器的闭合了。
关于怎么根据pm条件来自动化净化器的开关,在上一篇文章里已经说过,就不做累述了。最后祝大家玩的愉快。
xdx2
我使用esp8266型号是NodeMcu Lua开发板。PM2.5传感器使用的是PSM7003 (也就是G7) ,二氧化碳传感器是SenseAir S8 0053,甲醛传感器是攀藤 DS-HCHO。
espeasy版本是v2.0.0-test11
下面几点要注意。一:8266的开发板VIN不能作为5V输出,必须接vu。用万能表测,vin没有没电压,vin应该是用来给8266供电的,我用usb接口供电,所以不需要,二:攀藤的TX数据线不能接到开发板的RX。
数据会显示零,可以接一个其他的D几的接口,在espeasy 1 st gpio 中设置这个接口。三:co2无数据也是这个原因,需要设置1 st,和2 st才可以。四:lua脚本正常运行,domoticz日志输出有错,这里必须设置lua下面个选项为device,不能选择all。
校验提示文案
魅惑蓝心
校验提示文案
Neodehomme
校验提示文案
POKO哑虎呸呸
校验提示文案
欧阳正淳87
pm10的代码能不能发一下,网盘上找不到
校验提示文案
ppffppp
校验提示文案
briantim
校验提示文案
HN小丸子
校验提示文案
xdx2
校验提示文案
xdx2
校验提示文案
实木真的吗
校验提示文案
值友6518029901
校验提示文案
值友6518029901
校验提示文案
lalayuan
校验提示文案
Candy的大灰狼
校验提示文案
奔三的颜叔叔
校验提示文案
maomaoqiu
校验提示文案
值友7181031012
另外,LUA已经过期,是否还方便再次分享?多谢。
校验提示文案
zhaobin5252
校验提示文案
phitenzee
校验提示文案
chinacodecn
校验提示文案
6六6
校验提示文案
值友8753009077
校验提示文案
苏哥拉米
校验提示文案
值友7181031012
另外,LUA已经过期,是否还方便再次分享?多谢。
校验提示文案
amiss
校验提示文案
值友8030285923
校验提示文案
Fisher3799
校验提示文案
Aquarisces
校验提示文案
maomaoqiu
校验提示文案
奔三的颜叔叔
校验提示文案
Swfirst
校验提示文案
青也
校验提示文案
值友2793021452
校验提示文案
值友2793021452
校验提示文案
Candy的大灰狼
校验提示文案
lalayuan
校验提示文案
咆哮的泰迪
校验提示文案
Andy柏拉图
校验提示文案
onesv
校验提示文案