以下作品由安信可社區用戶
大貓的魚制作
1、引言
在日常生活中,各種智能插座、無線開關等應用十分廣泛;其本質大都是GPIO控制繼電器或其他開關器件,這種原理雖較為簡單,但較于傳感器采集進行多設備聯動的模式應用范圍更廣、成本更低、方便快捷。
因此筆者誕生了制作一個10A 8位無線通斷器的想法(控制可選實時與延時兩種模式)。
2、硬件設計
主控采用安信可Ai-WB2-12F模組,其支持Wi-Fi2.4與BLE5.0,通過MQTT協議可以很方便的與服務器交互。外圍可用引腳9個完美符合本次項目:8個GPIO作繼電器控制;1個作運行燈。
繼電器驅動電路采用ULN2803芯片;本來想直接光耦+三極管作控制電路的,但是是PCB空間有限,細算下來成本差不多。本著有啥用啥的原則,發現手頭的ULN2803后才好直接用,這樣也更方便點。
由于用了全部可用IO,因此正常運行時串口就無法使用的,所以為了方便調試與燒錄程序就加一個開關,控制RX TX連接運行燈還是CH340以此來控制燒錄與運行模式。
原理圖及PCB設計圖如下:
圖1 無線繼電器原理圖
圖2 無線繼電器PCB圖
3、軟件設計
Ai-WB2軟件設計
本項目的單片機軟件方面主要使用了GPIO、Timer、MQTT等。整體軟件工作流程為:
①Ai-WB2-12F等待連接WiFi行燈閃爍。
②成功連接WiFi,連接MQTT服務器,訂閱主題,成功后LED轉至常亮發布上線消息。
③等待上位機發布命令,接收到命令后做出應答,并根據命令內容控制GPIO與Timer。
④如果是延時模式下的ON/OFF指令,則在時間結束后控制GPIO并上報狀態。
值得注意的是,在讀取IO電平時發現庫里只有 在GPIO輸入模式下讀取電平的API。所以寫了個
bl_gpio_output_get_value(GLB_GPIO_Type gpioPin);
uint32_t bl_gpio_output_get_value(GLB_GPIO_Type gpioPin) {
uint32_t *p=(uint32_t *)(GLB_BASE+GLB_GPIO_OUTPUT_OFFSET+((gpioPin>>5)<<2));
uint32_t pos=gpioPin%32;
if((*p)&(1<}
其他具體代碼見附件。
微信小程序軟件設計
這里就放幾張最終做好的小程序圖片
通訊協議設計
設備 訂閱 WLRelay/cmd主題,在 WLRelay/res主題 發布響應;
小程序 訂閱 WLRelay/res主題,在 WLRelay/cmd主題 發布命令;
整個協議包采用JSON格式,這也是物聯網中常用的數據包格式。
//模式設置命令格式
{ "id":1, //繼電器序號
"mode":1, //延時模式 0:實時模式,此時不關注value; 1:延時模式
"value":10 //延時時間 單位s
}
//ON/OFF設置命令格式
{ "id":1, //繼電器序號
"mode":0, //延時模式 0:實時模式,此時不關注value; 1:延時模式
"isOpen":1 //開關狀態 0:ON 1:OFF
}
//響應包格式
{ "id":1, //cmd中繼電器序號
"mode":0, //延時模式 0:實時模式,此時不關注value; 1:延時模式
"isOpen":1 //當前繼電器開關狀態 0:ON 1:OFF
}
外殼及貼圖設計
筆者相信不少小伙伴在做DIY項目時都喜歡做出來的東西嚴絲合縫,方便耐用甚至是產品化。筆者就是這樣的,很喜歡這種感覺。所以設備外殼沒用使用3D打印,而是直接采用了公模感覺美觀點。
在某寶上搜“工控外殼”,本項目用的這個外殼才1.8元,完美符合在安信可論壇第五期DIY帖子中提出的“打造低成本、高實用性的智能生活解決方案”。
為了方便使用還在外殼表面貼圖指示對應接口功能以及模塊功能。使用A4貼紙直接用打印機就能制作,這樣最后的設備就看起來舒服多了。
實物演示
先放幾張實物圖
演示視頻:
https://www.bilibili.com/video/BV1ZdJczaEMG/?spm_id_from=888.80997.embed_other.whitelist&bvid=BV1ZdJczaEMG&vd_source=54c5db21948db2378659b7e8e42bafbf
總結與不足
本項目不足或升級想法主要有三點留日后改進:
①Wi-Fi直接連接,未加入自動配網功能;
②想在控制模式中加入“定時”,實現定時開 關;
③本想在加一路485接口,這樣也方便一些工控場合。可是由于芯片引腳不夠就放棄了,用其他多引腳的又感覺性能浪費沒必要,所以放棄~
【附件】:
附件:WLRelayV0.1.rar
https://bbs.aithinker.com/forum.php?mod=attachment&aid=33666
更新內容
自動配網:
基于Ai-WB2的10A無線通斷器-自動配網bbs.ai-thinker.com/forum.php?mod=viewthread&tid=46321&page=1&extra=#pid94203
定時控制:
基于Ai-WB2的10A無線通斷器-定時控制bbs.ai-thinker.com/forum.php?mod=viewthread&tid=46907&extra=
審核編輯 黃宇
-
繼電器
+關注
關注
133文章
5425瀏覽量
150853 -
wi-fi
+關注
關注
14文章
2226瀏覽量
126414 -
GPIO
+關注
關注
16文章
1269瀏覽量
53520
發布評論請先 登錄
電子DIY作品 桌面墨水屏日歷

汽車級高效10A雙相降壓DC/DC轉換器DA9130-A數據手冊

高效的10A雙相降壓型DC/DC轉換器DA9130數據手冊

低價不貴!安信可WiFi+BLE模組Ai-WB2系列

Ai-WB2+Modbus 485 RTU 遠程控制

安信可Ai-WB2系列的優勢是?一秒讀懂!
用Ai-WB2開發板做智能家居全彩LED小夜燈

采用TPS7H5001-SP的28V至5V、10A反激式轉換器設計

外設移植 安信可Ai-WB2+FPM383C指紋

外設移植 安信可Ai-WB2-32S開發板+TM1637 NTP時鐘

采用TPA3110D2做雙聲道功放,音量大后斷音,為什么?
漏電保護器10a和16a有什么區別
INA226檢測電流范圍,最大到10A,最小能到多少?
安信可Ai-WB2系列模組/開發板連接AWS亞馬遜云方法

評論