项目简介
本项目是基于Arduino语言的单通道LoRaWAN网关的概念验证实现,在Wemos D1 Mini上完成测试,采用HopeRF RFM95W收发器。该项目支持多种类型节点,如TeensyLC和Arduino Pro - Mini,具备WiFi连接功能,拥有Web服务器、DNS服务等。支持ABP和部分OTAA功能,可向服务器发送状态更新和消息转发,还提供简化WiFi配置和WebSocket通信功能,适用于智能家居、物联网等项目。
项目的主要特性和功能
网关功能
- 节点支持:支持ABP节点(TeensyLC和Arduino Pro - mini),以及TeensyLC和Arduino Pro - Mini的部分OTAA功能(针对SF7和SF8)。
- 频率与调制:支持SF7、SF8,可在可配置的频率和扩频因子上监听,暂不支持SF7BW250调制、FSK调制。
- 服务器通信:能向服务器发送状态更新(心跳包)和PULL_DATA消息,可同时向两个服务器转发消息并读取数据,具备DNS支持用于服务器查找,NTP支持用于与互联网时间服务器进行时间同步。
- Web服务:支持Web服务器(默认端口8080),用于显示状态和调试信息,可通过网页配置网关连接的WiFi网络。
- 配置灵活:大部分用户可配置的设置都在ESP - sc - gway.h文件中,可设置扩频因子、服务器信息、网关身份参数等。
WiFi与WebSocket功能
- WiFi配置简化:使用WiFiManager库,可在Arduino设备上创建可配置的访问点,用户通过浏览器界面输入WiFi凭据,简化WiFi配置过程。
- WebSocket通信:利用arduinoWebSockets库,可在Arduino设备上实现WebSocket客户端或服务器,通过WebSocket协议与服务器进行双向通信,实现数据的实时传输。
安装使用步骤
安装依赖库
在Arduino IDE中安装以下库: - Time库(http://playground.arduino.cc/code/time) - Arduino JSON库 - SimpleTimer库 - WiFiManager库 - Streaming库 - AES库(取自ideetron.nl) - Time库
配置网关
连接WiFi
使用WiFiManager功能,网关会进入接入点模式,标准接入点名称为“ESP8266 Gway”,密码为“ttnAutoPw”。通过手机或电脑连接该接入点,在浏览器中访问http://192.168.4.1,指定要连接的WiFi网络和密码。网关重置后将连接到指定网络。
编辑配置文件
编辑ESP - sc - gway.h文件,配置以下内容: - 扩频因子(_SPREADING) - 服务器信息(_THINGPORT、_THINGSERVER、_TTNSERVER、_TTNPORT) - 网关身份参数(_DESCRIPTION、_EMAIL、_PLATFORM、_LAT、_LON、_ALT) - 已知WiFi接入点数组(wpa)
运行项目
- 将代码上传到Wemos D1 Mini。
- 运行index.html文件(注意不能使用https),网页将通过WebSocket连接到网关。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】