背景
之前主要使用过NXP的zigbee芯片,调试过网关应用以及一个节点。现在芯科的芯片逐渐是一个趋势,支持比较好。而且据我了解,现在国内zigbee网关过zigbee 3.0 的只有芯科的可以,所以有必要学习一下
功能说明
搭建起来Silicon EFR32xG21开发板的网关调试Demo,包括从底层到上层应用,可以演示添加设备等基本操作。
(相比于之前NXP提供的GUI界面,芯科的一整套搭建起来是一个web界面,比较新颖,而且可以插件化支持MQTT,功能上很强大!相应的,具备一点web知识是最好的)
开发环境
硬件
- Mac
- EFR32xG21 开发板
软件
- simplicity Studio
准备工作
下载安装simplicity Studio,软件支持Mac、Linux、Windows平台
进行软件安装,注意的是如果是windows 最好安装在D盘或E盘,会占用很大空间,Mac、Linux默认即可。
下载SDK时,需要一个账号,正常其实开发板包装盒外侧会贴,根据那个验证即可,现在提供一个公共的账号,在一个论坛看到的,账号已经包含协议栈
silicon@newbitstudio.com
NewbitZb2019
参考链接:http://www.newbitstudio.com/forum.php?mod=viewthread&tid=8144&extra=page%3D1
然后软件会自动下载sdk以及所需要的工具,耗时有点久,半个小时需要的。
软件架构
组成
一个完整的网关应用分三部分:
bootloader + ncp-uart-hw + Z3GatewayHost
bootloader 选择bootloader-uart-xmodem
NCP程序选择ncp-uart-hw(硬件流控)
Host程序选择 Z3GatewayHost
(程序完全不需要修改,直接编译运行即可,如果发现问题,可以确定不需要怀疑代码修改,新手遇到问题排查其他)
基于上面正常来讲是网关可以跑起来了,看官方文档完整的还可以支持MQTT,Node.js搭建的后台,以及React前端页面,这个今天我跑了一下,跑起来了,功能上还要测试一下,感觉问题不大。
总结
要确保整个程序可以跑起来,首先要确定bootloader可以正常工作。搭建好工程烧录以后,通过串口可以看到打印
ncp-uart-hw 程序如果正常运行,会打印一个表示reset的字符信息
Z3Gateway由于宿主环境是linux,所以调试时首先要确定固件信息可以正常工作,我采用minicom可以查看到当硬件板复位时,会打印信息输出。
上述过程会逐渐写一系列博客总结一下,大概流程动了,细节还需要逐步学习,主要涉及zigbee操作的相关网关指令、MQTT应用,如何给予这个网关Demo写应用自己实现一套网关,以及前后端页面操作(次重要)
上几个成果图
感兴趣的话就关注一下吧!谢谢~~~