MiCO Document Working Group (MDWG) | Tom Hong |
Track Number: 0010CN | MXCHIP Co., Ltd |
Version: 1.0 | 2015.07.28 |
Category: Technical Manual | |
MiCOKit微信控制综合开发实例
摘要(Abstract)
本文档仅介绍如何使用MiCOKit开发套件(MiCOKit-3288或MiCOKit-3165)开发一个简单的,使用微信控制的综合例程:用微信展示MiCOKit发上来的温湿度数据,也能控制LED灯的开关。在温度为20度以下时,LED灯成黄色;在温度为20到30度时,LED灯成绿色;在温度为20度以下时,LED灯成红色。
适合读者(Suitable Readers)
本文适用于初级MiCOKit开发套件的开发者,
并适合所有MiCO-物联网(IoT)设备开发者参考。
零基础的读者请参考《“微信控制RGB LED灯” 开发实例教程》《“微信读取温湿度传感器数值” 开发实例教程》
Copyright (c) 2015 MDWG Trust and the persons identified as the documentauthors. All rights reserve.
: W5 c) [1 V" ]+ f; W
5 f4 Q' _0 q: ?2 v& Z 目录
" O0 K% h9 }2 E9 _; m) i$ o0 I
8 R9 C( B) Q0 x) J3 Y9 f' e. z1. 概述本文档仅介绍如何使用MiCOKit开发套件(MiCOKit-3288或MiCOKit-3165)开发一个简单的使用微信控制综合实例的过程。如图示:
% W5 `# g) B, `3 f8 m
2. 准备工作注意:开始前请确定射频驱动为最新版本
版本查询及升级方法请参考MiCO社区 → WiKi中心 →MiCOKit板块射频驱动升级
1. MiCOKit-3288开发套件;
2. 开发工具请使用IAR7.3版本及以上;
3. FogCloud开发者账号(Fog云使用、开发必须);
5. 个人微信号(用来开通“测试公众号”);
6. github个人账号(托管微信APP代码);
7. 网页编辑工具(sublime等);
8. 大致了解MQTT协议及json格式。
) G0 {& m! G+ P* _' h. B, t0 g
3. 开发流程1. 注册FogCloud开发者账号;
2. 使用个人微信号开通测试公众号;
3. 在FogCloud上创建、定义自己的产品;
4. 在FogCloud上创建产品对应的微信APP;
5. Github上创建微信APP代码托管仓库;
6. 配置微信APP和微信测试公众号;
7. 使用综合例程的固件;
8. 用IAR或Keil MDK工具开发MiCOKit固件(代码注释部分);
9. 使用Github工具托管APP代码;
10. 在FogCloud上生成设备微信二维码;
11.
手机微信扫码,测试Airkiss配网功能、设备控制功能。
! u5 l: n2 | w+ T( c9 Z
4. 详细步骤本例程为综合实例,针对一些步骤的详细信息,“ 零基础读者“请参考《“微信控制RGB LED灯” 开发实例教程》或《“微信读取温湿度传感器数值” 开发实例教程》
4.1. 注册开发者账号4.2. 使用个人微信号开通测试公众号2. 获得微信号、appID、appsecrect,用于后续在FogCloud上创建产品对应的微信APP。
4.3. 在FogCloud上创建、定义自己的产品1. 点击产品名称,进入详细信息(产品ID/KEY将在4.7节被写入设备固件代码中)
2. 创建产品的数据模型
数据模型是用来在云端定义产品功能、性能等特征数据的标准格式,可以储存设备监控、收集、控制、用户行为等数据,从而对数据进行分析,提升产品服务,开发案例过程中定义数据模型,能够有效帮助开发者将APP、云端与设备端的关键功能、特征数据等同步,避免开发过程出错。
本实例所需创建的控制数据点有(属性名和描述可按个人习惯添加):
1)开关(rgbled_switch) 读写属性为1 时间序列为否
2)色相(rgbled_hues) 读写属性为1 时间序列为否
3)饱和度(rgbled_saturation) 读写属性为1 时间序列为否
4)亮度(rgbled_brightness) 读写属性为1 时间序列为否
5)温度(Temp) 读写属性为0 时间序列为否
6)湿度(Hum) 读写属性为0 时间序列为否
7)设备开关(device_switch) 读写属性为1 时间序列为否
4.4. 在FogCloud上创建产品对应的微信APP根据提示,填写相关信息,其中微信号、AppID/AppSecret从步骤4.2中开通的微信测试公众号中获得。
4.5. Github上创建微信APP代码托管仓库请登录github.com自行创建新仓库。并克隆到本地,克隆方法详见《上传文件到GitHub》。该步骤的目的是获得一个可以在任何地方访问的git仓库,后面会使用该仓库托管微信APP的代码(其他类似git仓库托管工具也可以)。
4.6. 配置微信APP以及微信测试公众号(a) FogCloud上的微信APP信息:
其中URL和Token会在后续配置微信测试号时用到。
(b) Git部署(同步微信APP代码到FogCloud)
Repo即步骤5中创建的github仓库地址,填写后保存;
Deploy key和Web HookUrl可添加到github仓库的设置中,以自动同步代码到FogCloud;也可以不添加,但是github仓库中代码更新后,需要手动点击“发布”按钮来同步代码,同步后右边可看到最新的代码提交记录。
(c) 微信菜单管理
通过FogCloud提供的微信公众号首页菜单定制功能,方便的定制手机端微信上的控制界面及功能;至少包含“Airkiss”按钮,打开微信Airkiss配网功能,“OAuth”按钮(名称可自定义)进入设备控制。
(d) 设置微信测试公众号 URL与Token在创建的APP信息中可以找到。
修改配置信息:
URL一般为:http://4addb71f-1b5c-XXXX-94c5-f3d93795a17e.app.easylink.io/wechat.php。
下划线部分作为JS接口安全域名和授权回调页面域名。域名中不包含http:// 和 /wechat.php!!!
开通微信测试号的所有测试功能,如下图1,2,3:
点击4,修改网页账号, 如下图:
同“JS接口安全域名”,格式为前面提供的URL的域名部分,如xxxx.app.easylink.io,其中“xxxx”为FogCloud上创建的微信APP的id。
5 H; G! P/ i- ^% k" e! E
4.7. 使用MiCOKit SDK开发综合例程的固件(a) 登陆MiCO开发者网站mico.io,去MiCO社区注册账号,并登陆。
(b) 重新打开mico.io首页,开发者中心 ==> Wiki中心,下载MiCOKit SDK。
(c) 打开MiCOKit SDK中的综合例程开发实例工程:
…SDK_MiCOKit_V2.2.0.4_BetaProjects
STM32F4xxCloud_RGB_HumitureEWARMCloud_RGB_Humiture.eww
1)开发者手中拿到的可能是硬件平台可能是MiCOKit3288或者MiCOKit3165,编译时先选择硬件平台;
2)将FogCloud上创建的产品ID/KEY写入固件(必须替换);
3)修改版本号,这样才能把新的产品ID/KEY烧入FLASH;
4)添加固件代码;
5)MiCOKit与云端上下
通信,以JSON格式解析消息,并执行相应操作;
6)错误代码参考:在运行过程中如果出现错误,可在user_log中查看错误代码;
选择使用的烧录工具J-Link或者ST-LINK→编译/连接→烧录/下载。" M. r0 k$ L" K1 `) R
4.8. 用IAR或Keil MDK工具开发MiCOKit固件(代码注释部分)//应用程序入口在application_start(void),一系列动作(如配网、连接云等)以后,用户程序入口在这里。
OSStatus user_main( mico_Context_t * constmico_context )
{
user_log_trace();
OSStatus err =kUnknownErr;
charoled_show_line[OLED_DISPLAY_MAX_CHAR_PER_ROW+1] = {'