基于掌控板+二哈+TinyWebDB+Easy_IoT的人脸识别测温

2023-10-28 20:59

本文主要是介绍基于掌控板+二哈+TinyWebDB+Easy_IoT的人脸识别测温,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、部分硬件及平台介绍
    • 1、二哈识图(HuskyLens)
    • 2、TinyWebDB
    • 3、Easy IoT
  • 二、操作步骤
    • 1、二哈的使用
    • 2、TinyWebDB的使用
    • 3、Easy IoT的使用
  • 三、硬件连接
  • 四、图形化代码编写
    • 1、导入库
    • 2、连接WiFi
    • 3、连接MQTT
    • 4、配置TinyWebDB服务器
    • 5、人脸识别测温功能
    • 6、全部代码:
  • 五、总结


前言

在疫情期间,住在村里或者小区的大家在出入的时候是不是都要测温呢,那工作人员对每一位出入的人员都需要逐个测量温度,这样就会比较辛苦。这个时候如果安排上人脸识别测温,是不是既解决了判别是否外来人员,也解决了测温的问题。
本实验是通过掌控板 + 掌控板扩展板 + DS18B20 + 二哈识图 + TinyWebDB + EasyIoT + Mind+ 来实现人脸识别测量温度的。(为什么用DS18B20呢,因为手头上没有测温的模块,先凑合着用)话不多说,我们就开始这个实验吧。


一、部分硬件及平台介绍

1、二哈识图(HuskyLens)

先声明一下,这 “只” “二哈” 可不是会拆家的二哈啊,它是DFRobot的一款简单易学的人工智能视觉传感器,内置了:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签(二维码)识别,6种功能。今天我们就只用它的 “人脸识别” 这一功能。在这里插入图片描述

2、TinyWebDB

TinyWebDB服务器是网络存储中的网络微数据库,重点是,它是免费滴,我们这一次就用它来作为我们的数据库使用。
点击这里进入TinyWebDB

3、Easy IoT

EasyIoT是一个比较简单的物联网管理平台,简单易用,可快速上手项目。(简单介绍)
Easy IoT官网

二、操作步骤

1、二哈的使用

(1)使用须知
在使用 “二哈” 前,我们要确保 “二哈” 当前的固件版本不低于V0.5.1,因为在此版本后,“二哈” 才能发挥它的全部能力,那么就需要查看 “二哈” 的固件版本。“二哈” 的大致模块布局图在上方

(Ps:以下所有的左右方向均是面向 “二哈” 屏幕的方向)
“二哈” 默认是英文版本的,我们先将它设置为中文:

  1. 往右拨动 “功能键”, 直到选中“General Settings”,短按 “功能键”,进入二级菜单
  2. 往右拨动 “功能键”,直到选中 “Language”,再选中 “简体中文”,先不要急着退出

(2)查看固件

  1. 在语言的左侧就可以看到当前的固件版本,我们只需要保证固件版本在V0.5.1就可以

(3)升级固件(如果固件版本已经是V.0.5.1及以上,这部分可忽略)

  1. 下载HUSKYLENS Uploader V2.1软件(固件升级软件)→下载地址
  2. 下载固件。下载V0.5.1版本固件
  3. 运行 “HUSKYLENS Uploader V2.1”在这里插入图片描述
  4. 接下来就是漫长的等待,大概5分钟左右,在烧录过程中,不要关闭烧录界面cmd窗口,烧录完成后,下方的 Loading会消失,“二哈” 会重启。

(4)开启多人脸识别
在完成了固件的升级后,我们首先要让 “二哈” 认识我们,就是人脸学习的过程,但 “二哈” 默认的人脸识别模式是 “单人人脸识别”,我们要让 “二哈” 认识多几个人,就必须更改设置 “识别多个”:

  1. 在人脸识别功能界面,长按 “功能键”,进入人脸识别的二级菜单
  2. 拨动 “功能键” 至 “识别多个”,短按 “功能键” 选中,往右拨动 “功能键”,打开 “识别多个” 的开关,短按 “功能键” 保存
  3. 往左拨动 “功能键” 至 “保存并返回”,选中退出

(5)学习人脸

  1. 在人脸识别的功能界面,先短按 “学习键”,将已学习的人脸遗忘;
  2. 长按 “学习键” 学习各角度的人脸,学习完成后即可松开 “学习键”;
  3. 如需继续学习人脸,则必须在倒计时前短按 “学习键”,否则想要新增人脸的话,只能先遗忘,再重新学习;(这是一个比较麻烦的点
  4. 不需继续学习可以等待倒计时结束或者短按 “功能键” 提前结束倒计时。
    其余详细功能使用请访问DFRobot的文档

2、TinyWebDB的使用

TinyWebDB官网
在这里插入图片描述
Ps:share为共享账号,为了方便查看数据,最好自己注册一个账号
在 “数据浏览” 中可以对数据增加/修改(目前发现只能在代码中对数据进行删除处理)
在这里插入图片描述
通过填写 “标签”、“值” 来添加/修改数据库中的数据
在这里插入图片描述

3、Easy IoT的使用

Easy IoT官网

  1. 注册/登录后,在工作间中
  2. 添加新的设备,获取一个Topic(主题)在这里插入图片描述

三、硬件连接

1、连接扩展板

掌控板直接插进扩展板中,方向为“中文”对“中文”

2、二哈接线

4pin接口(I2C模式)

序号标注管脚功能用途掌控板扩展板
1TSDA(绿)串行数据线P20
2RSCL(蓝)串行时钟线P19
3-GND(黑)电源负极-
4+VCC(红)电源正极+

3、DS18B20

由于本实验我用的是P0口连接掌控板,所以需要将扩展板上P0口附近的喇叭开关给关掉,避免冲突

序号标注管脚功能用途掌控板扩展板
1outDATA数据线P0
2+VCC电源正极+
3-GND电源负极-

四、图形化代码编写

1、导入库

依次将以下的主控板、模块、服务加载到Mind+上使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、连接WiFi

在这里插入图片描述

3、连接MQTT

在这里插入图片描述
在上图的 “MQTT初始化参数”中填入相对应的内容,即可配置MQTT
在这里插入图片描述

4、配置TinyWebDB服务器

在这里插入图片描述

在这里插入图片描述

5、人脸识别测温功能

在这里插入图片描述

6、全部代码:

(1)图形化代码
在这里插入图片描述
(2)Arduino C代码

/*!* MindPlus* mpython**/
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <DFRobot_DS18B20.h>
#include <DFRobot_HuskyLens.h>
#include <mPython_tinywebdb.h>// 动态变量
String         mind_s_name;
volatile float mind_n_Temp, mind_n_ShangYiCiShiBieJieGuo;
// 函数声明
void DF_RenLianShiBieCeWen();
void DF_LianJieWiFI();
void DF_LianJieMQTT();
// 静态常量
const String topics[5] = {"yourTopic","","","",""};	//这里是EasyIoT的Topic,更换为自己的即可
// 创建对象
DFRobot_HuskyLens huskylens;
DFRobot_DS18B20   ds18b20_P0;
DFRobot_Iot       myIot;
mPython_TinyWebDB mydb;// 主程序开始
void setup() {mPython.begin();ds18b20_P0.begin(P0);DF_LianJieWiFI();delay(500);DF_LianJieMQTT();mydb.setServerParameter("http://tinywebdb.appinventor.space/api", "yourUser","yourSecret");	//将用户名和密钥替换为自己的huskylens.beginI2CUntilSuccess();huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);display.fillScreen(0);display.setCursorLine(1);display.printLine("请面向摄像头进行识别");
}
void loop() {huskylens.request();if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {if (huskylens.isLearned(huskylens.readBlockCenterParameterDirect().ID)) {DF_RenLianShiBieCeWen();myIot.publish(topic_0, (String(mind_s_name) + String((String(" 体温:") + String((String(mind_n_Temp) + String("℃")))))));mind_n_ShangYiCiShiBieJieGuo = 1;}else {if ((mind_n_ShangYiCiShiBieJieGuo==1)) {display.fillScreen(0);display.setCursorLine(1);display.printLine("非本社区人员,请登记");mind_n_ShangYiCiShiBieJieGuo = 0;}}}
}// 自定义函数
void DF_RenLianShiBieCeWen() {mind_s_name = mydb.getTag((String(huskylens.readBlockCenterParameterDirect().ID)));display.fillInLine(1, 0);display.setCursorLine(1);display.printLine(mind_s_name);display.setCursorLine(2);display.printLine("请保持面向摄像头");display.fillInLine(3, 0);display.setCursorLine(3);display.printLine("3s后开始测温");delay(1000);display.setCursorLine(3);display.printLine("2s后开始测温");delay(1000);display.setCursorLine(3);display.printLine("1s后开始测温");delay(1000);display.fillInLine(3, 0);display.setCursorLine(3);display.printLine("开始测温");display.fillInLine(4, 0);mind_n_Temp = ds18b20_P0.getTempC();display.setCursorLine(4);display.printLine((String(mind_n_Temp) + String("℃")));
}
void DF_LianJieWiFI() {myIot.wifiConnect("yourSSID", "yourPASSWD");	//将WiFi替换为自己的display.setCursorLine(1);display.printLine("WiFi连接ing");while (!myIot.wifiStatus()) {yield();}display.setCursorLine(1);display.printLine("WiFi连接成功");display.setCursorLine(2);display.printLine(myIot.getWiFiLocalIP());
}
void DF_LianJieMQTT() {myIot.init("iot.dfrobot.com.cn","yourIot_id","","yourIot_pwd",topics,1883);		//将用户名、用户密码替换为自己的myIot.connect();display.setCursorLine(3);display.printLine("MQTT连接ing");while (!myIot.connected()) {yield();}display.fillInLine(3, 0);display.setCursorLine(3);display.printLine("MQTT连接成功");
}

(3)代码链接:
图形化代码
Arduino C代码

五、总结

这个实验不是很难,只要一步步来做,很快就能完成。
讲的不是很好,欢迎大家前来探讨交流,如果发现有问题,还请大家多多提出来,一起学习。
Ps:如果各位看官有钱,可用MLX90614红外测温模块等专业模块替代DS18B20或LM35,毕竟DS18B20只是替代品

本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明。

这篇关于基于掌控板+二哈+TinyWebDB+Easy_IoT的人脸识别测温的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/295912

相关文章

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的身份识别。对于考勤系统而言,CNN可以自动从摄像头捕捉的视频流中检测并识别出员工的面部。 我们在该项目中采用了 RetinaFace 模型,它基于CNN的结构实现高效、精准的

LibSVM学习(六)——easy.py和grid.py的使用

我们在“LibSVM学习(一)”中,讲到libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。其实,网上也有相应的说明,但很不系统,下面结合本人的经验,对使用方法做个说明。        这两个文件都要用python(可以在http://www.python.org上下载到,需要安装)和绘图工具gnup

11991 - Easy Problem from Rujia Liu?

题意: 输入一串整型数列,再输入两个数k,v,输出第k个v的序号。不存在则输出0,如第一个样例 8 41 3 2 2 4 3 2 11 3 //第1个3,序号为2,输出22 4 //第2个4,不存在,输出03 2 //第3个2,序号为7,输出74 2 思路: struct num {

基于STM32设计的水闸水文测控系统(华为云IOT)(220)

文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成 1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路 1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要 【5】项目背景1.4 开发工具的选择【1】设备端开发【2】上位机开发 1.5 系统框架图1.6 系统功能总结1.7 设备原理图1.8 硬件实物图 二、硬件

【开发工具】开发过程中,怎么通过Easy JavaDoc快速生成注释。

文章目录 引言什么是Easy JavaDoc?Easy JavaDoc用来干什么?如何使用Easy JavaDoc?安装Easy JavaDoc配置Easy JavaDoc使用Easy JavaDoc生成注释 Easy JavaDoc与IDEA自带注释的区别IDEA自带注释Easy JavaDoc Easy JavaDoc的优缺点优点缺点 步骤 1:打开设置步骤 2:找到Easy JavaD

基于单片机的热成像测温显示系统设计

本设计基于单片机的热成像测温显示系统,本系统包括STM32F103C6T6微控制器、MLX90640红外温度传感器、TFT-LCD显示屏、AT24C02存储模块、报警模块、按键模块和MP3语音播报模块。其可以通过热成像传感器对被检测物体的温度进行非接触式测量,并能够将被测信息显示在LCD显示屏上;采集得到的温度值通过与预先设定的报警阈值进行比对,利用语音模块和LED灯实现了超阈值报警功能

Python 人脸识别实战教程

引言 在本教程中,我们将深入探讨如何使用Python和OpenCV库来实现人脸检测与识别。本文从基础知识入手,逐步构建一个简单的人脸识别系统。本教程假设读者已经熟悉Python编程,并具备一定的OpenCV使用经验。 环境配置 安装必要的库 确保您的开发环境中已安装了Python和OpenCV。可以通过以下命令安装OpenCV: pip install opencv-python

Docker核心原理解读:深度剖析Docker Daemon,掌控容器背后的引擎

容器技术已经成为现代应用程序开发和部署中的核心工具,而在Docker生态系统中,Docker Daemon 扮演着至关重要的角色。它不仅是Docker架构的核心,还负责容器的管理、镜像的操作、资源的分配等复杂任务。本文将深入解读Docker Daemon的工作原理,探讨它在Docker系统中如何高效运行,以及它如何与其他组件协同工作。 一、Docker架构回顾 在深入了解Docker Daem

人脸识别开源项目之-face_recognition

特性 从图片里找到人脸 定位图片中的所有人脸: import face_recognitionimage = face_recognition.load_image_file("your_file.jpg")face_locations = face_recognition.face_locations(image) 识别人脸关键点 识别人脸关键点,包括眼睛、鼻子、嘴和下巴。

easy简化封装

//confirm function Confirm(msg, control) {$.messager.confirm('确认', msg, function (r) {if (r) {eval(control.toString().slice(11));}});return false;}//loadfunction Load() {$("<div class=\"datagrid-ma