IoT开发利器—Silicon Labs ThunderSense评测
扫描二维码
随时随地手机看文章
1.简介与开箱
ThunderSense是Silabs最新推出的一款IoT开发板,在尺寸仅仅45x30mm的板子上配置了6款IoT应用常用的传感器(有一个在目前的硬件版本上没有焊接)且支持BLE4.2,ZigBee,Thread等连接方式.可谓是IoT开发中一款强大的利器.这里和大家分享一下该开发板的使用体验以及初步介绍一下如何在上面自定义IoT应用.
首先小巧精致的小盒子:
拆开后有一个开发板ThunderSense,一个CR2032的电池(图中已经拆掉电池包装),一个小卡片式的使用说明.
近距离看看ThunderSense板子的正反两面:
注意看那个霍尔磁传感器被拆下来了.
2.主要资源介绍与原理图简析
ThunderSense板子的整体Block:
下看看主要的板上资源:
EFM GG330F1024
Cortex M3的MCU,此ThunderSense上仅仅作为配角,是一个Jlink+虚拟串口,用作调试之用.用Flash高达1M的MCU做板上调试器,Silabs在用料方面还是比较壕的.在电脑的控制面板的设备与打印机中看它的属性.
因为这个只是调试器,这里不对它多做介绍.
EFR32 MG1P132G
Cortex M4核的无线SOC芯片,这是板子上的主角.下面看看功能Block:
可以看出来它支持两个频段:Sub-G和2.4G,其中2.4G的部分连巴伦都集成了.比较流行的2.4G的无线协议BLE,ZigBee,Thread都能在这上面跑.
EFR32MG是个系列,有几种不同的配置,适合不同的应用场景.命名规则如下:
· Si7021
· 相对湿度温度传感器
· Si1133
· 紫外线与环境光传感器
· BMP280
· 气压传感器
· ICM-20648
· 6轴惯性传感器
· SPV1840
· MEMS麦克风
· CCS811
· 空气质量传感器
· 高亮LED(4个RGB三色,一个红绿双色,还有一个蓝色是接在调试器上的)
· 霍尔传感器Si7210A(板子上有焊盘,但这个硬件版本上没有焊接,官方的说明是最初焊接了此传感器的,后来又拆下来了,注意看焊盘上还有焊锡,估计是因为工程样品有bug)
其实ThunderSense板子上还有个MCU(EFM8SB10F8G),作为辅助MCU,辅助主MCU进行传感器设备管理以降低整体功耗.
整个ThunderSense板子的原理图在这个连接下载:
http://www.silabs.com/Support%20Documents/Software/BRD4160A-A02-pkg.zip
挑几个重要部分看看,先看2.4GHz的RF部分:
因为集成了巴伦,RF部分非常简洁.总共就是一个50欧姆的匹配滤波网络与陶瓷天线.
下面是刚刚说的那个辅助MCU--EFM8SB10F8G:
可以看出来传感器的电源使能,中断都是跟这个CPU接在一起的.EFM8在需要主CPU唤醒的时候通过I2C_INT_WAKE通知主CPU来处理数据.因为EFM8的运行功耗要远远低于EFR32,如此设计是为了尽可能降低功耗.但是令人纳闷的是,Silabs官方在这里标注了个SPI Devices不知道是什么意思,个人理解是笔误.即使这两者通信比较类似也不应该混淆,因为网络标号明明说的是I2C.[!--empirenews.page--]
一个8M Bit(1M Byte)的SPI Flash(U3)挂在主MCU上,用于各种无线协议中存储非易失性数据用的.另外还有一个同型号Flash(U11)挂在调试MCU上是给调试功能使用的.
跟传感器不同,这个Flash直接跟单片机的电源接在一起了.这是因为此型号本身是个超低功耗片子.不用的时候,可以用软件将其置于深睡眠的状态,此时它只需要0.1uA的电流.所以就不用单独为其做电源控制了.
这是MEMS Microphone的电路:
两级运放,第一级进行32.1dB的信号增益调理,第二级进行10KHz的一阶低通滤波.这个Mic属于模拟输出的MEMS Mic,调理后的信号最后输出给无线SOC的ADC(12bit)输入端.Silabs提供的BSP中有测量声音强度的算法,将采样信号计算成环境噪音强度.
原理图其他部分没有特别的地方,这个板子的电源设计的很精巧,每一路的电源都是单独控制的,值得搞低功耗设计的工程师可以借鉴参考一下.
3.官方Demo下载与功能体验
ThunderSense官方的APP有iOS,Android两个版本,下载地址:
Anroid应用(在GooglePlay中)
苹果用户直接下载体验就是了.但是国内的用Android手机的同学如果不能访问Google Play的话(除非买了VPN),就需要自己编译一下Android的APP了,APP的代码在此:
https://github.com/SiliconLabs/thunderboard-android
目前官方的代码版本用Android Studio 1.4.1编译的,本人用1.5.0编译,没有发现大的问题.如果不想编译,可以使用本文后面的附件中我编译出来的APK进行试用.
以下是本人简易编译过程:
先建立个新路径,再运行:
git clone https://github.com/SiliconLabs/thunderboard-android.git
把代码clone下来.
打开Android Studio导入工程编译,会报一个错,估计是我的开发环境跟原开发环境不同.如图修改就可以了.
Build生成APK在这个目录:
$SourcePath\app\build\outputs\apk
把apk传到你手机安装即可.
下面开始使用Demo App,首先要装好CR2032的电池,千万别装反了,也可以不用电池直接插上USB供电:
[装好电池如图所示,接上电池后,板子另外一面中间有个绿灯会闪烁,如果没有闪,把电池轻轻往外面推一点以便更好接触]
打开APP,开始找ThunderSense板子,手机的蓝牙要打开.这里顺便提一下,Android版本的话最好是4.3以上的,否则BLE支持又是个问题.好在现在的手机应该都能满足这要求.
出现上面界面表示ThunderSense板子已经找到,点击进行连接.连接后进入菜单界面:
第一个是方向,重力传感器的实验:
大家可以试着把ThunderSense板子各种翻转试试.
第二个实验就是传感器实验:
从上到下,从左到右分别是温度,湿度,环境光,紫外线,大气压,噪音,二氧化碳,有毒气体浓度的读数.大家可以试着把板子移动一下看读数变化.霍尔传感器这里没有被支持, 而空气质量传感器的读数在电池供电的时候也看不到(低功耗考虑).另外这个Demo对电池剩余容量估算不准,应该是通过电压实时简单估算的.在蓝牙通信收发瞬间电压会有小小跳动的,CR2032的电池不可能这么不经用.
第三个实验就是IO控制实验:
下边是两个灯的控制,分别控制板上的红绿两个灯,官方的APP上还有控制四个RGB三色灯的界面.但我编译出来的测试APP只有控制中间那两个红绿色灯的代码.这是因为代码更新不及时的缘故.总之可以体验这个用法.点了第一个就是红灯亮:
点了绿灯亮就是板子上绿灯亮:
另外板子USB座子边上的两个按钮的状态也能传输到APP界面上面的两个图标上,因为是实时传输,这里不好截图.
Demo功能大致这么多,另外这个APP还有连接Firebase的云端数据库,将传感器同步到云端进行共享.因为篇幅问题,感兴趣的同学可以自己去了解,这里不多介绍Firebase.
4.官方的例程和开发自定义程序
开发这个EFR32 MG1P的无线SOC首先需要下载最新的Simplicity Studio 4.
下载地址: https://www.silabs.com/products/mcu/Pages/simplicity-studio.aspx
安装的时候会提示你安装Bluetooth SDK,如果没有安装,可以在Simplicty Studio内部进行安装:
全部搞好之后,插上ThunderSense板子,Studio可以检测到你的板子:
到这里说明ThunderSense板子已经连接上了.
可以点这里下载几个官方例程体验一下:
点了之后在弹出来的Demo窗口的Demo列表中一直拖到最后,可以看到官方的例程:
点Start就是下载.
如果要开发自定义的程序,可以到SDK的目录下去找官方的源代码工程进行复制修改.例程在这个目录:
\SiliconLabs\SimplicityStudio\v4\offline\examples\ble_2000\examples_thunderboard_sense\examples
这里需要指出的是,目前的官方的BLE SDK有如下限制:
1.要用IAR EWARM 7.0以上的版本编译(开发一般应用可以使用Keil,IAR,GCC的工具链,开发BLE必须使用IAR EWARM 7.0以上版本)
2.底层PHY的代码没有原代码,只有库文件
目前官方有个GCC版本的测试版本:
不过只是作测试之用,还不是正式版本.官方的网站上关于BLE的GCC支持的内容更新很频繁,感兴趣的可以去多关注一下.据目前看到的内容来判断,全面支持GCC的BLE开发应该马上要发布了.
不过目前上述BLE的example还是都需要IAR来开发.
BLE开发本身涉及到很多内容,这里就不详述了.
5.总结
ThunderSense的体积小巧,电源设计完全为低功耗应用而定制.而且板载了目前IoT应用的多种常见传感器.配合上Silabs公司强大的软硬件支持,可以堪称IoT开发工程师得心应手的利器.相信在支持gcc版本的BLE SDK正式发布后,使用EFR的方案来开发BLE的公司将更多.最后这个板子的官方网页在此:
http://www.silabs.com/products/wireless/Pages/thunderboard-sense-kit.aspx .





