岭南师范——实验三人工智能实验

人工智能实验

目的及要求
实验原理与内容
实验软硬件环境
实验过程(实验步骤、记录、数据、分析)
1、MQTT服务器配置
2、搭建微型数据库(TinywebDB)
3、配置哈士奇
总代码图
Gitee源码仓库
成品演示


一、目的及要求

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

三、实验软硬件环境

硬件:掌控板
软件:Mind+

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

1、MQTT服务器配置

左边的id以及密码是掌控板配置用的,topic0—用来收掌控板发来的消息在这里插入图片描述
连接WIFI,把Easy IoT的三个参数填入MIND+中的MQTT初始化参数的红框中即可实现连接MQTT。
在这里插入图片描述

2、搭建微型数据库(TinywebDB)

(1)注册一个账号,进行登录
(2)登陆后会进入如下页面,留意:

  • API地址
  • 用户名
  • 密钥
    在这里插入图片描述
    (3)选择数据浏览设计一个简单的数据库,录入信息
    在这里插入图片描述
    (4)在mind+中连接数据库,方框中填入第二步中对应的三个参数
    在这里插入图片描述

3、配置哈士奇

  1. 哈士奇初始化
    在这里插入图片描述
  2. 哈士奇保存的人脸在这里插入图片描述
  3. 哈士奇未保存的人脸在这里插入图片描述
    总代码图在这里插入图片描述

Gitee源码仓库

Gitee源码仓库:https://gitee.com/liu-zhiweiii/code-display/blob/master/%E5%AE%9E%E9%AA%8C%E4%B8%89.sb3
代码如下(示例):

/*!
 * MindPlus
 * mpython
 *
 */
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <DFRobot_DS18B20.h>
#include <mPython_tinywebdb.h>
#include <DFRobot_HuskyLens.h>

// 动态变量
String mind_s_XingMing;
// 静态常量
const String topics[5] = {"JBXT5iKGR","","","",""};
// 创建对象
DFRobot_Iot       myIot;
mPython_TinyWebDB mydb;
DFRobot_HuskyLens huskylens;
DFRobot_DS18B20   ds18b20_P8;


// 主程序开始
void setup() {
 mPython.begin();
 ds18b20_P8.begin(P8);
 myIot.wifiConnect("HONOR V30", "41250529");
 while (!myIot.wifiStatus()) {yield();}
 display.setCursorLine(1);
 display.printLine("WIFI连接成功");
 myIot.init("iot.dfrobot.com.cn","BkJeLh2Gg","","fk16YhhMgz",topics,1883);
 myIot.connect();
 while (!myIot.connected()) {yield();}
 display.setCursorLine(1);
 display.printLine("MQTT连接成功");
 mydb.setServerParameter("http://tinywebdb.appinventor.space/api", "liuzhiwei","a46a5f05");
 huskylens.beginI2CUntilSuccess();
 huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
 huskylens.writeName(String("2018764329"), 1);
 huskylens.writeName(String("2018764344"), 2);
}
void loop() {
 huskylens.request();
 if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
  if (huskylens.isLearned(huskylens.readBlockCenterParameterDirect().ID)) {
   display.setCursorLine(1);
   display.printLine("请保持面向摄像头");
   display.setCursorLine(2);
   display.printLine((String("当前室内温度为") + String(ds18b20_P8.getTempC())));
   mind_s_XingMing = mydb.getTag((String(huskylens.readBlockCenterParameterDirect().ID)));
   display.setCursorLine(3);
   display.printLine(mind_s_XingMing);
   myIot.publish(topic_0, mind_s_XingMing);
   delay(1000);
  }
 }
 display.setCursorLine(3);
 display.printLine("未录入人脸");
 delay(1000);
}

成品演示

在这里插入图片描述

MQTT服务器接收消息如下图所示

在这里插入图片描述


版权声明:本文为weixin_44521903原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。