智能家居系统设想
最近在研究一套开源的,又可以实现外网控制的物联网方案。
网上找了很多方案,也试了好几个平台,但始终不如意,不是服务器不稳定,就是设备数量有限制。
最终找到了Domoticz这个平台,自己钻研了一段时间,期间看到了下面这个帖子https://blog.youkuaiyun.com/weixin_41534481/article/details/104587842,
其中bibi博主https://www.bilibili.com/video/av67989389 的视频对我启发很大,感谢这两位作者
但是由于本人不是很擅长python代码,考虑到对于后期设备代码的修改,不得不放弃python固件的方案。
经过多方查阅资料,发现Arduino IDE自带的示例程序里面就可以用MQTT连接Domoticz服务器,于是就有了下文。
先来成果视频欣赏
domoticz物联手机外网控制
下面我们开始来搭建这个平台吧
Domoticz服务器搭建
首先,我们去Domoticz 中文站
官网https://www.domoticz.cn/downloads/
下载WIN10系统的安装文件
下载完成后,解压文件
双击DomoticzSetup_2020_2.11995.exe开始安装
其他的安装步骤我就不一一列举了
需要特别注意的是端口的设置
因为我的8080端口已经在用,所以我改为7788
如果默认的端口未被占用,可以不做修改
安装完成后
在浏览器输入http://127.0.0.1:7788/#/Dashboard
回车键就可以进入服务器管理界面
这里我已经设置好了中文
为了给大家演示,我重新设置一遍
点击右上角的setup里面的settings
按照如图提示设置好语言
设置经纬度,最后按Apply settings
经纬度查询https://www.domoticz.cn/location/
再次返回设置界面,把用户名跟密码设置好
以便下次登陆需要
到这里,Domoticz服务器就搭建好了
接下来要实现ESP8266的接入和控制,我们得借助MQTT协议,关于MQTT请朋友们自行百度
下面一步需要电脑安装JDK,请自行安装,步骤参照win10系统安装配置java环境-百度经验:https://jingyan.baidu.com/article/4b52d702db5982fc5c774bc3.html
MQTT服务器的搭建
这里用的是ActiveMQ
官网链接下载很慢
直接蓝奏云下载下载:https://wwa.lanzous.com/i9Nfqlh0qla 密码:czdh
下载完成后放到喜欢的目录解压
解压后双击activemq.bat运行
等待命令行出现端口等信息即可
MQTT的搭建告一段落,MQTT默认的IP是电脑的IP,端口是1883,接下来会用到
外网控制的实现方法
温馨提示:这里涉及电脑网络安全,有泄露个人隐私的风险,请做好安全措施,否则后果自负
要实现外网控制,我们必须将本地控制的IP和端口映射到外网端口
Domoticz的控制端口为127.0.0.1: 7788
MQTT的控制端口为127.0.0.1:1883
我们用到的映射软件是樱花映射
网址https://www.natfrp.com
注册好账号之后,可以获得5条免费的TCP映射隧道
这足以够我们智能家居服务器用了
我们新建两条映射,一条是Domoticz的手机APP用的
另外一条是为ESP8266模块搭建的模块跟服务器异地控制的
(MQTT通讯)
关于如何使用樱花映射,参照官方的文档
https://doc.natfrp.com/#/
配置好以后,下载樱花映射的WIN10客户端
安装完成后打开软件,输入启动密匙,打开新建的隧道即可
在Domoticz管理页面新建设备
点击右上角,设置,硬件,新建MQTT硬件
设置如下,其他默认,点击增加
再新建一个mqtt传感器硬件,设置如下
接下来点击,创建虚拟传感器
设置如下
接着点击,设置,设备
看到我们刚刚新建的设备,设备编号是1,等下会用到
最后点击工具栏的,开关
看到一个设备的预览界面,也是控制界面
烧脑的环节就要到来了,我们来看看程序如何实现控制
Arduino IDE程序的实现
关于Arduino IDE的配置可以参考
https://www.arduino.cn/thread-76029-1-1.html
配置好环境后,我们还需要一个MQTT的库文件
蓝奏云下载:https://wwa.lanzous.com/i5WATlh4f1i 密码:eka4
下载解压到如图的路径下即可
接着我们打开IDE软件,打开如图的例子
修改WIFI信息,以及MQTT的服务器地址,MQTT的服务地址填写樱花映射之后的外网地址
再修改一下MQTT的端口(映射后的端口),以及设备的编号
删掉一些不必要的程序段后下载到8266
打开我们的Domoticz手机APP,就可以愉快地玩啦
domoticz物联手机外网控制
本人修改好的代码domoticz外网控制代码
今天的分享就到这里了,欢迎爱好物联网的朋友一起来交流