大数跨境
0
0

会玩!手把手教你用小安派做1个监控摄像头!

会玩!手把手教你用小安派做1个监控摄像头! 安信可科技
2024-08-02
2
导读:安全监控自己做~


本作品由安信可社区用户

bzhou830制作







作品制作背景和制作流程可见B站视频(点击上图观看)






01

设备端固件

在安信可泽神(安信可社区用户ID:Ai-Thinker小泽)发布新的小安派 Cam-D200 固件前,之前发布的固件是 AP 模式运行的。也就是说设备是作为一个 Wi-Fi 路由端的,那么想要连接到小安派 Cam-D200 就必须要把终端设备连接到小安派 Cam-D200 的Wi-Fi信号上。这就限制了小安派 Cam-D200 去接入局域网,让其他设备来访问的能力。


本人研究了旧的固件,将原来 AP 模式,修改成了 STATION 模式。源码可以从如下的帖子中获取:小安派 CamD200 Station 模式 - 小安派 Cam - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)


主要的设备连接代码如下:


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;    }    //先断开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;i<10*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:  //连接失败(超过了重连次数还没有连接成功的状态)                return 4;            case CODE_WIFI_ON_CONNECTED:  //连接成功(表示wifi sta状态的时候表示同时获取IP(DHCP)成功,或者使用静态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; //连接超时}


void http_server_task(void *param){ while(wifi_connect("TP-LINK_3F2D", "buyaolianwo") != 0); mhttp_server_init();}

在设备启动时,启动 HTTP Server 任务,并在里面去连接局域网中的路由器。完整的代码可以去上面的链接去下载。


好巧不巧,泽神也发布了新的固件实现了 STATION 模式,也修复了硬件上的一些问题。


【小安派-Cam-D200】更快更稳,D200 升级啦 - 小安派 Cam - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)







02

HA 的搭建和接入

2.1 HA 的搭建

作为一个对智能家居完全不懂的小白,当然时跟着社区的大神们学习,然后自己动手搭建。恰好手边正有一个树莓派 4B, 遂使用它来安装 HA。安装 HA 的过程在之前的帖子中分享过:


【记录从零学智能家居】1.树莓派 4B 上安装 HA - 智能家居 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)

搭建是直接使用 Docker 镜像搭建的,如果手上有不同的硬件也可以去参考如下的链接:

智能家居之旅,第一站:了解 HomeAssistant - 智能家居 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)

树莓派或香橙派安装 Home Assistant - 智能家居 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)



2.2 小安派 Cam-D200 接入 HA


搭建完成后就可以把摄像头接入到 HA 了。在接入前,鼠鼠还思考着是不是需要修改固件代码,让设备推流到 HA 上接入。但是当我打开 HA 的界面的时候发现一个有意思的卡片。


没错!就是这个图片,原来这个图片卡片可以直接去拉去视频流,那么过程就变得很简单了。


把小安派 Cam-D200 的视频流地址填入即可,就这么简单!







03

外形设计

在了解到 3D 打印之前,经常苦恼自己做的东西就是一块裸露的电路板,没有一点点美感。这次外形的设计思路参考的是 B 站大佬阿奇的桌面小屏幕的设计思路。

设计主要分成前壳,后壳和支架三个部分:

前壳上的方形空间预留给小安派 Cam-D200 的摄像头。


后壳复杂锁紧 PCB 电路板,同时中间预留的空间可以正好放进入小的锂电池,这样摄像头可以移动使用。


支架主要是在设备放在桌面的时候,用来调整摄像头在 Z 轴上的。


换个角度看一下






04

应用扩展

当这个摄像头接入到树莓派,那么和图像相关的应用就都可以挂上钩了。

接入 HA, 手机端可以查看摄像头,和家用的监控摄像头功能一样;

在树莓派端读入图像,可以运行起来图像识别和检测等,这部分大家可以任意想象。








微信改版,容易错过最新资讯和福利?

快将“安信可科技”设为星标

可以第一时间接收小安的推送!







往期回顾

低能耗、低时延、快速度,星闪开发板 Ai-BS21-32S-Kit 

从30W到200W,小安派-Cam-D 爆炸升级!

通讯距离414m的星闪Dongle,可用于PC配件和IoT智能终端




安信可更多产品信息可进入以下链接查阅:

●开发资料:https://docs.ai-thinker.com/

●官方教程:https://blog.csdn.net/Boantong_

●安信可官网:www.ai-thinker.com

●安信可社区:https://bbs.ai-thinker.com

●业务咨询请联系:18022036575


【声明】内容源于网络
0
0
安信可科技
全球领先的联网模组、智能家居等物联网硬件方案提供商。
内容 393
粉丝 0
安信可科技 全球领先的联网模组、智能家居等物联网硬件方案提供商。
总阅读94
粉丝0
内容393