MiCO Documenta tion Working Group (MDWG) | Jenny Liu |
Track Number: 0009CN | MXCHIP Co., Ltd |
Version: 1.1 | 2015.07.29 |
Category: Technical Manual | |
微信读取温湿度传感器数值开发实例
摘要(Abstract)
本文档仅介绍如何使用MiCOKit开发套件(MiCOKit-3288或MiCOKit-3165)开发一个简单的,通过微信读取温湿度传感器数值的应用实例过程。
适合读者(Suitable Readers)
本文适用于所有MiCOKit开发套件的开发者,
并适合所有MiCO-物联网(IoT)设备开发者参考。
版权声明(Copyright Notice)
Copyright (c) 2015 MDWG Trust and the persons identified as the documentauthors. All rights reserved.
0 G6 p( {9 e9 T/ w/ x/ u; Z
6 h1 C2 q u$ |: p 目录
+ v3 d1 _6 `# F/ j8 A5 C
1. 概述本文档仅介绍如何使用MiCOKit开发套件(MiCOKit-3288或MiCOKit-3165)开发一个简单的,通过微信读取温湿度传感器数值的应用实例过程。
2. 准备工作注意:开始前请确定射频驱动为最新版本
版本查询及升级方法请参考MiCO社区 → wiki中心 →MiCOKit板块射频驱动升级
1. MiCOKit-3288开发套件;
2. 开发工具请使用IAR7.3版本及以上;
3. FogCloud开发者账号(Fog云使用、开发必须);
5. 个人微信号(开通测试公众号);
6. github个人账号(托管微信APP代码);
7. 网页编辑工具(sublime等);
8. 大致了解MQTT协议及json格式。
3. 开发流程1. 注册FogCloud开发者账号;
2. 使用个人微信号开通测试公众号;
3. 在FogCloud上创建、定义自己的产品;
4. 在FogCloud上创建产品对应的微信APP;
5. Github上创建微信APP代码托管仓库;
6. 配置微信APP和微信测试公众号;
7. 使用MiCOKit SDK开发固件;
8.用IAR或MDK工具开发MiCOKit固件代码(代码注释);
9. 使用Github工具托管APP代码;
10. 在FogCloud上生成设备微信二维码;
11.
手机微信扫码,测试Airkiss配网功能、设备控制功能。
; H& X; \& ~, r _4. 详细步骤4.1. 注册开发者账号
4.2. 使用个人微信号开通测试公众号
% V0 _3 K+ ]- [/ ]获得微信号、appID、appsecrect,用于后续在FogCloud上创建产品对应的微信APP。
4.3. 在FogCloud上创建、定义自己的产品
根据提示填写相关信息,创建完成后,如下
4 a, o3 q& Q* u+ \, `8 n0 Z
点击产品名称,进入详细信息:
产品ID/KEY会写到设备固件代码中;
创建产品的数据模型,数据模型是用来在云端定义产品功能、性能等特征数据的标准格式,可以储存设备监控、收集、控制、用户行为等数据,从而对数据进行分析,提升产品服务,开发案例过程中定义数据模型,能够有效帮助开发者将APP、云端与设备端的关键功能、特征数据等同步,避免开发过程出错。
本实例读取温度与湿度数据,所需创建的数据点为:
1)温度(temp) 读写属性为0 时间序列为否
2)湿度(humi) 读写属性为0 时间序列为否
*属性名和描述可按个人习惯添加
注意:在创建数据点时,“时间序列”选项:选中时云端保存历史数据;不选时云端只保存最新的数据。数据模型的具体作用在后面的进阶教程中详细讲解。
4.4. 在FogCloud上创建产品对应的微信APP
根据提示,填写相关信息,其中:微信号、AppID/AppSecret从步骤2中开通的微信测试公众号中获得。
9 G5 g: `: k# h3 ?8 a4.5. Github上创建微信APP代码托管仓库请登录github.com自行创建新仓库。并克隆到本地,克隆方法详见《上传文件到GitHub》。该步骤的目的是获得一个可以在任何地方访问的git仓库,后面会使用该仓库托管微信APP的代码(其他类似git仓库托管工具也可以)。
4.6. 配置微信APP以及微信测试公众号(a) FogCloud上的微信APP信息:
其中URL和Token会在后续配置微信测试号时用到。( c8 l" c; `* S0 _8 O
(b)Git部署(同步微信APP代码到FogCloud)
其中:
Repo即步骤5中创建的github仓库地址,填写后保存;
Deploy key和Web HookUrl可添加到github仓库的设置中,以自动同步代码到FogCloud;也可以不添加,但是github仓库中代码更新后,需要手动点击“发布”按钮来同步代码,同步后右边可看到最新的代码提交记录。
* n# M& J( K& b(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。
4.7. 使用MiCO SDK开发固件(a) 登陆MiCO开发者网站mico.io,去MiCO社区注册账号,并登陆;
(b) 重新打开mico.io首页,开发者中心 ==> Wiki中心—MiCOKit发布中心,下载MiCOKit SDK。
(c) 打开MiCOKit SDK中的微信开发实例工程:
1),开发者手中拿到的可能是硬件平台可能是MiCOKit3288或者MiCOKit3165,在编译工程时要先选择硬件平台;
2)将FogCloud上创建的产品ID/KEY写入固件(必须替换):
3)修改版本号,这样才能把新的产品ID/KEY烧入FLASH
4)添加读取温湿度代码:
5)改为从
开发板上读取温湿度数据后,打包成JSON格式,并上传到FogCloud。
# u' n; O* l G2 v
6)错误代码参考:在运行过程中如果出现错误,可在user_log中查看错误代码。
$ B) {7 X0 h2 d8 B
选择使用的烧录工具J-Link或者ST-LINK:
8)编译/连接:
9)烧录/下载:
4.8. 用IAR或MDK工具开发MiCOKit固件代码(代码注释)//应用程序入口在application_start(void),一系列动作(如配网、连接云等)以后,用户程序入口在这里。
OSStatus user_main( mico_Context_t * constmico_context )
{
user_log_trace();
OSStatus err =kUnknownErr;
json_object*send_json_object = NULL;
const char*upload_data = NULL;
uint8_t ret =0;
uint8_tdht11_temperature = 0;
uint8_tdht11_humidity = 0;
// 将温度与湿度数值同步显示在OLED上
charoled_show_line[OLED_DISPLAY_MAX_CHAR_PER_ROW+1] = {'