作者简介:无花无酒,人称花酒兄,我估计可能这个人喜欢喝花酒,不过他很喜欢折腾KNX,也是KNX忠实粉丝,自家装修也用的是KNX系统,对于KNX的各种扩展应用也有比较高的造zhi(诣)!这篇就是他的应用之一。
我是一个搬砖的,醉心于HA的隔壁小王告诉我有种将傻瓜电器接入KNX网络的办法,是使用SONOFF(一种炒鸡便宜的WIFI产品,某宝大把),然后要刷一种叫Tasmota的固件使用WIFI作为通讯手段。话说我是个很排斥的无线的人,虽然这会儿躺在沙发上用笔记本码字,我还是对在控制领域使用无线持保留态度,以2.4G频率的无线为例,WIFI、蓝牙、对讲机,甚至还有微波炉这样的功率电器都在使用,不敢恭维它的稳定性。可是,小王告诉我,它便宜!!!一个开关模块才不到30软妹币,瞬间我投降了,人穷志气短呀。
先说下Sonoff,一系列基于ESP8266芯片的产品。ESP8266,一个这几年很火的芯片,乐鑫信息科技出品,号称全球卖出了上亿片芯片,ESP8266集成了 32 位 Tensilica 处理器、标准数字外设接口、天线开关、射频balun、功率放大器、低噪放大器、过滤器和电源管理模块等,仅需很少的外围电路。在开源社区有很多好的应用项目。Sonoff有下列产品,但不仅包括下列产品:
• Sonoff 4CH / 4CH Pro
• Sonoff 4CH DIY
• Sonoff / Geekcreit 2CH
• Sonoff B1 / B1 R2
• Sonoff Basic (R2)
• Sonoff Dual / Dual R2
• Sonoff iFan02
• Sonoff Pow / Pow R2
• Sonoff PSA
• Sonoff RF and Slampher
• Sonoff RF Bridge 433
• Sonoff S20 Smart Socket
• Sonoff S26 Smart Socket
• Sonoff S31
• Sonoff SC
• Sonoff SV
• Sonoff T1
• Sonoff Touch
• Sonoff TH
上述产品在某宝应该都可以买得到,我上文说到的继电器模块指的是Sonoff Basic。原厂的固件对接的是什么我没有关心,想来原厂应该有APP之类的,可惜买到Sonoff Basic就把固件擦除了,没尝试下原厂固件的功能。
Step.1 硬件准备
下边我将我测试的过程描述一下,大部分内容是源自Sonoff-Tasmota的Wiki(https://github.com/arendst/Sonoff-Tasmota/wiki),不愿意看下去的同学直接转战那,可能比我唠唠叨叨更迅速。第一件事情是去某宝,买Sonoff,我用的sonoff Basic,大家也可以买别的。Tasmota支持的清单在这儿https://github.com/arendst/Sonoff-Tasmota/wiki/Supported-devices。另外要准备的一个东西是USB转TTL的转换器(CP2102, CH340G, FT232,PL2303)。转换器需要带3.3V电源,其实某宝上很容易可以买到带3.3V电源的USB 转UART TTL。跟店家确定下是否是3.3V是很有必要,我第一次买的转换器上明明有一个5V和3.3V的转换开关,但是实际使用不管拨在哪个位置,输出都是5V。。。。。虽然没把Sonoff烧掉,但我也不敢再用了。收货后使用前测量下电压,一旦电压不匹配,很有可能模块化成烟。另外一个就是杜邦线(母对母)和插针,需要准备下。
Sonoff的WIFI开关模块
USB转串口,务必注意接口电压:3.3V!!!
一些其他辅助的插针、连接线
先介绍一下Sonoff这个东西:
220V一进一出,进来的电给产品供电,出去的直接接负载,可以是灯泡、热水器,插座等等,壳子上有N和L的提示,输入输出要严格按照L和N的接线,因为内部继电器控制的是L的通断。
接下来要给Sonoff刷Tasmota固件,我们要给Sonoff焊上杜邦插针,下图是要焊接插针的地方反正面。
4位排针的正面示意图
4位排针的反面示意图,请务必注意这个线序,否则模块可能化成烟
GND接USB接口上的GND,3.3V接USB接口上3.3V或者VCC(记住量一下电压,多么痛的领悟),TX接USB接口上的RX,RX接USB接口上的TX。焊完接好见下图。
准备完成图
到此,硬件的准备工作差不多了,下边开始准备软件。
Step.2 重刷固件
刷固件的软件有很多(https://github.com/arendst/Sonoff-Tasmota/wiki/Upload-tools这个链接有全部工具),固件可以自己编译也有各种二进制版本的可以下载,本文仅介绍ESPTOOL这一种,具体介绍在https://github.com/arendst/Sonoff-Tasmota/wiki/Esptool,ESPTOOL有python的版本和可执行文件的版本,如果大家没有Python的环境那就还是用可执行文件的版本吧。https://github.com/igrr/esptool-ck/releases这里有ESPTOOL的各种版本下载。
https://github.com/arendst/Sonoff-Tasmota/releases这儿有Sonoff-Tasmota固件的介绍和下载链接。我们要使用的是knx功能,自然要下载下图所示的固件了。将固件放到ESPTOOL同一个目录。
Sonoff-knx.bin固件支持的特性和传感器在下载链接上方的两个表里边有介绍,大家可以了解一下。
刷固件进行中,心里小激动
软硬件都准备好了,就可以刷固件了。Sonoff不要连接强电,切记,刷固件的时候,模块是通过USB接口供电。将USB转TTL接口和Sonoff连接好,插入计算机USB接口。Sonoff上的绿色LED会闪亮。
Windows通过设备管理器看看串口是哪一个,LINUX跟MAC可以ls /dev 看一下,一般是tty.usbserial开头的设备,我的是tty.usbserial-14110。打开命令行的窗口进入ESPTOOL的目录。然后拔下USB口,按住Sonoff上的黑色按钮插上USB,两三秒后松开按钮,这时候Sonoff就进入了刷固件的状态。
1.擦除原有固件:
LINUX和MAC执行命令:
./esptool -cp /dev/tty.usbserial-14110 -cb 115200 -ce -v
Windows的cmd执行命令:
esptool -cp COM3 -cb 115200 -ce -v
2.写入新的固件,如果写入失败,重新插拔然后执行相同命令
LINUX和MAC执行命令:
./esptool -cp/dev/tty.usbserial-14110 -cb 115200 -bm dout -cf sonoff-knx.bin -v
Windows的cmd执行命令:
esptool -cp COM3 -cb115200 -bm dout -cf sonoff-knx.bin -v
执行后的结果如下:
这时候Sonoff会启动应用,绿色的LED会闪亮。到此,固件就刷好了。
Step.3 配置无线
刷好固件就可以把Sonoff断开和USB转换器的连接,盖上盖子,连好电源线,喜欢直观点的同学可以在负载那边接上一个灯泡。拧好螺丝,接上电源,我们开始配置WIFI了。首先Sonoff上的黑色按钮有很多功能,具体看(https://github.com/arendst/Sonoff-Tasmota/wiki/Button-Usage),理论上说,配置WIFI可以通过连续按三次按钮然后使用手机安装ESP8266SmartConfig这个app来配置无线,也可以通过连续按四次按钮启动Sonoff上的无线接入点来配置WIFI,也可以通过按五次按钮使用wps来配置。查看下Sonoff-knx固件,使用WPS配置Wifi这个特性是不在Sonoff-knx固件里边的,我选择了按四次按钮的办法。按四次按钮后,计算机发现了一个如下图的无线网络,ssid为sonoff开头,四位数字结尾。
Sonoff的AP名称
连上这个无线网络,在浏览器地址栏里输入http://192.168.4.1,会打开如下左图这个页面。
浏览器配置页面
AP1 SSId 填写Sonoff要连接的无线网络的SSID,也就是你所使用的WIFI热点名称,AP1 PASSWORD里填写你所使用的WIFI无线网络密码,点save保存一下。然后连回你使用的无线网络,检查无线路由的DHCP服务器(在你链接的路由器DHCP管理页面中)会找到给Sonoff分配的IP地址。使用http://加上Sonoff的IP地址,您会进入Sonoff的配置页。如下图。
配置KNX
点击Sonoff配置页里边的ConfigureKNX,即可进入一个KNX的配置页。如下。
具体的配置可参考https://github.com/arendst/Sonoff-Tasmota/wiki/KNX-Features。PhysicalAddress填写KNX物理地址,Enable KNX前边一定要钩上;Communication Enhancement选项如果选中,每个组地址会发三个同样的报文,如果不选择,只会发一次,这个选项避免了组播环境下的报文丢失,同样选择这个选项后,一秒内连续对Sonoff发送两个一样的动作,后边的动作就不被理睬了。
Step.4 用ETS测试Sonoff
终于到这一步,接下来要看看它是否能够支持KNX 路由报文,这里我们可以通过KNX系统专属的配置工具ETS来进行测试。给Sonoff配上物理地址和组地址,使用ETS5(ETS3\ETS4也可以)组播方式连接。
经过测试,ETS5可以读到Sonoff发出的报文,ETS5发出的报文,Sonoff也正常响应。
哈哈,Sonoff发的命令,ETS可以收到拉
到此,这个炒鸡便宜的WIFI开关模块,已经摇身一变可以支持KNX的协议的设备了,配合KNX的IP Router,即可完成TP和WIFI模块的双向通信。有兴趣,爱折腾的朋友们也可以捣鼓捣鼓!这也算是KNX的总线向无线延伸的一种途径。
(完)
鉴于水平所限,如有不对的地方请留言指出,谢谢!如果你在阅读时有什么疑问、或者有什么技术方面的交流,可以关注我的公众号留言。对KNX有兴趣的可以加入KNX千人QQ交流群:23975744。