如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图

在这里,我们再次构建相同的项目,但这次将使用MSP430 发射台和振动传感器来检测车辆事故。因此,该项目还将介绍振动传感器与 MSP430 启动板的接口。

此处振动传感器模块检测车辆的振动并向 MSP430 Launchpad 发送信号。然后 MSP430 从 GPS 模块获取数据并使用 GSM 模块通过 SMS 将其发送到用户手机。一个 LED 也会作为事故警报信号发光,这个 LED 可以用一些警报代替。事故位置以Google Map 链接的形式发送,来自 GPS 模块的纬度和经度。

如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图

所需组件

MSP430 启动板

SIM900 GSM 模块

Ublox NEO-6M GPS 模块

振动传感器模块

16×2 液晶

电源

连接电线

10 K-POT

面包板或PCB

电源 12v 1amp

3.3v电源

5v电源

在进入项目之前,我们将讨论 GPS、GSM 和振动传感器。

GPS模块及其工作:

GPS代表全球定位系统 ,用于检测地球上任何位置的纬度和经度,具有精确的UTC时间(协调世界时)。GPS模块用于跟踪我们项目中的事故位置。该设备每秒接收来自卫星的坐标,包括时间和日期。我们之前 在Vehicle Tracking System中提取了 $GPGGA 字符串 来查找纬度和经度坐标。

如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图

GPS模块 实时发送与跟踪位置相关的数据,它以NMEA格式发送大量数据(见下面的截图)。NMEA 格式由几个句子组成,其中我们只需要一个句子。这句话从 $GPGGA开始 ,包含坐标、时间和其他有用的信息。此 GPGGA 称为 全球定位系统修复数据。

我们可以通过计算字符串中的逗号来从 $GPGGA 字符串中提取坐标。假设你找到 $GPGGA 字符串并将其存储在一个数组中,那么在两个逗号后可以找到纬度,在四个逗号后可以找到经度。现在,这个纬度和经度可以放在其他数组中。

如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图

下面是$GPGGA字符串及其描述:

$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47

$GPGGA,HHMMSS.SSS,纬度,N,经度,E,FQ,NOS,HDP ,高度,M,高度,M,,校验和数据

如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图

GSM模块

SIM900 是一个完整的四频 GSM/GPRS 模块,可以被客户或爱好者轻松嵌入使用。SIM900 GSM 模块提供行业标准接口。SIM900 以低功耗提供 GSM/GPRS 850/900/1800/1900MHz 的语音、SMS、数据性能。它在市场上很容易买到。

SIM900采用集成AMR926EJ-S内核的单片机处理器设计

小尺寸的四频 GSM/GPRS 模块。

启用 GPRS

如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图

AT 命令

AT 表示注意。该命令用于控制 GSM 模块。为了测试 GSM 模块,我们使用了 AT 命令。接收到 AT 命令后,GSM 模块回复 OK。这意味着 GSM 模块工作正常。下面是 我们在这个项目中使用的一些 AT 命令:

ATE0 用于关闭回声

AT+CNMI=2,2,0,0,0 《ENTER》 自动打开消息接收。(无需打开消息)

ATD《手机号码》;《ENTER》 拨打电话 (ATD+919610126059;\r\n)

AT+CMGF=1 《ENTER》 选择文本模式

AT+CMGS=”Mobile Number” 《ENTER》 分配收款人的手机号码

》》现在我们可以写我们的信息了

》》写完留言后

Ctrl+Z 发送消息命令(十进制的 26)。

ENTER=0x0d 十六进制

振动传感器模块

在这个MSP430 事故警报系统项目中,我们使用了一个振动传感器模块来检测振动或突然的调制。振动传感器模块根据模块提供数字输出高/低逻辑。在我们的案例中,我们使用了一个有源 HIGH 逻辑振动传感器模块。这意味着每当振动传感器检测到振动时,它都会为微控制器提供高逻辑。

如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图

电路说明

该车辆事故警报系统项目的电路连接 很简单。这里GPS 模块的Tx 引脚 直接连接到 MSP430 Launchpad(硬件串行)的数字引脚号 P1_1,5v 用于为 GPS 模块供电。通过这里使用 软件串行库 ,我们允许引脚 P_6 和 P1_7 上的串行通信,并分别使它们成为 Rx 和 Tx 并连接到GSM 模块。12 伏电源用于为 GSM 模块供电。振动传感器连接在 P1_3 。LED 也用于指示事故检测。其余连接显示在电路图中。

如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图 如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图

编程说明

除了 GPS 部分外,该项目的编程很容易。完整的代码在项目结​​束时给出。为了在 MSP430 中编写或编译代码,我们使用了与 Arduino 兼容的 Energia IDE。大多数 Arduino IDE 功能都可以直接在这个 Energia IDE 中使用。

所以首先我们已经包含了一个必需的库和声明的引脚和变量。

#include

SoftwareSerial GSM(P1_6, P1_7); // 接收,发送

浮动纬度=0;

浮动对数=0;

#define led P1_0

const intvibrationSensor=PUSH2;

诠释我=0;

给定函数用于读取振动传感器信号。此功能还将过滤小振动或虚假振动。

#define count_max 25

char SensorRead(int pin) // 读sw with debounce

{

char count_low=0,count_high = 0;

{

延迟(1);

if (digitalRead(pin) == HIGH)

{

count_high++;

计数低 = 0;

}

否则

{

count_high = 0;

计数低++;

}

}while(count_low< count_max && count_high < count_max);

如果(count_low >= count_max)

返回低;

否则

返回高;

}

下面的函数检测振动并调用gpsEvent()函数获取 GPS 坐标,最后调用Send()函数发送短信。

无效循环()

{

如果(传感器读取(振动传感器)==高)

{

数字写入(领导,高);

全球定位系统事件();

发送();

数字写入(领导,低);

延迟(2000);

}

}

Given Function 负责从 GPS 模块中获取 GPS 字符串,从中提取坐标并将其转换为度数十进制格式。

无效 gpsEvent()

{

字符 gpsString[55];

字符测试[]=”RMC”;

我=0;

while(1)

{

while (Serial.available()) //来自 GPS 的串行传入数据

{

char inChar = (char)Serial.read();

gpsString[i]=inChar; //将来自 GPS 的传入数据存储到临时字符串 str[]

i++;

if (i < 4)

{

if(gpsString[i-1] != test[i-1]) //检查正确的字符串

i=0;

}

国际度=0;

度=gpsString[16]-48;

度*=10;

度+=gpsString[17]-48;

int minut_int=0;

minut_int=gpsString[18]-48;

minut_int*=10;

minut_int+=gpsString[19]-48;

int minut_dec=0;

minut_dec+= (gpsString[21]-48)*10000;

minut_dec+= (gpsString[22]-48)*1000;

minut_dec+= (gpsString[23]-48)*100;

minut_dec+= (gpsString[24]-48)*10;

minut_dec+= (gpsString[25]-48);

float minut= ((float)minut_int + ((float)minut_dec/100000.0))/60.0;

纬度=((浮点)度+分钟);

最后,Send()函数用于将 SMS 发送到插入在这部分代码中的用户号码。

无效发送()

{

GSM.print(“AT+CMGS=”);

GSM.print(“);

GSM.print(“961****059”); // 输入你的手机号码

GSM.println(“);

延迟(500);

// GSM.print(“纬度:”);

// GSM.println(纬度);

GSM.println(“事故发生”);

延迟(500);

// GSM.print(“经度:”);

// GSM.println(logitude);

GSM.println(“点击链接查看位置”);

GSM.print(“http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=”);

GSM.print(纬度,6);

GSM.print(“+”);

GSM.print(logitude,6);

GSM.write(26);

延迟(4000);

}

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:如何使用MSP430和GPS模块制作汽车事故警报系统-gps模块的原理图 https://www.yhzz.com.cn/a/7464.html

上一篇 2023-04-18
下一篇 2023-04-18

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。