EMW3162GoKit开发板STM32F103智能硬件机智云2.0
从物联网概念诞生起,人们就不断在期盼着全民物联网时代的降临。有人说,2014年是智能硬件的元年,这种结合了硬件、软件、云服务为一 体的硬件平台真正触及到了物联网发展的本质。谈到智能硬件的未来,或许一千个人眼里就有一千个哈姆雷特,但是有一点是毋庸置疑的,今后智能硬件将越来越依 赖云服务。
国内就有这么一家专为智能硬件提供后台支持的云服务平台——机智云,这个由杰升科技开发的云服务平台,主要为智能硬件开发商提供包括统计分析、数据安全、远程管理、软件升级等支持服务。截止到2014年的第二季度,机智云上接入的智能家居和可穿戴设备等智能硬件数量已经超过了200万台,是国内最大的智能硬件集群。
机智云
可以这么说吧,这是一家最懂智能硬件的软件公司,不久前随着机智云2.0的升级,云平台支持更是从原来面向厂家的B2B定制化服务扩展到 B2D(Developers,开发者)的开放式开发模式,而且相应的推出了一套智能硬件开发板——机智云GoKit,配合机智云的云平台支持,可以帮助 智能硬件开发者进行快速的产品研发,说了那么多,让我们先一起来见识下GoKit这个新颖的玩意。
GoKit开发板
爱板网拿到的机智云GoKit开发套件包含了一块GoKit开发板以及一份上手使用说明文档,GoKit板卡安置在一个简易的塑料盒内,仅在miniUSB供电接口/串口处开了一个孔,整体看上去十分精致小巧,相信对它一见钟情的工程师不在少数。
GoKit开发套件
作为一款开源的智能硬件板卡,GoKit的资料在机智云官方论坛都有提供,不过在这里我们还是免不了要详细了解下板卡的硬件组成,看看GoKit开发板到底具有什么样的功能?能实现什么样的应用?
GoKit开发板
GoKit板卡的主要功能:
- 庆科WiFi模块EMW3162:实现与主微控制器STM32F103C8T6(STM32F103C8T6数据手册)通信
- RGB LED:实现LED颜色亮度的调节
- 电机:可调转速、正反转
- 温湿度传感器DHT11:获取温度、湿度信息
- 红外探测传感器:探测10cm范围内有无阻挡
GoKit板卡的板载资源非常丰富,核心控制器为板卡背面的意法半导体的STM32F103C8T6微控制器,基于Cortex-M3内核,属于市面上应用的非常广的一款芯片,无论是相关的应用或者资料都比较齐全,对于工程师来说,极易上手。
在GoKit上,STM32F103C8T6控制了包括WiFi模块、电机、RGB LED、红外光电探测器、温湿度传感器等应用功能,通过板载的20pin JTAG接口或者miniUSB-to-UART口可以实现对STM32F103C8T6 MCU编程、调试。值的注意的是,如果要通过miniUSB接口实现串口功能,需要安装板载CP2012芯片的串口驱动。
EMW3162 WiFi模块
作为一款智能硬件平台,无外乎需要具备基本的联网功能,通过上面的介绍,我们已经知晓GoKit板载的联网WiFi模块是庆科的EMW3162,如下图
EMW3162 WiFi模块
EMW3162 WiFi模块基本参数:
- 持IEEE 802.11 b/g/n,发射功率:18dBm@11b,15dBm@11g,14.5dBm@11n
- 收灵敏度:-96dBm
- 工作电压:3.3V,平均功耗约24mA ,待机功耗约8uA
- 包含了120MHz主频的STM32F2微控制器,内嵌1M字节Flash,128k字节SRAM
- 板载PCB天线,也可以通过IPEX连接外接天线
- 通过CE,FCC等国际认证,SWD调试接口
EWM3162 WiFi模块包含了一个主频高达120MHz的Cortex-M3微控制器STM32F205RG(STM32F205RG数据手册), 配合mxchipWNet 嵌入式Wi-Fi固件,工程师可以方便、快速地为嵌入式设备增加Wi-Fi网络通讯功能,而且从GoKit上我们也能看到,EMW3162模块并不是直接 焊接在主板上的,它采用了2.0mm间距的30pin直插式排针座接口与GoKit主板连接,可以方便的替换市面上一些主流的WiFi模块方案,如高通的 4004、汉枫、Ti、Marvell等(最新消息,日前GoKit还完成了接通Intel Edison和君正M150),这样的设计无疑为工程师自由定义产品的无线通信方案提供了便利的条件。
除了无线功能,GoKit板载的电机、RGB LED、红外光电探测器、温湿度传感器功能可以模拟目前市面上大部分的智能硬件产品,如
- RGB LED可以衍生为市面上的智能LED
- 电机控制可以实现自动卷帘门等方案
- 温湿度传感器对应环境监测类产品
- 红外探测可以实现自动化设备的检测或者配合摄像头实现监控等安防类产品
总的来说,GoKit开发板上的应用功能还是非常贴近主流的智能硬件产品,对于刚接触智能硬件的工程师来说具有一定的引导作用。
当然,除了板载的特定应用功能,GoKit同样提供了一些方便用户自定义的扩展外设接口,如黄色的排针座P4_8pin、P5_8pin,4个用户可以自定义功能的机械按键,虽然可扩展功能不多,但还是为外设功能扩展提供了一些可行性条件,聊胜于无嘛。
综合GoKit开发板的硬件组成以及相关功能,相对于我们平常所见的开发板,GoKit可算得上是一款真正贴近产品的开发平台,整个板卡的硬件原理框图如下。
GoKit开发板硬件原理框图
如何开发
不同于一般的微控制器板卡,GoKit智能硬件板的开发主要分为两部分,一部分是对自身板卡STM32F103C8T6微控制器的编程开发,实现 MCU对应用功能的控制(如电机、传感器等);另一部分是对移动端APP的开发,开发相应的APP通过云平台实现GoKit开发板的M2M接入服务,通过 APP来控制板卡上的功能。对于智能产品开发的完整性,两者缺一不可。
- MCU编程
相信对于第一部分的MCU开发我们接触的比较多,平时爱板网评测的MCU板卡基本都是对于微控制器的编程开发,具体可以通过IDE开发工具KEil、IAR等实现,况且GoKit特意选用了应用非常广的意法半导体STM32F103(STM32F103数据手册)微控制器,无论是资料完整度还是实际范例都非常多,便于工程师上手。
机智云同样也提供了GoKit板载程序的源代码,可以在GitHub上下载,下图则是通过Keil打开的GoKit板载MCU程序的源代码。
GoKit内置MCU程序源代码
如果我们想在GoKit板卡上外扩更多功能,除了硬件电路的修改,同样也要在这部分MCU的编程中添加相关功能的代码,重新编译、下载,这里就不再累述。
- APP开发
本文主要讨论的还是第二部分APP的开发,这也是使用机智云平台对GoKit开发板进行开发的一个重要优势。
GoKit开发板没有提供现成的APP下载,需要我们花费一点时间通过机智云平台来生成APP(不知道是不是为了让我们有那么一点点小小的成就感)。
如何操作?
首先我们需要在机智云官网注册一个开发者账号,然后通过新建设备接入来添加基于GoKit的开发产品,如下图所示
添加机智云接入设备
目前接入设备的通信方式只能选择WiFi,产品类型倒是可以有很多选择,包括了最新的智能家居产品、玩具等,这里随便选择一项即可。添加完成后会进入新设备接入的向导设置。
新设备设置向导
设置向导中的第一步就是编辑数据点,通过数据点协议的编辑,你可以制定设备每一个功能是否对外发送状态数据以及是否接受外部的控制,这里可以通过应用已有的模板或者通过手动编辑来建立数据点。
这里的数据点指的是什么?
在编辑数据点前,你需要先了解你的设备详细参数,根据设备具体的功能进行数据点的拆分。比如,你的设备有一个可变速电机马达,你希望可以远程控制电机的开关和转速。那你需要添加至少2个数据点:电机开关、电机转速。
为了方便,我们直接选择应用模板中的数据点设置,机智云会根据你接入设备添加的数据点生成一份<机智云接入串口通信文档>,如下图红色标示的位置所示
生成<机智云接入串口通信文档>
根据这份文档你可以完成MCU通信功能的编写。完成这几个步骤就可以进入设备的调试阶段,机智云会根据你先前的设置生成相应的包括苹果ios以及谷歌Andriod系统平台的相关:
- DemoAPP
- 集成开发文档
- SDK
你可以直接下载DemoAPP进行设备调试,也可以将生成的SDK软件包加入到你苹果ios或者谷歌安卓的开发项目中进行修改、增减功能等操作(具 体可以参考集成开发文档),这就像是提供的MCU开发编程的例程一样,SDK软件包的提供可以大大缩短移动端APP的开发周期。
通过机智云平台的简易开发流程如下:
通过机智云对GoKit开发流程
调试GoKit板卡功能
机智云平台提供了两种调试方法,一种是没有GoKit开发板依托于机智云平台的虚拟调试方法,另一种则是依托于GoKit开发板的实物调试方式。这里就直接选用第二种实物调试方式,以安卓平台为例,下载安装机智云生成的DemoAPP。
- 给GoKit开发板上电(需要通过KEY2机械按键使GoKit进入网络配置模式,RGB LED显示为绿色)
- 打开APP配置网络
配置网络
具体网络配置过程就不累述了,可以根据GoKit开发板提供的使用说明文档操作。
由于是DemoAPP缘故,就不讨论所谓的用户体验了,APP UI的界面是相当的简单,仅有一些基本功能实现的选项。网络配置成功后,可以在APP主界面看到一个相关的微信宠物蛋局域网在线的选项,点击进入就是GoKit开发板的功能设置界面了,如下图
通过APP实现对GoKit开发板的控制
此时你可以通过GoKit APP界面的选项来控制板卡上的应用功能,如下图分别为RGB LED的红色LED显示以及红外探测功能的实现。
RGB LED的红色LED显示以及红外探测功能的实现
在APP上同样能看到温度、湿度等的显示,还可以通过电机的设定实现正转、反转、转速控制,这里就不再一一演示了。机智云生成的APP基本上就是一个功能演示性的Demo,真正的产品整合还是需要用户结合开发文档自己开发。下图则为通过APP控制GoKit开发板的工程流程图。
GoKit开发板工作流程图
GoKit开发板背后的意义
看完机智云GoKit开发套件的硬件组成、软件开发以及使用感受,有什么想说的呢?
机智云平台
正如文章一开头所讲的,一个智能产品的研发离不开硬件、软件以及云服务平台,这三者的结合给人们带来了更多更有创意的产品,但同时也给研发带来了 “史无前例”的门槛,而杰升科技从这三方面着手,从以前单单提供云服务平台,到如今推出了开源硬件板GoKit、相应的开源软件代码,加之机智云平台,真 正为用户提供了一站式解决方案,在降低智能硬件门槛的同时大大降低了产品的研发周期。
不仅如此,依托于云服务庞大的数据库支持,机智云还能通过收集成千上万用户使用习惯的信息,帮助开发者改进产品,迎合用户实际需求,设计出真正兼具创新与实用的智能产品。
小结
介绍了杰升科技推出的GoKit开发板以及基于机智云平台的智能硬件产品的开发流程,GoKit开发板搭载了市面上主流意法半导体通用微控制器 STM32F103C8T6(Cortex-M3)、常见的WiFi通信模块(EMW3162)、传感器、RGB LED、电机等组件,可以实现大部分智能硬件产品的功能模拟(如智能灯泡、环境监测等),结合机智云平台提供的云服务以及开源代码,不仅大大降低了智能硬 件产品的研发门槛、缩短研发周期,更是为开发者提供了一站式的智能硬件产品解决方案。目前,GoKit开发套件可以在机智云官网免费申请,感兴趣的朋友一定不能错过。
参考资料