底层互联网民工的苦衷
作为互联网设计民工,我们向往“快乐工作,认真生活”。无奈整天对着电脑,眼睛干涩,唇干舌燥。偶尔站起来活动活动,或者在表情分享群收集灵(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开发一个智能厕所