【三剑客】
我知道的“三剑客”
1、《三剑客》、《侠隐记》,是法国19世纪浪漫主义作家大仲马的代表作之一。故事主角为达达尼昂,三剑客分别是阿多斯,波尔多斯,和阿拉密斯。
2、荷兰三剑客,是指二十世纪八十年代至九十年代活跃在世界足坛的三名荷兰男子足球运动员,分别是指司职中锋的马尔科·范巴斯滕、司职攻击中场的路德·古利特、司职后腰的弗兰克·里杰卡尔德。
3、网页制作三剑客
网页三剑客,是一套强大的网页编辑工具,最初是由美国的Macromedia公司开发出来的。由Dreamweaver,Fireworks,Flash三个软件组成,俗称网页三剑客。
这三个软件陪伴了我好多年!
【人工智能三剑客】
步入正题,本项目使用Df的AI人工智能"三剑客"组合(图像识别|语音识别|语音合成) ,制作一个智能门禁。
二哈识图(HuskyLens)是一款简单易用的人工智能视觉传感器,内置6种功能:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签识别。仅需一个按键即可完成AI训练,摆脱繁琐的训练和复杂的视觉算法,让你更加专注于项目的构思和实现。
语音识别模块让声音为您的项目增添一抹特色!连接上语音识别模块,再添加几行简单的代码,您的项目就可以听懂您说的话。无需机器学习,无需特定人语音,无需联网,随时随地都可以进行语音识别,结合语音合成模块还可以实现语音对话。使用Gravity I2C接口通信,兼容绝大部分主控,非常适合接入教育场景使用。三种语音识别模式和三种语音输入方式使模块可以集成入更多的场景。
语音合成模块让声音为你的项目增添一抹特色!连接上语音合成模块,再添加几行简单的代码就可以让您的项目开口说话。无论是中文还是英文对于语音合成模块来说都是”so easy”,播报当前时间,播报环境数据统统不在话下,与语音识别模块结合还可实现语音对话!该模块采用I2C和UART两种通讯方式,Gravity接口,兼容绝大部分主控。模块上已经自带了一个喇叭,所以您无需再额外的添加喇叭。
【其它主要硬件】
1、非接触式红外温度传感器,用来测量进入人员的体温。
2、URM09-模拟量超声波测距传感器,用来保证手腕已接近温度传感器。
3、5V电磁铁,用于门闭合时,吸住,不被强行打开。
【硬件连接】
【实物模型】
正面
内部
【Mind+程序代码】
当住户说出“开门”,二哈开始人脸识别(住户人脸信息提前录入,方法见二哈手册),无误后提醒住户将手腕放到测温位置,当体温正常时,语音提示并开门。
Arduino C代码
-
- /*!
- * MindPlus
- * uno
- *
- */
- #include <UNO_Obloq.h>
- #include <DFRobot_ASR_M.h>
- #include <DFRobot_Servo.h>
- #include <DFRobot_MLX90614.h>
- #include <DFRobot_HuskyLens.h>
- #include <DFRobot_Ultrasonic.h>
- #include <DFRobot_SpeechSynthesis_M.h>
-
- // 动态变量
- volatile float mind_n_WenDu;
- // 静态常量
- const String topics[5] = {"5n92uqBMg","","","",""};
- // 创建对象
- DFRobot_HuskyLens huskylens;
- UNO_Obloq olq;
- DFRobot_ASR asr;
- DFRobot_SpeechSynthesis_I2C sstts;
- Servo servo_A1;
- DFRobot_Ultrasonic ultraA0;
- DFRobot_MLX90614 mlx90614;
-
-
- // 主程序开始
- void setup() {
- servo_A1.attach(A1);
- ultraA0.begin(A0);
- huskylens.beginI2CUntilSuccess();
- huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
- olq.startConnect(0, 1, "sxs", "smj080823", "RNZYsQIWg", "gHWLswIWgz", topics, "iot.dfrobot.com.cn", 1883);
- asr.begin(LOOP, MIC);
- asr.addCommand("kai men", 1);
- asr.start();
- sstts.begin();
- servo_A1.angle(abs(134));
- digitalWrite(5, HIGH);
- sstts.speak("初始化完成");
- delay(3000);
- }
- void loop() {
- if ((asr.read()==1)) {
- huskylens.request();
- if (huskylens.isLearned(1)) {
- if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
- sstts.speak("请将手腕放置测温处");
- delay(3000);
- while (!(ultraA0.getDistanceCm()<10)) {}
- mind_n_WenDu = mlx90614.getObjectTempC();
- huskylens.writeOSD(String((String(mind_n_WenDu))), 230, 35);
- if (((mind_n_WenDu>34) && (mind_n_WenDu<37))) {
- huskylens.writeOSD(String("OK"), 230, 60);
- sstts.speak("体温正常,准许进入");
- digitalWrite(5, LOW);
- servo_A1.angle(abs(50));
- delay(10000);
- sstts.speak("请注意门马上关闭");
- servo_A1.angle(abs(134));
- digitalWrite(5, HIGH);
- }
- else {
- huskylens.writeOSD(String("NO"), 230, 60);
- sstts.speak("体温异常,禁止进入");
- }
- }
- }
- }
- }
-
复制代码
【演示视频】
电磁铁演示
智能门禁演示
|