分享

自制实时GPS追踪器的教程

 笨鳥先飛龍 2022-08-10 发布于广东

描述

步骤1:先决条件

GSM模块-SIM800L

非常小巧,易于使用

能够使用移动互联网(GPRS)

便宜

GPS模块-Ublox NEO6M

也很小

很好地处理了工作

一个微控制器-可以是任何东西-您可以使用著名的Arduino Uno或Nano释放一些空间

电池 -我使用18650电池作为主要电源,并且只有电源(标称3.7V)

电池座-为什么? -因为焊接18650电池由于热量非常危险。

DC-DC升压转换器5V升压模块-必须具备,因为我使用的Arduino需要5V

工具,因此可以方便地使用一些基本的东西:

电线,烙铁,试验用面包板

步骤2:主要概念

主要概念如下:

它由3个部分组成:

设备-具有正确的GPS坐标并且可以远程连接到服务器并向其发送数据

网络服务器-可以接收传入数据-存储它-并为其他客户端提供服务

平台-我们可以在其中查看坐标-理想情况下,它现在应该是移动应用程序或网站

步骤3:SIM800L模块

我在模块方面遇到了困难。

我想从一些特性和参考开始。

根据数据表:

它在3.4V-4.4V之间工作

它可以发送短信,与其他电话进行语音通话,甚至连接到Internet!

我们可以通过AT命令与之通信!

在峰值时间它可以使用高达2A的电流! 注意:由于它的低采样率,您可能无法用万用表进行测量

我的经验是,低于3.8V的SIM800L不能

有关更多信息,请访问:数据表

因此,您的工作是提供 至少3.8V 连接至模块(理想情况下为4V),该电源可输出至少2A 。

在最终设备中使用该模块之前,建议您与您的设备建立通信SIM800L和您的计算机,以确保您的设备正常工作。

首先,插入SIM卡,如上图所示。

要将其与PC连接,可以使用USB到TTL转换器或Arduino。

现在,我选择Arduino。

连接SIM800L VCC和GND连接到电源端子。

将TX连接到Arduino的第10个数字引脚,RX连接到arduino的第11个数字引脚。

下载代码,我已完成此步骤的链接。

使用该代码,您可以在串行监视器上发送命令并将其取回。

一些简单的命令:

AT-》如果连接正常,则返回OK。

ATD + 123456789; -》拨打给定的电话号码。注意:不要忘记以分号结尾。

AT + CPIN? -》返回SIM卡状态(是否锁定)

如果要发送短信,则需要以特殊字符结束输入,可以使用'$’符号完成。

对于其他有趣的命令,我建议您阅读。

有各种命令,请熟悉它们,它们确实非常有用。

有红色状态LED,告诉您SIM800L正在进行什么操作。

64 MS开启-800MS关闭-SIM800L未注册到网络。

64 MS开启-3000MS关闭-SIM800L已注册

64 MS ON-300MS OFF-SIM800l处于GPRS模式

如果SIM800L 在大约8-10次闪烁后保持重启状态,可能是由于缺少高效的电源 。

如果在AT后仍然无法正常工作,请检查接线!如果您有万用表,请检查电线的导通性。

检查电线和焊点的连接!该模块仅在闪烁时起作用。

步骤4:Ublox Neo 6m

某些特性

最大电压:3.6V-我使用Arduino的3.3V引脚为其供电

最大电流消耗为67mA-因此您可以通过arduino为其供电

温度范围:-40-85摄氏度(我想它会适合您)

我订购的设备带有图片上显示的天线,我只是将其插入相应的插槽中。

设备出现信号时,会闪烁蓝色LED。

首先,如果不知道,请检查GPS在这里的工作方式。

打开设备并找到3颗卫星后,它会像上面一样向Arduino发送很多逗号分隔的值。

为了帮助我们完成工作,我们可以使用一些外部库来解析这些数据,以使其更易于阅读。

您可以使用TinyGps库或NeoGPS库。我使用第二个是因为它更轻。

要进行测试,您必须将电源引脚连接到arduino 3.3V和GND。

下载此代码,并将其与GPS结合使用。 RX-》数字引脚10,TX-》数字引脚11

注意:不要忘记在室外使用该模块,最好是在没有云的情况下。

半分钟后,设备应闪烁并输出GPS坐标! :)

一旦您知道您的SIM800L和GPS模块可以正常工作,就可以继续下一步。

第5步:电路

电路如图所示。

因此,3.4V-4.2V 18650电池是主要电源。 Sim800L直接从中获取能量。为了提高电路的稳定性,它们之间应并联一个电容器。

选择电容器时,应选择低ESR电容器。

一个5V步进-升压转换器将电池电压升至5V(因为Arduino使用5V,所以需要ir)。

5V电源轨在此处连接到Nano。如图所示,Sim800L和Neo6m与Nano相连。 (Sim Tx-D10,SimRx-D11; NeoTX-D3,NeoRX-D4)

D12连接到RST,因此我们可以通过编程方式重新引导系统(SIM800L除外)。注意:这种重启方法可能不是最佳实践)

最后,两个LED连接到了NANO,因此我们可以告诉用户是否发生任何错误。

第6步:代码

该代码已附加到Instructables上,或查看github。

您可以对其进行修改以使其适合您的需要,

waitUntilResponse();或使用其他人的代码。辅助函数来自他的代码。

简而言之,在设置功能中,我们需要启用SIM800L模块的GPRS连接。我们知道如果LED快速闪烁是否成功。 (setupGPRSConnection())

在循环函数中-每15秒调用一次sendData()函数-该请求具有HTTP请求

我使用查询字符串将数据推送到Web服务器格式如下:

ip地址/file.php?key=value&key=value例如http://./log.php?lat=xy&lon=xy

如果发生任何错误,相应的LED将亮起。 (SIM,GPS)

第7步:Web服务器

对于我们来说,一个简单的轻量级Web服务器就足够了。

您可以选择以下选项:

您可以使用公司的远程服务器,您可能需要定期支付费用。

您可以使用您自己的计算机。我只建议将其用于测试,由于能源浪费,安全问题,它并非全天候24/7运行。

您可以使用小型计算机,例如 Raspberry PI 。轻巧,便宜,不会消耗太多电量。

我尝试了第二种和第三种选择,它们效果很好。好吧,主要目标不是此教学的服务器,但我向您提示一些建议。

如果您使用PC ,则可能使用Windows。如果您是我,我将在其上安装Apache或XAMPP服务器。

XAMPP中已经包含PHP,此外它还附带HTML,Perl和数据库管理系统。使用PHP,可以创建动态服务器。如果要使用世界各地制造的本地服务器,则需要为PC分配静态IP并进行一些端口转发。关于静态IP的有用教程:

以及整个portforwarding内容:

如果您有Raspberry ,使用它是一个好习惯。您可以熟悉Linux命令,并以24/7全天候运行自己的服务器。

操作系统是Raspbian Jessie,无头设置(无键盘,显示器)-我通过SSH连接在计算机上对其进行了控制

我使用Putty登录到Raspberry。不要忘记更改您的帐户密码,以使其他人无法登录您的Pi。默认值为:pi,密码:raspberry。

我使用sqlite3安装了lighttpd Web服务器。在这里找到好的教程:

我在服务器代码中主要使用PHP。使用PHP,您可以接收数据,读取/写入数据库-将查询编码为json格式等。。..本教程将为您提供很多有关如何使用PHP管理数据库的帮助。

您可以在github上也可以在server_files文件夹中查看我的代码。

当然,如果要远程访问,则必须在路由器上启用端口转发到Pi。

第8步:结束/体验

尚待完成一个机箱。

我的经验是,系统运行情况还不错。但是有待改进的稳定性。

如果跟踪器无法使用我所附的代码,请不要担心。尝试确保SIM800L和NEO 6M正常工作。您可以自由修改我的代码,或者寻找更好的代码。我只是希望,我可以向您展示一个示例,说明如何完成此项目。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多