4682浏览
查看: 4682|回复: 1

[2019参赛作品] 【脑洞大赛】智能报警路灯

[复制链接]
本帖最后由 云天 于 2019-8-11 07:14 编辑



【设计背景】
     当在公园、郊区等偏僻区域或黑夜无人情景,发生突发事件,手机等通讯设备被抢、丢失或未携带等,需报警求救。在这种孤立无援情况下,我们急需报警求救设施。
     根据以上需求,相关部分可在以上这种环境下设置智能报警路灯。


【设计思路】


    1、路灯配置智能终端(手机),利用人脸识别技术,采集人脸信息,后台记录(减少谎报),采集成功后,开启报警页面。
    2、利用超声波检测到报警人,点亮路灯,并利用路灯发出求救信号,扩大求救范围。


【设计草图】


【脑洞大赛】智能报警路灯图4

设计草图
【演示视频】

后台显示报警人

【材料准备】

    首先根据设计思路,准备好制作智能报警路灯所需的材料,清单和说明如下表和下图所示。


【脑洞大赛】智能报警路灯图3

【脑洞大赛】智能报警路灯图1

【电路设计】

    为了方便编写程序,先设计智能报警路灯的电路连接关系,电路原理图如下图所示。

【脑洞大赛】智能报警路灯图2

【程序设计】

# 程序流程图设计

在写程序之前,先梳理一下思路,设计程序流程图,如下图所示。

##硬件程序流程图
【脑洞大赛】智能报警路灯图5

##APP程序流程图

【脑洞大赛】智能报警路灯图6

Arduino Leonardo硬件代码】

#include <DFRobot_LedControl.h>
#include <DFRobot_Ultrasonic.h>

double mind_n_bs;
char mind_s_str;


const byte LedArray_BBlG[] = {//"S"字模
B00111000,
B01100100,
B01100000,
B00110000,
B00011000,
B00001100,
B00100110,
B00011100,
};
const byte LedArray_pFgv[] = {//"O"字模
B00011000,
B00100100,
B01000010,
B01000010,
B01000010,
B01000010,
B00100100,
B00011000};
const byte LedArray_42Se[] ={//“S”字模
B00111000,
B01100100,
B01100000,
B00110000,
B00011000,
B00001100,
B00100110,
B00011100,
};
const byte LedArray_PPNP[] = {B01100110,B11111111,B10011001,B10000001,B11000011,B01100110,B00111100,B00011000};//“心型”图案
DFRobot_LedControl max7219(5, 3, 4);//LED点阵(MAX7219),初始化DIN引脚为5,CS管脚为4,CLK管脚为3
DFRobot_Ultrasonic ultraA0;//模拟超声波
void SOS();
void XianShi();

void SOS()//12引脚上接电磁继电器,控制灯的开关,发出“SOS”莫尔代码
{
        digitalWrite(12, HIGH);
        delay(500);
        digitalWrite(12, LOW);
        delay(100);
        digitalWrite(12, HIGH);
        delay(500);
        digitalWrite(12, LOW);
        delay(100);
        digitalWrite(12, HIGH);
        delay(500);
        digitalWrite(12, LOW);
        delay(100);
        digitalWrite(12, HIGH);
        delay(1500);
        digitalWrite(12, LOW);
        delay(100);
        digitalWrite(12, HIGH);
        delay(1500);
        digitalWrite(12, LOW);
        delay(100);
        digitalWrite(12, HIGH);
        delay(1500);
        digitalWrite(12, LOW);
        delay(100);
        digitalWrite(12, HIGH);
        delay(500);
        digitalWrite(12, LOW);
        delay(100);
        digitalWrite(12, HIGH);
        delay(500);
        digitalWrite(12, LOW);
        delay(100);
        digitalWrite(12, HIGH);
        delay(500);
        digitalWrite(12, LOW);
        delay(100);
}

void XianShi()//LED点阵显示内容
{
        max7219.show(LedArray_BBlG);
        delay(200);
        max7219.show(LedArray_pFgv);
        delay(200);
        max7219.show(LedArray_42Se);
        delay(200);
}


void setup() {
      
        Serial1.begin(9600);//主板使用Leonardo,所以蓝牙使用Serial1串口通讯
        max7219.begin();
        mind_n_bs = 0;
        ultraA0.begin(A0);//初始化模拟超声波,接A0引脚。
}

void loop() {
        if ((Serial1.available())) {//等待蓝牙接收数据
                mind_s_str = Serial1.read();
                if ((mind_s_str == 'G')) {//手机人脸验证成功,返回"G",利用灯同时发出报警求救信号SOS
                        digitalWrite(13, HIGH);
                        SOS();
                }
                if ((mind_s_str == 'K')) {
                        digitalWrite(13, LOW);
                        mind_n_bs = 0;
                }
        }
        if (((ultraA0.getDistanceCm() < 50) && (mind_n_bs == 0))) {//超声波测试有人,向手机APP发送信息,并在LED点阵上显示关怀图案
                        mind_n_bs = 1;
                        Serial.println("t");
                        max7219.show(LedArray_PPNP);
        }
        if(mind_n_bs == 0){//平时LED点阵显示“SOS”标识
        XianShi();
        }
}
APP设计

    报警主控设备使用一部旧的VIVO手机,APP编写使用MIT APP Inventor2汉化版。

【路灯APP】
#首页
【脑洞大赛】智能报警路灯图7
#操控页
【脑洞大赛】智能报警路灯图8

#人脸识别成功后显示报警按钮
【脑洞大赛】智能报警路灯图9

#APP逻辑设计部分

##屏幕初始化,完成连接蓝牙和使用注册百度人工智能获取的信息进行人脸识别连接

【脑洞大赛】智能报警路灯图10
【脑洞大赛】智能报警路灯图11

##利用定时器,检测Arduino+超声波+蓝牙,发送过来的信息,以“t”,作为有人靠近的标识。如检测到,进入操作页面。

【脑洞大赛】智能报警路灯图12

【脑洞大赛】智能报警路灯图13
##人脸拍照识别

【脑洞大赛】智能报警路灯图14

【脑洞大赛】智能报警路灯图15

人脸检测成功,显示报警按钮


【脑洞大赛】智能报警路灯图16

【脑洞大赛】智能报警路灯图28


点击按钮,进行报警,并向Arduino发送标识“K",完成报警。

【脑洞大赛】智能报警路灯图17

##其中可进行语音操控,如拍照、拨打报警电话

【脑洞大赛】智能报警路灯图18


【后台服务APP】

    用来显示报警人的人脸及相关信息,并增加人脸识别功能,识别出报警人。

#主页面,组件设计

【脑洞大赛】智能报警路灯图19

#逻辑代码设计

##屏幕初始化,连接百度人脸识别。

【脑洞大赛】智能报警路灯图20
【脑洞大赛】智能报警路灯图21

##点击”显示报警人信息“按钮

【脑洞大赛】智能报警路灯图22

##”上一个“”下一个“按钮,显示报警人。

【脑洞大赛】智能报警路灯图23

【脑洞大赛】智能报警路灯图24

#人脸识别

##点击”报警人验证“,可拍照,然后与记录的报警人进行比对

【脑洞大赛】智能报警路灯图25

##代码

【脑洞大赛】智能报警路灯图26
【脑洞大赛】智能报警路灯图27


制作过程

#制作底座,主框架

  利用装修剩余木角料,使用热熔胶进行固定。

【脑洞大赛】智能报警路灯图29

【脑洞大赛】智能报警路灯图30

#安装台灯

    将旧台灯内容电路进行改造,将台灯电路断开,引出两个线,将与电磁继电器连接,利用Arduino进行控制。并安装在主体最上端,路灯照明部分。

【脑洞大赛】智能报警路灯图31


#安装电磁继电器

【脑洞大赛】智能报警路灯图32

#安装LED点阵屏、超声波、Arduino主控板、扩展板、蓝牙模块

【脑洞大赛】智能报警路灯图33


【脑洞大赛】智能报警路灯图34

#安装充电宝

【脑洞大赛】智能报警路灯图36


#安装手机

【脑洞大赛】智能报警路灯图35


最终成品



【脑洞大赛】智能报警路灯图37



# 后续思考

1、设想实现实时检测人脸,自动拍照

2、使用其它设备代替手机,比如树梅派+摄像头+通信模块等







陈泊鑫  见习技师

发表于 2020-4-29 23:06:33

回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail