2020-03-01-花-1-小时,开源设计-LoRa-GPS-定位器
花 1 小时,开源设计 LoRa GPS 定位器
提示1:锐米所有 LoRa 产品严格遵循 国际标准的 LoRaWAN 协议 。
提示2:您可以免费复制,修改和商用本项目,请注明 。
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米
LoRa GPS 定位器
LoRa GPS 定位器广泛应用于:车辆,畜牧,儿童,老人,资产等位置追踪,App 实时显示位置和运动轨迹。
物联网 Arduino LoRa LoRaWAN GPS 定位器
运行效果
如下图所示,App 实时显示 LoRa GPS 定位器的纬度和经度数据
项目介绍
据统计,每年走失老人约有50万人,每年走失儿童几千人, 人员定位追踪 关乎民生幸福。
自 2004 年,美国堪萨斯州为 880 万头牛实时监控, 畜牧定位追踪 步入数字化管理。
自 2018 年集装箱达到 300 万个,对这些 资产的定位追踪 日趋重要。
LoRa GPS 定位器, App 实时显示位置和运动轨迹 。它功耗低,电池续航时间长;免流量费,运营成本低;组网灵活,用户按需自主部署基站;成本低,硬件可大规模批量生产。
LoRa GPS 定位器可以应用在:车辆,畜牧,儿童,老人,资产等位置追踪。
LoRa GPS 定位器_应用场景
相比传统的产品,LoRa GPS 定位器具备的优点为:
- 超低功耗,电池续航时间长
- 免流量费,运营成本低
- 自主组网,信号覆盖指定区域
本项目 开源设计 LoRa GPS 定位器的核心—软件和硬件 ,用户选择一个漂亮的外壳和电池,即可组成一个产品。
同时,简介了 LoRa 网络组件,轻松构建一个商用的物联网。
组件和材料
LoRa 开发板 x 1
GPS模块 x 1
软件和网络
LoRa网关
LoRaServer
LoRaApp
Arduino IDE
技术细节
元器件介绍
LoRa 开发板遵循 LoRaWAN 国际标准,兼容 SX130x 八通道和 SX127x 单/双通道网关,接入 loraserver
软硬件 100% 兼容 Arduino,借助全球开源软件降低开发成本,串口下载程序(无须仿真器)。
它能达到 空旷 10km 的通信距离,休眠电流仅 1.4uA 。精心设计的软件库,使其开发极为容易:
- 发送数据
LoRa.write("123", 3);
- 接收数据
if (LoRa.availabe()) {
len = LoRa.read(buf, MAX_LEN);
}
GPS 模块 NEO-7N,精度高,功耗低,体积小;支持温启动/热启动,快速定位;兼容 3.3/5V 电平。
硬件接线
如下图所示连接 LoRa 开发板和 GPS 模块。
LoRa 开发板 | 杜邦线 | GPS模块 |
---|---|---|
3.3V | 红 | VCC |
GND | 黑 | GND |
6 | 黄 | TXD |
7 | 绿 | RXD |
通信逻辑
如下图所示,通过 App 可以实时显示 LoRa GPS 定位器的经纬度数据。
为此,需要配置如下的网络组件:
行业第一的超低功耗—休眠仅 1.4uA
如下图所示(实物拍摄),Arduino LoRa+ 的低功耗可达 1.4uA,这不仅是 行业第一的超低功耗,而且达到了器件极限
Arduino 代码
编译本工程需要添加 LoRa 和 TinyGPSPlus 驱动库,下载这 2 个库:
使用 Arduino IDE 打开工程,点击" Sketch -> Include Library -> Add .ZIP Library… "
Arduino 的 zip 库安装路径一般为:C:\Users\Administrator\Documents\Arduino\libraries
Arduino 的代码简洁,容易理解,
- Arduino 的硬件串口分配给 LoRa 模块,它使用软串口连接 GPS 模块。
- GPS 模块有 PPS 指示灯:常亮=未实现定位,闪烁(0.1秒灭, 0.9秒亮)=定位成功。
#include <lora.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#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(57600); // 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
}
低成本批量生产
批量生产的一些技术挑战: 尺寸,成本,功耗,烧录,升级 。
我们为您准备好解决方案:
68747470733a2f2f626c6f672e63:73646e2e6e65742f6a69616e676a756e6a69655f323030352f:61727469636c652f64657461696c732f313034353439353039