电子说
最近我有幸拿到 RAK(瑞科慧联) 近期很红的一块模块 – WisCam,有兴趣的 Maker 早已不迫及待地想要尝试这块迷人的 Camera module。有关 WisCam 开发板的 硬件规格 (CPU、FLASH、Camera、I/O、WiFi module)等信息都可以在 Ches 拔的那篇文章中找到详细的介绍,所以我就不在这里多做说明。这篇文章主要想跟大家分享的是,我在使用 WisCam 时用到的一些功能和心得。
RAK 这次的 WisCam 产品真的很吓人,不仅价格亲民 (非常适合像我这样子穷穷的 maker ),WisCam 整个套件的完整度让 Maker 可以非常快速的上手 (基本上只要会插电、下载 APP、连 WiFi 就可以使用)。此外,另一个亮点就是这次的 WisCam 有支持兼容 Arduino,这对还是菜鸟 Maker 的我来说无疑是一大福音。
在 App 上看到 camera 镜头成像后,立马决定来研究这个最近在 Maker界声量极高的 WisCam 到底还有什么厉害之处。在玩 WisCam 之前,有段时间有小小研究过 webcam 做影像辨识,所以这次对于研究 WisCam 莫名有点感觉,当然我会这样说是因为 WisCam 也可以做到相同的效果。
WisCam 本身分为两种 working mode,分别为 UVC (USB camera :webcam 的形式)和 WiFi Camera。这两种 working mode 是利用不同的接电方式,若要使用 UVC mode 就像 webcam 一样,插上 micro USB 接笔电或 PC 即完成;使用 WiFi camera 的话是透过 Arduino UNO 接 5V 供电,或是将 WisCam 开发版直接用 micro USB 接电源。
这样接线就是让 Wiscam 在 WiFi camera 的模式下运行
(题外话:如果不用他们家的原厂线,用自己的 micro USB 接我的 MAC 竟然会是 WiFi camera mode!真神奇!但我还没去厘清这是为什么。)
WisCam 最简单、普遍的应用就是在 WiFi camera mode 之下,利用手机里下载好的 App (RAK 这次很有心,iOS、 Android 系统App 都开源给大家使用,可直接 Google 即可找到下载连结)连上 WisCam 的 AP,就可以立即从手机观测镜头影像。
由于我想要尝试的是 WisCam 的远程观测功能,因此先撇开 UVC mode,专注在分享有关于 WiFi camera mode 的使用上。
特别想尝试 RAK 说的「远程监控」,是因为原本我在玩 webcam 时,要让别人从不同的 network 看到我这颗 webcam 的画面,是靠着ngrok 做到的 (其实ngrok 本来就不是这样用,但 for fun 已经够用),所以我就非常好奇 WisCam 是如何做到远程监控,发现原来在里面内建一个 Nabto P2P cloud 的功能。
Nabto platform 运作机制图
Nabto P2P cloud 的运作如同上图所示,Device 端是一个具有联网功能的开发版 (像是 Arduino MEGA2560 + Wiznet W5100 Ethernet Shield),透过在 appmyproduct (以下会做说明)上注册的 unique device ID & License Key 在 Nabto Basestation 辨识出自己,而 Client 透过 App (与 appmyproduct 有关) 若要 access 该联网的装置,在送出 request 的同时,也会把 access device 的 Device ID 一起送到 Nabto Basestation,实现 P2P 联机。
Device 或是 Client (app) 要有可以和 Nabto Basestation 建立关系的功能,势必要加上他们家的 SDK – uNabto SDK。这个 SDK 之强大,他可以支持许多常见的连网开发版,连我最爱用的 ESP8266 也在其内!真的让我心痒痒,一个很想玩的概念!
上面提到的 appmyproduct 就是 Nabto 为了加速「远程监控」应用程序的开发,所以释出一套具有和 Nabto platform 直接沟通的 App 模板,意思是如果你愿意花时间也是可以自己写原生的 mobile app,只是要加上 uNabto SDK 才能利用 Nabto cloud 实现远程监控,不过我相信大家不会想把心力放在开发 App 上面。
还有针对不同的 scenario 设计不同的 App 形式,根本超友善!除了 App 模板,刚提到注册 Device ID ,以及 License Key 也是在 appmyproduct 上完成。只要申请账号,就可以建立项目,生成 License Key (就会一并出现 Device ID)如下图。
这个 Device ID 和 License Key 就是要放进 Device 的 code 里面,让 Device 可以依据以上信息告诉 Nabto Basestation 我是谁,让 App 顺利的远程监控 Device 的某些行为。
那 WisCam 又是怎么一回事?其实把刚才举 Arduino MEGA2560 + Wiznet W5100 Ethernet Shield 的例子换成 WisCam 就大功告成了。也就是说文件里面的一句 「WisCam 支持 Nabto P2P cloud 的功能」WisCam 的情况是这样,在 WiFi camera mode 之下用笔电WiFi 连上WisCam 后在 Browser 的网址栏打上:http://192.168.100.1/cgi-bin/param.cgi?action=list&group=nabto 就可以看到类似下图的信息:
上面的 Nabto id 就好比在 appmyproduct 注册好的 Device ID,而在 RAK 本身释出的开源 App 当然也就已经具备 uNabto 的 SDK,可以从 App 中输入该WisCam 的 Nabto id 去做配对。
但这样直接尝试连接后发现,出现了 「NTCS_CLOSED」的结果,一查才发现是 「端设备未连接」的情形,为什么会这样呢?我在一开始提到 WisCam 在 WiFi camera mode 的使用,这种简易的使用 default 是 AP mode (也就是只能让),原来如果要让 WisCam 真的可以远程监控,它势必要先转成 STA mode,才可以顺利连上网络。
在这里,先澄清一下,所谓远程控制是 Device 和 App 在不同的 network 底下,App 仍然可以透过网络去 access 到 Device,甚至设计对 Device 做出控制。
RAK WisCam结合Arduino 的应用
RAK WisCam 这次的 camera module我觉得很大的优点和优势是和 Arduino 兼容,既然可以和 Arduino 兼容,我又有什么理由不好好发挥一点创意来实作应用呢,看了看手边为数不多的零件,突然灵光乍现,想到了个有趣的东西。
既然这颗 camera module 摆着只能定向观测,不如我把手边的游戏杆模块加上两颗 SG90 的伺服马达结合底座,让这颗 camera module 可以观测不只一个方向的画面,而主控版就用 Arduino nano 即可。
其实会想到这样的应用,是因为公司常常会有客人拜访,如果只是定向观测的话很容易漏掉画面 (因为不可能随时盯着手机 app 的画面),但倘若可以看到一定范围内(也就是马达角度的极限)的画面,或许会有点帮助 。以下是我的系统架构图:
用WisCam加Arduino NANO做出多角度监视器的架构图(制图:Ryan Hu)
由于手边组件缺乏,目前只做到这样的地步,不过我目前的想法是利用游戏杆模块远程操控马达 (近期补完货再加上去),让我可以清楚地在手机的 app 上看到多种角度的画面。
至于实作细节,本文就不一一详述了,这里仅提供一些学习资源,例如Arduino马达控制可参考叶难大大这篇《Arduino练习:伺服马达以Tower Pro SG90为例》,Joystick游戏杆控制可参考Motoduino这篇《XY双轴模拟游戏杆模块》,至于如何用Arduino来运用游戏杆控制马达,则可在巴贝缦的这篇《Arduino 以游戏杆控制服务器马达》文章中找到教学解答喔。
P.S 如果能做影像辨识,那就更好玩了!
结论
最后,文章的结尾我想说WisCam 的确可以让 Maker 快速上手,是一个好玩的开发工具包,不过还是仍不免俗的还有改进的空间,以下提出两点建议。
第一,它虽然支持 Arduino,的确可以利用 UNO 接 5V, 甚至是用 UART 来做通讯,但我觉得对于 WisCam本身可以发挥的空间就显得不足,即便整包 WisCam 原始码都可以下载下来,但会不知道从何发挥起 (大概是因为我还太菜的原因)。
其次就是 WisCam 目前看似只能于 Linux 下做更多的尝试,对于不是使用 Linux 的 Maker 来说,并不是件友善的事情。
不过总体来说体验是非常好的,对于想要快速体验 IP camera 但却没有太多银弹的 Maker 们,可以尝试看看这款 WisCam,CP 值颇高!
Wiscam 淘宝购买链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-14938546650.18.638a2e6T0NUOm&id=543901093786
全部0条评论
快来发表一下你的评论吧 !