使用MSP430 Launchpad和GPS模块的车辆跟踪和事故警报系统

发布者:不懂之人最新更新时间:2022-01-26 来源: eefocus关键字:MSP430  Launchpad  GPS模块  车辆跟踪 手机看文章 扫描二维码
随时随地手机看文章

在之前的教程中,我们已经了解了如何将GPS模块与计算机连接以及如何使用GSM和GPS跟踪车辆。我们还使用Arduino和加速度计制作了车辆事故警报系统。在本篇文章中,我们再次制作相同的项目,但这次将使用MSP430 Launchpad开发板和振动传感器来检测车辆事故。因此,该项目还将介绍振动传感器与MSP430的连接。


振动传感器模块检测车辆的振动并向MSP430 Launchpad发送信号。然后MSP430从GPS模块获取数据,使用GSM模块通过SMS将其发送到用户移动电话。同时LED也会发出事故警报信号,这个LED可以使用其他一些警报设备取代。事故地点以谷歌地图链接的形式发送,源自GPS模块的纬度和经度。



需要的组件

●    MSP430 Launchpad开发板

●    GSM模块

●    GPS模块

●    振动传感器模块

●    1602液晶显示屏

●    电源

●    连接导线

●    10K电位器

●    面包板


在开始制作之前,我们将先讨论GPS、GSM和振动传感器。


GPS模块及其工作原理

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



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


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


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

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

  2. $GPGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data

复制代码

识别符描述
$ GPGGA全球定位系统修复数据
hhmmss.sss以小时为单位的时间和毫秒格式。
Latitude纬度(坐标)
N方向N =北,S =南
Longitude经度(坐标)
Ë方向E =东,W =西
FQ修复质量数据
NOS正在使用的卫星数量
HDP水平稀释精度
Altitude海拔高度(海拔以上米)
M
Height高度
Checksum校验和数据


GSM模块

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

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

◾    小型GSM / GPRS四频模块。

◾    GPRS已启用



AT命令

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

●    ATE0用于回声

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

●    ATD <手机号码>; 拨打电话(ATD + 919610126059; r n)

●    ●    AT + CMGF = 1 选择文本模式

●    AT + CMGS =“手机号码”分配收件人的手机号码

     >>现在我们可以写下我们的信息

     >>写完信息后

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

●    HEX中的ENTER = 0x0d


振动传感器模块

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



电路说明

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





编程说明

除GPS部分外,该项目的编程很简单。完成代码在本文结尾处给出。要在MSP430中编写或编译代码,我们使用了与Arduino兼容的Energia IDE。大多数Arduino IDE功能都可以直接在这个Energia IDE中使用。


首先,我们包含了一个必需的库,以及声明一些引脚和变量。

  1. #include

  2. SoftwareSerial GSM(P1_6, P1_7); // RX, TX


  3. float latitude=0;

  4. float logitude=0;                     


  5. #define led P1_0

  6. const int vibrationSensor=PUSH2;

  7. int i=0;


以下函数用于读取振动传感器信号。 该函数也可以过滤小的或错误的振动。

  1. #define count_max 25

  2. char SensorRead(int pin)   // read sw with debounce

  3. {

  4.    char count_low=0,count_high = 0;

  5.    do

  6.   {

  7.     delay(1);

  8.     if (digitalRead(pin) == HIGH)

  9.     {

  10.      count_high++;

  11.      count_low = 0;

  12.     }


  13.     else

  14.     {

  15.        count_high = 0;

  16.        count_low++;

  17.     }

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


  19.   if (count_low >= count_max)

  20.   return LOW;

  21.   else

  22.   return HIGH;

  23. }


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

  1. void loop()

  2. {

  3.     if(SensorRead(vibrationSensor) == HIGH)

  4.     {

  5.         digitalWrite(led, HIGH);

  6.         gpsEvent();

  7.         Send();

  8.         digitalWrite(led, LOW);

  9.         delay(2000);

  10.     }

  11. }


以下函数负责从GPS模块获取GPS字符串,从中提取坐标并以十进制格式转换它们。

  1. void gpsEvent()

  2. {

  3.   char gpsString[55];

  4.   char test[]="RMC";

  5.   i=0;

  6.   while(1)

  7.   {

  8.    while (Serial.available())            //Serial incomming data from GPS

  9.    {

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

  11.      gpsString[i]=inChar;                    //store incomming data from GPS to temparary string str[]

  12.      i++;

  13.      if (i < 4)                     

  14.      {

  15.       if(gpsString[i-1] != test[i-1])         //check for right string

  16.         i=0;

  17.      }


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

  1. void Send()

  2. {

  3.    GSM.print("AT+CMGS=");

  4.    GSM.print('"');

  5.    GSM.print("961****059"); // enter your Mobile number

  6.    GSM.println('"');

  7.    delay(500);

  8.   // GSM.print("Latitude:");

  9.   // GSM.println(latitude);

  10.    GSM.println("Accident Happned");

  11.    delay(500);

  12.   // GSM.print(" longitude:");

  13.   // GSM.println(logitude);

  14.    GSM.println("Click On link to see Location");

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

  16.    GSM.print(latitude,6);

  17.    GSM.print("+");            

  18.    GSM.print(logitude,6);

  19.    GSM.write(26);

  20.    delay(4000);  

  21. }


关键字:MSP430  Launchpad  GPS模块  车辆跟踪 引用地址:使用MSP430 Launchpad和GPS模块的车辆跟踪和事故警报系统

上一篇:使用MSP430G2 LaunchPad开发板连接步进电机的方法
下一篇:使用MSP430 LaunchPad开发板制作一个激光绊线报警器

推荐阅读最新更新时间:2024-11-08 11:07

MSP430串行写入BOOTSTRAP与加密熔断功能
摘要:BOOTSTRAP用于在MSP430设计开发及系统更新时对Flash存储器的编程。它可以用经串口协议的命令来激活,使得用户可以通过PC控制MSP430,并实现数据交换。烧断Flash的熔丝是用来保护用户在Flash中的程序代码。本文主要介绍我们制作的BOOTSTRAP这一开发工具的功能、软硬件结构以及熔断工具的制作方法。 关键词:MSP430 BOOTSTRAP 熔断 引 言   对于MSP430单片机的开发调试有多种技术方案,例如EPROM方式、OTP方式、仿真开发系统方式、JTAG和BOOTSTRAP方式。BOOTSTRAP(又名BootStrap Loader,简称BSL)可与另一种Flash仿真工具JTAG控制
[应用]
基于MSP430的质子旋进式磁力仪设计
  引言   质子旋进式磁力仪主要供地面磁法勘探,用于铁矿及其他金属矿床的普查、详查、地质填图。在航空、海洋、地震预报工作中,用于地磁台站的磁变观测和流动磁测。目前地磁测量所使用的磁力仪多数是进口产品,价格昂贵。国产的磁力仪以北京地质仪器厂生产的CZM-2型质子旋进式磁力仪居多。该仪器为20世纪80 年代产品,使用简单方便。但受当时技术条件限制,仪器功耗大,稳定性较差,精度较低(±1nT)。根据我国地磁流动测量与定点观测的需要,研制新型高精度的质子旋进磁力仪具有重要的意义。笔者设计了一种新型的磁力仪,与CZM-2型质子旋进式磁力仪相比,实测精度提高1倍(±0.5nT)。   1质子旋进式磁力仪工作原理   质子磁力仪传感器由两
[单片机]
基于<font color='red'>MSP430</font>的质子旋进式磁力仪设计
【JTAG、SBW、BSL】MSP430的BSL
简介:对于MSP430来说,无论仿真还是烧写程序一般可以通过:JTAG、SBW、BSL接口进行。JTAG、SBW接口可以用于仿真接口,BSL接口不能用于仿真。而编程器则三种接口都支持。所以并不能说JTAG只支持仿真不支持编程,这是概念错误,JTAG仅仅是一种接口协议而已。 下面简单描述一下三种接口的区别: 1、JTAG是边界扫描技术,其在430内部有逻辑接口给JTAG使用,内部有若干个寄存器连接到了430的内部数据地址总线上,所以可以用JTAG访问430内部的所有资源,包括对FLASH的读写操作。所以可以用于对MSP430的仿真及编程。主要连接线有TMS、TCK、TDI、TDO、RST、TEST。 2、SBW是SPY-
[单片机]
基于MSP430单片机和nRF905的无线通信系统
随着信息技术的不断发展,人们对通信技术的需求越来越强,摆脱有线网络的束缚实现无线通信始终是大家关心的问题,当今无线通信研究越来越热,应用非常广泛,使人与人之间的通信更加方便快捷,更具有市场发展前景。本文以Nordic公司的nRF905作为通讯的核心,设计了无线通信系统。 系统设计 无线通信系统,由两个部分组成:发送终端,接收终端。数据的发送和接收显示是借助于串口来实现的,通过PC机串口给发送终端送数据,然后发送终端通过nRF905把数据发送出去;接收终端通过nRF905接收数据,然后把接收到的数据通过串口传给PC机。系统框图如图1所示。 无线系统的硬软件设计 系统的硬件设计 本系统采用的射频收发器为Nordic VL
[单片机]
基于<font color='red'>MSP430</font>单片机和nRF905的无线通信系统
基于MSP430的无线传感器网络设计
引言   传感测试技术正朝着多功能化、微型化、智能化、网络化、无线化的方向发展。自组织无线传感器网络(Self Organizing Wireless Sensor Networks)作为新兴技术,是目前国外研究的热点,其在军事、环境、健康、家庭、商业、空间探索和灾难拯救等领域展现出广阔的应用前景。早在2003年美国自然科学基金委员会已经斥巨资来支持这方面的研究,并且出现了一些致力于无线传感器网络的公司,其中Crossbow公司已推出了Mica系列传感器网络产品。国内很多大学现已经开展相关领域的研究,但大部分工作仍处在自组织无线网络协议性能仿真和硬件节点小规模实验设计阶段。本文就国防科技大学传感器教研室开展可应用于环境监测方面无线
[应用]
基于MSP430单片机的智能网络水表抄表系统设计
  随着电子通信与计算机网络技术的发展,远程抄表技术在水、电和煤气计量方面得以推广应用。为适应这个发展方向,在研制出有线远传水表及其数据采集器的基础上,开发了专用的数据集中器,以实现远传水表抄表系统。该系统有三层网络结构:上位机管理系统、集中器和智能网络水表。智能网络水表通过RS-485总线和集中器连接,集中器通过调制解调器MODEM和电话网连接进行远程通讯,将数据通过电话网传输给上位机管理系统,在降低成本的同时提高了数据传输的可靠性。该系统具有良好的伸缩性,同时,上位机管理系统也可以和银行联网,组成四级网络,为后续功能扩展奠定了基础。   1 智能网络水表   智能网络水表的工作原理是在普通转盘计数的水表中加装干簧管和永
[单片机]
基于<font color='red'>MSP430</font>单片机的智能网络水表抄表系统设计
基于VxWorks的油井数据采集远程终端的设计
   0 引 言   目前,采油厂多以抽油机采油生产为主要任务,抽油机的分布点多面广,工作在条件恶劣的环境中,容易损坏和遭外力破坏,需要经常巡测,人员工作强度大。目前油井工作状态参数监控由于缺乏远程手段,对油井的生产状况均处于事后处理状态,油井出现异常或被盗破坏时不能及时处理,造成大量不明损失。基于CD-MA通迅信道的远程终端(Remote Terminal Unit,RTU)充分利用现有的计算机网络,通过对现场的监测和数据采集、传输,可以满足油井远程监控的需求。该远程终端可以对油井运行时的负荷、位移、油管回压、温度、冲次、工作电流、电压等参数进行实时全自动在线抄收;当现场有异常情况发生时,监控中心能自动发出相关报警信息,调度
[嵌入式]
基于MSP430F149的变频伺服系统的设计与研究
引言 近年来,伺服系统的发展始终以稳定性、响应性与精度为发展主轴,这也是用户在使用过程中最为看重的几大因素。在机床伺服系统、机器人控制系统、雷达天线控制系统等场合大都由直流伺服电机和直流伺服控制器来完成控制。在这些控制领域中,主要以负载的位置或角度等为控制对象的伺服控制系统 。随着变频器技术的高速发展,在伺服系统中交流变频传动因其功率因数高、反应速度快、精度高、适合在恶劣环境中使用等优点得到了越来越广泛的应用。本文提出一种基于高性能单片机MSP430F149、变频器、变频电机组成的数字式变频伺服系统,并将数字PID算法引入到此系统中,使系统获得了良好的系统静、动态性能。 1变频伺服系统的功能 为达到变频伺服系统的运行可靠、良
[电源管理]
基于<font color='red'>MSP430</font>F149的变频伺服系统的设计与研究
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved