手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项

前言 兄弟们,我发现一个有意思的东西,我在爱智官网翻资料的时候,发现他们终于终于把官网文档的索引优化了!有一说一,真是方便不少,终于不再是一堆文档糊在一坨了。
另外我还发现他们居然做了一个EFR32的教程 我去年就很想搞一个来玩的,但是网上资料太少了,难搞的一逼,于是简单弄了一下后就丢一遍吃灰去了。现在终于可以回过头把EFR32捡起来了。
配置 Simplicity Studio 可能遇到的问题 关于 Simplicity Studio 介绍和简单教程可以看看我去年写的《基于EFR32的Zigbee开发-自定义Cluster》 ,接下来就是跟着官方的EFR32的教程 配置一下,我跟着做了一遍,完全可以,但是有很多细节一定要注意,很容易忽略。
首先是编译过程中出现出现各种找不到文件,搜索这些文件的时候发现都是IDE目录下的文件,最后查看Makefile打印的时候发现,报错的编译信息的路径都是“./xxx/xxx”开头,看了一下这个./实际上是 workspace 文件夹所在的地址,也就是说编译的时候它是以workspace所在的地址为根目录去IDE里面的文件,也就是说必须把 workspace 和 IDE 塞一个文件夹里面。没见过这么奇怪的做法。
手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
文章图片

编译提示各种宏缺少的时候,看看缺少的宏是什么宏,看上去像各种功能相关的,那大概率是 ZCL Clusters 那边勾选出了问题,如果看上去是各种硬件的宏报错,那就检查一下硬件配置。
手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
文章图片

ZCL Clusters 这里是配置一些命令和通道之类的东西,在下一个章节我在细说。
手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
文章图片

在这配置硬件相关的东西,注意右侧红框内的东西,比较容易被忽略,需要根据你板子实际情况选择。
配置 ZCL Clusters 官方教程中使用了基于 ZigBee HA 修改出了自己的一个规范,也给了一个XML文件给大家做一个参考,而这个 XLM 文件其实就是 ZDDC 设备端的关键。这里需要我们去官方教程中复制文档最下面的 XML 代码 :

acoinfo_aio acoinfo Acoinfo custom cluster 0x000C ACOINFO_ZB_AIO_CLUSTER true true ACOINFO_ZB_AIO_ATTR_1 ACOINFO_ZB_AIO_ATTR_2 ACOINFO_ZB_AIO_ATTR_3 ACOINFO_ZB_AIO_ATTR_4 ACOINFO_ZB_AIO_ATTR_5 ACOINFO_ZB_AIO_ATTR_6 ACOINFO_ZB_AIO_ATTR_7 ACOINFO_ZB_AIO_ATTR_8 ACOINFO_ZB_DIO_ATTR_1 ACOINFO_ZB_DIO_ATTR_2 ACOINFO_ZB_DIO_ATTR_3 ACOINFO_ZB_DIO_ATTR_4 ACOINFO_ZB_DIO_ATTR_5 ACOINFO_ZB_DIO_ATTR_6 ACOINFO_ZB_DIO_ATTR_7 ACOINFO_ZB_DIO_ATTR_8 ACOINFO_ZB_DIO_ACTIVE_ATTR ACOINFO_ZB_DIO_WRITE_ATTR ACOINFO_ZB_AIO_ACTIVE_ATTR ACOINFO_ZB_AIO_WRITE_ATTR ACOINFO_ZB_MEM_ACTIVE_ATTR ACOINFO_ZB_MEM_WRITE_ATTR ACOINFO_ZB_MEM_ATTR_1 ACOINFO_ZB_MEM_ATTR_2 ACOINFO_ZB_MEM_ATTR_3 ACOINFO_ZB_MEM_ATTR_4 ACOINFO_ZB_MEM_ATTR_5 ACOINFO_ZB_MEM_ATTR_6 ACOINFO_ZB_MEM_ATTR_7 ACOINFO_ZB_MEM_ATTR_8

然后保存到一个空的文档中并另存为 XML 格式,然后将这个这个XML文件放入:
\v4\developer\sdks\gecko_sdk_suite\v2.7\app\zcl
文件夹下,在 ZigBee Stack 中添加 XML 文件后就能发现 ZCL Clusters 中多了一些东西。
手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
文章图片

这里是设置模型 ID 和制造商名字什么的。
手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
文章图片

这里设置了对应的通道是什么功能,截图中的的意思就是,DIO通道1和DIO通道2分配为灯的开关。
手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
文章图片

这是最蛋疼也是最有欺骗性的地方 官方设定 :
Cluster ID :0x0300 为本规范定义的通用属性,Attribute ID 0x2000-0x2005 为 6 个属性,类型为
uint32,只读
而原本的 0x0300 是被占用了的,官方这么玩的话,这个通用属性就会跑到颜色那一栏去,而这个通用属性,实际上是管理通道有效性的,上图代表:通道 1 和通道 2 有效并且可读可写。
这次的代码我用的就是官方的代码,他们说得很详细了,我就不重复一遍了。
总结 【手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项】配置完成将代码烧入 EFR32 开发板 ,通过我们新的嗅探器发送 dio0/1 :true/false 就可以控制我们的LED:PC0/PC1了。
手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
文章图片

    推荐阅读