打印
[蓝牙]

IoT开发的利器:Thundersense开发板使用体验与应用介绍

[复制链接]
4529|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zhanzr21 于 2017-1-23 10:42 编辑

1.简介与开箱
Thundersense是Silabs最新推出的一款IoT开发板,在尺寸仅仅45x30mm的板子上配置了6款IoT应用常用的传感器(有一个在目前的硬件版本上没有焊接)且支持BLE4.2,ZigBee,Thread等连接方式.可谓是IoT开发中一款强大的利器.这里和大家分享一下该开发板的使用体验以及初步介绍一下如何在上面自定义IoT应用.

首先小巧精致的小盒子:


拆开后有一个开发板,一个CR2032的电池(图中已经拆掉电池包装),一个小卡片式的使用说明.

近距离看看板子的正反两面:

注意看那个霍尔磁传感器被拆下来了.

相关帖子

沙发
zhanzr21|  楼主 | 2017-1-22 16:15 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:21 编辑

2.主要资源介绍与原理图简析

板子的整体Block:
下看看主要的板上资源:EFM GG330F1024Cortex M3MCU,此开发板子上仅仅作为配角,是一个Jlink+虚拟串口,用作调试之用.Flash高达1M的MCU做板上调试器,Silabs在用料方面还是比较壕的.在电脑的控制面板的设备与打印机中看它的属性.

因为这个只是调试器,这里不对它多做介绍.EFR32 MG1P132GCortex M4核的无线SOC芯片,这是板子上的主角.下面看看功能Block:

可以看出来它支持两个频段:Sub-G2.4G,其中2.4G的部分连巴伦都集成了.比较流行的2.4G的无线协议BLE,ZigBee,Thread都能在这上面跑.EFR32MG是个系列,有几种不同的配置,适合不同的应用场景.命名规则如下:



Si7021相对湿度温度传感器Si1133紫外线与环境光传感器BMP280气压传感器ICM-206486轴惯性传感器SPV1840MEMS麦克风CCS811空气质量传感器高亮LED(4RGB三色,一个红绿双色,还有一个蓝色是接在调试器上的)霍尔传感器Si7210A(板子上有焊盘,但这个硬件版本上没有焊接,官方的说明是最初焊接了此传感器的,后来又拆下来了,注意看焊盘上还有焊锡,估计是因为工程样品有bug)其实板子上还有个MCU(EFM8SB10F8G),作为辅助MCU,辅助主MCU进行传感器设备管理以降低整体功耗.


使用特权

评论回复
板凳
zhanzr21|  楼主 | 2017-1-22 16:15 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:23 编辑

整个板子的原理图在这个连接下载:
挑几个重要部分看看,先看2.4GHzRF部分:

因为集成了巴伦,RF部分非常简洁.总共就是一个50欧姆的匹配滤波网络与陶瓷天线.
下面是刚刚说的那个辅助MCU:

可以看出来传感器的电源使能,中断都是跟这个CPU接在一起的.EFM8在需要主CPU唤醒的时候通过I2C_INT_WAKE通知主CPU来处理数据.因为EFM8的运行功耗要远远低于EFR32,如此设计是为了尽可能降低功耗.但是令人纳闷的是,Silabs官方在这里标注了个SPIDevices不知道是什么意思,个人理解是笔误.即使这两者通信比较类似也不应该混淆,因为网络标号明明说的是I2C.
一个8M Bit(1M Byte)SPIFlash(U3)挂在主MCU上,用于各种无线协议中存储非易失性数据用的.另外还有一个同型号Flash(U11)挂在调试MCU上是给调试功能使用的.

跟传感器不同,这个Flash直接跟单片机的电源接在一起了.这是因为此型号本身是个超低功耗片子.不用的时候,可以用软件将其置于深睡眠的状态,此时它只需要0.1uA的电流.所以就不用单独为其做电源控制了.
这是MEMS Microphone的电路:

两级运放,第一级进行32.1dB的信号增益调理,第二级进行10KHz的一阶低通滤波.这个Mic属于模拟输出的MEMSMic,调理后的信号最后输出给无线SOCADC(12bit)输入端.Silabs提供的BSP中有测量声音强度的算法,将采样信号计算成环境噪音强度.
原理图其他部分没有特别的地方,这个板子的电源设计的很精巧,每一路的电源都是单独控制的,值得搞低功耗设计的工程师可以借鉴参考一下.

使用特权

评论回复
地板
zhanzr21|  楼主 | 2017-1-22 16:16 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 21:28 编辑

3.官方Demo下载与功能体验
官方的APP有iOS,Android两个版本,下载地址:
苹果应用
Anroid应用(在GooglePlay中)
苹果用户直接下载体验就是了
.但是国内的用Android手机的同学如果不能访问Google Play的话(除非买了***),就需要自己编译一下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\apkapk传到你手机安装即可.
我编译的测试APK: app-debug-unaligned.zip (16.31 MB)

使用特权

评论回复
5
zhanzr21|  楼主 | 2017-1-22 16:16 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:42 编辑

下面开始使用Demo App,首先要装好CR2032的电池,千万别装反了,也可以不用电池直接插上USB供电:

装好电池如图所示,接上电池后,板子另外一面中间有个绿灯会闪烁,如果没有闪,把电池轻轻往外面推一点以便更好接触

打开APP,开始找板子,手机的蓝牙要打开.这里顺便提一下,Android版本的话最好是4.3以上的,否则BLE支持又是个问题.好在现在的手机应该都能满足这要求.

使用特权

评论回复
6
zhanzr21|  楼主 | 2017-1-22 16:16 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:31 编辑


出现上面界面表示板子已经找到,点击进行连接.连接后进入菜单界面:

第一个是方向,重力传感器的实验:

大家可以试着把板子各种翻转试试.

使用特权

评论回复
7
zhanzr21|  楼主 | 2017-1-22 16:16 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:32 编辑

第二个实验就是传感器实验:


从上到下,从左到右分别是温度,湿度,环境光,紫外线,大气压,噪音,二氧化碳,有毒气体浓度的读数.大家可以试着把板子移动一下看读数变化.霍尔传感器这里没有被支持, 而空气质量传感器的读数在电池供电的时候也看不到(低功耗考虑).另外这个Demo对电池剩余容量估算不准,应该是通过电压实时简单估算的.在蓝牙通信收发瞬间电压会有小小跳动的,CR2032的电池不可能这么不经用.

使用特权

评论回复
8
zhanzr21|  楼主 | 2017-1-22 16:16 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:34 编辑

第三个实验就是IO控制实验:
下边是两个灯的控制,分别控制板上的红绿两个灯,官方的APP上还有控制四个RGB三色灯的界面.但我编译出来的测试APP只有控制中间那两个红绿色灯的代码.这是因为代码更新不及时的缘故.总之可以体验这个用法.点了第一个就是红灯亮:


点了绿灯亮就是板子上绿灯亮:

使用特权

评论回复
9
zhanzr21|  楼主 | 2017-1-22 16:16 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:36 编辑

另外板子USB座子边上的两个按钮的状态也能传输到APP界面上面的两个图标上,因为是实时传输,这里不好截图.

Demo功能大致这么多,另外这个APP还有连接Firebase的云端数据库,将传感器同步到云端进行共享.因为篇幅问题,感兴趣的同学可以自己去了解,这里不多介绍Firebase.

使用特权

评论回复
10
zhanzr21|  楼主 | 2017-1-22 16:16 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:39 编辑

4.官方的例程和开发自定义程序
开发这个EFR32 MG1P的无线SOC首先需要下载最新的Simplicity Studio 4.
安装的时候会提示你安装Bluetooth SDK,如果没有安装,可以在Simplicty Studio内部进行安装:


全部搞好之后,插上板子,Studio可以检测到你的板子:

到这里说明板子已经连接上了.

使用特权

评论回复
11
zhanzr21|  楼主 | 2017-1-22 16:16 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 21:30 编辑

可以点这里下载几个官方例程体验一下:


点了之后在弹出来的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版本的测试版本:http://community.silabs.com/t5/Bluetooth-Wi-Fi-Knowledge-Base/GCC-example-BLE-SDK-2-0-test-only/ta-p/179139不过只是作测试之用,还不是正式版本.官方的网站上关于BLE的GCC支持的内容更新很频繁,感兴趣的可以去多关注一下.据目前看到的内容来判断,全面支持GCC的BLE开发应该马上要发布了.不过目前上述BLE的example还是都需要IAR来开发.BLE开发本身涉及到很多内容,这里就不详述了.

5.总结
Thunder Sense的体积小巧,电源设计完全为低功耗应用而定制.而且板载了目前IoT应用的多种常见传感器.配合上Silabs公司强大的软硬件支持,可以堪称IoT开发工程师得心应手的利器.相信在支持gcc版本的BLE SDK正式发布后,使用EFR的方案来开发BLE的公司将更多.
最后这个板子的官方网页在此
:http://www.silabs.com/products/wireless/Pages/thunderboard-sense-kit.aspx  .

使用特权

评论回复
12
zhanzr21|  楼主 | 2017-1-22 16:17 | 只看该作者
本帖最后由 zhanzr21 于 2017-1-22 16:46 编辑

发完了, 这板子做BLE开发还是不错的.
Silabs的无线这块比较强, 但是比起Nordic,TI, 出BLE的SOC算最迟的
希望慢工出细活
最期望的是GCC版本的BLE SDK早日出来,性能差一点 都可以忍受
搞IAR EWARM 开发起来还是麻烦一点
至少搞的先用GCC能看大致性能效果, 出产品的时候用IAR再去优化也能接受

使用特权

评论回复
13
zhanzr21|  楼主 | 2017-1-22 16:48 | 只看该作者
幸亏Android的源代码放在Git Hub上了, 不然中国这边工程师麻烦了
说实在的搞BLE开发的 , 大多数人用Android手机, 买手机***的可能没几个,
APP不能提供参考的话, 前期很麻烦

使用特权

评论回复
14
michael_llh| | 2017-1-22 16:56 | 只看该作者
挺不错的,和st出的sensor tile类似

使用特权

评论回复
15
大秦正声| | 2017-1-23 08:33 | 只看该作者
我有德州的,北欧的,cypress的,以及意法的蓝牙板子

使用特权

评论回复
16
大秦正声| | 2017-1-23 08:34 | 只看该作者
意法的,nxp,silabs蓝牙推广的晚

使用特权

评论回复
17
大秦正声| | 2017-1-23 08:35 | 只看该作者
安卓蓝牙app兼容不够好。资料也少!

使用特权

评论回复
18
cgd| | 2017-1-23 10:24 | 只看该作者
土豪

使用特权

评论回复
19
huarana| | 2017-1-23 15:36 | 只看该作者
和 cc1350 比较怎么样?   长得很像啊 两款

使用特权

评论回复
20
slotg| | 2017-1-23 17:06 | 只看该作者
很好的分享,这片板子要多少钱呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:每天都進步

91

主题

1013

帖子

34

粉丝