物联网——Al二哈人脸识别

**

物联网——Al二哈人脸识别

**

一、实验目的及要求

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

二、实验原理与内容

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

三、实验软硬件环境

四、实验过程

1.mind+环境配置:

  • 选择huskylens Al摄像头传感器

在这里插入图片描述

  • 添加实验所需服务:MQTT、WIFI、TingywebDB

在这里插入图片描述

  • 对上列服务进行配置:
    在这里插入图片描述在这里插入图片描述

2.硬件配置:
组装掌控板与二哈识图:
在这里插入图片描述
3.人脸录入配置:
在这里插入图片描述在二哈识别中选中人脸识别功能对多人人脸进行持续录入

  • id1:

在这里插入图片描述

  • id4:

在这里插入图片描述

  • id5:

在这里插入图片描述4.TinywebDB配置:

在这里插入图片描述

  • 进入个人的信息界面提取所需信息:API地址、用户名、密钥

在这里插入图片描述

  • 为数据库添加信息:

在这里插入图片描述
5.Easy IoT配置:

  1. 进入easy iot官网国区注册登录获取iot_id、iot_pwd
  2. 在工作站建立topic0
    在这里插入图片描述

6.核心代码:

模块化代码截图:在这里插入图片描述程序化代码:

/*!
 * MindPlus
 * mpython
 *
 */
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <mPython_tinywebdb.h>
#include <DFRobot_HuskyLens.h>
// 函数声明
void obloqMqttEventT0(String& message);
// 静态常量
const String topics[5] = {"y9HASmF**","QuO0IiK**","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot       myIot;
mPython_TinyWebDB mydb;
DFRobot_HuskyLens huskylens;


// 主程序开始
void setup() {
	mPython.begin();
	myIot.setMqttCallback(msgHandles);
	myIot.wifiConnect("orange", "12345678");
	while (!myIot.wifiStatus()) {yield();}
	display.setCursorLine(1);
	display.printLine((String("ip地址:") + String(myIot.getWiFiLocalIP())));
	mydb.setServerParameter("http://tinywebdb.appinventor.space/api", "orange","86e33**5");
	myIot.init("iot.dfrobot.com.cn","hMeTImK**","","hG6oSiKM**",topics,1883);
	myIot.connect();
	while (!myIot.connected()) {yield();}
	display.setCursorLine(2);
	display.printLine("mqtt已连接");
	huskylens.beginI2CUntilSuccess();
	huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
}
void loop() {
	huskylens.request();
	if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
		if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
			display.setCursorLine(3);
			display.printLine(mydb.getTag("1"));
			rgb.write(-1, 0x00FF00);
		}
		else if (huskylens.isAppear(4,HUSKYLENSResultBlock)) {
			display.setCursorLine(3);
			display.printLine(mydb.getTag("4"));
			rgb.write(-1, 0xFF0000);
		}
		else if (huskylens.isAppear(3,HUSKYLENSResultBlock)) {
			display.setCursorLine(3);
			display.printLine(mydb.getTag("3"));
			rgb.write(-1, 0xFF0000);
		}
		else {
			display.setCursorLine(3);
			display.printLine("请先录入人脸数据");
		}
	}
	else {
		display.setCursorLine(3);
		display.printLine("请将摄像头对准人脸");
	}
}


// 事件回调函数
void obloqMqttEventT0(String& message) {
	myIot.publish(topic_0, message);
}

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

识别成果图:
id1:
在这里插入图片描述id3:在这里插入图片描述
id4:
在这里插入图片描述

  • 将二哈识别对准已录入人脸进行扫描识别,二哈识别通过对比已存入的人脸信息进行对比,与存入人脸数据匹配则通过与TinywebDB连接的数据库调取信息显示到掌控板并做出相应的指示灯变化。

Easy iot物联网平台收到的数据:
在这里插入图片描述

  • 掌控板与mind+连接,通过wifi、mqtt模块加载实现mind+下Easy IoT上mqtt消息的通讯。首先,通过wifi热点建立掌控板与网络连接,通过初始化mqtt数据导入iot_id、iot_pwd以及连接的topic1建立mqtt与服务器的连接。
  • Wifi连接通过在显示屏输出“wifi连接成功”测试wifi是否成功;mqtt连接通过在显示屏输出“MQTT连接成功”测试mqtt是否连接成功。一旦wifi与mqtt连接成功后通过掌控板上的A键开关控制消息语句的循环发送与清屏控制。
  • 实验中主掌控板通过向iot_id的topic1发送消息,iot用户在iot.dfrobot.com.cn的topic0的界面可查看消息接收记录,同时iot用户掌控板可在显示屏显示到发送内容。Iot用户向topic1发送信息,主机掌控板显示屏也可以显示接收内容。

六、实验结论与体会

本次实验基于人工智能实现多人人脸学习和识别、云数据库应用、实现mqtt数据上传。不得不说现在Al机器确实厉害,整合大数据信息数据,数据挖掘、数据分析、学习等能力也比过去厉害太多,我相信机器运用在未来将会起到一个改变的作用。
同时也说明了这个缺口的需求,有投入就会有收获,机器的运用远不止此。

后言

因实验时传送的数据涉及个人隐私,故效果图展示略微修改但保证数据准确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值