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

6LoWPAN网关加上IBM IOT Foundation给SensorTag立即的满足

这篇文章翻译 Andrew Back 的 6LoWPAN Gateway plus IBM IoT Foundation give instant SensorTag Gratification

title

Weptech 网关和IBM 物联网基础加快TI SensorTag 的发展。

Weptech 6LoWPAN物联网网关 提供2.4GHz和 sub-GHz的无线电,以及以太网和一个ARMCortex -M3微控制器。凭借对于Contiki边界路由器固件的即用支持,这使得它轻易集成 SensorTags 与现有的IP网络。

第二代TI SensorTag 包含对Contiki 的支持,并提供了很多示例应用程序,其中包括一个发布传感器数据到MQTT代理商的应用。有了IBM IOT Foundation的IP Address ,Quickstart 代理商进行配置完毕,你就可以开机运行然后将实时传感器数据在几分钟之内画出。

具有了网关硬件和IBM云服务之后,可以将马上评估尖端的,基于标准的传感器网络解决方案变成可能,接下来,我们来看看当中的步骤。

网络结构

title

该网络结构很简单,伴有一个或多个在IEEE802.15.4无线网络链接里使用6LoWPAN的 SensorTag 。与执行从IPv6到IPv4 ( NAT64 )的网络地址转换的边缘/边界路由器通信。由此让SensorTags - 和其他6LoWPAN的设备— 在本地局域网上和通过互联网连接到IPv4主机。

设置6LoWPAN 物联网网关

title

我收到的网关包包含了PCB组件,排针,可以安装在桌面或者墙上的外壳,橡胶材料的底部和用于传送和供电的USB电缆。

在写入网关固件的时候,它们还必须被分类到在TI SensorTag演示旁边的 Contiki GitHub库 。然而,在包装里有一张用于联系Weptech 的名片,从其中可以得到最新的固件。

title

使用USB端口把网关连接到Python的计算机,然后只需重新设置板并按在重置旁边的按钮,之后运行一个与在网关CC2538上的启动加载器通信的脚本,用新的固件来给闪存编写程序。

title

网关不具有配置管理界面,它只是简单地通过DHCP获取IPv4地址。只需要连接到网络,并提供功率!

给SensorTags 编程

title

首先,你需要确保已经安装了一个合适的ARM工具链并且Contiki的来源是可用的。有关如何设置软件环境的详细信息请参见 Ti Wiki 。该MQTT的例子就可以在目录中的 examples/cc26xx/cc26xx-web-demo 找到。

在写入网关固件时,不支持IPv6桥接或从有线网络访问SensorTag的任何其他方式。因此,我关闭了CoAP服务器和UART网络,以及6LBR客户端,在文件项目-conf.h :

/* 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云服务的那部分,而注释地址的是一个 Mosquitto 的例子,它运行在位于当地网络上的树莓派上,并有一个IP地址10.0.10.21(从4点制 换算 成16进制,这成为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开始启动图形用户界面,这样我就可以检查并安装任何可用的更新。

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 来生成它,它可以免费下载 - Studio 输入了示例项目,改变项目设置,以便它使用Debug DevPack (选择XDS110 Debug Probe) ,在保存这个之前,定位更新的CC2650F128.ccxml文件。

title

为方便起见,该文件的内容包括如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

但是请注意,软件和/或探测仪有可能在将来有更新来使用一个不同的CCXML配置,而不是以上展示的这个。

随着SensorTag编程完毕,Debugger DevPack被断开连接,在SensorTag上的绿色LED开始闪烁。下一步,看它是否可以连接到网关。

确定Device-ID

title

在Weptech 物联网网关上的简单网络界面使你可以快速确定任何连接的SensorTags的IPv6地址。独特的“Device-ID ” –通过IBM Quickstart云服务 得到- 然后可以通过拿出地址的最后3个字节并在前面加上00124b构成。例如,我的地址标签是:

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

转换成Device-ID : 00124b 8fc203

如果你有不止一个SensorTag,只需要每次开一台机, 在开下一台机之前记下新的IPv6地址。

IBM IOT Foundation Quickstart

title

确认SensorTag连接到6LoWPAN的网关和Device-ID后 ,这样现在就可以进入 Quickstart网页页面 ,立即得到实时传感器读数,正常运行时间和无线连接的信号强度。

title

选择上述任何数据点会导致这被绘制成像之前所展示的图像一样。

IBM Bluemix

title

正如所看到的,Quickstart提供来自微小的SensorTag的整个主机的数据访问。

然而,这仅仅是个开始,从这里开始,探索这个进入到运行在IBM Bluemix PaaS 平台上的应用是有可能的,它是基于Cloud Foundry平台,并支持多种编程语言,包括Java ,Node.js,Go, PHP和Python 。

该Bluemix目录还包括大量图像,多种选择的服务特别是, Node-RED ,这是一个用于物联网的可视化布线工具。从而可以启用主机物联网应用快速的原型,这些应用结合了来自许多不同来源和来源类型的数据,进行处理,并提供了多种输出选择。

title

运转一个新的Node-RED的例子只需要花个几分钟。一旦它开始运行了,只需要点击几下鼠标从Quickstart剪下自动发出的“flow”,然后粘贴到Node-RED,那个通过调试节点输入实时的SensorTag feed和输出传感器的读数。从这里可以很容易地修改流动,以实现自定义的逻辑并提供输出等。

结论

这个Weptech物联网网关提供一个搭建6LoWPAN无线网络和以太网之间的巧妙的解决方案,那是一个使用BeagleBone运行Linux加上正边缘路由器软件和USB IEEE802.15.4无线电的解决方法的显著提高。目前有一到两个网关不支持的事物,例如IPv6的搭建,拥有它将会是不错的虽然它听起来好像这可能还管道之中。

下载并设置一个ARM工具链和闪存编程工具确实需要一点时间,但不应该超过一个小时这么多,不管你用Contiki在SensorTag上做什么,这些都是必需的。然后一旦建立,仅此而已。另外,由于SensorTag唯一的ID是根据它的IPv6地址 - 而这又是从它的MAC地址中导出的 - 这意味着你可以给许多SensorTag用一个单一的二进制固件并且不必单独配置它们。

IBM的云工具为SensorTag开发者提供了一个优秀的并且非常即时的资源。 Bluemix是一种有偿服务,然而,它提供30天的试用期,并在此之后有一个每月免费津贴。此外,通过在IBM云上使用MQTT和Node-RED,在之后有可能在云上或者在本地的其他地方切换使用主机。

Andrew Back

 

DesignSpark Electrical Logolinkedin