嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

6LoWPAN 网关加上 IBM IoT Foundation,让 SensorTag 立即变得令人满意

title

Weptech 网关和 IBM IoT Foundation 可加快 TI SensorTag 开发。

 Weptech 6LoWPAN IoT Gateway 提供了 2.4GHz 和 Sub-GHz 级射频,并且带有以太网功能和一个 ARM Cortex-M3 微控制器。凭借对 Contiki 边界路由器固件的开箱即用支持,使 SensorTags 与现有 IP 网络的集成变得非常简单。

第二代 TI SensorTag 具有对 Contiki 的支持,同时提供了一些示例应用程序,包括一个将传感器数据发布到 MQTT 代理的应用程序。在配置 IBM IoT Foundation Quickstart 代理的 IP 地址之后,几分钟之内即可开机运行并绘制实时传感器数据图形。

网关硬件与 IBM 云服务相互结合,可以快速评估先进的、基于标准的传感器网络解决方案。接下来,我们来了解一下其中涉及的步骤。

网络体系结构

title

网络体系结构简单,带有一个或多个通过 IEEE802.15.4 无线网络链接使用 6LoWPAN 的 SensorTag 并与边缘/边界路由器进行通信,该路由器可执行从 IPv6 到 IPv4 (NAT64) 的网络地址转换。这样就能允许 SensorTag(以及其他 6LoWPAN 设备)在本地局域网上并通过互联网连接至 IPv4 主机。

设置 6LoWPAN IoT 网关

title

我收到的网关包中包含一个 PCB 装配组件、引脚管座、可安装在桌面或墙上的外壳、橡胶动脚,以及一条用于闪存和供电的 USB 电缆。

在编写网关固件时,仍然需要顺着 TI SensorTag 演示向上追溯到 Contiki GitHub 库。但是包装中带有一张 Weptech 联系人的名片,通过该联系人可以获得最新的固件。

title

将网关插入到带有 Python 的计算机上的 USB 端口之后,只需重置板并按下重置旁边的按钮,即可运行与网关 CC2538 上的引导装入程序进行通信的脚本,以便使用最新的固件对闪存进行编程。

title

网关没有可用于配置的管理接口,可通过 DHCP 来获取 IPv4 地址。只需连接至网络并供电即可!

SensorTag 编程

title

首先,您必须确保已安装了合适的 ARM 工具链,并且有可用的 Contiki 源。有关如何设置软件环境的详细信息,请参见 TI Wiki。在目录 examples/cc26xx/cc26xx-web-demo 中可以找到 MQTT 示例。

在编写网关固件时,不支持 IPv6 桥接或其他任何通过有线网络来访问 SensorTag 的方法。因此,我在文件 project-conf.h 中禁用了 CoAP 服务器和网络 UART 以及 6LBR 客户端:

/* Enable/Disable Components of this Demo */

#define CC26XX_WEB_DEMO_CONF_MQTT_CLIENT 1

#define CC26XX_WEB_DEMO_CONF_6LBR_CLIENT 0

#define CC26XX_WEB_DEMO_CONF_COAP_SERVER 0

#define CC26XX_WEB_DEMO_CONF_NET_UART 0

MQTT 代理的 IP 地址在 mqtt-client.c 中配置。

title

以上所示未加注释的是 IBM 云服务的 IP 地址,而带有注释的则是在本地网络上的 Raspberry Pi 上运行的 Mosquitto 实例的 IP 地址 10.0.10.21(从点地址转换为十六进制,变成 0A000A15)。

另请注意,我必须将前缀从 64:ff9b::/96 更改为以上所示(10 字节的“00”,后跟两个“FF”),然后才能将其用于网关。

此时使用如下命令编译源代码:

make BOARD=sensortag/cc2650

重要的是指定板类型,如果您在将 SensorTag 装入闪存之后发现它什么作用都没有,则很可能是为错误的目标编译了固件。

到目前为止,将应用程序纳入 SensorTag 的最经济有效的方法是使用 Debugger DevPack。此工具可与 SmartRF Flash Programmer(仅限 Windows)或 CCS Uniflash(提供 Windows 和 Linux 版本)一起使用,这两种工具都可免费下载。

在 Linux 上安装 Uniflash 之后,我使用 sudo 启动了 GUI,这样就能检查并安装任何可用的更新。

title

随后,我与 Debugger DevPack 一起使用以将 SensorTag 装入闪存的命令是:

$ sudo /opt/ti/uniflash_3.4/uniflash.sh -ccxml ~andrew/SW/Contiki/CC2650F128.ccxml -operation Erase -program cc26xx-web-demo.elf

title

ccxml 文件描述了目标设备和调试探测器。我生成此文件的方法是运行 TI 的官方 IDE(即 Code Composer Studio,也可免费下载)、导出一个示例项目、更改项目设置以便可以使用 the Debugger DevPack(选择 XDS110 Debug Probe),然后保存此文件并查找更新后的 CC2650F128.ccxml 文件。

title

为方便起见,以下包含了该文件的内容:

但是请注意,软件和/或探测器以后可能会更新为使用不同的 CCXML 配置,而不是以上所示的配置。

对 SensorTag 编程之后,Debugger DevPack 断开了连接,并且标签上的绿色 LED 开始闪烁。接下来,我们看看它是否能够连接到网关。

确定设备 ID

title

Weptech IoT Gateway 上的简单网络界面允许您快速确定任何已连接 SensorTags 的 IPv6 地址。随后可以通过以下方法来构建 IBM Quickstart 云服务所需的唯一“设备 ID”:提取地址的最后三个字节,并在前面加上 00124b。以我的情况为例,标签的地址为:

fe80::212::4b00:78f:c203

可以转换为设备 ID:00124b8fc203

如果您有一个以上的 SensorTag,只需一次打开一个的电源并记下新的 IPv6 地址,然后打开下一个的电源。

IBM 物联网快速入门基础

title

确认 SensorTag 已连接至 6LoWPAN 网关并确定设备 ID 之后,即可进入 Quickstart 网页以立即访问实时传感器读数、开机时间和无线链接信号强度。

title

如果选择以上任何数据点,则可以按之前图像所示为其绘制图形。

IBM Bluemix

title

可以看到,Quickstart 允许通过小小的 SensorTag 来访问完整的众多数据。

但这只是开始,还可以从此处深入到在 IBM Bluemix 平台即服务 (PaaS) 上运行的应用程序,它基于 Cloud Foundry 并支持多种编程语言,包括 Java、Node.js、Go、PHP 和 Python。

Bluemix 目录还包括容器映像、大量可供选择的服务,尤其是 Node-RED 这种用于物联网的可视化布线工具。这样就允许为主机托管 IoT 应用程序快速设计原型,并且结合来自众多不同来源和来源类型的数据,同时执行处理并提供广泛的输出选择。

title

启动一个新的 Node-RED 实例只需要几分钟时间,一旦开始运行之后,只需要点击几次就能将自动生成的“数据流”从 Quickstart 剪切并粘贴到 Node-RED,这样即可通过调试节点来导入实时 SensorTag 馈送和输出传感器读数。可以在此处轻松修改数据流,以达到实施自定义逻辑和提供输出等目的。

结论

Weptech IoT Gateway 提供了一种用于桥接 6LoWPAN 无线网络和以太网的灵巧解决方案,极大地改善了使用 BeagleBone 运行 Linux 的解决方案,并且带有边缘路由器软件和 USB IEEE802.15.4 射频。目前仍然有一两项功能不受网关支持,要是有 IPv6 桥接等功能就更好了,但这些功能似乎已经纳入计划。

下载和设置 ARM 工具链及闪存编程工具不需要多长时间,应该不会超过一个小时。无论您在 SensorTag 上使用 Contiki 执行什么操作,都需要用到这些工具。设置只需执行一次。此外,由于 SensorTag 的唯一 ID 基于其 IPv6 地址(而该地址又是从其 MAC 地址派生得来),这表示您可以将同一样二进制固件映像用于许多标签,而不必单独配置它们。

IBM 云工具为 SensorTag 开发人员提供了极其出色、非常及时的资源。Bluemix 是一项收费服务,但是提供了 30 天试用期,之后还提供了一个月的免费补贴。此外,通过在 IBM 云端使用 MQTT 和 Node-RED,以后始终都能在云端或本地切换为使用在别处托管的实例。

Andrew Back

购买 WEPTECH WEP-6LoWPAN-IoT-GW

 

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.