回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

HuskyLens inside | 灵犬智能安防系统 简单

头像 怀若谷 2020.03.27 1081 1

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

功能描述

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

演示视频

步骤1 准备材料

project-image

材料清单

步骤2 硬件搭建

project-image

监控端:

MP3模块0、1

物联网模块 2、3

二哈识图A4、A5

小音箱MP3模块

接收端:

一块掌控板

步骤3 语音录制

project-image

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

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

步骤4 编写程序

project-image

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

project-image

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

步骤5 制作外型及组装

project-image

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

project-image
project-image

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

project-image
project-image

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

project-image

(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);
	}
}

评论

user-avatar
  • 且歌且行

    且歌且行2020.03.31

    学习了,手工、技术都超棒

    0