毕业设计--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 上面创建一个虚拟的开关。

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

然后点击创建虚拟传感器

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

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

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

接下来就是创建一个 MQTT的服务器,  这一部分我还不是很理解,只知道要这么干

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

这就是 domoticz 的操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

选择串口并且打开

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

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

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

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

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

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

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

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

发布了35 篇原创文章 · 获赞 30 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41534481/article/details/104587842