该IoT2050应用程序的任务是通过无线电收集数据分散并传输它。 LPWAN技术远距离(LORA)用于此目的。 Iot2050用作Lorawan Gateway。来自事物网络或堆栈社区版本的全局,免费的Lorawan(远程广泛区域网络)用作网络服务器。本手册描述了网关的软件和硬件结构(本手册中未解释端设备(例如传感器)的配置和功能,因为它取决于应用程序的个人目的):

应用程序需要以下硬件组件:
您还可以在订单列表中查看所有各个零件。
Simatic Iot2050的Arduino UNO界面用于集成IC880A浓度器。为此目的,需要一个适配器屏蔽层,该屏蔽层结合了PIN分配。浓缩器提供5V。
此应用程序中使用的适配器屏蔽是自制的。所需的组件可以从订单列表中获取。有关结构的更多信息,请参见项目文件(.pro),示意图文件(.sch)和布局文件(.kicad_pcb)。
Lorawan浓缩器IC880A是一种多通道高性能发射器/接收器模块,旨在同时使用多个通道上的不同传播因子同时接收多个Lora数据包。浓缩器模块IC880A可以作为该网关的完整RF前端集成到网关中。
下图显示了Lorawan网关的完整硬件结构。为了将天线(2 DBI偶极天线863-870MHz与RP SMA)与IC880A模块相连,使用了U.FL来反向SMA适配器。将浓度器与适配器屏蔽层一起插入Iot2050的Arduino Uno接口。

以下软件用于本手册:
有关IOT2050的首次调试,请参考设置。您可以在Simatic Iot2050论坛上获得更多帮助。
完成设置后,必须为系统执行更新,并且必须安装GIT 。为此执行以下命令:
sudo apt-get update
sudo apt-get install git
通过腻子建立SHH连接并使用以下命令:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable SPI on IO10-IO13" -> "Enable"
Use ESC to exit the iot2050setup


克隆Github的最新版本的Lora Basics™站点,请使用以下命令:
cd /home
git clone https://github.com/lorabasics/basicstation.git
现在,必须对iot2050进行调整的setup.gmk文件,以存储工具链的正确目录。为此,请使用以下命令在编辑器中打开文件:
cd /home/basicstation/
nano setup.gmk
使用密钥组合CTRL+C可以在纳米编辑器中显示线规范:

第55-66行必须用#和第68-72行评论为以下内容:
CC=/usr/bin/gcc
LD=/usr/bin/ld
AR=/usr/bin/ar
OD=/usr/bin/objdump
OC=/usr/bin/objcopy
此外,第76行必须如下编辑:
export LD_LIBRARY_PATH=/usr/local/lib
保存并使用以下命令关闭文件:
CTRL+X -> to exit editing
Y -> to save the changes
Enter -> to confirm the filename
要构建包装货车站,请在目录/home/basicstation/ ::
make platform=rpi variant=std
收集基本电台后,出现了一个名为build-rpi-std的新文件夹,其中有四个子文件夹。您可以在子文件bin中找到编译的二进制station 。
除非另有说明,否则以下命令和操作始终在此目录( /home/basicstation/build-rpi-std/bin/ )中执行。
基本站需要一些配置,这些配置是在文件station.conf指定的。将现成的文件站复制到目录中(提示:工具WINSCP可用于传输文件)。
Lora Basics™电台需要与Lorawan®网络服务器(LNS)一起提供。对于此示例,使用了带有端口8887的堆栈社区版服务器。这是在文件tc.uri中指定的。将现成的文件tc.uri复制到目录中。
这需要根证书。以下命令可用于获得证书并创建文件tc.trust :
curl https://letsencrypt.org/certs/isrgrootx1.pem.txt -o tc.trust
您还可以使用另一个根证书,该证书需要将其插入tc.trust文件中,而没有字符<> :
-----BEGIN CERTIFICATE-----
<insert root certificate here>
-----END CERTIFICATE-----
每次打开时,必须重置带有SX1301基带芯片的IC880A模块。但是,此重置不是由芯片的HAL执行的。因此,写了一个python脚本是为了在外部进行。将Python脚本IC880A_RESET.PY复制到目录中。之后,必须将数字I/O引脚4设置为输出,因为这被用作重置PIN:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable GPIO" -> Set PIN 4 as output
Use ESC to exit the iot2050setup

下一步是添加一个执行Python脚本的Shell脚本。该脚本将在二进制station的开始后稍后执行。将现成的文件reset_gw.sh复制到目录中。在此Shell脚本中,调用了以前创建的用于集中器硬件重置的Python脚本。现在需要提供以下命令的脚本可执行权利:
chmod 755 reset_gw.sh
要在服务器上获取Gateway的EUI进行注册,需要启动程序station一次(执行尚未完全功能功能):
./station
网关的EUI由IOT2050的MAC地址组成,并在启动站后显示在控制台输出中:

可以使用密钥组合CTRL+C停止应用程序。
最后,要使用Things Stack Community Edition授权网关,必须将API密钥存储在名为tc.key的文件中。为此,网关必须在Things Stack Community Edition上注册。这在以下步骤中进行了解释:登录网页后,选择了该区域。之后,可以添加新的网关。为此,必须输入唯一的网关ID,以及上图中的网关EUI。另外,选择该区域的频率计划。此外,可以选择网关的状态是否公开可见。所有必需的配置如下图:

注册新网关后,必须生成一个API密钥以进行授权。在生成密钥之前,将其分配一个名称。此外,它具有与网关服务器一起链接到网关的个人权利,用于数据交换。创建API键后,必须紧急复制和存储它,因为它之后被加密,因此不再可见。


使用以下命令构建tc.key文件并使用先前复制的API密钥,而不是xxx :
export LNS_KEY="xxx"
echo "Authorization: Bearer $LNS_KEY" | perl -p -e 's/rn|n|r/rn/g' > tc.key
这完成了基本站的安装和配置。现在可以从命令手动启动该站:
./station
如果安装和身份验证成功,电台启动,并且网关显示在Things stack Community Edition的connected中:

您可以在Things stack网站上收到更多信息 - 添加网关。
将station的shell脚本start.sh复制到目录中。然后必须提供该脚本可执行的权利:
chmod 755 start.sh
将现成的Systemd服务文件IOT-2050-LORA-GATEWAY.SERVICE复制到目录/etc/systemd/system 。更改为该目录,请使用以下命令:
cd /etc/systemd/system
现在可以手动启动服务文件并使用以下命令进行测试:
sudo systemctl start iot2050-lora-gateway.service
成功启动服务和电台后,可以通过以下命令终止它:
sudo systemctl stop iot2050-lora-gateway.service
要启用服务的自动座,请使用命令
sudo systemctl enable iot2050-lora-gateway.service
下一次重新启动后,每个启动都将启动网关。
网关现在可以使用。现在可以通过Things Stack Community Edition将End设备添加到应用程序中,然后通过通往服务器的网关传输数据。在这里,您可以找到一些可能的终端设备。此处描述了如何在服务器上添加终端设备
节点红色用于可视化收集的数据。 Web编辑器可通过IOT2050和端口1880的IP地址访问。默认情况下,Node-RED在示例映像上在AutoStart中。要访问它,请在连接到IoT2050的PC上打开一个浏览器,然后打开http://<IP of the IOT2050>:1880/ 。
现在flow.json文件可以导入到node-red:
Menu -> Import -> Select file for Upload

节点必须按以下方式调整:
MQTT:在“连接”选项卡中插入服务器地址和事物堆栈的端口。订阅所有消息将主题设置为# 。

输入您的用户名和MQTT-API-KEY作为密码。您可以在应用程序的集成分配中生成此API-KEY:



解析节点:在函数解析节点中,必须调整不同的device_id (取决于应用程序):

流程描述:要处理传入消息,首先创建一个JavaScript对象。然后,将上行链路解析在功能解析节点中,以提取每个端设备的各个消息。另外,节点扩展到三个输出。因此,将每个消息分配给输出,并代表最终设备。使用仪表板库和量规节点,然后可以单独内置在仪表板中。
前构建流程显示了解析节点中三个末端设备的组合的示例。必须根据应用程序和事物网络中的设置对ID进行调整。
仪表板:要显示数据,现在可以安装并单独配置仪表板调色板:
Menu -> Manage Palette -> Install Tab -> Search and install the given libraries
完成:要下载流到IoT2050的流量单击按钮Deploy
打开Node-red的仪表板打开url http://<IP of the IOT2050>:1880/ui
感谢您对贡献的兴趣。任何人都可以在问题部分中自由报告错误,不清楚的文档以及有关此存储库的其他问题。此外,每个人都可以自由使用拉动请求提出对此存储库的任何更改。
如果您以前尚未签署SIEMENS贡献者许可协议(CLA),则该系统将在提交拉动请求时自动提示您这样做。这可以通过CLA助手的在线平台方便地完成。 CLA签名后,如果所有其他测试阶段成功,您的拉请请求将自动清除并准备合并。
请阅读法律信息。