點擊上方“嵌入式從0到1”,選擇“置頂/星標公眾號”
干貨福利,第一時間送達!
耗時兩個月,今天終于完成了《基于STM32的智能語音家居》這個綜合實例,現在對該實例實現的功能和知識點進行一下梳理。
具體配置參數預定義如下:
| 模塊ID | 地址 | 信道 | 網絡ID | 備注 |
|---|---|---|---|---|
| 1 | 0x0001 | 0x0F | 0x1234 | 主節點,與LD3320語音模塊相連 |
| 2 | 0x0002 | 0x0F | 0x1234 | 電燈 |
| 3 | 0x0003 | 0x0F | 0x1234 | 舵機,模擬門開關 |
| 4 | 0x0004 | 0x0F | 0x1234 | 步進電機,模擬窗簾開關 |
模塊串口通信的波特率為:115200。地址0x0000為自己本身,地址0xFFFF為廣播地址。
DL-LN3X ZigBee模塊上位機網絡拓撲軟件演示及信號強度測試
| 功能 | 包頭 | 源端口 | 目的端口 | 遠程地址 | 數據 | 包尾 | 備注 |
|---|---|---|---|---|---|---|---|
| 電燈開關 | FE 05 | 91 | A1 | 0x0002 | 00/01 | FF | 00為關燈,01為開燈 |
| 電燈開關命令應答 | FE 05 | 92 | A2 | 0x0001 | 00/01 | FF | 數據位為燈的狀態,00為關燈,01為開燈 |
| 門開關 | FE 05 | 93 | A3 | 0x0003 | 00/01 | FF | 00為關門,01為開門 |
| 門開關命令應答 | FE 05 | 94 | A4 | 0x0001 | 00/01 | FF | 數據位為門的狀態,00為關,01為開 |
| 窗簾開關 | FE 05 | 95 | A5 | 0x0004 | 00/01 | FF | 00為關窗簾,01為開窗簾 |
| 窗簾關命令應答 | FE 05 | 96 | A6 | 0x0001 | 00/01 | FF | 數據位為窗簾的狀態,00為關,01為開 |
| 獲取光照強度命令 | FE 04 | 97 | A7 | 0x0004 | FF | 讀取光照強度 | |
| 獲取光照強度應答 | FE 06 | 98 | A8 | 0x0001 | XX XX | FF | 數據的兩個字節組成一個16位數據,低位在前 |
本實例的代碼只使用了源端口號為A1、A3、A5、A8四個指令,其他指令各位可以在我提供的源碼基礎上自由擴展。
DL-LN33 ZigBee模塊系列網文第二篇:指令分析/地址和組網信息的修改
包括如下模塊:
STC單片機開發環境建立及更新LD3320模塊程序
語音識別LD3320模塊控制LED和舵機
STM32與LD3320語音識別模塊串口交互,實現語音控制繼電器
解析LD3320的數據包需要了解cJSON相關知識:
Keil環境下STM32工程加入cJSON
用cJSON解析心知天氣返回的數據包
STM32驅動0.96寸OLED液晶屏
OLED液晶屏如何顯示中文呢?
2.4G ZigBee無線自組網mesh網絡模塊簡介
DL-LN33 ZigBee模塊系列網文第二篇:指令分析/地址和組網信息的修改
DL-LN3X ZigBee模塊上位機網絡拓撲軟件演示及信號強度測試
串口編程解析DL-LN33 ZigBee模塊數據包
本節點為ZigBee模塊地址為0x0002的底板,這個板子上主要使用繼電器模塊。
當RELAY引腳為低電平的時候,三極管導通,繼電器吸合,燈點亮;當RELAY引腳為高電平的時候,三極管截止,繼電器無動作。
繼電器模塊可以實現弱電控制強電的功能,比如控制電燈、洗衣機、微波爐、電加熱器等家用電器的開關。
繼電器(Relay)的原理
STM32與LD3320語音識別模塊串口交互,實現語音控制繼電器
本節點為ZigBee模塊地址為0x0003的底板,這個板子主要實現對舵機模塊的驅動,用于模擬門的開關。
SG90舵機驅動原理和實現
語音識別LD3320模塊控制LED和舵機
本節點為ZigBee模塊地址為0x0004的底板,這個板子主要實現對步進電機的驅動,用于模擬窗簾的開關。
本文實例,JP8中的VS引腳與VCC5V兩個引腳短接。
讓步進電機動起來
板子上還有一個GY-302數字光照傳感器,其原理圖如下:
ADDR引腳通過R36的10K電阻接地,R35電阻不焊接。
光照傳感器和步進電機的聯動可以參考如下網文:
GY-302 數字光照傳感器光照模塊驅動
留言區置頂留言獲取本文相關代碼。