底層互聯網民工的苦衷
作為互聯網設計民工,我們嚮往“快樂工作,認真生活”。無奈整天對著電腦,眼睛乾澀,脣乾舌燥。偶爾站起來活動活動,或者在表情分享群收集靈(biao)感(qing)的時候,被後面悄然靠近的老闆拍拍肩膀,那感覺,簡直是驚悚片現場,直接當前頭髮-10%!
“老闆來了”解決方案!
在頭髮掉了40.951%之後,痛定思痛,秉著“今天最好的表現是明天最低的要求”的價值觀,作為IoT設計民工,我們要改變這個情況!使用物聯網的手段,做一個“老闆來了”的“後視鏡”提示!
(比《功夫》這個高科技一點)
我們要使用一個簡單的攝像頭識別老闆,如果識別到老闆,就往釘釘(八卦)群裡緊急推送這個消息,這樣就可以減少上班時的驚悚程度與掉髮。
就差一個程序員?
然而,我們都是設計民工,不會寫算法,更不懂服務器啊!就差(不止)一個程序員了?!
這時候,我們物聯網事業部的低代碼開發平臺IoT Studio就派上用場了!我們決定使用基於Arduino環境的ESP-EYE攝像頭WIFI模塊 + IoT Studio搭建一個視頻監控+告警的應用。
ESP-EYE識別“老闆”
ESP-EYE是一款專注於圖像識別與語音處理的開發板,板載ESP32芯片,集成200萬像素攝像頭、數字麥克風,擁有8 MByte PSRAM和4 MByte flash的豐富存儲,支持Wi-Fi圖像傳輸與Micro USB調試與供電,可廣泛應用於智能物聯網領域的應用開發。
200大洋的電路板實驗
ESP-EYE兼容Arduino IDE,官方Github有直接提供示例程序。需要先安裝開發板。這裡略過Arduino IDE本身的安裝。
在preferences裡面加上這兩行:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
然後從官方下載源碼,使用“CameraWebServer”進行改造。
CameraWebServer這個代碼裡,需要修改開發板類型定義的註釋,如圖
此外需要修改WIFI的信息。這裡我修改為自己手機的熱點。
選擇對應的開發板進行Demo程序的燒錄。
燒錄成功之後,打開串口監視器,可以看到連上WIFI的ESP-EYE有反應了。
使用同一個熱點(作者是手機熱點所以直接手機瀏覽器打開即可)打開其上報的IP地址,可以看到推的流以及一些設置項,點擊下方“start stream”開始推流。注意,這裡的推流是基於局域網的,如果想用電腦看,電腦也要連到同一個熱點才能用這個IP進行瀏覽。
看到了帥氣但掉髮的作者。
這樣完成了ESP-EYE的初步調試。然後打開推流設置裡的“Face Detection”和“Face Recogntion”選項,等待識別即可。下一步就是要將這個數據上報到阿里雲了。
攝像頭連接阿里雲
在阿里雲物聯網平臺,我們在設備接入中創建一個產品,命名為“ESP-EYE”。產品相當於一種“類”的定義,定義同樣的功能,最後實例化為設備身份。
物聯網平臺這個產品有一定的免費額度,跑這個應用夠用了
在這個產品裡,我們定義一個FACE_ID的“屬性”,用來表示目前識別到第幾個人臉,目前第0個人臉就是老闆。同時定義一個IP,方便接入不同的局域網(熱點)時不需要重新輸入IP地址完成推流展示。
然後創建一個設備,設備DeviceName命名為esp_eye_001,獲得DeviceName和DeviceSecret,加上之前產品的ProductKey,構成一個完整的“三元組”完成設備身份上雲的認證。
接下來我們在之前的Arduino測試代碼上增加部分MQTT接入的代碼。這裡有一個取巧的地方,ESP-EYE與阿里雲官方的DFRobot套裝都是基於ESP32的,因此這部分固件可以通過重複使用DFRobot的代碼完成構建。
加上上報topic和人臉識別/IP地址的屬性配位符之後(見示例代碼壓縮包),燒錄程序到ESP-EYE裡。打開熱點,看看數據有沒有上報上來。
物聯網平臺人臉變化跟設備的subject編號對上了,KO!
IoT Studio告警應用
一個H5實時監控應用
數據上來了,當然要使用!我們使用IoT Studio做一個H5應用,能看到攝像頭的實時狀況,並且每當老闆靠近的時候頁面顏色變紅!
在物聯網平臺IoT Studio頁面,創建一個項目,叫“老闆來了!”
將剛才的產品和設備導入到項目裡。
並新建一個Web應用。
需要首先把Web應用的分辨率調整成手機使用的375*667。
首先加入一個iframe組件。用於接收ESP-EYE的推流。
注意由於推流的IP地址是基於局域網的,實際使用的時候需要把電腦也連到同一個熱點上。同時由於安全政策,IoT Studio使用基於http協議的iframe需要應用綁定已備案域名才能使用。
一個指示燈組件。用於更明顯的提醒是否有目標人物靠近。
最後改成這樣,在開發態看不到效果。
發佈之後綁定自己的域名。打開手機熱點,將電腦和ESP-EYE都連上看看效果。
KO!
一個釘釘群告警
釘釘群裡怎麼能沒有告警?每當檢測到老闆的時候,自動往釘釘群推送一個警告!
首先新建一個業務服務。
我們規定根據ESP-EYE上報的值是否為老闆的faceID進行告警.
然後部署,用ESP-EYE試一試。
KO!
實踐是檢驗真理的唯一標準
講了那麼多,把demo部署到現場試試看!
老闆の反♂擊♂
聽說阿里雲IoT非洲分部缺設計師,你這麼有才華,不如。。。
歡迎使用IoT Studio!
物聯網開發服務(IoT Studio,原Link Develop),是阿里雲針對物聯網場景提供的生產力工具,可覆蓋各個物聯網行業核心應用場景,幫助您高效經濟地完成設備、服務及應用開發。物聯網開發服務提供了移動可視化開發、Web可視化開發、服務開發與設備開發等一系列便捷的物聯網開發工具,解決物聯網開發領域開發鏈路長、技術棧複雜、協同成本高、方案移植困難的問題,重新定義物聯網應用開發。
以下為IoT Studio的案例,歡迎閱讀:
IoT SaaS加速器——助力阿爾茨海默病人護理
https://yq.aliyun.com/articles/706042
IoT Studio + LoRa打造“又猛又持久”的智能廁所
https://yq.aliyun.com/articles/689174
如何用Link Develop開發一個智能廁所