本文首发于DF创客社区,作者:云天
原文链接:http://mc.dfrobot.com.cn/thread-296401-1-1.html
【设计背景】 当在公园、郊区等偏僻区域或黑夜无人情景,发生突发事件,手机等通讯设备被抢、丢失或未携带等,需报警求救。在这种孤立无援情况下,我们急需报警求救设施。
根据以上需求,相关部分可在以上这种环境下设置智能报警路灯。
【设计思路】
1、路灯配置智能终端(手机),利用人脸识别技术,采集人脸信息,后台记录(减少谎报),采集成功后,开启报警页面。
2、利用超声波检测到报警人,点亮路灯,并利用路灯发出求救信号,扩大求救范围。
【设计草图】
设计草图
【演示视频】
报警端演示
后台显示报警人
【材料准备】首先根据设计思路,准备好制作智能报警路灯所需的材料,清单和说明如下表和下图所示。
【电路设计】
为了方便编写程序,先设计智能报警路灯的电路连接关系,电路原理图如下图所示。
【程序设计】# 程序流程图设计
在写程序之前,先梳理一下思路,设计程序流程图,如下图所示。
##硬件程序流程图
##APP程序流程图
【ArduinoLeonardo硬件代码】#include
#include
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)
1