0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用MSP430和GPS模块制作汽车事故警报系统

科技观察员 来源:circuitdigest 作者:萨达姆 2022-09-21 15:35 次阅读

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

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

pYYBAGMqvMeAKsG8AAJO_sP3ixw139.png

所需组件

MSP430 启动板

SIM900 GSM 模块

Ublox NEO-6M GPS 模块

振动传感器模块

16x2 液晶

电源

连接电线

10 K-POT

面包板或PCB

电源 12v 1amp

3.3v电源

5v电源

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

GPS模块及其工作:

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

poYBAGMqvQWAQqEuAAS1e8eg9-I793.png

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

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

poYBAGMqvQyANPwNAAFaO5STm38033.png

下面是$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,,校验和数据

poYBAGMqvRKAa2EBAAAtrSCr4eg996.png

GSM模块

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

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

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

启用 GPRS

pYYBAGMqvRiAeD9TAAXDfdLhfWU479.png

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 逻辑振动传感器模块。这意味着每当振动传感器检测到振动时,它都会为微控制器提供高逻辑。

poYBAGMqvR6AZj-bAAJktuf7XxE888.png

电路说明

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

poYBAGMqvSKATOkhAAFApAVp3GI921.png

poYBAGMqvSiAfWjNAAblkntWh9A636.png

编程说明

除了 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
    +关注

    关注

    180

    文章

    2393

    浏览量

    229181
  • 振动传感器
    +关注

    关注

    2

    文章

    321

    浏览量

    19784
  • GPS模块
    +关注

    关注

    0

    文章

    87

    浏览量

    16418
  • 警报系统
    +关注

    关注

    0

    文章

    54

    浏览量

    4875
收藏 人收藏

    评论

    相关推荐

    通过RTC模块DS3231与MSP430连接来制作数字时钟

    在本教程中,我们将通过RTC模块DS3231与MSP430连接来制作数字时钟,并在16x2 LCD上显示时间和日期。MSP-EXP430G2 是德州仪器提供的开发工具,又名 Launc
    的头像 发表于 11-11 16:55 2709次阅读
    通过RTC<b class='flag-5'>模块</b>DS3231与<b class='flag-5'>MSP430</b>连接来<b class='flag-5'>制作</b>数字时钟

    MSP430单片机与GPS模块接口在便携式导航系统中的设计应

    MSP430单片机与GPS模块接口在便携式导航系统中的设计应用 GPS 是全球定位系统的简称,
    发表于 03-05 11:03 100次下载

    基于GPS/GSM和MSP430的巡检手持终端的设计与实现

    基于GPS/GSM和MSP430的巡检手持终端的设计与实现。
    发表于 02-17 09:48 29次下载

    基于MSP430的可便携车载GPS智能终端的设计

    基于MSP430的可便携车载GPS智能终端的设计。
    发表于 02-17 09:51 36次下载

    基于MSP430单芯片的倒车雷达模块设计环翾

    基于MSP430单芯片的倒车雷达模块设计_环翾
    发表于 03-17 08:00 7次下载

    MSP430教程14:MSP430单片机ADC12模块

    MSP430教程14:MSP430单片机ADC12模块
    发表于 10-12 09:03 55次下载
    <b class='flag-5'>MSP430</b>教程14:<b class='flag-5'>MSP430</b>单片机ADC12<b class='flag-5'>模块</b>

    MSP430新型的高性能双通信模块

    MSP430新型的高性能双通信模块
    发表于 10-12 17:17 6次下载
    <b class='flag-5'>MSP430</b>新型的高性能双通信<b class='flag-5'>模块</b>

    基于MSP430外围模块功能简介

    基于MSP430外围模块功能简介
    发表于 10-12 17:21 7次下载
    基于<b class='flag-5'>MSP430</b>外围<b class='flag-5'>模块</b>功能简介

    基于MSP430单片机的GPS定位系统设计

    基于MSP430单片机的GPS定位系统设计
    发表于 10-13 08:43 22次下载

    介绍 MSP430 的外围模块

    MSP430的外围模块介绍
    的头像 发表于 06-13 01:47 5092次阅读
    介绍 <b class='flag-5'>MSP430</b> 的外围<b class='flag-5'>模块</b>

    MSP430F5529 单片机 倒车雷达 倒车警报系统 超声波

    MSP430F5529 单片机 倒车雷达 倒车警报系统 超声波
    发表于 11-15 15:06 18次下载
    <b class='flag-5'>MSP430</b>F5529 单片机 倒车雷达 倒车<b class='flag-5'>警报系统</b> 超声波

    MSP430学习笔记-时钟篇

    在前一篇学习笔记架构篇中,我们将整个MSP430的总体架构唠嗑了一遍,今天我们继续来聊聊MSP430的时钟。对于时钟模块,我们要了解两件事:时钟架构与时钟配置寄存器。一、时钟架构下面我们从
    发表于 12-16 16:55 27次下载
    <b class='flag-5'>MSP430</b>学习笔记-时钟篇

    Arduino婴儿汽车警报系统(iCAS)

    电子发烧友网站提供《Arduino婴儿汽车警报系统(iCAS).zip》资料免费下载
    发表于 01-05 09:52 0次下载
    Arduino婴儿<b class='flag-5'>汽车</b><b class='flag-5'>警报系统</b>(iCAS)

    多功能汽车警报系统

    电子发烧友网站提供《多功能汽车警报系统.pdf》资料免费下载
    发表于 11-06 14:16 1次下载
    多功能<b class='flag-5'>汽车</b><b class='flag-5'>警报系统</b>

    基于MSP430汽车电子喇叭

    电子发烧友网站提供《基于MSP430汽车电子喇叭.pdf》资料免费下载
    发表于 10-09 10:18 0次下载
    基于<b class='flag-5'>MSP430</b>的<b class='flag-5'>汽车</b>电子喇叭