所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

HuskyLens inside | 灵犬智能安防系统

怀若谷 怀若谷 2020-03-27 17:11:47

        这是参加“遇见AI,实力派!——DF冬季AI挑战赛”第三轮的作品。利用DF提供的可离线运行的AI视觉传感器二哈识图制作的智能安防系统。 二哈识图功能丰富,本作品只用到了其中的一个——"人脸识别"功能。支持图形化编程调用,小朋友可轻松上手。想了解更多的朋友,可访问https://www.dfrobot.com.cn/goods-2050.html 。 

功能描述

        使用前,通过机器学习功能,对家中的主人的人脸特征进行学习并保存;当系统运行时,侦测到画面中出现人脸,则会进行识别判断并作出相应的处理:如果是任何一个主人,会发出“主人,您好,欢迎回家”的欢迎语,并且通过网络将信息传递给主人们随手携带的接收器;如果不是主人,则会发出语音警示“非法进入,请立即离开!非法进入,请立即离开!”,同时将信息发送到接收器;如果是主人带了客人回家,则不会触发报警程序,而是与主人回家相同。

演示视频

步骤1 步骤1
准备材料
projectImage
材料清单 材料清单
1x
Arduino Uno
1x
Uno扩展板
1x
掌控板
1x
二哈识图
1x
MP3模块
1x
小音箱
1x
物联网模块
步骤2 步骤2
硬件搭建
projectImage

监控端:

 MP3模块0、1 

 物联网模块 2、3 

 二哈识图A4、A5 

 小音箱MP3模块 

 接收端:

 一块掌控板

步骤3 步骤3
语音录制
projectImage

利用手机、录音笔等设备录制两个语音: "主人,您好!欢迎回家!" 、“非法进入,请立即离开!”

并将语音文件上传到Mp3模块。

步骤4 步骤4
编写程序
projectImage

(1)使用mind+软件,编写监控端程序并上传。

projectImage

(2)使用mind+软件,编写接收端程序并上传。

步骤5 步骤5
制作外型及组装
projectImage

(1)利用彩色雪糕棒制作盒体

projectImage
projectImage

(2)留出电源口及摄像头孔

projectImage
projectImage

(3)整理好线,放上一包纸巾

projectImage

(4)放在一个高度合适的位置

代码 代码
	                    					/*!
 * MindPlus
 * uno
 *
 */
#include <UNO_Obloq.h>
#include <SoftwareSerial.h>
#include <DFRobot_SerialMp3.h>
#include <DFRobot_HuskyLens.h>
// 静态常量
const String topics[5] = {"N_I6fFQZg","","","",""};
// 创建对象
UNO_Obloq         olq;
SoftwareSerial    softSerial(2, 3);
DFRobot_SerialMp3 serialMp3;
DFRobot_HuskyLens huskylens;


// 主程序开始
void setup() {
	softSerial.begin(9600);
  olq.startConnect(&softSerial, "yiyi", "15179015621", "4DSrnzDWR", "4vI9nkDWgz", topics, "iot.dfrobot.com.cn", 1883);
	serialMp3.begin(&Serial, 0, 1);
	serialMp3.volume(100);
	huskylens.beginI2CUntilSuccess();
	huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
}
void loop() {
	huskylens.request();
	if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
		if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
			olq.publish(olq.topic_0, "1");
			serialMp3.playList(1);
		}
		else {
			if (huskylens.isAppear(2,HUSKYLENSResultBlock)) {
				olq.publish(olq.topic_0, "2");
				serialMp3.playList(1);
			}
			else {
				if (huskylens.isAppear(3,HUSKYLENSResultBlock)) {
					olq.publish(olq.topic_0, "3");
					serialMp3.playList(1);
				}
				else {
					olq.publish(olq.topic_0, "FFJR");
					serialMp3.playList(2);
				}
			}
		}
	}
	delay(3000);
}

	                    				
代码 代码
	                    					/*!
 * MindPlus
 * mpython
 *
 */
#include <MPython.h>
#include <DFRobot_Iot.h>
// 函数声明
void obloqMqttEventT0(String& message);
// 静态常量
const String topics[5] = {"N_I6fFQZg","","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;


// 主程序开始
void setup() {
	mPython.begin();
	myIot.setMqttCallback(msgHandles);
	myIot.wifiConnect("name", "psaaword");
	while (!myIot.wifiStatus()) {yield();}
	myIot.init("iot.dfrobot.com.cn","4DSrnzDWR","","4vI9nkDWgz",topics,1883);
	myIot.connect();
	while (!myIot.connected()) {yield();}
	display.setCursorLine(1);
	display.printLine("灵犬安护系统正在运行");
}
void loop() {

}

// 事件回调函数
void obloqMqttEventT0(String& message) {
	if ((message=="1")) {
		buzz.play(JUMP_UP, Once);
		display.setCursorLine(2);
		display.printLine("主人1已回家");
	}
	if ((message=="2")) {
		buzz.play(JUMP_UP, Once);
		display.setCursorLine(3);
		display.printLine("主人2已回家");
	}
	if ((message=="3")) {
		buzz.play(JUMP_UP, Once);
		display.setCursorLine(4);
		display.printLine("主人3已回家");
	}
	if ((message=="FFJR")) {
		display.setCursorLine(1);
		display.printLine("有非法进入者");
		buzz.play(FUNK, Once);
	}
}

	                    				
Makelog作者原创文章,未经授权禁止转载。
4
1
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]