二哈实现人脸识别,TinyWebDB应用,mqtt上传

时间:2024-03-14 13:35:16

一、实验目的及要求

【一】实现人脸识别
【二】实现云数据库应用
【三】实现测温数据mqtt上传至物联网云平台

二、实验原理与内容

基于二哈实现多人人脸学习和识别
基于TinywebDB实现云数据库应用
基于EasyIoT实现mqtt数据上传。

三、实验软硬件环境

硬件:掌控板
软件:Mind+

四、 实验过程(实验步骤、记录、数据、分析)

先用二哈识别多个人脸

  1. 向左拨动“功能按键”,至屏幕顶部显示“人脸识别”
  2. 长按“功能按键”,进入人脸识别功能的二级菜单参数设置界面
  3. 向左或向右拨动“功能按键”,选中“学习多个”,然后短按“功能按键”,接着向右拨动“功能按键”打开“学习多个”的开关
  4. 对准人脸进入学习

1. 基于二哈实现多人人脸学习和识别
在扩展中加入 HUSKYLENS AI摄像头

二哈实现人脸识别,TinyWebDB应用,mqtt上传

// 主程序开始
void setup() {
mPython.begin();
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
}
void loop() {
display.setCursorLine(1);
display.printLine(“将摄像头对准人脸”);
huskylens.request();
if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
mind_n_id = huskylens.readBlockCenterParameterDirect().ID;
if ((1mind_n_id)) {
display.setCursorLine(2);
display.printLine(“2018764328梁文轩”);
rgb.write(-1, 0xFF0000);
}
else if ((2
mind_n_id)) {
display.setCursorLine(2);
display.printLine(“2018764312黄晨”);
rgb.write(-1, 0xFF0000);
}
else if ((3==mind_n_id)) {
display.setCursorLine(2);
display.printLine(“2018764312李兆敢”);
rgb.write(-1, 0xFF0000);
}
else {
display.setCursorLine(1);
display.printLine(“尚未识别”);
}
}
}
2. 基于TinywebDB实现云数据库应用
扩展中 加网络服务 TinyWebDB
进入TinyWebDB服务器,先注册,然后登陆
点击“数据导入”
二哈实现人脸识别,TinyWebDB应用,mqtt上传
二哈实现人脸识别,TinyWebDB应用,mqtt上传

二哈实现人脸识别,TinyWebDB应用,mqtt上传

在设置服务器中填写参数,该参数为登陆TinyWebDB页面的参数
二哈实现人脸识别,TinyWebDB应用,mqtt上传

get标签 获得的 变量id 是1.00 所以要将 其转为字符串,并获得1

// 主程序开始
void setup() {
mPython.begin();
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
}
void loop() {
display.setCursorLine(1);
display.printLine(“将摄像头对准人脸”);
huskylens.request();
if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
mind_n_id = huskylens.readBlockCenterParameterDirect().ID;
display.setCursorLine(2);
display.printLine(mydb.getTag((dfstring.substring((String(mind_n_id)),0,1,0,1))));
}
}

3. 基于EasyIoT实现mqtt数据上传
扩展中 加网络服务 MQTT,Wi-Fi,TinyWebDB
二哈实现人脸识别,TinyWebDB应用,mqtt上传

填写mqtt初始化参数
二哈实现人脸识别,TinyWebDB应用,mqtt上传

发送消息到mqtt服务器的topic_0

// 主程序开始
void setup() {
mPython.begin();
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
display.setCursorLine(1);
display.printLine(“连接wifi”);
myIot.wifiConnect(“Chuang2”, “hc666666”);
while (!myIot.wifiStatus()) {yield();}
myIot.init(“iot.dfrobot.com.cn”,“yVgocmKGg”,"",“sVRociKGgz”,topics,1883);
myIot.connect();
display.setCursorLine(2);
display.printLine(“mqtt连接”);
while (!myIot.connected()) {yield();}
display.setCursorLine(3);
display.printLine(“mqtt连接成功”);
mydb.setServerParameter(“http://tinywebdb.appinventor.space/api”, “asd12”,“c4eb11cc”);
display.fillScreen(0);
}
void loop() {
display.setCursorLine(1);
display.printLine(“将摄像头对准人脸”);
huskylens.request();
if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
mind_n_id = huskylens.readBlockCenterParameterDirect().ID;
display.setCursorLine(2);
display.printLine(mydb.getTag((dfstring.substring((String(mind_n_id)),0,1,0,1))));
myIot.publish(topic_0, mydb.getTag((dfstring.substring((String(mind_n_id)),0,1,0,1))));
}
}

五、 测试/调试及实验结果分析

将二哈对准id为1的同学
二哈实现人脸识别,TinyWebDB应用,mqtt上传
将二哈对准id为2的同学
二哈实现人脸识别,TinyWebDB应用,mqtt上传
将二哈对准id为3的同学
二哈实现人脸识别,TinyWebDB应用,mqtt上传
在mqtt服务器上的topic_0接收到的消息
二哈实现人脸识别,TinyWebDB应用,mqtt上传
二哈对准学习过后的同学的脸,就能发送消息
如果没有学习过,二哈就识别不出是谁,发送null

六、实验结论与体会

学会二哈学习人脸,识别人脸的使用方法,删除已学习的东西以及识别多个人脸的操作设置
TinyWebDB云数据库的应用