2020年春天,中国经历了一场大灾难,新型冠状病毒肆虐。全国人民众志成城抗击疫情,现在已取得了阶段性的胜利。虽然现在已是春暖花开,回归校园的日子指日可待,但是我们不能掉以轻心,要做好防控。我设计制作了这个“非接触式智能识别测温仪”原型,希望他能保护我的老师、我的同学,期待早日重返校园。
1、项目问题:通过二哈识别学生、红外测温测量温度,识别后显示学号及体温,并进行语音播报,并上传至物联网对数据进行收集整理。
2.解决方案:通过二哈的人脸识别区分学生,红外测温,语音播报,上传物联网。
3.项目重点:二哈端设置、红外测温及物联网的上传。
4.项目难点:程序编写。
步骤1 原型设计
步骤2 结构设计
步骤3 代码调试
步骤4 部件组装
步骤5 功能调试
代码
/*!
* MindPlus
* mpython
*
*/
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <DFRobot_MLX90614.h>
#include <DFRobot_SerialMp3.h>
#include <DFRobot_HuskyLens.h>
// 静态常量
const String topics[5] = {"wnfwV9BZR","stpWwvuWg","YuCVQDuZg","",""};
// 创建对象
DFRobot_SerialMp3 serialMp3;
DFRobot_HuskyLens huskylens;
DFRobot_Iot myIot;
DFRobot_MLX90614 mlx90614;
// 主程序开始
void setup() {
mPython.begin();
buzz.play(NYAN, Once);
display.setCursor(25, 22);
display.print("众志成城 抗击疫情");
delay(2000);
serialMp3.begin(&Serial1, P0, P1);
// 哈士奇初始化
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
// WIFI连接
myIot.wifiConnect("@PHICOMM5003", "588100niko");
while (!myIot.wifiStatus()) {yield();}
display.setCursorLine(1);
display.printLine("wifi已连接");
delay(2000);
display.fillScreen(0);
myIot.init("iot.dfrobot.com.cn","INAQV9fWR","","SH0wV9fZRz",topics,1883);
// MQTT
myIot.connect();
while (!myIot.connected()) {yield();}
display.setCursorLine(1);
display.printLine("MQTT已连接");
delay(2000);
display.fillScreen(0);
delay(1000);
serialMp3.playList(4);
delay(1000);
}
void loop() {
huskylens.request();
if (huskylens.isLearned(1)) {
if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
display.setCursorLine(2);
display.printLine((String((String("ID 1:") + String(mlx90614.getObjectTempC()))) + String("℃")));
delay(1000);
myIot.publish(topic_0, (String(mlx90614.getObjectTempC()) + String("℃")));
delay(5000);
if ((mlx90614.getObjectTempC()>37.3)) {
serialMp3.playList(1);
}
else {
serialMp3.playList(5);
}
display.fillScreen(0);
}
}
if (huskylens.isLearned(2)) {
if (huskylens.isAppear(2,HUSKYLENSResultBlock)) {
display.setCursorLine(2);
display.printLine((String((String("ID 2:") + String(mlx90614.getObjectTempC()))) + String("℃")));
delay(1000);
myIot.publish(topic_1, (String(mlx90614.getObjectTempC()) + String("℃")));
delay(5000);
if ((mlx90614.getObjectTempC()>37.3)) {
serialMp3.playList(2);
}
else {
serialMp3.playList(5);
}
display.fillScreen(0);
}
}
if (huskylens.isLearned(3)) {
if (huskylens.isAppear(3,HUSKYLENSResultBlock)) {
display.setCursorLine(2);
display.printLine((String((String("ID 3:") + String(mlx90614.getObjectTempC()))) + String("℃")));
delay(1000);
myIot.publish(topic_2, (String(mlx90614.getObjectTempC()) + String("℃")));
delay(5000);
if ((mlx90614.getObjectTempC()>37.3)) {
serialMp3.playList(3);
}
else {
serialMp3.playList(5);
}
display.fillScreen(0);
}
}
}
DFBJMFvtzEI2020.04.01
可以加一个好友,探讨一下吗?
gray66662020.03.29
可以升级设计个切割板的。