当前位置:首页 > 物联网 > IoT设计分享
[导读]有没有想过你的手机软件是如何在驾驶时使用GPS定位你的位置的?这个问题的答案是,嵌入你手机中的一个小型GPS模块与卫星网络通信,以确定你手机的位置。在这个项目中,我们将了解GPS模块是如何工作的,我们将了解一种流行的GPS接收器模块NEO 6M,该模块与手机中使用的模块大小不同,但工作原理相同。通过使用GPS接收器模块和Thingspeak物联网平台提供的信息,我们将尝试在图表上绘制数据。除此之外,我们还将通过使用Thingspeak- Matlab可视化中的inbuild函数生成URL来可视化卫星视图地图上的位置(需要编码,在代码说明部分进行解释)。

有没有想过你的手机软件是如何在驾驶时使用GPS定位你的位置的?这个问题的答案是,嵌入你手机中的一个小型GPS模块与卫星网络通信,以确定你手机的位置。在这个项目中,我们将了解GPS模块是如何工作的,我们将了解一种流行的GPS接收器模块NEO 6M,该模块与手机中使用的模块大小不同,但工作原理相同。通过使用GPS接收器模块和Thingspeak物联网平台提供的信息,我们将尝试在图表上绘制数据。除此之外,我们还将通过使用Thingspeak- Matlab可视化中的inbuild函数生成URL来可视化卫星视图地图上的位置(需要编码,在代码说明部分进行解释)。通过使用这个URL,任何浏览器的任何人都可以跟踪它所连接的GPS设备的位置。如果你正在寻找一个简单的解决方案,你也可以看看NodeMCU GPS Webserver项目,它也非常类似于我们即将构建的。

组件的要求

•NEO 6M GPS模块

•节点单片机

•连接电线

GPS模块是如何工作的?

GPS是全球定位系统的缩写,是一种全球性的无线电导航系统。为了跟踪设备的位置,GPS跟踪系统使用全球导航卫星系统(GNSS)网络。该网络由一系列卫星组成,这些卫星使用微波信号传输数据,这些数据将被GPS接收器模块接收。

GPS卫星星座由24颗绕地球运行的GPS卫星组成。这些卫星的定位方式是,在任何时候,至少有6颗卫星处于地球表面任何地方的视线范围内。当涉及到GPS设备的精确定位时,该系统遵循一个简单的数学原理,称为三边定位。

例如,考虑卫星a。当您打开移动GPS时,它会接收卫星a的当前时间和位置。现在接收器通过计算信号的时间和速度(信号的速度等于光速)来计算到卫星A的距离。接收器现在知道它必须位于由卫星A的距离形成的圆上。现在,GPS接收器从另一颗卫星获得数据,假设是卫星B。通过使用卫星B提供的数据,它知道它必须位于这两个圆(由卫星A和卫星B组成)之间的交互点上。现在,它从第三颗卫星获取数据来精确定位。这种利用卫星的时间和位置等数据来确定你的位置的过程被称为三边定位。

NEO 6M GPS接收器模块

因此,现在在我们的项目中,我们将使用NEO 6M GPS接收器模块,它由50个通道组成。这些频道就像房间,每个频道可以容纳每个卫星的一个频率。这些信道通常是并行操作的,这使得接收机在移动时保持精度。首次定位时间(TTFF)是接收卫星信号和导航信号并使用该数据计算位置所需的时间。NEO 6M的TTFF在冷启动和热启动时为27秒,热启动时为1秒。

在工作条件方面,最大工作电压为3.6V,最小工作电压为2.7V。NEO 6M模块的平均供电电流为39mA。在一些模块中,有一个内置的3.3V稳压器。因此,我们可以将模块连接到5V以获得最大性能。在通信方面,该模块采用UART,可以方便地与任何MCU (Node MCU)进行通信。连接部分在电路图部分讨论。

测试Neo 6M GPS模块

要知道GPS模块是否工作,请按照如下电路图连接模块,并上传空代码。注意,如果您上传的是空代码,那么串行通信将使用nodeMCU的默认TX和RX引脚进行。要检查串行监视器上的数据,请相应地更改电路,即将GPS模块的RX和TX连接到NodeMCU的RX和TX,如下所示

上传空代码后,打开串口监视器。到目前为止,您应该看到屏幕上打印了一些值。等等,它们不是正确的值。如果您观察,您可以发现输出中缺少一些位。首先,模块需要一些时间才能给出正确的值。注意:如果GPS模块开始闪烁,则表示该模块正在接收值。下图显示了接收到的数据中缺少一些位的情况。

如果数据没有丢失位,则数据将如下图所示。

您看到的上述数据是用NMEA格式表示的数据。NMEA代表国家海洋电子协会。这种标准数据格式被所有GPS制造商所支持,就像计算机制造商的ASCII一样。

GPGSV -显示当前的GPS卫星

1 =此周期内该类型消息的总数

2 =留言号

3 =正在查看的sv的总数

4 = SV PRN号

5 =仰角,最高90度

6 =方位角,从真北000到359度

7 =信噪比,00-99 dB(不跟踪时为空)

8-11 =第二个SV信息

12-15=第三SV信息

16-19=第四个SV信息

GPGLL -地理定位,纬度和经度。例如:$GPGLL,4815.45,N,12311.12,W,215455,A

GPS跟踪器电路图

节点MCU与NEO 6M模块之间的连接非常简单。NEO 6M模块的VCC和GND引脚连接到面包板的正负电源轨,节点MCU的3v3和GND引脚连接到面包板的正负电源轨,如下图所示。NEO 6M的RX和TX引脚连接到节点MCU的D1和D2引脚。Node MCU采用USB供电方式。

设置Thingspeak

首先,如果你是一个新用户,注册一个thingspeak帐户。我们已经用Thingspeak构建了很多有趣的项目,你也可以去看看。

注册后,选择频道。选择通道后,选择“新建通道”。

选择新通道后,将加载下面的页面。输入详细信息和适当的字段名称,然后单击保存。

选择保存后,将加载下面的页面。现在选择选项API密钥

选择API密钥后,将加载以下页面。现在,记下通道ID,写键和读键。在nodeMCU编程中使用Write键,而在Matlab可视化程序中使用Read键。

之后,选择私有视图选项并单击Matlab可视化选项。

现在,下面的页面将被加载。不做任何更改,然后选择Create。

现在,您将加载一个页面,您可以在其中编写代码,使用纬度和经度在地图上指出位置。复制粘贴本文提供的代码,并更改所需的值(读取密钥和通道ID)。

检查“创建公共URL”框,以便任何人都可以使用此URL找到设备的位置。

接下来,我们需要两种不同类型的程序。一个代码处理从GPS模块获取数据,然后将数据传输到thingspeak。第二个代码处理使用发送给thingspeak的数据指向地图上的位置。第一个代码是用Arduino IDE编写的,而第二个代码是用thingspeak Matlab可视化编写的。

在进入代码解释之前,需要下载某些库,这些库有助于将原始数据(NMEA格式)转换为可理解的数据。首先,使用提供的链接下载tinyGPS库。接下来,通过在库管理器中搜索下载thingspeak库。下载MathWorks提供的那个。

NodeMCU程序读取GPS数据并发送给Thingspeak

完整的程序可以在本页底部找到,相同的解释如下。下面的代码片段用于包含库,这些库是我们的代码正常工作所需的,并且将GPIO引脚4和5设置为NodeMCU的RX和TX引脚。设置GPS波特率为9600。

以下代码仅在有来自GPS模块的传入数据时运行。代码对数据进行编码,如果编码后的数据有效,则考虑该数据,并进行进一步的计算以将NMEA数据转换为可理解的数据。下面的代码只向thingspeak发送纬度和经度值。

Matlab ThingSpeak可视化代码在地图上显示位置

现在,我们必须编写一个代码,它可以通过使用纬度和经度值在地图上指出位置,这些值被转移到thingspeak中。下面的屏幕截图显示了示例URL。

下面的代码获取最后10个值的值,并将它们定位在地图上。通过使用URL,该URL将在运行代码后可用。要更改值的数量,它需要考虑更改写在‘ NumPoints ’之后的值。

在下面输入您的MATLAB代码

下面的代码使用由nodeMCU提供的纬度和经度在地图上精确定位位置。

一旦您的编程完成,您的页面应该看起来像下面所示

通过使用提供的URL,我在web浏览器中得到了下面的图片。

Matlab可视化从字段中获取数据,然后在地图上定位它们。下图显示了绘制在字段上的数据,这将进一步用于Matlab可视化。

测试NodeMCU GPS跟踪器

一旦启动nodeMCU,串行监视器中看到的读数可能不正确。它需要一些有限的时间来得到正确的读数。如果GPS模块开始闪烁,您将知道读数是正确的。一旦nodeMCU与LAN连接,并且GPS数据有效,则该数据将被发送到thingspeak。您可以在Thingspeak的字段中查看正在更新的数据。通过使用我们在Matlab可视化中获得的生成的URL,我们可以从任何浏览器跟踪位置。

本文编译自iotdesignpro

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭