基于ESP或ESP8266 单通道Lorawan网关硬件制作

软件代码设计资料下载链接》》

基于 Comresult PCB 的单通道网关

介绍

这是 ESP8266 LoRa 网关的最新版本。基于 ESP8266 mcu 的 LoRa 网关在过去几年里有了很大的发展。您想构建一个小型网关并保持尽可能多的 GPIO 引脚可用,Hallard 板是无与伦比的。另一种解决方案是 Comresult 制造的电路板。该 PCB 比 Hallard 的大,但可以放入标准 IP56 盒中。如果您使用更传统的 PCB,请确保至少 DIO0 和 DIO1 连接到 Wemos 上的引脚。这样的板如上所示。

使用的引脚必须(!)在 ESP-sc-gway.h 文件中定义和描述,网关才能工作。

限制

全功能网关能够在随机信道上同时接收多个具有不同扩频因子的 LoRa 数据包。1 通道网关没有执行所有这些操作的性能。它与传感器发送的 LoRa 数据格式有点兼容,但它没有实现 LoRa 规范的“至少支持 3 个频率”部分,因此不兼容。
与其较大的兄弟相比,1 通道网关具有以下限制:

  • 仅 1 通道(频率):因此网关不会接收通过其他频率发送的消息。如果您在生产中没有任何其他网关,我建议您为此目的使用通道 0。 

裸板

  • 将引脚焊接到 Wemos D1-mini 板上。
     

  • 将 ESP 适配器板推入其中一个实验面包板(因此焊接时它会冷却引脚)。
  • 将天线 SMA 连接器焊接到天线引脚附近,然后连接中心引脚和接地引脚(底部)。
  • 按照下面“连接”表中的指示,使用小段电线连接 RFM 和 ESP。

我还没有找到一个不错的便宜盒子来装网关,但这可能不会持续很长时间。

RFM95 引脚输出

网关板上两个器件的引脚分配如下:

ESP8266的pin out如下(注意:各种ESP8266器件之间的pin out存在差异)

 

Com结果

ComResult PCB 是裸板解决方案的下一个版本,并使用相同的引脚定义。请确保用线将 dio1 连接到电路板上的 D2(并将 dio2 连接到 D3/GPIO0,以便稍后将网关用作节点)。

您在上面看到了一张最新版本的 ComResult 板的图片。请不要连接 ESP8266 的 D2 引脚和 RFM95 的 dio1 引脚以及可选的 D3 引脚和 dio2 引脚的 2 根电线。

连接

对于裸板解决方案,需要进行的连接如下:

RFM95 pin ESP8266 pin
3.3V VCC 3.3V
GND GND
MISO D6 GPIO12/MISO
MOSI D7 GPIO13/MOSI
SCK D5 GPIO14/CLK (*)
NSS D8 GPIO15/CS
RESET *nc
DIO0 D1, GPIO5
DIO1 D2, GPIO4
DIO2 D3, GPIO0 (**)

* 看起来不必连接复位引脚。它仅在设置时用于读取芯片标识
**当前版本的网关不需要此连接,但对于下一个版本或其他用途更通用

可以看到,ESP8266 的 reset 和 GPIO0 都没有用到。不连接最后一个使 ESP8266 网关更稳定,闪存和正常模式之间的行为是相同的。

Hallard

Carles Hallard 设计了一个非常小的电路板,可用于构建您自己的网关。这些电路板可从 pcbs.io 获得 abs 将在世界任何地方免费运送 5 件。

在左上角,您可以看到将连接 dio0、dio1 和 dio2 的 3 个二极管焊接到 GPIO15 的位置。

Hallard 板与裸板或 ComResult pcb 略有不同,因为它将通过 3 个二极管共享 dio0、dio1 和 dio2 以及相同的 GPIO 引脚。如果您想使用此 PCB 构建节点,这需要对 LMIC 软件进行小的改动,如果您喜欢使用最新版本的网关,则确实需要在网关上进行一些额外的工作。

连接

对于裸板解决方案,需要进行的连接如下:

RFM95 pin ESP8266 pin
3.3V VCC 3.3V
GND GND
MISO D6 GPIO12/MISO
MOSI D7 GPIO13/MOSI
SCK D5 GPIO14/CLK (*)
NSS D0 GPIO16/CS
RESET *nc
DIO0 D8, GPIO15 (**)
DIO1 D8, GPIO15 (**)
DIO2 D8, GPIO15 (**)

* 看起来不必连接复位引脚。仅在setup时用于读取芯片标识
** 在上图位置焊接小二极管是相当困难的!此外,一旦将 ESP8266 焊接到该板上,您就再也无法到达二极管位置。所以(!)确保在继续使用该板之前焊接所有 3 个二极管(但至少 2 个)。

可以看到,ESP8266 的 reset 和 GPIO0 都没有用到。不连接最后一个使 ESP8266 网关更稳定,闪存和正常模式之间的行为是相同的。

 

软件

该软件目前正在开发中,并且很可能永远都在开发中。为了使这个 ESP 版本更可靠和更实用,RaspberryPI 版本已经添加了一些内容。但是,仍然可以包含一些功能,例如动态设置 SSID 和密码(ESP 将充当接入点,以便您的 PC 可以连接到它,并设置 SSID 和密码)。

预计 TTN(和其他公司)将在 2017/2018 年的某个时间段发布低价的完整 Lora 网关。到那时,单通道网关将为那些喜欢在家里安装网关进行测试或演示的人提供很多好处。

Wifi管家

网关的用户界面将使它更有用。毕竟,对于我们这些没有 Linux 或类似背景的人来说,大多数完整的 Lora 网关的价格很贵。

域名系统

ESP 库支持开箱即用的 DNS 主机名。显然 DNS 功能在 mcu 上很难,并且可能导致崩溃和看门狗重置,我决定只获取一次 LoRa 路由器的 IP 地址,并从那一刻起在程序中使用该 IP 地址。

时钟功能是使用NTP实现的。一旦有了 IP 连接,我们就会尝试连接到时间服务器以获取当前时间。通过这种方式,我们可以知道自上次打开设备以来该设备运行了多长时间,并且我们可以在必要时计时。

网络服务器

由于 ESP8266 不是 Linux 机器,因此它没有本地磁盘存储,至少不是开箱即用的。它还无法像使用 RaspberryPI 那样建立 SSH 连接。我们仍然想知道设备的运行情况,以及它可以正常运行多长时间。如果我们查看网关运行的时间,则后者很容易衡量。如果那个时间是在我们插入网关​​之后,它可能遭受了 Watchdog 重置并从那以后重新启动。

有机发光二极管

在过去的几个月里,有几个人试图让我相信在单通道网关中支持 OLED 的价值。所以我从网关的软件版本 4.0.8 开始支持 OLED。

因此,尽管我并不总是相信它的用途,但我已将 OLED 代码包含在网关软件中。目前,在运行时和初始化后,代码在 _loraModem.ini 文件中执行。因此,当通过空中接收消息时会直接调用它。这使得它可以快速响应传入的消息,但同时会使中断中的执行时间更长,这可能会导致意外的异常/看门狗重置。

 

(由于 OLED 的刷新率,并非所有文本都可读)

 

如果发生这种情况,请考虑仅填充统计缓冲区并在用户时间的 loop() 函数中获取最新值。

用于 OLED 的引脚是用于 SDA 的 pin4/D2 和用于 SCL 的 pin5/D1。这些引脚可免费用于 Hallard 配置。

 以上只介绍了硬件的制作 软件代码设计资料下载链接》》

猜你喜欢

转载自blog.csdn.net/tianqiquan/article/details/130664044