底層網際網路民工的苦衷
作為網際網路設計民工,我們向往“快樂工作,認真生活”。無奈整天對着電腦,眼睛幹澀,唇幹舌燥。偶爾站起來活動活動,或者在表情分享群收集靈(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/706042IoT Studio + LoRa打造“又猛又持久”的智能廁所
https://yq.aliyun.com/articles/689174如何用Link Develop開發一個智能廁所
https://yq.aliyun.com/articles/645793