畢業設計--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 界面很簡單    很乾淨  沒有任何的廣告

當然 這需要你自己去配置各種的信息   手機的界面如下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章