人工智能测温(Mind+图形化编程实验)
人工智能测温(Mind+图形化编程实验)本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明。实验软硬件环境硬件:掌控版、micro:bit掌控I/O扩展板、HUSKYLENSAI摄像头、非接触式红外温度传感器/DS18B20温度传感器、数据线软件:Mind+ (V1.6.5 RC3.0)实验目的及要求【一】实现测温【二】实现人脸识别【三】实现云数据库应用【
人工智能测温(Mind+图形化编程实验)
本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明。
实验软硬件环境
- 硬件:掌控版、micro:bit掌控I/O扩展板、HUSKYLENS
AI摄像头、非接触式红外温度传感器/DS18B20温度传感器、数据线 - 软件:Mind+ (V1.6.5 RC3.0)
实验目的及要求
【一】实现测温
【二】实现人脸识别
【三】实现云数据库应用
【四】实现测温数据mqtt上传至物联网云平台
实验原理与内容
- 基于非接触式红外温度传感器或DS18B20温度传感器实现测温
- 基于二哈实现多人人脸学习和识别
- 基于TinywebDB实现云数据库应用
- 基于EasyIoT实现mqtt数据上传
实验过程
1. 搭建TinywebDB数据库实现云数据库应用
TinywebDB网址:http://tinywebdb.appinventor.space/
(1)注册一个账号或使用公共账号登录都可以
(2)登录进去以后记录API地址、用户名、密钥,用于代码中上传数据到数据库的验证
(3)然后进入数据浏览页面来进行标签和值的添加
2. 进行EasyIoT服务器的配置来实现mqtt数据上传
EasyIoT网址:http://iot.dfrobot.com.cn/
(1)注册Easy-iot账号并且登录
(2)选择工作间,记录自己的user、password、Topic,用于实现mqtt数据上传的验证
3. 进行二哈的配置来实现多人人脸学习和识别
(1)HuskyLens二哈识图是一款简单易用的AI视觉传感器,内置7种功能:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签识别、物体分类。仅需一个按键即可完成AI训练,摆脱繁琐的训练和复杂的视觉算法,让你更加专注于项目的构思和实现。
(2)接口与按键说明
(3)升级固件
使用本产品之前,强烈建议你升级到最新版本的固件,以获取最新的功能和最稳定的体验。如果你的HuskyLens已经是最新固件则无需更新。
本教程需要的固件版本不低于V0.5.1。此版本把所有功能(包括物体分类)全部集成在一起。
详细操作参考HuskyLens的产品维库
HuskyLens的产品维库地址:https://wiki.dfrobot.com.cn/SKU_SEN0305_Gravity__HUSKYLENS%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%91%84%E5%83%8F%E5%A4%B4#target_3
(4)进行人脸学习
将HuskyLens屏幕中央的“+”字对准需要学习的人脸,短按“学习按键”完成学习。如果识别到相同的脸,则屏幕上会出现一个蓝色的框并显示”人脸:ID1“。这说明已经可以进行人脸识别了。
4. 基于非接触式红外温度传感器或DS18B20温度传感器实现测温
(1)连线图
HuskyLens和非接触式红外温度传感器与掌控版的通信接口都采用I2C接口
5. 代码
(1)图形化编程代码:
(2)arduinoC代码:
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <DFRobot_MLX90614.h>
#include <mPython_tinywebdb.h>
#include <DFRobot_HuskyLens.h>
// 动态变量
String mind_s_XingMing;
// 静态常量
const String topics[5] = {"6ablb9OGR","","","",""};
// 创建对象
DFRobot_Iot myIot;
mPython_TinyWebDB mydb;
DFRobot_HuskyLens huskylens;
DFRobot_MLX90614 mlx90614;
// 主程序开始
void setup() {
mPython.begin();
display.setCursorLine(1);
display.printLine("开始连接WiFi");
myIot.wifiConnect("Huang", "88888888");
while (!myIot.wifiStatus()) {yield();}
display.setCursorLine(2);
display.printLine("WiFi连接成功");
myIot.init("iot.dfrobot.com.cn","aETlbrdGR","","-Po_x9dGRz",topics,1883);
myIot.connect();
while (!myIot.connected()) {yield();}
display.setCursorLine(3);
display.printLine("MQTT连接成功");
delay(2000);
display.fillScreen(0);
mydb.setServerParameter("http://tinywebdb.appinventor.space/api", "huang11","658949d1");
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
}
void loop() {
huskylens.request();
if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
if (huskylens.isLearned(huskylens.readBlockCenterParameterDirect().ID)) {
mind_s_XingMing = mydb.getTag((String(huskylens.readBlockCenterParameterDirect().ID)));
display.setCursorLine(1);
display.printLine(mind_s_XingMing);
display.setCursorLine(2);
display.printLine("请保持面向摄像头");
display.setCursorLine(3);
display.printLine("开始测温");
display.setCursorLine(4);
display.printLine((String("体温为:") + String(mlx90614.getObjectTempC())));
myIot.publish(topic_0, (String(mind_s_XingMing) + String((String("的温度为:") + String(mlx90614.getObjectTempC())))));
delay(3000);
}
}
}
实验结果
实验结论与体会
这个实验,运用到了比较多的知识,如:wifi无线传输、MQTT协议、创建数据库、对接Easy-Iot、掌控板、拓展板的使用、HuskyLens的使用和温度传感器的使用。通过实验可以把知识掌握的更加牢固。
更多推荐
所有评论(0)