基于GPS和gsm的车辆跟踪系统

作者:Lalit Prakash Vatsal, Prince Gupta和Sani Theo

205059

这里展示的是全球定位系统(GPS)基于ATMega16微控制器的车辆跟踪系统采用全球定位系统(GPS)和全球移动通信系统(GSM).

内容

  • 基于GPS的车辆跟踪系统简介
  • 基于GPS的车辆跟踪系统:应用和优点
  • 组件
  • 电路的解释
  • 软件
  • 基于GPS的车辆跟踪系统:建设和测试

这是一个比双向GPS通信系统更便宜的解决方案,在该系统中,通过GPS卫星进行双向通信。本项目仅使用一个GPS设备,使用GSM调制解调器实现双向通信。带有SIM卡的GSM modem实现了与普通手机相同的通信技术。

基于GPS的车辆跟踪系统
基于GPS的车辆跟踪系统组件清单

该系统可以安装或安装在您的车辆在一个隐藏或合适的隔间。安装完成后,您可以通过拨GSM modem上SIM卡的移动电话号码,轻松地跟踪您的车辆。您将通过手机短信的形式自动获取车辆的位置。

这个系统可以让你随时随地追踪你的车辆。无论你是拥有一家拥有数百辆车的车队的公司,还是拥有昂贵的设备并想要密切关注它们,这个跟踪系统都可以在你不需要实际在场的情况下通知你状态。

基于GSM和GPS的车辆跟踪系统框图如图1所示。

图1基于GSM和GPS的车辆跟踪系统框图
图1基于GSM和GPS的车辆跟踪系统框图

应用程序和好处

1.你可以使用手机轻松找到被盗车辆,而无需任何额外费用。
2.它可以用于装载贵重货物的卡车,随时跟踪运输状态和卡车的位置。
3.该设备保证了车辆的安全,车队管理的顺利进行。
4.您可以很容易地安装在任何车辆,如汽车,船和摩托车。一条短信会告诉你车辆是静止的还是移动的。
5.你也可以用它来监视你的驱动程序。它减少了车辆滥用,最终为个人、车队所有者等节省了大量成本。

在深入研究项目的详细工作之前,让我们先讨论一些GPS和GSM技术的基础知识。

全球定位系统(GPS)

GPS是一种基于空间的卫星导航系统。它提供地球上或地球附近任何地方的所有天气条件下的位置和时间信息。GPS接收机通常用于导航、定位、时间分发和其他研究目的。

GPS由环绕地球运行的卫星组成。这些卫星与地球同步,轨道周期与地球自转周期相同。所以它们相对于它们下面的地球保持着完全相同的位置。所有GPS卫星都发射无线电信号,然后由GPS接收器捕获并用于计算其地理位置。可能需要至少四颗卫星来计算X、Y、Z(纬度、经度和海拔)和时间的四个维度。GPS接收器将接收到的信号转换为位置,并根据应用和要求估计时间和一些其他有用信息。

图2基于GSM和GPS的车辆跟踪系统电路

GPS通过测量无线电信号(GPS信号)从卫星传送到接收器所花费的时间来确定GPS卫星和GPS接收器之间的距离。为了获得准确的信息,卫星和接收器使用非常精确的时钟,这些时钟是同步的,以便它们在完全相同的时间生成相同的代码。

如果精度很重要,那么您需要具有广域增强系统(WAAS)能力的GPS。这是一项卫星服务,为GPS接收器提供额外的校正信息,以提高其精度。

在购买GPS接收器之前,最好了解它支持的协议。一些流行的GPS接收器协议如下:

n mea 0183

由美国国家海洋电子协会(NMEA)定义的通用于海洋应用的工业标准协议。NMEA提供直接兼容其他NMEA设备,如海图绘图仪和雷达。

trimble标准接口协议

一种二进制数据包协议,允许设计者配置和控制GPS接收机,以在任何数量的应用中获得最佳性能。

trimble ASCII接口协议

专为车辆跟踪应用而设计。它是一个双向协议,使用简单的ASCII命令和相关的ASCII响应。

GSM调制解调器

GSM是由欧洲电信标准协会(ETSI)开发的一套标准,用于描述第二代(2 g)数字蜂窝网络。

GSM调制解调器是一种专门的调制解调器,它接受SIM卡,并通过移动运营商的订阅操作,就像移动电话一样。

GSM调制解调器是接收SMS消息的一种经济有效的解决方案,因为发送方要为消息传递付费。为了完成这些任务,GSM modem必须支持扩展的AT命令集,用于发送和接收SMS消息,定义在ETSI GSM 07.05和3GPP TS 27.005规范中。

还需要指出的是,并不是所有的手机都支持这种调制解调器接口来发送和接收短信,尤其是大多数智能手机,如黑莓、iPhone和Windows移动设备。

基于GPS的车辆跟踪系统:电路描述

基于GSM和GPS的车辆跟踪系统电路如图2所示。它由单片机、GPS模块、GSM modem和9V直流电源组成。GPS模块以纬度和经度的形式从卫星获取位置信息。微控制器处理这些信息并将其发送给GSM调制解调器。然后GSM调制解调器将信息发送到用户的手机上。

ATmega16微控制器

ATmega16微控制器(IC2)是该项目的核心,用于与各种硬件外设进行接口。它是一种基于AVR增强RISC架构的低功耗CMOS 8位微控制器。

图3:iWave GPS模块
图3:iWave GPS模块
图4:SIM300 GSM modem
图4:SIM300 GSM modem

ATmega16单片机与GPS模块和GSM modem串行接口。GPS模块输出很多数据,但在本项目中只有NMEA数据由单片机读取和处理。处理后的数据通过GSM调制解调器发送到用户的手机上。

基于GPS的车辆跟踪系统实现了单片机、GPS和GSM modem之间的RS-232串行通信协议。串行驱动IC MAX232 (IC3)用于RS-232电压电平转换为TTL电压电平。

用户的手机号码应该包含在为微控制器编写的源代码中。这样,用户的手机号码就驻留在单片机的内存中。

iWave GPS模块

在这个项目中,我们使用了iWave GPS模块(如图3所示),GPS总是将数据传输给单片机。GPS传输引脚TXD通过MAX232与单片机连接。NMEA为包括GPS接收器的设备定义了RS-232通信标准。iWave GPS模块支持NMEA-0183标准,该标准是NMEA协议的一个子集。它的工作频率为L1 (1575.42 MHz),在开阔的天空中提供高达10米的准确信息。天线应放置在开阔空间,至少有50%的空间能见度。

GSM调制解调器

本车载GPS跟踪系统采用SIM300 GSM modem(如图4所示),由GSM modem进行数据的收发。Modem SIM300是一款三频段GSM/GPRS引擎,工作在EGSM 900 MHz、DCS 1800 MHz、PCS 1900 MHz频段。

GSM modem的发送脚TXD和接收脚RXD通过MAX232 (IC3)连接到单片机(IC2)。单片机的端口引脚PD0 (RXD)和端口引脚PD1 (TXD)分别与MAX232的12和10引脚相连。

电力供应

电路由9V电池供电。使用7805稳压器(IC1)将9V转换为5V。单片机和MAX232由5V供电。LED1表示有电源。

软件程序

用C语言编写了单片机程序,并用AVR Studio进行了编译。用户的手机号码应该包含在源代码中,以便接收来自GSM modem中使用的SIM卡的呼叫。利用PonyProg2000软件将程序的十六进制代码刻录到单片机中。您可以使用任何其他合适的工具。

使用波特率为9600的GPS模块接收卫星数据,在软件中进行了定义。开发了解码NMEA协议的软件。该协议包括一组使用ASCII字符集并具有定义格式的消息,由GPS模块不断发送到接口设备。

GPS模块或接收器以ASCII逗号分隔的消息字符串形式提供数据。每条消息以美元符号“$”(十六进制0x24)开头,以(十六进制0x0D 0x0A)结尾。

图5:用于基于GPS和gsm的车辆跟踪电路的实际尺寸的单边PCB
图5:用于GSM和GPS车辆跟踪电路的实际尺寸的单面PCB
图6:PCB的组件布局
图6:PCB的组件布局

下载PCB和组件布局pdf:点击这里

下载源代码:点击这里

软件输出协议报文包括全球定位系统固定数据(GGA)和地理位置经纬度(GLL)。在这个项目中,我们将只使用GGA。

请注意,纬度和经度信息均以“度、分钟和十进制分钟”格式表示为ddmm.mmmm。但是,大多数地图应用程序要求以十进制度数表示经度和纬度,格式为“dd.dddddd”,并带有相应的符号(南纬度和西经度为负数)。因此,如果您需要特定的格式,则需要在软件中进行某种转换。

NMEA标准解释了如何使用美元符号($)引导每个新GPS消息来形成每个消息字符串。

例如:$GPGGA,002153.0003342.6618,N,11751.3858,W其中$GPGGA是GGA协议头,002153.000是hhmmss.ss格式的UTC时间,3342.6618是ddmm.mmmm格式的GPS位置固定数据的纬度,11751.3858是dddmm.mmmm格式的GPS位置固定数据的经度,“N”代表北方,“W”代表西方.

有了这些数据,你可以在地图上找到确切的位置,或者你可以使用免费的软件来查看位置。

建设和测试

GPS和基于GPS的车辆跟踪电路的实际尺寸的单面PCB布局如图5所示,其组件布局如图6所示。

将ATmega16和MAX232的IC底座组装在PCB上。将代码刻录到单片机中,并将其安装到PCB上。在GSM模块中插入余额足够的SIM卡。如图2所示连接电路。

测试

  1. 如图2所示,将电路连接到GPS和GSM modem上。
  2. 打开电路,你会看到LED1发光。
  3. 打开GPS模块,等待10-15分钟进行初始化。
  4. 打开GSM modem的开关。
  5. 在GSM modem中拨打手机号码。振铃两次后,振铃自动停止。等几秒钟。你的手机会收到短信提醒。
  6. 检查你的短信收件箱。您将看到SMS文本形式的纬度和经度数据。
  7. 打开一张标准地图,在地图上找到这个点。您还可以在软件(如http://www.latlong.net/Show-Latitude-Longitude.html或任何其他合适的软件)中输入纬度和经度值。

进一步应用

也可以使用这个系统的信息不需要如此频繁,必须跟踪在不规则的时间段,比如监视青少年的父母,在研究追踪动物在丛林中,搜索和救援工作,协调和映射路径和探索新的地形。

Lalit Prakash Vatsal是IIT,Roorkee的三年级综合双学位(电子和通信工程),Prince Gupta是IIT,Rajasthan的二年级B.Tech(电气工程),Sani Theo作为团队负责人在EFY实验室工作。

本文首次发表于2018年3月25日,最近于2019年1月21日进行了更新。

79条评论

    • 谢谢你提出这个问题,查希尔,我们会解决这个问题并通知你。

      最好的问候!

  1. 很有趣的文章。谢谢你的分享。但给定的附件是相同的文件。我找不到软件部分的源代码。

  2. 昨天我检查了我所在地的纬度和经度,今天也检查了,但两者都非常不同,每秒钟都在变化,我怎么能将预先记录的地图与新地图进行比较?为什么某个特定位置的经度和纬度不是恒定的?

  3. 你好,我有一个车辆跟踪系统,可以正常启动,但是通话时sim卡是关闭的。我检查了追踪器的其他故障,但这是我现在的主要死胡同。请帮助

    • 该项目使用SIM300而不是SIM900进行测试。然而,两者几乎是相同的,因此SIM900应该可以在这个项目中工作。

  4. 我们在面包板上连接了这个电路,我没有得到任何输出,然后我在PCB上再次尝试,也不工作

    请确认要求
    是9V是足够的所有电路,这里没有提到“安培”
    我可以用gsm SIM900代替gsm SIM300吗?
    如果我使用gsm SIM900,电路是否有任何变化。

    • 您可以使用任何9V pp3大小的电池,如金霸王,Energizer或HIW可以使用。通常,这些电池的安培小时额定值在550毫安和620毫安之间,有些电池的外壳上没有标记这些额定值。在测试期间没有使用SIM900,但在这个项目中可能可以工作。所以不需要改变。如有任何其他疑问,请联系(电子邮件保护)

  5. 当我来更改手机号码的源代码。我开始知道源代码有一些错误(.c文件)。我希望有人能帮我。错误列表如下:-

    无法打开avr/io.h
    无法打开avr/pgmspc.h
    无法打开延迟

    你用哪个软件来编译代码。

  6. 先生,你能把正确的c文件发给我吗
    给定的源代码无法生成,请帮助我们。
    我们信任你的文章,我们建立它,但不幸的是,它没有做。我认为是我们的错误,请帮助我们修复源代码错误。

      • 错误主要出现在usart_init函数和依赖项文件中

        ../trc.c:在函数' usart_init ':
        ../trc.c:153:错误:' UCSRB '未声明(第一次在这个函数中使用)
        ../trc.c:153: error:(每个未声明的标识符只报告一次
        ../trc.c:153: error: for each function it appear in.)
        ../trc.c:156:错误:' UCSRC '未声明(第一次在这个函数中使用)
        ../trc:156: error: ' URSEL '未声明(第一次在这个函数中使用)
        ../trc.c:156:错误:' UCZS0 '未声明(第一次在这个函数中使用)
        ../trc.c:156:错误:' UCZS1 '未声明(第一次在这个函数中使用)
        ../trc:159: error: ' UBRRL '未声明(第一次在这个函数中使用)
        ../trc.c:161:错误:' UBRRH '未声明(第一次在这个函数中使用)
        ../trc.c:在函数' usart_getch ':
        ../trc.c:168:错误:' UCSRA '未声明(第一次在这个函数中使用)
        ../trc.c:170: error: ' UDR '未声明(第一次在这个函数中使用)
        ../trc.c:在函数' usart_writech ':
        ../trc.c:176:错误:“UCSRA”未声明(首次在此函数中使用)
        ../trc.c:177:错误:' UDR '未声明(第一次在这个函数中使用)
        ../trc.c:在函数' usart_message ':
        ../trc:184:警告:传递参数1的' usart_writech '使整数从指针没有强制转换
        ../trc.c:在顶层:
        ../trc.c:186:致命错误:打开依赖文件dep/trc.o。d:没有该文件或目录
        编译终止。
        : * * *(。o]错误1
        构建失败,有14个错误和4个警告…

  7. 先生,我的项目失败了,因为我不能编译,你能帮我吗?
    我们尝试了很多时间和地点

  8. 你能在这里帮我说说你在这个项目中遇到了什么类型的模仿或者解决了什么问题吗?

    • 事实上,这个项目在很久以前就测试过了,也在2012年的某个地方发布了。所以使用SIM300进行测试,但SIM900也可以工作。

  9. 你好,
    我正在寻找一个具有GPS/GPRS功能的设备,可以在我自己的服务器上发布位置数据间隔(即,我想能够在设备中配置我的服务器细节),这就是它…没有额外的功能,如短信请求和响应。我需要廉价的。

  10. 我想请求你指导我如何构建一个自动汽车项目跟踪系统使用相机和GSM电路连接到车辆登记数据库中,当一些事情发生在任何汽车即邮资违约者,汽车事故等,它很容易追踪与它有关的所有信息,如车主,目前在它的司机和nits当前的位置。

  11. 你好!这个网站很棒,你已经涵盖了所有的内容,并且列出了整个项目,所以它很容易理解和构建。然而,我遇到了一个问题。
    在构建hex文件时(在编辑数字之后),我在USART区域得到了两个错误
    错误是——
    未声明的' UCZS0 '(在此函数中首次使用)
    未声明的' UCZS1 '(在此函数中首次使用)
    请尽快回复。非常感谢。

    • 这个项目在大约六七年前进行了测试并发表。因此,您目前使用的软件工具可能不兼容,或者您可以再次尝试使用文本中提到的旧软件工具。我们将很快发布一个类似的项目,但使用Arduino Uno的简单版本。所以请继续关注!

  12. 空白usart_init ()

    Ucsrb = (1 << rxen) | (1 << txen);

    //使用8位字符大小
    stickline ((1 < = ursel) and (1 < = uczs0) and (1 < = uczs0)), colorred;

    这部分我做错了,你能帮我一下吗

    • 该查询与该项目无关。有变频器可用,但您的查询和应用不清楚。

分享你的想法和评论

请输入您的评论!
请在这里输入你的名字