如何将GPS数据发送到手机
扫描二维码
随时随地手机看文章
电子学的主要应用之一是它在地理定位方面的应用。在本教程中,我们将了解如何通过互联网将GPS数据发送到手机或其他设备。
关于NEO-6m
NEO-6M GPS模块是一种受欢迎的GPS接收器,用于电子和DIY项目,因为它的价格实惠。要了解更多信息,请查看我不久前写的这篇文章。
硬件
NEO-6m接线如下:
注意:在某些版本的ESP32中,GPIO 16和GPIO 17被标记为RXD2和TXD2。记住,Neo-6m上的TX会转到ESP32上的RXD2。
您也可以使用I2C接口连接OLED显示器
最后,将Neo-6m使用在开阔的区域,可以看到天空(靠近窗户,阳台,户外等),以获得最佳连接。
ESP32模块非常通用,可以通过WiFi连接到各种不同的平台来发送和接收数据。在本教程中,我们将使用Arduino的物联网云平台(这是完全免费使用)与ESP32。有关Arduino IoT Cloud的更详细概述,请查看此文档。
什么是“东西”?
Arduino物联网云中的事物代表一个物理设备(如Arduino板)以及您想要通过互联网监控或控制的变量和属性。
你需要什么
•一个免费的Arduino云帐户
•兼容板(如Arduino Uno R4 WiFi、MKR1000、Nano 33 IoT、ESP32或ESP8266)
•安装在计算机上的Arduino Create Agent(上传代码)
•互联网连接和USB连接线
在Arduino物联网云上创建事物的步骤
1. 登录Arduino物联网云
•转到cloud.arduino.cc,用你的Arduino帐户登录。如果你没有,你可以免费注册。
2. 点击“创建内容”
•登录后:
•转到物联网云选项卡。
•点击仪表板上的“Create Thing”按钮。
•这将生成一个可以稍后重命名的新Thing。
3. 连接设备
•在“设备”部分下:
•点击“选择设备”
•选择“设置新设备”
•选择ESP32
•保存设备ID和密钥
•按照提示通过USB连接您的板
注意:如果您使用的是第三方板,Arduino Cloud会要求您安装特殊代理并选择板和端口。
4. 添加变量
变量是物联网逻辑的核心。它们表示Thing发送或接收的数据。
•点击“添加变量”,然后:
•为变量命名(例如temperature)
•选择一个类型(例如float, bool, int, String)
•设置其权限:只读(例如传感器值)或读写(例如LED状态)
决定是根据变化进行更新还是定期更新
注意:在物联网云的免费版本中,您只能向一个事物添加5个变量。
这个项目的变量
注意:选择CloudLocation来存储这个项目的经纬度数据。
5. 配置网络凭据
•选择你的东西,进入“设置选项卡”
•输入您的SSID, WiFi密码和密钥(从设备)
•这些凭证在安装过程中被安全地上传到电路板上。
注意:SSID是大小写敏感的,所以键入它完全是。
6. 编写和编辑草图
•Arduino Cloud会自动为你的东西生成草图。您可以:
•打开“Sketch”选项卡
•直接在浏览器中编辑代码(Web Editor)。
•您可以从这里直接上传代码。
7. 带有仪表板的监视器
•转到“仪表板”选项卡。
•添加小部件(如开关、图形、地图、仪表等)。
•将它们连接到您的东西中的云变量(按照提示操作)。
8. 向手机发送数据
•下载Arduino IoT Cloud Remote(支持iOS和Android)
•使用您的Arduino IoT Cloud帐户登录。
•选择您的仪表盘&您准备好了!
代码
让我们一段一段地看看代码是怎么做的:
库和初始化
•TinyGPS++:从GPS模块中解析NMEA句子。
•U8g2lib:控制OLED显示。
•h:保存你的Arduino IoT云变量和设备配置。
注:所有库均预装在物联网云平台上。
这将通过I2C初始化SH1106 OLED(通常是经典0.96 OLED显示器的最佳选择)。
•在ESP32上设置UART2,使用GPIO16和GPIO17进行GPS通信。
设置()函数
•启动与GPS和OLED的通信。
•在OLED上显示启动信息。
•初始化物联网云变量并连接到网络。
循环()函数
•保持ESP32与云仪表板的连接和同步。
读取GPS数据
•读取新的GPS数据并更新有效的内部变量。
重新连接处理
•如果2秒后GPS没有收到数据,设备就会通过OLED屏幕提醒用户。
OLED显示器- printAll()
这个函数做两件事:
•更新云变量,如位置、高度和速度。
•在OLED显示屏上显示如下:
注意:显示仅在有新数据可用时更新,避免闪烁或带宽使用。
本文编译自hackster.io