作者:Ryan Hu

RAK WisCam WiFi Camera開發套件
最近我有幸拿到 RAK(瑞科慧聯) 近期很紅的一塊模組 – WisCam,相信在上一篇 Ches 拔的開箱文後,有興趣的 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 值頗高!
(責任編輯:葉于甄)
◎加入我們的Line,獲得更多及時文章更新&活動資訊→
- 【NB-IoT】菜鳥Maker輕鬆上手DSI2598開發板 - 2019/12/13
- 【Maker電子學】Modbus over TCP 實作(上) - 2019/11/28
- 【Maker電子學】Modbus RTU的傳輸資料格式 - 2019/09/18
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!