0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用ESP12E板来获取位置的实时坐标

科技观察员 来源:circuitdigest 作者:Rishabh Jain 2022-09-21 15:45 次阅读

你有没有想过在不使用任何 GPS 硬件的情况下获取设备的位置?听起来不错!!是的,只需使用 NodeMCU ESP 板就可以获取位置坐标,而无需任何额外的硬件。在这里,我们将使用ESP12E 板来获取我们位置的实时坐标。由于Google 的 Geolocation API ,这成为可能。那么让我们看看这个 Geolocation API 是如何工作的,以及我们如何使用它来获取位置。

谷歌地理定位 API 的工作原理是什么?

众所周知,用于智能手机Android 操作系统由 Google 提供支持。通常,大多数手机一直都启用 GPS 和 Wi-Fi,因此 Google 不仅可以跟踪我们的位置,还可以跟踪附近的 Wi-Fi 网络。例如,如果您在启用 Wi-Fi 和 GPS 的街道上行走,那么您的手机会不断扫描附近的 Wi-Fi 网络以及 Google 所做的事情,它会保存 MAC 地址和该 Wi-Fi 网络的名称以及我们手机的位置。

poYBAGMqwLOAeZ56AAExeaRFoIU797.png

因此,根据手机接收到的信号强度,Google 会估计特定 Wi-Fi 网络的位置,并将该数据保存到数据库中。因此,下一次,如果有人通过相同的 Wi-Fi 网络并且没有在他的手机中启用 GPS,他仍然可以根据该特定 Wi-Fi 网络的位置获取手机的位置。

poYBAGMqwK-APz-WAAFnuivCUak011.png

因此,附近的 Wi-Fi 网络数量越多,位置就越精确。这就是 Google 地理定位的工作原理。有关更多信息,您可以查看Geolocation API 的文档。

现在,我们将在 NodeMCU ESP12E 开发板中使用 Geolocation API 的魔力,并尝试获取位置坐标。在这里,我们将使用Arduino IDE 的串行监视器来查看坐标。

从 Google Geolocation 获取 API 密钥

要使用 Google 的 Geolocation 服务,我们需要一个 Google 帐户和 API 密钥。按照以下步骤获取 API 密钥。

第 1 步:-转到Google 开发者页面,使用您的 Google 帐户登录并点击获取 API 密钥,然后点击开始。

poYBAGMqwKuAaGWOAAJDBuliOa4247.png

第 2 步:-通过单击开始,将打开一个新窗口,如下所示。

pYYBAGMqwKiAFrrbAAGXVXAvvNs226.png

点击Maps and Places for Pick Product 选项,然后点击continue。

第 3 步:-为您的项目命名,然后单击Next。

poYBAGMqwKSACjSwAAMD0RUkpWw781.png

第 4 步:-下一步是设置帐单。您必须保存您的银行卡详细信息。虽然这项服务免费一年,但这只是为了检查你不是机器人。一年后,未经您的许可,它不会从您的帐户中扣除金额。因此,只需填写详细信息并继续并单击下一步。

第 5 步:-之后,您将获得您的 API 密钥。复制此密钥并将此密钥保存在记事本上。我们的代码中需要这个键。

pYYBAGMqwJ6Aa2nyAAE_J1gU1GM405.png

现在,你们都准备好继续编码部分了。

编程 NodeMCU 以获取 GPS 数据

在这里,我们将使用Arduino IDE 对 ESP12 进行编程。因此,请确保您已下载 ESP8266 开发板文件。

对于编码部分,我们需要三个库ESP8266HTTPClient 、 ArduinoJson 、 ESP8266WiFi。


然后,我们为 Wi-Fi 名称、Wi-Fi 密码、API 密钥初始化变量并初始化代码中使用的其他变量。

字符 ssid[] = "********"; // 您的网络 SSID 名称
char pass[] = "********"; // 你的网络密码
String key = "your api key";
...
..

双纬度 = 0.0;
双经度 = 0.0;
双精度 = 0.0;
在设置功能中,我们将 Wi-Fi 设置为站模式并断开与之前连接的 AP 的连接。

无效设置(){
序列.开始(9600);
Serial.println("开始");
WiFi.mode(WIFI_STA);
WiFi.disconnect();
延迟(100);
Serial.println("设置完成");

..
在循环功能中,我们将扫描所有附近的 Wi-Fi 网络并提取这些网络的 MAC 地址和强度。然后,我们从提取的信息中生成 json 字符串并将其发送到 Google 云,作为回报,我们得到位置的坐标,即纬度、经度和准确度。准确性将取决于附近可用的 Wi-fi 网络数量。

int n = WiFi.scanNetworks();
Serial.println("扫描完成");
如果(n == 0)
Serial.println("没有找到网络");
别的
{
序列号.print(n);
Serial.println("找到网络...");

如果(更多文本){
Serial.println(""wifiAccessPoints": [");
对于 (int i = 0; i < n; ++i)
{
序列号.println("{");
Serial.print(""macAddress" : "");
Serial.print(WiFi.BSSIDstr(i));
Serial.println("",");
Serial.print(""信号强度": ");
......
……
将最后给出的完整代码上传到板上并打开串行监视器。

您将看到您所在位置的坐标和准确性,如下所示。

pYYBAGMqwJeAfzn1AAGGbkFlin4408.png

现在,在您的智能手机中打开 Google 地图并输入以逗号 (,) 分隔的经纬度。如图所示,您将在地图上看到您的位置。

pYYBAGMqwJOAeYUlAAE1qpH4hjM322.png

因此,我们已经看到只需使用多功能 ESP12 而无需任何 GPS 模块即可轻松获取任何设备的当前位置。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GPS技术
    +关注

    关注

    0

    文章

    26

    浏览量

    10240
  • ESP
    ESP
    +关注

    关注

    0

    文章

    181

    浏览量

    33854
  • NODEMCU
    +关注

    关注

    13

    文章

    289

    浏览量

    21273
收藏 人收藏

    评论

    相关推荐

    esp12e得到了错误的ADC读数是为什么?

    我遇到了一个非常烦人的问题:我有一个使用 esp12e 的项目,在某些上我得到了错误的 ADC 读数(使用 system_adc_read SDK 2.0.0 NONOS),即使我将 ADC 引脚接地,我也可以读取一个值 ~10mV。我试图改变WiFi模式(所有模式),
    发表于 07-11 06:19

    基于ESP12E Dev Kit的NodeMCU开发教程

    基于ESP12E Dev Kit的NodeMCU开发教程
    发表于 05-26 09:11

    ESP12F/ESP12E wifi模块的分线板

    描述ESP12F/ESP12E-突破该 PCB 是 ESP12F/ESP12E wifi 模块的分线板。使用此 PCB,您可以轻松测试 ESP12
    发表于 08-08 06:05

    为什么无法与ESP8266 ESP12E通信?

    你好。我正在尝试一些非常简单的事情,即将草图上传到我的一个 ESP12e。 直到几周前,我才能够毫无问题地做到这一点。现在,我收到以下消息:代码:全选esptool.py v2.8Serial
    发表于 02-23 08:11

    如何从UNO转移到NODEMCU ESP12E

    我有一些小型私人项目在 Arduino UNO 上工作,带有显示器和按钮,我想将它们移动到 NODEMCU ESP12E,以便能够扩展可用性,在物理按钮旁边有虚拟按钮,由智能手机、网络服务器或
    发表于 02-23 07:41

    使用NodeMCU ESP8266 ESP12E,Arduino IDE报错的原因?

    您好,我正在使用 NodeMCU ESP8266 ESP12E 我的 Arduino IDE 出现以下错误 请帮忙 请告诉我我做错了什么? “无法打开 COM3”- 您没有 COM3 或 COM3 已被另一个应用程序打开。
    发表于 05-08 07:08

    ESP12E的能耗问题求解

    我无法找到一种方法发现我的 ESP12E 的能耗。我正在使用睡眠模式进行测试,我想知道我的设备呈现的消耗,即使有一个睡眠模式消耗表也是如此。我有一个万用表,但我不确定将它连接到哪里。
    发表于 05-17 08:59

    为什么ESP12E串口通信失败?

    我有一个简单的电子电路,带有 ESP12E (esp8266) wifi 模块、PIC18F27K40、RFM95W Lora 模块和 LM317(用于上电 3.3 V 输出)。 我有一个非常奇怪
    发表于 05-23 06:30

    如何在不将ESP12EESP12ESP07模块焊接到某个地方的情况下对其进行闪存?

    您是否曾经想过在不将 ESP12EESP12ESP07 模块焊接到某个地方的情况下对其进行闪存? 现在你可以 !无需任何特殊零件或工具即可 DIY 适配器!
    发表于 05-23 07:14

    求助,ESP12E的天线可以剪掉吗?

    我的项目需要尽可能小的外形,我目前使用 ESP12 作为微控制器。我的应用不需要WiFi,所以我的问题是:是否可以简单地用小锯子将ESP12E的天线部分锯掉,使尺寸变小?剪掉天线会不会导致ESP12
    发表于 05-29 08:52

    ESP12EESP12F PCB封装及原理图免费下载

    本文档的主要内容详细介绍的是ESP12EESP12F WIFI模块PCB封装及原理图免费下载。
    发表于 04-17 08:00 235次下载
    <b class='flag-5'>ESP12E</b>和<b class='flag-5'>ESP12</b>F PCB封装及原理图免费下载

    ESP12E上运行复合视频和8086PC-XT仿真

    你能否在ESP12E上运行具有640KRAM、80×25CGA复合视频和1.44MBMS-DOS磁盘的8086PC-XT仿真,而无需其他组件?
    的头像 发表于 03-30 17:33 2327次阅读
    在<b class='flag-5'>ESP12E</b>上运行复合视频和8086PC-XT仿真

    ESP12F/ESP12E开源分享

    电子发烧友网站提供《ESP12F/ESP12E开源分享.zip》资料免费下载
    发表于 07-25 09:01 9次下载
    <b class='flag-5'>ESP12</b>F/<b class='flag-5'>ESP12E</b>开源分享

    使用ESP12E的App控制RGB UV LED水族灯

    电子发烧友网站提供《使用ESP12E的App控制RGB UV LED水族灯.zip》资料免费下载
    发表于 01-30 09:43 0次下载
    使用<b class='flag-5'>ESP12E</b>的App控制RGB UV LED水族灯

    有用的ESP12E DEV原型扩展板

    电子发烧友网站提供《有用的ESP12E DEV原型扩展板.zip》资料免费下载
    发表于 02-01 09:39 1次下载
    有用的<b class='flag-5'>ESP12E</b> DEV原型扩展板