毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

继续分享我的智能家居毕设的进度,这次主要实现的就是在domoticz下的一个智能开关的实现。

关于 domoticz 和天猫精灵的对接 请参考我的上一篇文章

这篇文章主要是受到了大佬的启发,如果你也是想要做类似的设备我建议你去看一下大佬的视频

https://www.bilibili.com/video/av67989389  这个大佬一共发了三个视频,都很受到的启发很多

关于怎么去搭建这个domoticz的系统就请参考我的其他博客。

言归正传,我们这次的硬件是 ESP8266(买正点原子的开发板送的) ,使用的软件是uPyCraft 和 MicroPython File Uploader 

代码可以在GitHub上面获取  https://github.com/wedding0371/SmartHome   声明: 代码是上面视频的UP主做的 

我们的第一步就是在domoticz 上面创建一个虚拟的开关。

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

在设置界面我们去找到硬件一栏 去创建一个硬件,这里我们灯就选择了 Dummy(xxxxxxxxx) 就是一个不存在的虚拟设备

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

然后点击创建虚拟传感器

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

传感器类型选择开关,名称可以自己定义(无关紧要  自己知道是哪一个就行了)

接下来我们就可以在设备栏找到我们的虚拟传感器了

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

在开关一栏我们就可以找到 刚刚创建的那个 lamp  点亮那个收藏的星星  就可以在仪表盘找到 这个灯了

 

接下来就是创建一个 MQTT的服务器,  这一部分我还不是很理解,只知道要这么干毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

配置参数是这些  我猜测这里就是做了一个 信息的中转站 然后我们的 客户端(智能设备) 会自动的在这里监听信息,然后提取出来 这个设备自身感兴趣的信息、指令  并且执行 。

这就是 domoticz 的操作。

 

第二部分就是刷 ESP8266的 固件以及程序的下载。

刷ESP8266 的固件 我是用的事 uPyCraft 这个软件的自带的烧录固件的功能

Tools->BurnFirmware  然后选中自己的 器件型号以及串口号(com ?)  烧录的方法就是拉低某一个引脚 然后 reset

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

这是我利用STM32F4 的开发板进行烧录的接线方法

PF6 -----  JTAG  的右上第三个脚(reset)

txd和 RXD 交叉接 (这里是利用的 Stm32F4开发板自带的 USB转串口)

最后的一根蓝色的线  接到 PC2

需要烧录固件的时候 将这根线 接到 GND上面去 ,这之后按reset(板载按键) 就会进入到刷固件模式

注意:烧录 Python程序 不属于刷固件, 刷固件是刷的 micropython的固件,你的Python代码 是保存在 剩余的空间中 直接下载进去就行了 不需要烧录的动作。

烧录完成之后  把蓝色的线拿下来就好了,一般就不会在用到了

固件烧录好了之后 你应该会看到 你的 uPyCraft 的 命令行处 出现字符 

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

 

光标移动下去 按回车 出现>>>  就是 Python运行起来了

 

关于程序部分我不多介绍,上面的大佬的视频中 Up主是 手把手的教你写代码的  !

下一步分是程序的下载,我在uPyCraft 的 功能里面貌似是没有找到程序的下载的位置,所以我这里选用的是 MicroPython File Uploader  这个程序

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

选择串口并且打开

下一步就是找到你的main.py 程序  并且发送

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

这样我们就完成了  Python 文件的发送,下一次上电 我们的程序就会自动的去运行我们保存在 micropython固件中的 程序的代码

 

最后还有我遇到的一个bug  就是 Up主提供的那一套代码是需要延时的  直接进去的话 会导致 报错 

 

我猜测是因为在连接wifi 之后还没有分配到 IP 就开始创建 MQTT的 连接导致的 加了8S的 延时就好了

 

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关

 

关于 外网控制 以及手机的控制 请参考我的另一篇博客 

 

https://blog.****.net/weixin_41534481/article/details/104562120

 

实现内网穿透之后再手机 APP 上面也可以控制到自己家里面的设备了(就是可以通过网络控制了,不用必须在家)     手机的 APP 界面很简单    很干净  没有任何的广告

当然 这需要你自己去配置各种的信息   手机的界面如下

毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关