基于Seeedstudio Wio Terminal制作的LoRa GPS定位追踪器。坐标信息通过LoRa通讯从发送方发送到接收方Wio Terminal,并在Wio Terminal上处理后,可以实时查看发送方在地图上的坐标。
项目物料清单
所用硬件清单:
关于Wio Terminal
关于LoRa
LoRa是LPWAN通信技术中的一种,由Semtech采用和推广的一种基于扩频技术的超远距离无线传输方案。以下是Semtech对LoRa的定义:
LoRa (Long Range,远距离)是一种调制技术,与同类技术相比,提供更长的通信距离。调制是基于扩频技术,线性调制扩频(CSS)的一个变种,具有前向纠错(FEC)。LoRa显著地提高了接受灵敏度,与其他扩频技术一样,使用了整个信道带宽广播一个信号,从而使信道噪声和由于使用低成本晶振而引起频率偏移的不敏感性更健壮。LoRa可以调制信号19.5dB低于底噪声,而大多数频移键控(FSK)在底噪声上需要一个8-10dB的信号功率才可以正确调制。LoRa定义了通讯栈中较低的物理层(PHY),可为不同协议和不同网络架构所用-如Mesh、Star、点对点等等。
项目特色功能
项目最终形态
Wio Terminal接收装置正面
Wio Terminal接收装置背面
信号发射装置
项目如何运作
Grove GPS模块可以采集信号发射装置的GPS坐标信息,Grove DHT 11模块则会采集温度和湿度信息,并通过Grove LoRa模块将其发送到信号接收装置。每个数据包发送的时间间隔可以自主设定,这个项目中我设为了15秒。
基于Wio Terminal的信号接收装置,在收到由信号发射装置发送的信息后,会开始处理信息。GPS坐标和其他信息会被提取。信息通过Wi-Fi连接发送,并接收地图的静态图像。最后,通过TJpg解码器库,将位置信息呈现在Wio Terminal的屏幕上。Wio Terminal的 A,B,C键分别用于放大、缩小和返回默认地图设置。按下五向开关的中间键后,信号发射装置的蜂鸣器则会响起,继而可以更准确定位信号发射装置所在位置。
项目所需要的软件和代码库
项目使用Arduino IDE作为编程平台,并安装了以下代码库:
项目组成-信号发射装置
信号发射装置所用的模块如下所示连接至Arduino Pro Micro主板。因为我手上没有Seeeduino XIAO,我使用了Arduino Pro Micro微型主控。你也可以使用其他微控制器。尺寸越小越好。
为了保护所有硬件模块,我使用了现成的外壳。使用锂电池和移动电源模块是为了方便给信号发射装置供电。
现成的外壳
项目组成-基于Wio Terminal的信号接收装置
信号接收装置中,Wio Termianl与Grove LoRa模块的链接如下图所示。(使用Grove LoRa模块时需要提供硬件序列号)
借助串行通信串口(SERCOM),可以轻松地将Grove LoRa模块连接到Wio Termianl左侧的I2C Grove接口。
我使用了锂电池和移动电源模块给Wio Termianl供电,也可以使用Wio Termianl电池机箱。
项目源代码下载:https://github.com/idreamsi/LoRa-GPS-Tracker
备注
1. 该项目使用由osm-static-maps的Openstreetmap.org静态图像。因为osm-static-maps是一个demo,其使用的Heroku服务器可能不稳定。
2. 谷歌地图服务需要收费,因此在项目中我使用了免费的OpenStreetMap地图。
3. 这个项目测试中,LoRa定位追踪器没有使用天线,其可用通讯范围为300-500米,如果加上更好的天线,其可用通讯范围可能会更长。
4. GPS连接时间有时可能需要几分钟。
5. 使用Wio Terminal之前,一定要确保对其 WiFi 硬件进行更新。
6. 如果手上有尺寸更小的主控(比如Seeeduino XIAO),可以用上,这样可以大大缩减信号发射装置的尺寸。
LoRa GPS定位追踪器应用场景
ESP32的DAC函数可以实现真正的模拟输出。
ESP32 没有Arduino输出 PWM 的 analogWrite(pin, value) 方法,取而代之的 ESP32 有一个 LEDC 来实现PWM功能。
本文档作为UNO R4 WiFi的技术概览,您将找到一系列资源和指南链接,帮助您开始下一个项目。
Arduino OneButton库是一个用于简化按钮操作的库,它可以轻松地处理按钮的单击、双击和长按等操作。适用于Arduino开发板以及ESP32等其他基于Arduino的开发板。
本文从Arduino Uno入手,看看怎样在这个"简单"的8bit单片机搭建一个属于自己的bootloader
许多硬件厂商都希望自己的开发板能被Arduino IDE集成开发环境所支持。这里就以小脚丫开发板所使用的开发包为例,介绍一下第三方开发包的制作方法。
ESP32 可以通过 SDMMC 和 SPI 两种方式读取SD/TF卡数据。
本文将展示如何使用 ESP32的两个内核同时执行两个操作。
专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。