版本6.2.0,数据:1月29日,2020年
作者:M。Westenberg([email protected])
版权所有:M。Westenberg([email protected])
版权所有。该程序和随附的材料可根据本发行的MIT许可条款提供,可在https://opensource.org/licenses/mit-license.php上找到。
该程序的分布是希望它将有用的,但没有任何保修;即使没有对特定目的的适销性或适合性的隐含保证。
由Maarten Westenberg维护([email protected])
首先:请阅读此文件和文档,它应包含您需要获取的大多数信息。不幸的是,我没有时间跟进所有电子邮件,并且由于这些页面上包含在内的大多数信息等信息,我希望您有时间阅读它们并发布任何剩余的问题。
我确实有10多个WEMOS D1迷你板运行,有些我自己建造了,在Hallard上有10个以上,在ComResult上有3个和4个ESP32板。它们在此代码上都没有问题。但是,我确实发现,良好的焊接接头和布线会带来一切不同,因此,如果您得到无法解释的重置/错误,请再次查看布线。
该存储库包含ESP8266单个通道Lorawan网关的概念验证实现。启动版本5.2还支持TTGO(和其他)的ESP32。该软件实现了标准的LORA网关,具有以下例外和更改:
该Lora网关不是一个完整的网关,而是仅实现一个通道/一个频率网关。完整网关支持的最小频率量为3,大多数支撑9或更多频率。该软件最初是作为概念验证的,以证明在欧洲几乎每个Lora节点中都存在的单个低成本RRFM95芯片可以用作使用SX1301芯片的廉价全门通道的便宜替代品。
由于该网关的软件通常会在项目的开发阶段或演示情况下使用,因此该软件是灵活的,并且可以根据环境或客户需求轻松配置。与软件进行交互的方法有两种:
单个通道网关的完整文档位于Thess4U.github.io上,请查看网关章节下的硬件指南。
单个通道网关已使用Hoperf RFM95W收发器在带有WEMOS D1 mini的网关上测试。对868版LORA进行了测试,并在433 MHz上进行了一些测试。该网关再次测试的Lora节点是:
该代码已根据哈拉德(Hallard)和ComResult董事会在至少8个单独的网关板上进行了测试。我仍在研究ESP32引脚和功能(预计很快)。
建议以尽可能少的修改来编译并启动单个通道网关。这意味着您应该尽可能多地使用2个配置文件中的默认设置,仅更改WiFi设置的SSID/密码,以及在Loramodem.h中使用的ESP8266的PIN。本节描述了获得工作网关所需的最低配置,该配置比使用网页进一步配置了。
通过图书馆经理:
现在您的网关应该运行。使用网页将“调试”设置为1,您应该能够在串行显示器上看到包装。
有两种更改单个通道网关配置的方法:
在您有选择的地方,选项2更加友好和有用。
configgway.h文件包含用户配置的网关设置。所有人都通过#Define语句设置其定义。通常,将#Define设置为1将启用该功能并将其设置为0将将其禁用。
同样,可以通过使用#Define设置其值来初始化某些设置,但可以在Web界面中的运行时更改。对于某些设置,用#Define禁用该函数也将从Web服务器中删除该功能。
有关内存使用情况的注意:ESP8266具有可用于程序空间和SPIFFS文件系统的大量内存。但是,可用于堆和变量的内存仅限于约80K字节(对于ESP-32,这更高)。建议用户关闭未使用的功能来节省内存使用情况。如果堆降至18个kbytes以下,则某些功能可能不会像预期的那样行事(在极端情况下,该程序可能会崩溃)。
confignode.h文件用于将teh wifi接入点和已知传感器的结构设置为1通道网关。必须在编译时设置已知的WiFi访问点(SSID和密码)。
当网关不仅用作网关,还用作调试目的时,使用的不仅可以指定传感器节点的名称,而且还可以解密某些节点的消息。
用户可以确定USB控制台是否用于输出消息。当将_dusb设置为0时,禁用了串行的所有输出(实际上串行语句不包含在代码中)。
#define _dusb 1
定义网关支持的操作类别。支持A类并包含电池传感器的基本操作。
B类包含信标/电池的操作模式。网关将向连接的传感器发送OU信标,使其能够同步下行链路Messagaging。
C类(连续)操作模式包含对可能无法电池操作的设备的支持,并且会始终聆听网络。结果,这些设备的延迟也比A类设备短。 C类设备不取决于电池电量,并且将扩展接收窗口,直到下一个传输窗口。实际上,只要这种转移持续,只有传输才能使设备流产。 C类设备无法进行B类操作。
#define _class“ a”
所有设备都将从A类设备开始,并可能决定“升级”到B类或C。网关也可能支持B类,这是A类的超集。注意:仅支持A类
我们支持开箱即用的两个引脚配置:hallard和Compresult。如果使用这两个中的一个,只需将参数设置为正确的值即可。如果您的PIN定义不同,请更新Loramodem.h文件以反映这些设置。 1:哈拉德2:ComResult Pin ut 3:ESP32 PIN OUT 4:其他,在Loramodem.h中定义您自己的定义
#define _pin_out 1
在正常情况下,以下参数shoudl设置为0。它确实允许系统对SPIFFS文件系统进行格式化。
#define spiff_format 0
将_spreading因子设置为所需的SF7,SF8 -SF12值。请注意,此值与_CAD的值密切相关。如果启用了_ cad,则网关未使用_spreading的值,因为它启用了所有字样因子。
#Define _Spreading SF9
请注意,使用的默认频率为868.1 MHz,可以在loramodem.h文件中更改。建议用户不要更改此ETTING,而仅使用默认的868.1 MHz频率。
通道活动检测(CAD)是LORA RFM95芯片的函数,以检测传入消息(活动)。这些传入的消息可能会出现在任何广为人知的传播因素SF7-SF12上。通过启用CAD,网关可以接收任何传播因素的消息。
实际上,它用于正常操作中,告诉接收器另一个信号已经使用了通道。
CAD功能以(小)价格出现:芯片将无法接收非常弱的信号,因为CAD功能将使用芯片的RSSI寄存器设置来确定它是否收到信号(或仅是噪声)。结果,未收到非常弱的信号,这意味着网关的范围将在CAD模式下减小。
#define _cad 1
从4.0.6版本中,如果设置A_OTA打开,则网关允许在空气上更新。 Over Air软件需要一次设置4.0.6版本的USB到网关,然后该软件启用该软件以供使用。
第一个版本仅使用IDE支持OTA函数,这在实践中意味着IDE必须与网关相同的网络段。
注意:您必须在某个地方网络上使用Bonjour软件(Apple)。大多数平台都可以使用版本(例如,iTunes for Windows发货)。 Bonjour软件使网关能够使用MDNS解析OTA设置的网关ID,然后下载端口显示在IDE中。
TODO:OTA软件尚未(尚未)与Wifimanager软件一起测试。
#define a_ota 1
此设置启用Web服务器。尽管Web服务器本身需要大量内存,但它极大地有助于配置Gatewayat运行时并检查其行为。它还提供了最后收到消息的统计信息。 A_REFRESH参数定义了Web服务器是否应每x秒续订一次。
#define a_server 1 //仅在设置此定义时才定义本地Web服务器
#define a_refresh 1 // Web服务器是否可以刷新是/否? (是的,还可以)#define a_serverport 80 //本地网络服务器端口
#define a_maxbufsize 192 //必须大于128,但足够小以工作
A_REFRESH参数定义了我们是否可以在WebBrowser中设置刷新是/否设置。通常将WebBrowser中的设置作为默认设置,但我们可以将定义放在“ 1”上,以在WebBrowser中启用该设置。
为了让网关在预设扩展因子上发送下行链路消息,并且在默认频率上,您必须将_strict_1CH参数设置为1。请注意,当未将其设置为1时,网关将使用后端服务器设置的频率和扩展因子响应下行链路请求。目前,TTN响应RX2时段中SF9-SF12的下行链路消息,以及频率为869.525MHz和SF12(根据LORA标准在RX2 TimesLot时,根据Lora标准)进行了响应。
#define _strict_1ch 0
建议您不要更改此参数的默认设置。
通过设置OLED,您将系统配置为在I2C上使用OLED面板。某些面板由SPI和I2C使用,其中I2C是Solwer。但是,由于SPI用于RFM95收发器通信,因此您会使用其中一种使用其中一种,因为它们无法与该软件一起使用。而是选择一个在I2C上工作的OLED解决方案。
#定义OLED 1
为OLED定义了以下值:
定义这一点(== 1)时,我们将收集每个消息的统计信息,并将其输出到Spiffs文件系统。我们确保每个文件都使用许多文件,以固定数量的统计记录。 REC号告诉我们每个统计文件中允许有多少条记录。一旦REC号高于允许的记录数,我们就会打开一个新文件。一旦文件数超过数量统计文件的数量,我们就会删除最古老的文件并打开一个新文件。在GUI屏幕顶部选择“日志”按钮时,所有rthe Log Files均为USB串行设备。这样,我们可以检查比安装GUI屏幕或串行输出的记录要多得多。
#Define Stat_log 1
设置I2C SDA/SCL引脚是在OLED #Define之后在Configgway.h文件中完成的。标准ESP8266使用引脚D1和D2用于I2C总线SCL和SDA线,但用户可以更改这些线路。通常没有必要。 OLED功能可在_loramodem.ino文件中找到,并且可以调整以显示其他字段。当收到消息时调用功能(!),因此电位会增加ESP的不稳定性,因为这些功能可能需要比预期更多的时间。如果是这样,请关闭OLED函数或在用户时间(而不是中断)中显示的主循环()中构建。
网关允许同时连接到2台服务器(大多数Lora Gateways Do BTW)。您必须连接到至少一个标准的LORA路由器,以防您使用Things Network(TTN),而不是确保设置:
#define _ttnserver“ router.eu.thethings.network”
#define _ttnport 1700
如果您设置自己的服务器,则可以使用自己的路由器URL和您自己的端口指定:
#define _thingserver“ your_server.com” // lora udp.js服务器程序的服务器URL
#define _thingport 1701 //您的UDP服务器应收听此端口
为您的网关设置身份参数:
#Define _Description“ Esp-Gateway”
#define _email“ [email protected]”
#define _platform“ ESP8266”
#define _lat 52.00
#define _lon 5.00
#define _ alt 0
可以将网关用作节点。这样,报告了本地/内部传感器值。这是CPU和内存密集型功能,因为传感器消息涉及EAS和CMAC功能。
#Define GatewayNode 0
在Ponfignode.h配置文件中以下下面,可以设置网关节点的地址和其他LORA信息。
在WiFi上配置网关的最简单方法是使用WiFimanager函数。此功能可以从开箱即用。 Wifimanager将将网关置于访问点模式,以便您可以作为WiFi AccessPoint连接到它。
#define _wifimanager 0
如果启用了WiFi Manager,请确保如果网关处于访问点模式和密码,则确保定义访问点的名称。
#define ap_name“ ESP8266-GWAY-THINSES4U”
#define ap_passwd“ ttnautopw”
网关使用的标准访问点名称为“ ESP8266 GWAY”,其密码为“ ttnautopw”。使用手机或计算机绑定到接入点后,请在浏览器中访问htp://192.168.4.1,并告诉网关,您希望它要连接到哪个WiFi网络,并指定密码。
然后,网关将重置并绑定到给定的网络。如果一切顺利,您现在已经设置了,ESP8266将记住它必须连接的网络。注意:只要网关绑定到存在的访问点,网关将不再使用已知访问点的WPA列表。如有必要,您可以删除Web服务器中的当前访问点,并在电源周期中迫使其再次读取WPA数组。
#如果GatewayNode == 1
#define _devaddr {0x26,0x01,0x15,0x3d}
#define _appSkey {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
#define _nwkskey {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
#define _sensor_interval 300
#endif
内置网络服务器可用于显示状态和调试信息。此外,网络服务器允许用户在运行时更改某些设置,例如调试级别或打开和关闭CAD功能。可以使用以下URL访问:http://:80在启动时,路由器给ESP8266的IP在哪里。可能是192.168.1.xx Web服务器显示各种配置设置以及为设置参数提供功能。
可以使用网络服务器设置以下参数。
该软件取决于多个软件,ESP8266的Arduino IDE是最重要的。该程序还使用了其他几个库,请确保您将这些库与IDE安装:
为了方便起见,在库目录中的此GitHub存储库中也可以找到库。请注意,它们不是ESP 1渠道网关的一部分,并且可能拥有自己的许可。但是,这些库不是单渠道网关软件的一部分。
有关构建和连接说明,请参见http://things4u.github.io。
以下依赖关系对于单个通道网关有效:
以下内容仍在我的愿望列表中,要列入单个通道网关:
此存储库中网关草图的源文件可根据MIT许可证提供。此存储库中包含的库仅为方便起见,并且都有自己的许可证,也不是ESP 1CH网关代码的一部分。