赞
踩
HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件。https://haas.iot.aliyun.com/solution/
本系统在物体接近后,通过红外避障传感器检测到物体,然后启动摄像头抓拍图片上传至云端,云端通过HaaS增值服务对抓拍的图片进行识别,并将垃圾类别、物品名称和可信度等信息返回给设备端,设备端根据返回的垃圾类别,自动打开对应类别的垃圾桶,待投放者离开后,再关上垃圾桶。
下图是本案例的四步导学。
红外避障传感器:利用物体的反射性质,在一定范围内,如果没有障碍物,发射出去的红外线,距离越远越弱,如果有障碍物,红外线遇到障碍物就会被反射,传感器接收头接收到这一信号,就可以确定正前方有物体。
HaaS增值服务:集多种人工智能算法为一体的云端服务,通过设备端上传图片到云端,云端对图片进行识别,并把结果返回给设备的服务,目前已涵盖图片识别、文字识别、物品识别、人型识别等多个类别。详情请参考:HaaS AI API说明文档
垃圾分类目前分为可回收垃圾、有害垃圾、厨余垃圾(湿垃圾)、其他垃圾(干垃圾)。
实验整体步骤如下:
涉及到的硬件购买链接如下,仅供参考,不负责商家发货的品质保障等问题!
名称 | 数量 | 参考链接 |
---|---|---|
M5Stack Core2开发版 | 1 | M5Stack Core2 |
microUSB数据线 | 1 | M5Stack Core2开发套件自带 |
摄像头 | 1 | M5Stack Unit CAM摄像头 |
连接线 | 1条 | M5Stack GROVE连接线 请选用10cm长即可 |
红外避障传感器 | 1 | 红外避障传感器 |
公对母杜邦线 | 若干 | 杜邦线 请选用10cm长即可 |
SG90角度舵机 | 1 | SG90舵机 |
硬件连线图如下图所示:
在本案例中涉及到云端平台功能都聚合在HaaS云端积木中,所以无需单独使用 对象存储OSS 和 视觉智能开发平台。因此,整个云端步骤分为下面两步。
- 1. 注册阿里云账号并登录;
- 2. 登录HaaS云端积木控制台创建设备;
进入阿里云官网,如已有阿里云账号可跳过这步,注册阿里云账号 。
进入阿里云官网,用阿里云账号登录HaaS云端组件控制台 。
在左侧导航栏设备管理中,可以看到产品和设备选项,点击“产品”,可以看到平台默认创建了“haas_正式游客产品”这个产品;
所以开发者只需要创建设备即可。点击“批量添加”, 添加方式为“自动生成”, 申请数量可填为“1”个,即可完成新设备的创建。
在设备的列表中,新创建的设备上点击“查看”,就可以获得设备的三元组信息,之后这个三元组信息会在设备端代码中使用到。
请复制该处的三元组信息,后面设备端开发需要使用。
在进行下一步之前请确保M5StackCore2开发环境已经搭建完毕。详情请参考M5StackCore2快速开始的说明。
如下图所示,在Haas Studio中创建项目。先选择左侧的“开发板型号”再从右侧的案例中选择“智能垃圾桶”案例点击“立即创建”即可。
将智能垃圾桶代码目录下的所有脚本进行复制到“smart_trashbin”工程根目录中,然后进行如下设定完成设备端代码的开发。
Python脚本的详细说明请参考脚本内嵌的文字注释
1、修改路由器名称及密码
修改main.py中SSID和PWD的值为读者实际要连接的路由器的名称及密码(请注意名称和密码都需要放在''符号中间)。
- # Wi-Fi SSID和Password设置
- SSID='Your-AP-SSID'
- PWD='Your-AP-Password'
修改完成之后connect_wifi函数就会连接读者自己设定的路由器。
2、修改设备的三元组信息
请参考“获取设备的三元组步骤”,把获取的三元组信息,填入main.py中:
- # HaaS设备三元组
- productKey = "Your-ProductKey"
- deviceName = "Your-devicename"
- deviceSecret = "Your-deviceSecret"
推送此脚本到M5Stack Core2之后,网络连接成功后,屏幕上将打印出IP地址和"NTP Done",如果迟迟不能显示“NTP Done”,请长按电源键关机同时拔掉USB线重新上电运行。
把要识别的垃圾放到大约距离红外传感器1-10cm处,当传感器上两个灯都亮起时,表明检测到物体开始垃圾分类识别,识别成功后在屏幕上显示红色XXXX Detected的字样,XXXX是四种垃圾分类的一种,样例log如下。在检测成功后,会根据识别的垃圾类型,打开对应类别的垃圾桶。
推送此脚本到M5StackCore2之后,通过PC端串口调试工具可以看到设备端打印如下日志。日志的含义为:
- I (71364) phy: phy_version: 4500, 0cd6843, Sep 17 2020, 15:37:07, 0, 0
- Wi-Fi is connecting...
- Wi-Fi is connecting...
- Wi-Fi is connected
- IP: 192.168.xxx.xxx
- NTP start
- NTP done
- E (61287) ACTIVATION_REPORT: activation success
-
- establish tcp connection with server(host='${Your-ProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[443])
- tcp_connect: can only connect from state CLOSED
- success to establish tcp, fd=54
- link platform connected
- IR detector ...
- 启动红外检测线程
- 有物体进入
- upload--->{'qos': 1, 'payload': '{"version": "1.0", "id": 1, "params": {"ext": "{\\"fileName\\": \\"test.jpg\\", \\"fileId\\": \\"xxxxx\\", \\"filePosition\\": \\"lp\\"}", "eventType": "haas.faas", "eventName": "classifyingRubbish", "argInt": 1}}', 'topic': '/sys/xxxxx/xxxxx/thing/event/hli_event/post'}
- download <----{'msg_id': 2136609361, 'service_id': 'hli_async_service', 'params': '{"ext":"{\\"elements\\":[{\\"category\\":\\"Recyclable\\",\\"categoryScore\\":0.9868,\\"rubbish\\":\\"\u706f\u7ba1\\",\\"rubbishScore\\":0.9868}],\\"result\\":\\"success\\",\\"sensitive\\":false}","commandName":"classifyingRubbishReply","commandTyperecognize time : 2378
- ":"haas.faas","argInt":1}', 'code': 0, 'params_len': 245}
- detect: Recyclable
- detected: Recyclable
- open the Recyclable bin
动手改造一下手边的小垃圾桶,通过舵机控制垃圾桶盖的开合,实现自动打开对应类别垃圾桶的效果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。