耗時兩個月,今天終于完成了《基于STM32的智能語音家居》這個綜合實例,現在對該實例實現的功能和知識點進行一下梳理。
實現功能
- 一個主控板,三個節點,采用分布式網絡,各個子板可以與設備就近連接,比如:控制窗簾的4號板(地址為0x0004),可以布置在窗戶旁,靠近窗簾的位置;
- 主控板上連接有LD3320語音模塊,通過語音指令可以控制三個子板上的設備動作;
- 主控板上可以顯示地址為0x0004的ZigBee模塊對應子板上光照傳感器的值;
- 子板上按鍵可以控制自己板子上的模塊,相當于手動操作開關設備,比如:按鍵1可以控制電燈的開關、按鍵2可以控制門的開關、按鍵3可以控制窗簾的開關;
- OLED在主控板上,用于顯示接收到的光度值和燈、門和窗簾的開關狀態。
ZigBee模塊定義
具體配置參數預定義如下:
模塊串口通信的波特率為:115200。地址0x0000為自己本身,地址0xFFFF為廣播地址。
通訊協議定義
本實例的代碼只使用了源端口號為A1、A3、A5、A8四個指令,其他指令各位可以在我提供的源碼基礎上自由擴展。
主節點
包括如下模塊:
LD3320模塊LD3320語音模塊原理圖
OLED顯示OLED模塊原理圖
ZigBee模塊原理圖
節點1:電燈
本節點為ZigBee模塊地址為0x0002的底板,這個板子上主要使用繼電器模塊。
繼電器模塊原理圖
當RELAY引腳為低電平的時候,三極管導通,繼電器吸合,燈點亮;當RELAY引腳為高電平的時候,三極管截止,繼電器無動作。
繼電器模塊可以實現弱電控制強電的功能,比如控制電燈、洗衣機、微波爐、電加熱器等家用電器的開關。
節點2:門
本節點為ZigBee模塊地址為0x0003的底板,這個板子主要實現對舵機模塊的驅動,用于模擬門的開關。
節點3:窗簾
本節點為ZigBee模塊地址為0x0004的底板,這個板子主要實現對步進電機的驅動,用于模擬窗簾的開關。
原理圖
本文實例,JP8中的VS引腳與VCC5V兩個引腳短接。
板子上還有一個GY-302數字光照傳感器,其原理圖如下:
ADDR引腳通過R36的10K電阻接地,R35電阻不焊接。
實例演示