提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议。
提示2:您可以免费复制,修改和商用本项目,请注明锐米原创。
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 [email protected]
LoRa GPS 定位器广泛应用于:车辆,畜牧,儿童,老人,资产等位置追踪,App 实时显示位置和运动轨迹。
物联网 Arduino LoRa LoRaWAN GPS 定位器
如下图所示,App 实时显示 LoRa GPS 定位器的纬度和经度数据
据统计,每年走失老人约有50万人,每年走失儿童几千人,人员定位追踪关乎民生幸福。
自 2004 年,美国堪萨斯州为 880 万头牛实时监控,畜牧定位追踪步入数字化管理。
自 2018 年集装箱达到 300 万个,对这些资产的定位追踪日趋重要。
LoRa GPS 定位器,App 实时显示位置和运动轨迹。它功耗低,电池续航时间长;免流量费,运营成本低;组网灵活,用户按需自主部署基站;成本低,硬件物料批量生产仅 ¥80。
LoRa GPS 定位器可以应用在:车辆,畜牧,儿童,老人,资产等位置追踪。
相比传统的产品,LoRa GPS 定位器具备的优点为:
本项目开源设计 LoRa GPS 定位器的核心—软件和硬件,用户选择一个漂亮的外壳和电池,即可组成一个产品。
同时,简介了 LoRa 网络组件,轻松构建一个商用的物联网。
LoRa 扩展板 x 1 采购链接
Arduino UNO x 1 采购链接
GPS模块 x 1 采购链接
天线 x 1 采购链接
杜邦线 x 4 采购链接
LoRa网关 采购链接
LoRaServer 下载链接
LoRaApp 下载链接
Arduino IDE 下载链接
这是专为 Arduino 而设计的 LoRa 扩展板,既可以安装在 Arduino UNO 上,也能使用杜邦线连接到 Arduino Pro Mini。
它能达到空旷 10km 的通信距离,休眠电流仅 1.3uA。精心设计的软件库,使其开发极为容易:
LoRa.write("123", 3);
if (LoRa.availabe()) {
len = LoRa.read(buf, MAX_LEN);
}
Arduino UNO 是最常用的开发板,它便宜简单,接线方便。
GPS 模块 NEO-7N,精度高,功耗低,体积小;支持温启动/热启动,快速定位;兼容 3.3/5V 电平。
470MHz 胶棒天线,增益 3.5dB,特别适合中国 LoRa 频段范围(470~510MHz)。
如下图所示,使用公对母杜邦线连接 Arduino、GPS模块。
Arduino | 杜邦线 | GPS模块 |
---|---|---|
3.3V | 红 | VCC |
GND | 黑 | GND |
6 | 黄 | TXD |
7 | 绿 | RXD |
实物图
如下图所示,通过 App 可以实时显示 LoRa GPS 定位器的经纬度数据。
为此,需要配置如下的网络组件:
如下图所示(实物拍摄),Arduino LoRa+ 的低功耗可达 1.4uA,这不仅是行业第一的超低功耗,而且达到了器件极限 ArduinoLoRa 休眠极限 1.4uA
编译本工程需要添加 LoRa 和 TinyGPSPlus 驱动库,下载这 2 个库:
LoRa 驱动库
TinyGPSPlus 驱动库
使用 Arduino IDE 打开工程,点击"Sketch -> Include Library -> Add .ZIP Library…"
Arduino 的 zip 库安装路径一般为:C:\Users\Administrator\Documents\Arduino\libraries
Arduino 的代码简洁,容易理解,下载链接
#include
#include
#include
#define GPS_RX_PIN 6 // Arduino_PIN_6 <-> GPS_TX
#define GPS_TX_PIN 7 // Arduino_PIN_7 <-> GPS_RX
lora LoRa;
TinyGPSPlus GPS;
SoftwareSerial gpsSerial(GPS_RX_PIN, GPS_TX_PIN);
void setup()
{
Serial.begin(115200); // for LoRa Node
gpsSerial.begin(9600); // default Baud Rate of NEO-6M GPS module is 9600
}
void loop()
{
double latitude, longitude;
double array[2]; // latitude, longitude
// This sketch displays information every time a new sentence is correctly encoded.
while (gpsSerial.available() > 0)
{
GPS.encode(gpsSerial.read());
if (GPS.location.isUpdated())
{
latitude = GPS.location.lat();
longitude = GPS.location.lng();
array[0] = latitude;
array[1] = longitude;
LoRa.write(array, sizeof(array));
delay(10000); // 10 seconds
}//if
}//while
}
批量生产的一些技术挑战:尺寸,成本,功耗,烧录,升级。
我们为您准备好解决方案:低成本快速开发LoRa终端:从1到10000