5836浏览
查看: 5836|回复: 10

[项目分享] 【智控万物】智能门禁——AI三剑客

[复制链接]
【三剑客】
我知道的“三剑客”
1、《三剑客》、《侠隐记》,是法国19世纪浪漫主义作家大仲马的代表作之一。故事主角为达达尼昂,三剑客分别是阿多斯,波尔多斯,和阿拉密斯。
【智控万物】智能门禁——AI三剑客图6

2、荷兰三剑客,是指二十世纪八十年代至九十年代活跃在世界足坛的三名荷兰男子足球运动员,分别是指司职中锋的马尔科·范巴斯滕、司职攻击中场的路德·古利特、司职后腰的弗兰克·里杰卡尔德。
【智控万物】智能门禁——AI三剑客图5

3、网页制作三剑客
网页三剑客,是一套强大的网页编辑工具,最初是由美国的Macromedia公司开发出来的。由Dreamweaver,Fireworks,Flash三个软件组成,俗称网页三剑客。
【智控万物】智能门禁——AI三剑客图7

这三个软件陪伴了我好多年!
【人工智能三剑客】
步入正题,本项目使用Df的AI人工智能"三剑客"组合(图像识别|语音识别|语音合成) ,制作一个智能门禁。
【智控万物】智能门禁——AI三剑客图8

二哈识图(HuskyLens)是一款简单易用的人工智能视觉传感器,内置6种功能:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签识别。仅需一个按键即可完成AI训练,摆脱繁琐的训练和复杂的视觉算法,让你更加专注于项目的构思和实现。
语音识别模块让声音为您的项目增添一抹特色!连接上语音识别模块,再添加几行简单的代码,您的项目就可以听懂您说的话。无需机器学习,无需特定人语音,无需联网,随时随地都可以进行语音识别,结合语音合成模块还可以实现语音对话。使用Gravity I2C接口通信,兼容绝大部分主控,非常适合接入教育场景使用。三种语音识别模式和三种语音输入方式使模块可以集成入更多的场景。
语音合成模块让声音为你的项目增添一抹特色!连接上语音合成模块,再添加几行简单的代码就可以让您的项目开口说话。无论是中文还是英文对于语音合成模块来说都是”so easy”,播报当前时间,播报环境数据统统不在话下,与语音识别模块结合还可实现语音对话!该模块采用I2C和UART两种通讯方式,Gravity接口,兼容绝大部分主控。模块上已经自带了一个喇叭,所以您无需再额外的添加喇叭。

【智控万物】智能门禁——AI三剑客图1
【智控万物】智能门禁——AI三剑客图3


【其它主要硬件】
1、非接触式红外温度传感器,用来测量进入人员的体温。
【智控万物】智能门禁——AI三剑客图9

2、URM09-模拟量超声波测距传感器,用来保证手腕已接近温度传感器。
【智控万物】智能门禁——AI三剑客图10

3、5V电磁铁,用于门闭合时,吸住,不被强行打开。
【智控万物】智能门禁——AI三剑客图11



【硬件连接】

【智控万物】智能门禁——AI三剑客图2


【实物模型】
【智控万物】智能门禁——AI三剑客图13

正面


【智控万物】智能门禁——AI三剑客图4

内部


【Mind+程序代码】
当住户说出“开门”,二哈开始人脸识别(住户人脸信息提前录入,方法见二哈手册),无误后提醒住户将手腕放到测温位置,当体温正常时,语音提示并开门。
【智控万物】智能门禁——AI三剑客图12

Arduino C代码
  1. /*!
  2. * MindPlus
  3. * uno
  4. *
  5. */
  6. #include <UNO_Obloq.h>
  7. #include <DFRobot_ASR_M.h>
  8. #include <DFRobot_Servo.h>
  9. #include <DFRobot_MLX90614.h>
  10. #include <DFRobot_HuskyLens.h>
  11. #include <DFRobot_Ultrasonic.h>
  12. #include <DFRobot_SpeechSynthesis_M.h>
  13. // 动态变量
  14. volatile float mind_n_WenDu;
  15. // 静态常量
  16. const String topics[5] = {"5n92uqBMg","","","",""};
  17. // 创建对象
  18. DFRobot_HuskyLens           huskylens;
  19. UNO_Obloq                   olq;
  20. DFRobot_ASR                 asr;
  21. DFRobot_SpeechSynthesis_I2C sstts;
  22. Servo                       servo_A1;
  23. DFRobot_Ultrasonic          ultraA0;
  24. DFRobot_MLX90614            mlx90614;
  25. // 主程序开始
  26. void setup() {
  27.         servo_A1.attach(A1);
  28.         ultraA0.begin(A0);
  29.         huskylens.beginI2CUntilSuccess();
  30.         huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
  31.         olq.startConnect(0, 1, "sxs", "smj080823", "RNZYsQIWg", "gHWLswIWgz", topics, "iot.dfrobot.com.cn", 1883);
  32.         asr.begin(LOOP, MIC);
  33.         asr.addCommand("kai men", 1);
  34.         asr.start();
  35.         sstts.begin();
  36.         servo_A1.angle(abs(134));
  37.         digitalWrite(5, HIGH);
  38.         sstts.speak("初始化完成");
  39.         delay(3000);
  40. }
  41. void loop() {
  42.         if ((asr.read()==1)) {
  43.                 huskylens.request();
  44.                 if (huskylens.isLearned(1)) {
  45.                         if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
  46.                                 sstts.speak("请将手腕放置测温处");
  47.                                 delay(3000);
  48.                                 while (!(ultraA0.getDistanceCm()<10)) {}
  49.                                 mind_n_WenDu = mlx90614.getObjectTempC();
  50.                                 huskylens.writeOSD(String((String(mind_n_WenDu))), 230, 35);
  51.                                 if (((mind_n_WenDu>34) && (mind_n_WenDu<37))) {
  52.                                         huskylens.writeOSD(String("OK"), 230, 60);
  53.                                         sstts.speak("体温正常,准许进入");
  54.                                         digitalWrite(5, LOW);
  55.                                         servo_A1.angle(abs(50));
  56.                                         delay(10000);
  57.                                         sstts.speak("请注意门马上关闭");
  58.                                         servo_A1.angle(abs(134));
  59.                                         digitalWrite(5, HIGH);
  60.                                 }
  61.                                 else {
  62.                                         huskylens.writeOSD(String("NO"), 230, 60);
  63.                                         sstts.speak("体温异常,禁止进入");
  64.                                 }
  65.                         }
  66.                 }
  67.         }
  68. }
复制代码

【演示视频】


电磁铁演示

智能门禁演示


一只小学生  中级技师

发表于 2021-8-10 14:26:02

二哈...的...显示屏...还能...用吗?
回复

使用道具 举报

云天  初级技神
 楼主|

发表于 2021-8-10 15:01:37

一只小学生 发表于 2021-8-10 14:26
二哈...的...显示屏...还能...用吗?

之前就见过有人拆开过,我这次也试一下,四周有胶,中间有一小条。小心一点,慢点。别伤到里面的元件(不多),和数据排线就行。
回复

使用道具 举报

常州-杨华  初级技师

发表于 2021-10-21 10:00:55

这个案例物联网模块用到了没有?需要写上位机进行数据采集吗?
回复

使用道具 举报

 初级技匠

发表于 2022-6-7 12:37:34

这个牛逼,我这边实验中学也有类似的
回复

使用道具 举报

 初级技匠

发表于 2022-6-7 12:42:53

“请注意门,马上关闭”后面可以加一点延迟
回复

使用道具 举报

 初级技匠

发表于 2022-6-7 16:27:07

跟我玩大仲马的作品 哈,我也会!
TueJune-202206074360..png
回复

使用道具 举报

风悠扬0539  初级技匠

发表于 2022-6-17 08:22:14

真好,准备克隆一个
回复

使用道具 举报

zhouzhuofeng  初级技匠

发表于 2022-8-2 06:34:26

谢谢楼主,介绍的很详细
回复

使用道具 举报

熊熊123  学徒

发表于 2023-11-7 12:45:53

棒棒哒,如果要把数据记录到数据库怎么弄呢
回复

使用道具 举报

JOVI  高级技师 来自手机

发表于 2023-11-29 04:15:36

学习
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail