游客您好
第三方账号登陆
  • 点击联系客服

    在线时间:8:00-16:00

    客服电话

    17712677918

    电子邮件

    857020071@qq.com
  • 扫描二维码

    关注微信公众号

推荐阅读
vguangxian01 版主
未知星球 | 未知职业
  • 关注0
  • 粉丝0
  • 帖子46
热议话题
Node.js 简介
2021-08-28 0
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目
精选帖子

物联网 掌控版 二哈 实验三 人工智能实验

[复制链接]
vguangxian01 发表于 2020-11-7 10:26:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、实验目的及要求
【一】实现人脸识别
【二】实现云数据库应用
【三】实现测温数据mqtt上传至物联网云平台


二、实验原理与内容
基于二哈实现多人人脸学习和识别
基于TinywebDB实现云数据库应用
基于EasyIoT实现mqtt数据上传。


三、实验软硬件环境
硬件:掌控板
软件:Mind+


四、实验过程
1. 基于TinywebDB实现云数据库应用
TinyWebDB服务器是网络存储中的网络微数据库
网址:http://tinywebdb.appinventor.space/

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
ps :为了方便使用,自己注册一个用户最好。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
进入TinyWebDB服务器查询页面,注意API地址、用户名、密钥;点击数据浏览。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg

输入“标签”和“值”,点击“添加/修改”,即可添加或更新数据库中的数据。

2. 基于二哈实现多人人脸学习和识别
(1)二哈使用须知
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
                  接口与接口说明
                  


首先确保 “二哈” 当前的固件版本不低于V0.5.1:
往右拨动 “功能键”, 直到选中“General Settings”,短按 “功能键”,进入二级菜单;
往右拨动 “功能键”,直到选中 “Language”,再选中 “简体中文”,“语言”左侧就可以看到当前固件版本。
若版本低于V0.5.1,则需要进行固件升级



(2)开启多人脸识别

二哈默认的人脸识别模式是 “单人人脸识别”,需要更改设置为 “识别多个”:

在人脸识别功能界面,长按 “功能键”,进入人脸识别的二级菜单
拨动 “功能键” 至 “识别多个”,短按 “功能键” 选中,往右拨动 “功能键”,打开 “识别多个” 的开关(右拨),短按 “功能键” 保存,往左拨动 “功能键” 至 “保存并返回”,选择“确认”。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
(3)学习人脸

在人脸识别的功能界面,先短按 “学习键”,再短按一次确认遗忘;
长按 “学习键” 学习各角度的人脸,学习完成后松开 “学习键”;
在倒计时结束前短按 “学习键”,再次学习新增人脸,否则只能先重新遗忘,再学习;
不需继续学习可以等待倒计时结束或者短按 “功能键” 提前结束倒计时。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
更多其他内容可直接访问二哈的使用文档

3. 基于EasyIoT实现mqtt数据上传
(1)登录网址:https://iot.dfrobot.com.cn/index.html
(2)选择用户登录或注册。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
(3)注册登录后进入工作间,点击“添加新设备”,添加两台设备;
  可以修改设备名称,每台设备可以存储1000条信息;
  点击左边侧的小眼睛可以查看用户名称和用户密码。
  watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
关于EasyIoT实现mqtt数据上传的相关操作及实验可以查看:
物联网 掌控版 实验一 Easy IoT实现mqtt实验



4.代码实现
(1)依次将以下的主控板、模块、服务加载到Mind+上使用:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
(2)编写连接WiFi部分:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
(3)编写连接MQTT部分:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
这里的参数配置使用第三步注册好的用户和设备号,注意不要出错。

(4)编写配置TinyWebDB服务器部分:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
这里的API地址、用户名、密钥请填写自己查询到信息。

(5)图形化代码实现:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
(6)Arduino C代码

/*! * MindPlus * mpython * */#include <MPython.h>#include <DFRobot_Iot.h>#include <mPython_tinywebdb.h>#include <DFRobot_HuskyLens.h>// 动态变量String mind_s_name;// 静态常量const String topics[5] = {"Cz4TcmFMR","QASTciFMR","","",""};// 创建对象DFRobot_Iot       myIot;mPython_TinyWebDB mydb;DFRobot_HuskyLens huskylens;// 主程序开始void setup() {        mPython.begin();        myIot.wifiConnect("xxx", "xxxxxxxx");        while (!myIot.wifiStatus()) {yield();}        display.setCursorLine(1);        display.printLine("WiFi连接成功");        display.setCursorLine(2);        display.printLine(myIot.getWiFiLocalIP());        myIot.init("iot.dfrobot.com.cn","zJOhciFGR","","kJdhciFGgz",topics,1883);        myIot.connect();        while (!myIot.connected()) {yield();}        display.setCursorLine(3);        display.printLine("MQTT连接成功");        mydb.setServerParameter("http://tinywebdb.appinventor.space/api", "fisher","7c2b7d65");        huskylens.beginI2CUntilSuccess();        huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);        delay(3000);        display.fillScreen(0);        display.setCursorLine(1);        display.printLine("开始识别人脸");}void loop() {        huskylens.request();        if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {                if (huskylens.isLearned(huskylens.readBlockCenterParameterDirect().ID)) {                        display.setCursorLine(2);                        display.printLine("请保持面向摄像头");                        mind_s_name = mydb.getTag((String(huskylens.readBlockCenterParameterDirect().ID)));                        display.setCursorLine(3);                        display.printLine(mind_s_name);                        myIot.publish(topic_0, mind_s_name);                        delay(1000);                        display.setCursorLine(4);                        display.printLine("人脸录入");                }                else {                        display.setCursorLine(4);                        display.printLine("人脸未录入");                }        }}
5.实验效果图:
(1)MQTT后台信息查看
20201105210042173.jpg
(2)实际效果:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
               wifi、mqtt连接成功
               
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzcyMjk2Ng==,size_16,color_FFFFFF,t_70#pic_center.jpg

五、实验总结
1.编写代码时需要以工程师的角度去思考,当一个人使用这个功能的时候,看到的是什么,能使用的功能有什么,比如用户首先看到屏幕的时候,上面不能是全黑的,理应有一些选项提供给用户选择,或者指示让用户去执行。
2.程序运行应该是在循环内的,不然只会执行一次。
3.代码链接:图形化代码




上一篇:AI+药物研发市场发展现状及趋势探讨
下一篇:程序员为什么都喜欢阿里P7
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明
icitu.com 信息谷-icit软硬件产品营销与行业智慧化解决方案实施供需对接空间,信息人家园-信息人之间互助互惠互利的资源整合空间,icit人团结起来帮助人们沟通与建设,icit unite to help people communicating&constructing。
0512-68181818
关注我们
  • 访问移动手机版
  • 官方微信公众号

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc. 优康设计 ( 苏ICP备10066271号-2 )|网站地图