借助近来我们可以使用的所有技术,建造用于妇女的安全装置并不难,它不仅会产生紧急警报,还会向您的朋友,家人或相关人员发送消息。在这里,我们将建立一个女士可以佩戴的表带,她们可以使用SOS紧急短信和当前位置通知警察或任何人。使用此信息,警察将能够从该地点救助受害者。为此,我们在这里使用的Arduino可与GSM和GPS模块连接,以发送SMS警报并获取位置坐标。我们还使用RF发射器和接收器模块在带GPS / GSM的频段和接收设备之间进行无线通信。
所用材料
- Arduino纳米
- SIM900调制解调器
- NEO6M GPS模块
- 433 MHZ射频发射器和接收器
- 纽扣
- 电池
- 面包板
- 跳线
GPS模块
在这里,我们正在使用NEO6M GPS模块。NEO-6M GPS模块是一种流行的GPS接收器,带有内置陶瓷天线,可提供强大的卫星搜索功能。该接收器能够感应位置并跟踪多达22颗卫星,并识别世界上任何地方的位置。使用板载信号指示器,我们可以监视模块的网络状态。它具有数据备用电池,以便在意外关闭主电源时模块可以保存数据。
GPS接收器模块内部的核心心脏是u-blox的NEO-6M GPS芯片。它可以在50个频道上跟踪多达22颗卫星,并且灵敏度水平非常高,为-161 dBm。这款50通道u-blox 6定位引擎的首次定位时间(TTFF)不到1秒。该模块支持4800-230400 bps的波特率,默认波特率为9600。
特征:
- 工作电压:(2.7-3.6)V DC
- 工作电流:67 mA
- 波特率:4800-230400 bps(9600默认)
- 通讯协议:NEMA
- 接口:UART
- 外部天线和内置EEPROM。
GPS模块的引脚排列:
- VCC:模块的输入电压引脚
- GND:接地引脚
- RX,TX:带微控制器的UART通信引脚
我们之前已经将GPS与Arduino进行了接口,并使用GPS模块(包括车辆跟踪)建立了许多项目。
GSM模块SIM900
这是与GSM / GPRS兼容的四频手机,其工作频率为850/900/1800 / 1900MHz,可用于各种应用,例如访问Internet,进行语音呼叫,发送和接收SMS等等。可以通过AT命令设置GSM调制解调器的频带。波特率可通过AT命令在1200-115200之间进行配置。GSM / GPRS调制解调器具有内部TCP / IP堆栈,使我们能够通过GPRS与Internet连接。这是一个SMT型模块,并设计有集成了AMR926EJ-S内核的功能非常强大的单芯片处理器,该处理器在各种工业产品中都非常受欢迎。
技术指标:
- 电源电压:3.4V – 4.5V
- 省电模式:睡眠模式功耗=.5mA
- 频段:SIM900A双频段:EGSM900,DCS1800。
- 工作温度:-30ºC至+80ºC
- 支持MIC和音频输入
- 喇叭输入
- UART接口支持
- 通过调试端口进行固件升级
- 通讯:AT命令
我们之前已经将GSM与Arduino连接,并使用GSM模块(包括事故警报系统)来构建许多项目。
连接图
具有GPS跟踪和警报功能的女性安全系统可以细分为两个部分,例如“发送器”和“接收器”部分。每个部分的电路图描述如下:
发射器部分:
在RF发射器部分,将有一个SOS按钮以及433 MHz RF发射器,它将把数据无线传输到接收器部分。在此制造两个单独部件的目的是,使传输模块的尺寸最小化,以便可以将其作为腕带佩戴。发射器部分的电路图如下所示:
接收器部分:
在“ RF接收器”部分,从腕带(发射器部分)发射的数据被具有433 MHz RF接收器的设备接收。RF接收器通过数字引脚将此信息发送到Arduino。然后,Arduino Nano接收信号并使用闪入其中的程序对其进行处理。当受害者按下发射器部分中的SOS按钮时,将产生HIGH信号并传递到Arduino端,然后Arduino将信号发送到SIM900调制解调器,以将短信和GPS坐标一起发送给注册用户借助NEO6M GPS模块存储在微控制器中。接收器侧的电路图如下所示:
Arduino的编程
成功完成硬件连接后,现在该对Arduino Nano进行编程了。该代码的逐步说明如下。
通过将所有必需的库文件包含在代码中(例如用于NEO6M GPS板的 TinyGPS ++。h ,用于定义软件串行引脚的 SoftwareSerial.h) 来启动代码。
这里的 TinyGPS ++。h 库用于使用GPS接收器模块获取GPS坐标。该库可在此处下载。
#包括
现在,声明GPS模块的连接引脚及其默认波特率,在本例中为9600。另外,定义用于与GPS与Arduino通信的软件串行引脚。
静态常量int RXPin = 2,TXPin = 3; 静态常量uint32_t gps_baudrate = 9600;
然后声明 TinyGPSPlus 类的对象。另外,使用前面定义的引脚作为引脚定义 SoftwareSerial 类的对象。
TinyGPSPlus GPS;串行软件(RXPin,TXPin);
在 setup() 内部 , 声明所有输入引脚和输出引脚。然后,初始化硬件串行和软件串行功能,并提供默认波特率(本例中为9600)。
void setup(){pinMode(12,INPUT); //来自RF模块pinMode(4,OUTPUT)的输入; //蜂鸣器Serial.begin(19200);的输出 soft.begin(gps_baudrate); }
在 循环()中, 读取引脚12的数字输入状态并将其存储在变量中。当此状态为HIGH时,表示在发射器侧按下了该开关,因此Arduino将Buzzer设为ON,并且还调用了 sendms() 函数 , 用于发送与位置数据有关的SMS。
void loop(){int键= digitalRead(12); if(key == 1){digitalWrite(4,HIGH); //打开蜂鸣器sendms(); digitalWrite(4,LOW); //关闭蜂鸣器} else;
为了接收GPS坐标,编写了代码,该代码连续检查串行终端是否有来自GPS模块的输入数据。当找到具有GPS坐标的有效数据时,该数据将存储在两个单独的变量中,例如纬度和经度。
而(soft.available()> 0){gps.encode(soft.read()); 如果(gps.location.isUpdated()){纬度= gps.location.lat(); Lon = gps.location.lng(); } else; }}
最后,编写的功能是将SMS发送到注册号码。此处使用 AT + CMGF 命令将SIM900 GSM调制解调器设置为SMS文本模式。然后,使用显示的格式定义收件人的号码。您可以将其替换为您的手机号码。然后,通过串行终端发送附加了位置变量的消息。
void sendsms(){Serial.print(“ AT + CMGF = 1 \ r”); 延迟(100); Serial.println(“ AT + CMGS = \” + 9194XXXXXXX \“”); 延迟(100); Serial.println(“我要帮助!!!位置:” +字符串(“ Lat:”)+字符串(Lat)+“” + String(“ Lon:”)+字符串(Lon)); 延迟(100); Serial.println((char)26); 延迟(100); Serial.println(); 延迟(5000); }
妇女安全设备,使用Arduino进行GPS跟踪和警报
当按下SOS按钮时,蜂鸣器开始发出蜂鸣声,并且SMS会到达授权号码,其中包含受害者所在位置的经度和纬度。输出的屏幕截图如下所示:
完整的Arduino代码和演示视频如下。