一、实验目的及要求
【一】实现人脸识别
【二】实现云数据库应用
【三】实现测温数据mqtt上传至物联网云平台
二、实验原理与内容
基于二哈实现多人人脸学习和识别
基于TinywebDB实现云数据库应用
基于EasyIoT实现mqtt数据上传。
三、实验软硬件环境
硬件:掌控板
软件:Mind+
四、 实验过程(实验步骤、记录、数据、分析)
先用二哈识别多个人脸
- 向左拨动“功能按键”,至屏幕顶部显示“人脸识别”
- 长按“功能按键”,进入人脸识别功能的二级菜单参数设置界面
- 向左或向右拨动“功能按键”,选中“学习多个”,然后短按“功能按键”,接着向右拨动“功能按键”打开“学习多个”的开关
- 对准人脸进入学习
1. 基于二哈实现多人人脸学习和识别
在扩展中加入 HUSKYLENS AI摄像头
// 主程序开始
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 ((2mind_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页面的参数
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
填写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的同学
将二哈对准id为2的同学
将二哈对准id为3的同学
在mqtt服务器上的topic_0接收到的消息
二哈对准学习过后的同学的脸,就能发送消息
如果没有学习过,二哈就识别不出是谁,发送null
六、实验结论与体会
学会二哈学习人脸,识别人脸的使用方法,删除已学习的东西以及识别多个人脸的操作设置
TinyWebDB云数据库的应用