【KW41z】开箱建网谈理想
这几天有点小忙
板子开始长草了
周末撸起
上一篇:【KW41z】在RaspberryPi上部署KW41z TUN/TAP
只是实现了一个TUN通道
还没有完成PC直接访问thread网络node的功能
也就是实实在在的border router功能
折腾了几天,终于搞定
官方文档上完成边界路由器功能
需要使用到USB-KW41或者Freedom-MK64F来实现
经捯饬
Freedom-KW41z + RPi + OpenWRT路由器(需支持IPv6 DHCP)同样也能实现
网络拓扑如下
Freedom-KW41z —— RPi —— OpenWRT Router(CC15.05.1)
|
PC(win7及以上)
开撸
1、Freedom-KW41z固件准备
一个Host Controlled Device,通过USB连接到RPi
一个Router Eligible Device或者其他thread网络终端固件,使用uart shell
特别注意,Host Controlled Device的固件编译前,务必使能以下几个宏
THR_SERIAL_TUN_ROUTER,位于/source/config.h
THR_SERIAL_TAP_ROUTER,位于/nwk_ip/app/common/app_serial_tun.h
SERIAL_TAP_ROUTER,位于/nwk_ip/base/ip_media_if/ip_if_serial_tun.c
编译,烧好
2、RPi准备工作
同【KW41z】在RaspberryPi上部署KW41z TUN/TAP
不过要建立虚拟的tap管道
也就是需要执行/host_sdk/host/demo/make_tap.sh
在make之前
务必要确认/host_sdk/host/demo/Thread_KW_Tun.c中的SERIAL_TAP宏为1
make后,执行./bin/Thread_KW_Tun /dev/ttyACM0 fslthr0 1
help一下 Thread_KW_Tun
后面带参数1,会使host单板factory复位后建立thread网络
实测factory复位后建立的网络,node根本无法join
不知道是不是demo的一个八哥
楼主的解决办法是,执行./bin/Thread_KW_Tun /dev/ttyACM0 fslthr0 1
控制台打印factoryreset ok后
ctrl + c取消
再执行./bin/Thread_KW_Tun /dev/ttyACM0 fslthr0
这个时候就能顺利建立thread网络了
然后在node的shell中,thr join
搞定
-------------------看疗效------------------
PC机在OpenWRT上获取的IPv6地址
不是全球地址
菊花一颤
后面怎么从外网接入......
node接入thread网络后获得的IPv6地址
还是局域网地址,好桑心
算了
局域网ping一下node吧
吼吼,能通
node来ping一下PC
同通
至此,边界路由器的功能就实现了
怎么管理或者操作thread网络中的node呢?
毫无疑问,Coap嘛,server、client都有
超级轻量级的协议
和http有些类似,也是get、post
适合小微型设备使用
筒子们,firefox伺候
安装coap插件才能访问
撸上去了
get到node的温度传感器数据