基于物联网的车辆跟踪系统,使用NodeMCU和Arduino IDE
扫描二维码
随时随地手机看文章
如今,安全是我们最关心的问题,无论是与我们的资产,如车辆,房屋还是我们的孩子有关。在这种情况下,GPS跟踪设备是非常有用的。它们可以很容易地用于跟踪车辆或资产的实时位置,以防发生任何紧急情况,如盗窃、事故等。他们也可以和孩子们在一起,追踪他们的位置。
在这里,我们正在建造同样的GPS跟踪设备,从任何地方监控车辆的实时位置。在这里,ThingSpeak物联网云将用于存储车辆经过的位置历史。我们之前使用NodeMCU ESP8266与GPS接口,并在网页上显示位置坐标。在这个物联网车辆跟踪系统中,我们还将在网页上显示一个链接,该链接将带用户到显示车辆位置的谷歌地图。
组件的要求
•ESP8266 NodeMCU - 1
•NE06M GPS接收机- 1
•16*2 LCD - 1
•16*2 LCD I2C模块- 1
•电路试验板
•连接器
•电力供应
NEO6M GPS模块
NEO-6M GPS模块是一种流行的GPS接收器,内置陶瓷天线,提供强大的卫星搜索能力。该接收器能够通过跟踪多达22颗卫星来感知位置,并确定世界上任何地方的位置。通过板载信号指示灯,可以监控模块的网络状态。它有一个数据备份电池,当主电源意外关闭时,模块可以保存数据。
GPS接收器模块内部的核心是u-blox的NEO-6M GPS芯片。它可以在50个频道上跟踪多达22颗卫星,并且具有非常令人印象深刻的灵敏度水平-161 dBm。这款50通道u- blox6定位引擎拥有不到1秒的首次定位时间(TTFF)。支持波特率4800 ~ 230400bps,默认波特率为9600。
特点:
•工作电压:(2.7 ~ 3.6)V DC
•工作电流:67ma
•波特率:4800-230400 bps(默认9600)
•通讯协议:NEMA
•接口:UART
•外部天线和内置EEPROM。
GPS模块输出:
VCC:模块输入电压引脚
GND:接地引脚
RX、TX:与单片机的UART通信引脚
车辆跟踪系统电路图
以下是基于物联网的车辆监控系统的电路图:
为物联网车辆跟踪系统设置ThingSpeak帐户
根据上述电路图成功完成硬件后,现在是时候建立物联网平台了,其中存储了GPS坐标。在这里,我们使用ThingSpeak将纬度和经度数据存储在云上,并以图形方式可视化GPS数据。
ThingSpeak是一个非常流行的基于物联网的云平台,我们以前使用ThingSpeak构建了许多基于物联网的项目。下面是设置ThingSpeak云的步骤。
第一步:注册ThingSpeak
首先,如果你以前没有Mathworks帐户,请登录并创建一个新的免费Mathworks帐户。
第二步:登录ThingSpeak
用你的凭证登录ThingSpeak,然后点击“新频道”。现在填写项目的详细信息,如名称、字段名称等。这里我们必须创建两个字段名,如Latitude和Longitude。然后点击“保存频道”。
步骤3:记录凭据
选择已创建的通道并记录以下凭据。
通道ID,它在通道视图的顶部。
编写一个API密钥,可以在通道视图的API Keys选项卡上找到。
车辆跟踪系统的NodeMCU编程
成功完成硬件连接和ThingSpeak设置后,现在是时候对ESP8266 NodeMCU进行编程了。下面给出了完整代码的逐步解释。
要使用Arduino IDE将代码上传到NodeMCU,请遵循以下步骤:
1. 打开Arduino IDE,然后进入File - >Preferences - >Settings。
2. 在“附加板管理器URL”字段中键入,然后单击“确定”。
3. 现在转到Tools > Board > Boards Manager。在“单板管理器”窗口中,在搜索框中输入ESP8266,选择最新版本的单板,单击“安装”。
4. 安装完成后,进入“Tools ->Board ->”,选择“NodeMCU 1.0(ESP-12E Module)”。现在您可以使用Arduino IDE对NodeMCU进行编程。
在Arduino IDE中设置好NodeMCU后,将代码上传到NodeMCU中。完整的代码在本教程的末尾给出;这里我们一步一步地解释代码。
通过在代码中包含所有所需的库文件来启动代码,例如ESP8266WiFi.h用于ESP8266板,LiquidCrystal_I2C.h用于LCD, Wire.h用于I2C通信等。
在这里,增加了ThingSpeak.h库来使用ThingSpeak平台与NodeMCU和TinyGPS++.h库用于使用GPS接收器模块获取GPS坐标。这个库可以从这里下载。
对于16x2字母数字LCD使用I2C模块,请使用LiquidCrystal_I2C类进行配置。这里我们必须传递地址、行号和列号,在我们的示例中分别是0x27、16和2。
现在,声明网络凭据——即SSID和密码。需要将NodeMCU连接到互联网。
现在,声明GPS模块的连接引脚,它是默认波特率,在我们的例子中是9600。
接下来,声明ThingSpeak帐户凭据,如通道号和之前记录的写入API。
然后声明TinyGPSPlus和wiificlient类的对象。为了使用WiFiServer属性,服务器对象被定义为端口号80。
在setup()中,声明所有输入引脚和输出引脚。然后在LCD上打印欢迎信息,该信息将在项目初始化期间显示。
要将NodeMCU连接到互联网,请调用WiFi。开始并传递网络SSID和密码作为参数。使用WiFi.status()检查网络连接是否成功,连接成功后,在LCD上打印带有IP地址的消息。
然后使用保存的凭证连接到ThingSpeak平台。为这个事情说话。使用Begin。
在loop()中,encode()用于确保接收到有效的GPS语句。当encode()返回“true”时,一个有效的句子刚刚改变了TinyGPS对象的内部状态。当encode()返回true时,调用两个函数displaydata()和display网页()。
在displaydata()函数中,isValid()方法用于确保有效的纬度和经度接收,并将它们存储在各自的变量中。然后将这些数据发送到ThingSpeak,使用setField()方法设置字段,并使用writeFields()方法将这些数据发送到云。
在display网页()中,编写HTML代码,并使用client.print()以字符串格式发送到客户端。此HTML代码包含一个超链接,单击该链接将带您到指向履带式车辆位置的谷歌地图。
基于物联网的车辆监控系统测试
连接硬件并上传代码后,只需接通电路,您将在LCD上看到一些通知消息。现在打开web浏览器,输入NodeMCU的IP地址。将有一个链接,将带你到谷歌地图与车辆的当前位置显示在上面的图片。Wi-Fi连接成功后,LCD上会显示NodeMCU的IP地址。下面给出的视频演示了完整的工作。
同时,ThingSpeak还将记录车辆的经度和纬度,并将其显示在下图中:
本文编译自iotdesignpro