本作品由安信可社區(qū)用戶
bzhou830制作
作品制作背景和制作流程可見(jiàn)B站視頻:https://www.bilibili.com/video/BV1E1421b7m2/?spm_id_from=333.337.search-card.all.click&vd_source=54c5db21948db2378659b7e8e42bafbf
01、設(shè)備端固件
在安信可澤神(安信可社區(qū)用戶ID:Ai-Thinker小澤)發(fā)布新的小安派 Cam-D200 固件前,之前發(fā)布的固件是 AP 模式運(yùn)行的。也就是說(shuō)設(shè)備是作為一個(gè) Wi-Fi 路由端的,那么想要連接到小安派 Cam-D200 就必須要把終端設(shè)備連接到小安派 Cam-D200 的Wi-Fi信號(hào)上。這就限制了小安派 Cam-D200 去接入局域網(wǎng),讓其他設(shè)備來(lái)訪問(wèn)的能力。
本人研究了舊的固件,將原來(lái) AP 模式,修改成了 STATION 模式。源碼可以從如下的帖子中獲取:小安派 CamD200 Station 模式 - 小安派 Cam - 物聯(lián)網(wǎng)開(kāi)發(fā)者社區(qū)-安信可論壇 - Powered by Discuz! (ai-thinker.com)
主要的設(shè)備連接代碼如下:
uint8_t wifi_connect(char* ssid, char* passwd) { int ret = 255; // struct fhost_vif_ip_addr_cfg ip_cfg = { 0 }; uint32_t ipv4_addr = 0; char* queue_buff = pvPortMalloc(128); memset(queue_buff, 0, 128); if (NULL==ssid || 0==strlen(ssid)) { return 1; } //先斷開(kāi)WiFi if (wifi_mgmr_sta_state_get() == 1) { wifi_sta_disconnect(); } printf("WiFi STA connect ....."); if (wifi_sta_connect(ssid, passwd, NULL, NULL, 0, 0, 0, 1)0) { vPortFree(queue_buff); return 4; } printf("Wating wifi connet"); //等待連接成功 sta_ConnectStatus = 0; for (int i = 0;i10*30;i++) { vTaskDelay(100/portTICK_PERIOD_MS); switch (sta_ConnectStatus) { case CODE_WIFI_ON_MGMR_DONE: return 3; case CODE_WIFI_ON_SCAN_DONE: vPortFree(queue_buff); return 2; case CODE_WIFI_ON_DISCONNECT: //連接失敗(超過(guò)了重連次數(shù)還沒(méi)有連接成功的狀態(tài)) return 4; case CODE_WIFI_ON_CONNECTED: //連接成功(表示wifi sta狀態(tài)的時(shí)候表示同時(shí)獲取IP(DHCP)成功,或者使用靜態(tài)IP) printf("Wating wifi connet OK"); break; case CODE_WIFI_ON_GOT_IP: wifi_sta_ip4_addr_get(&ipv4_addr, NULL, NULL, NULL); printf("wifi connened %s,IP:%s", ssid, inet_ntoa(ipv4_addr)); return 0; default: //等待連接成功 break; } } vPortFree(queue_buff); printf("wifi connened time out!"); return 14; //連接超時(shí) } void http_server_task(void *param) { while(wifi_connect("TP-LINK_3F2D", "buyaolianwo") != 0); mhttp_server_init(); }
在設(shè)備啟動(dòng)時(shí),啟動(dòng) HTTP Server 任務(wù),并在里面去連接局域網(wǎng)中的路由器。完整的代碼可以去上面的鏈接去下載。
好巧不巧,澤神也發(fā)布了新的固件實(shí)現(xiàn)了 STATION 模式,也修復(fù)了硬件上的一些問(wèn)題。
【小安派-Cam-D200】更快更穩(wěn),D200 升級(jí)啦 - 小安派 Cam - 物聯(lián)網(wǎng)開(kāi)發(fā)者社區(qū)-安信可論壇 - Powered by Discuz! (ai-thinker.com)
02、HA 的搭建和接入
2.1 HA 的搭建
作為一個(gè)對(duì)智能家居完全不懂的小白,當(dāng)然時(shí)跟著社區(qū)的大神們學(xué)習(xí),然后自己動(dòng)手搭建。恰好手邊正有一個(gè)樹(shù)莓派 4B, 遂使用它來(lái)安裝 HA。安裝 HA 的過(guò)程在之前的帖子中分享過(guò):
【記錄從零學(xué)智能家居】1.樹(shù)莓派 4B 上安裝 HA - 智能家居 - 物聯(lián)網(wǎng)開(kāi)發(fā)者社區(qū)-安信可論壇 - Powered by Discuz! (ai-thinker.com)
搭建是直接使用 Docker 鏡像搭建的,如果手上有不同的硬件也可以去參考如下的鏈接:
智能家居之旅,第一站:了解 HomeAssistant - 智能家居 - 物聯(lián)網(wǎng)開(kāi)發(fā)者社區(qū)-安信可論壇 - Powered by Discuz! (ai-thinker.com)
樹(shù)莓派或香橙派安裝 Home Assistant - 智能家居 - 物聯(lián)網(wǎng)開(kāi)發(fā)者社區(qū)-安信可論壇 - Powered by Discuz! (ai-thinker.com)
2.2 小安派 Cam-D200 接入 HA
搭建完成后就可以把攝像頭接入到 HA 了。在接入前,鼠鼠還思考著是不是需要修改固件代碼,讓設(shè)備推流到 HA 上接入。但是當(dāng)我打開(kāi) HA 的界面的時(shí)候發(fā)現(xiàn)一個(gè)有意思的卡片。
沒(méi)錯(cuò)!就是這個(gè)圖片,原來(lái)這個(gè)圖片卡片可以直接去拉去視頻流,那么過(guò)程就變得很簡(jiǎn)單了。
把小安派 Cam-D200 的視頻流地址填入即可,就這么簡(jiǎn)單!
03、外形設(shè)計(jì)
在了解到 3D 打印之前,經(jīng)常苦惱自己做的東西就是一塊裸露的電路板,沒(méi)有一點(diǎn)點(diǎn)美感。這次外形的設(shè)計(jì)思路參考的是 B 站大佬阿奇的桌面小屏幕的設(shè)計(jì)思路。
設(shè)計(jì)主要分成前殼,后殼和支架三個(gè)部分:
前殼上的方形空間預(yù)留給小安派 Cam-D200 的攝像頭。
后殼復(fù)雜鎖緊 PCB 電路板,同時(shí)中間預(yù)留的空間可以正好放進(jìn)入小的鋰電池,這樣攝像頭可以移動(dòng)使用。
支架主要是在設(shè)備放在桌面的時(shí)候,用來(lái)調(diào)整攝像頭在 Z 軸上的。
換個(gè)角度看一下
04、應(yīng)用擴(kuò)展
當(dāng)這個(gè)攝像頭接入到樹(shù)莓派,那么和圖像相關(guān)的應(yīng)用就都可以掛上鉤了。
接入 HA, 手機(jī)端可以查看攝像頭,和家用的監(jiān)控?cái)z像頭功能一樣;
在樹(shù)莓派端讀入圖像,可以運(yùn)行起來(lái)圖像識(shí)別和檢測(cè)等,這部分大家可以任意想象。
05
更多資料
原貼地址:【電子DIY作品】監(jiān)控?cái)z像頭 + 小安派Cam-D200 + Home Assistant
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45014&highlight=%E7%9B%91%E6%8E%A7%E6%91%84%E5%83%8F%E5%A4%B4&_dsign=13926965
外殼STL文件(見(jiàn)原貼評(píng)論區(qū)):
-
攝像頭
+關(guān)注
關(guān)注
59文章
4814瀏覽量
95474 -
智能家居
+關(guān)注
關(guān)注
1926文章
9523瀏覽量
184373 -
監(jiān)控?cái)z像頭
+關(guān)注
關(guān)注
1文章
48瀏覽量
11495
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論