【MiCO实战贴】微信控灯11式(利用微信控制RGB LED灯) - 问答 - 电子威廉希尔官方网站 论坛 - 最好最受欢迎电子论坛!

【MiCO实战贴】微信控灯11式(利用微信控制RGB LED灯)

micolover ( 楼主 ) 2015-7-24 10:52:41  只看该作者 倒序浏览
本帖最后由 micolover 于 2015-7-24 14:47 编辑
+ c5 P0 B3 d9 d7 f* }* K( _9 t
/ X6 h( Z9 k9 A% ^% w8 R' A前言
! G* e1 u  r% f7 R4 I7 p  大神玩转MiCO好生羡慕
4 @  x& V' o# t" c1 y& |7 l  菜鸟低头不语无从下手
5 A* L$ V6 v  R4 h# b/ C2 s1 l  别慌~看完下面的武功秘籍,你也能成为一代米侠被人仰望
& x& j( |! ~! J; ~
& M, F* M2 Y! k% K; ?5 \一.微信控灯十一式
3 c0 F4 \& p8 S0 ~; ^4 q8 e  第一式:注册开发者账号        # O1 `5 G* h* n- D' [+ Y9 \
  第二式:使用个人微信号开通测试公众号        
5 B4 V' C7 v4 O4 {& L3 O9 p  第三式:在FogCloud上创建、定义自己的产品        7 ]" j/ T+ l0 L2 A& b$ g4 _
  第四式:在FogCloud上创建产品对应的微信APP        
( u# }! z. q* a# {  第五式:Github上创建微信APP代码托管仓库        7 M0 u5 S; x! h9 K; q6 E9 v
  第六式:配置微信APP以及微信测试公众号        & K7 @! Q+ \5 }2 ~8 ^5 P
  第七式:使用MiCO SDK开发RGB LED灯的固件7 S/ Y$ c. `/ e3 z' B. E% s
  第八式:用网页编辑工具(sublime等)开发微信APP代码        $ s% O. a- O, v) {: y! N7 G
  第九式:使用Github工具托管APP代码        
  C( h& w* z) B- @+ t6 {* ~  第十式:FogCloud上生成设备二维码        3 W! |- m6 r. t
  第十一式:使用手机微信扫码,测试“Airkiss”配网功能以及设备控制功能。         
, G# {9 V; i7 v- n# k$ ^" p二.基本功" k; W5 o+ N/ X+ ]$ ?0 k
  注意:练功开始前请确定射频驱动为最新版本  x) \& D4 t' K) y* D
  版本查询及升级方法请参考MiCO社区 → wiki中心 → MiCOKit板块射频驱动升级  U. }  T1 G1 \2 t) l
  1. MiCOKit-3288开发套件;: h8 d! C  Z, F) S! K5 E
  2. 开发工具请使用IAR7.3版本及以上;
7 l3 b5 [# E, W  3. FogCloud开发者账号(Fog云使用、开发必须);
' c4 z) d. m4 ^+ `4 ~  4. MiCO SDK v2.2.0(固件开发包);
! m4 I9 j; O* m: s/ e4 z  5. 个人微信号(开通测试公众号);: H7 @0 x2 k& t) s! s
  6. github个人账号(托管微信APP代码);/ V6 D. K  X; T& F
  7. 网页编辑工具(sublime等);
! A" ^: E0 V7 e1 e* L. x( }  8. 大致了解MQTT协议及json格式。* v6 W( C+ w3 t4 X; Q& j9 f* k
+ M7 _- e; O+ P! i6 ]
三.招式详解
# E) t) [; q) h* H' E  }" I0 j/ ^, r9 \
第一式:注册开发者账号
3 H& S; [: b* x* Y3 D/ m  登录www.fogcloud.io直接注册账号即可。该账号将用来管理你的产品及APP。; h8 B* o5 N# `1 [0 y3 D1 A

8 x+ L# x2 f! ~[/url]
7 B* i7 Y9 `& T1 N' V0 " u5 b" F

  `- d& Q) i; y  ^3 ~
/ @( t& D8 u5 U1 B7 M) b! k' ]% k
- ^6 ]: b' `7 w第二式:使用个人微信号开通测试公众号
8 a+ J4 ?, e  L, u; d  浏览器打开[url=http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login]http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
,点击登录,使用手机微信扫码,进入后即开通了测试公众号。" c, ^$ U3 c4 ]2 f

5 @8 q7 [5 }, E9 x9 y/ P7 ][/url]
- h1 }+ r& q! e: p2 N
7 s! i2 C6 e" u 3 y# ^! M  z7 f" d6 J  ?
  获得微信号、appID、appsecrect,用于后续在FogCloud上创建产品对应的微信APP。
2 G3 z8 i3 v6 x3 [1 t8 J0 H) V1 H9 H3 G+ P
[url=http://mico.io/ask/uploads/article/20150723/923e41bc3c91f99ba548d65e2ddd7ec6.png]

( K- t0 ?' G6 ]) m7 e: d5 N: S1 w& n1 @! Q5 Q

; ~# h; ~2 B5 }: i7 z5 c第三式:在FogCloud上创建、定义自己的产品
7 P8 r2 L2 \' V! V3 ~) ~2 x% h, z  A; G% H
[/url]
# J% \; {: V" ?; L( C& P9 k0 M  _% a1 h) x! I7 T2 F2 ]& u4 A5 c

$ R) I' _  x. J% g0 C  根据提示填写相关信息,创建完成后,如下
, Q7 ?' K: {6 c; ]3 q7 A" V
1 g+ [3 H% _& U) [[url=http://mico.io/ask/uploads/article/20150723/ac518bc12959f06f82624e4d9e6fc841.png]
4 m& Y; g# Q/ h% p

6 r* F2 q7 b, n0 H   K( N2 ~6 D; V
  点击产品名称,进入详细信息:
5 v2 r' k" N7 Y( {
/ J  R+ j$ R/ N" l( M  t9 A[/url]
7 O) s9 Y/ c" b+ x  M9 R. C7 R! R+ N% A; C2 d1 u
# F. x5 Z0 |8 \/ x8 N
  产品ID/KEY会写到设备固件代码中;
" Z+ q7 R+ b2 U, h; q* K  创建产品的数据模型,数据模型是用来在云端定义产品功能、性能等特征数据的标准格式,可以储存设备监控、收集、控制、用户行为等数据,从而对数据进行分析,提升产品服务,开发案例过程中定义数据模型,能够有效帮助开发者将APP、云端与设备端的关键功能、特征数据等同步,避免开发过程出错。3 ~: _5 ~* z; u; W; ^+ M
9 z# V$ E; o0 }8 u: \* G  Q& j( l
[url=http://mico.io/ask/uploads/article/20150723/419d8575656778d542b24f70ff5d4aa2.png]

# k' |- y' Q; N& E/ R9 c) q% L( O+ o
  x9 ?" _2 c% ^# \! O4 X
  本实例仅控制MiCOKit-3288上的一个RGB LED灯,所需创建的控制数据点有:( p0 T' r$ A1 P
     1)开关(rgbled_switch)                     读写属性为1         时间序列为否
( j7 e  `+ _. n( \     2)色相(rgbled_hues)                      读写属性为1         时间序列为否
. X# e% t  M8 \4 c- e. U. n     3)饱和度(rgbled_saturation)                 读写属性为1         时间序列为否. L' A( ~! k0 ~  s
     4)亮度(rgbled_brightness)                  读写属性为1         时间序列为否
& H7 k' G; ]% k5 b  *属性名和描述可按个人习惯添加& [4 m) p- I* A' f5 C
  注意:在创建数据点时,“时间序列”选项:选中时云端保存历史数据;不选时云端只保存最新的数据。6 F: Z1 J; R' v* k
  数据模型的具体作用在后面的进阶教程中详细讲解。* D8 w3 A6 I5 L2 i8 N! _
* C1 }4 G8 `2 v4 n9 H
第四式:在FogCloud上创建产品对应的微信APP
0 H; I, k3 }. V  ~4 r6 {8 ?3 f9 L& [, `4 I5 D4 ~
; g  k' J; a5 I) N/ H/ ^) u
[/url]1 D7 `+ @" b3 `$ E- W
/ v: T; e) E; s% ^. ?; N

9 m6 I3 x0 U$ u5 n/ f3 k/ e  根据提示,填写相关信息,其中微信号、AppID/AppSecret从步骤2中开通的微信测试公众号中获得。
7 u  m6 H$ F1 e' t& k- \$ z
: |6 p- Q9 @' t4 K9 W- L, B[url=http://mico.io/ask/uploads/article/20150723/12165d0d0d83feb3aba6851cc9588c08.png]

- K2 u, w( R# w# X2 Z# c+ [" a8 g5 K% U+ T, Y+ r0 M$ g

& H8 K" Q! c9 v' {+ s& f第五式:Github上创建微信APP代码托管仓库, _2 d$ R( b4 z$ L( O2 |
  请登录github.com自行创建新仓库。并克隆到本地,克隆方法详见《上传文件到GitHub》。该步骤的目的是获得一个可以在任何地方访问的git仓库,后面会使用该仓库托管微信APP的代码(其他类似git仓库托管工具也可以)。
* U* \5 }! Z: e' W6 a7 O8 Q# H; d( R5 ^/ F$ n6 o
[/url]+ v6 u0 L$ g, P3 Y% M" K/ R

1 c3 c8 o! t; s7 J, N7 _
3 @: {& R7 \6 Y) U! Y  获得仓库地址,例如:https://github.com/wangeshen/MiCOKit_test.git. w7 n* I0 M3 ^  |+ a; {
7 ^( c, E( n* {1 b- u6 p

$ M4 y1 s: C4 i1 R! q4 _第六式:配置微信APP以及微信测试公众号& o0 |3 Q/ A( d( m8 e; o. D
  (a) FogCloud上的微信APP信息:, A7 q9 \2 d: c+ N7 h' J0 g6 |

) f3 j) Y7 W1 t9 K  E# o9 Y[url=http://mico.io/ask/uploads/article/20150723/3e552dc6f9c1097d68b01b4643a04921.png]
" v2 G- e- L" E4 k8 V5 b

% F2 G3 ^8 {2 H  I3 U
* w# g5 R' h: ^$ _' M! h  其中URL和Token会在后续配置微信测试号时用到。
& ~: x' u  t+ H: {) @( P. S" q. |% s& b: q. a
  (b)Git部署(同步微信APP代码到FogCloud)
0 k6 _. N) x8 a; ]4 q$ ^
, k3 G( L! T9 a  q6 @: V[/url]$ h) n( J. c% s1 C
; b  b8 d) f% m/ U. Y/ X
. E3 X6 K# m4 E% d3 u
  其中:, X: I/ M% l" O3 X
     Repo即步骤5中创建的github仓库地址,填写后保存;
$ F. z& p* g9 N     Deploy key和Web Hook Url可添加到github仓库的设置中,以自动同步代码到FogCloud;也可以不添加,但是github仓库中代码更新后,需要手动点击“发布”按钮来同步代码,同步后右边可看到最新的代码提交记录。: X+ |4 u+ K% U, p; Z" q
$ Q5 `0 V- I1 G+ e/ E6 ]) Z, V$ S9 z
6 [) A6 p5 F; Z% q; z1 Q+ }+ J
[url=http://mico.io/ask/uploads/article/20150723/47bf7c17eb7ad746792160a06f14ab20.png]

# t1 X( Z2 l/ h9 g2 x- {5 ~& ~
) W1 ~1 O$ f4 L- O  a  y% o* W. o9 C7 y
  (c) 微信菜单管理
  Y# d2 M3 o' I0 k9 U. \+ d  通过FogCloud提供的微信公众号首页菜单定制功能,方便的定制手机端微信上的控制界面及功能;至少包含“Airkiss”按钮,打开微信Airkiss配网功能,“OAuth”按钮(名称可自定义)进入设备控制。
5 Q" L  o: _; C# ^0 O ( H9 n2 o2 ^1 {2 I

, j( [9 z4 B1 n9 g' F[/url]
9 {/ d/ v. b, F+ x1 y% P7 e5 t3 I3 d% J
/ E. |# n6 A3 P5 j! O
  (d) 设置微信测试公众号 URL与Token在创建的APP信息中可以找到
: V( M0 e. ~3 M' `  修改配置信息:) Y- Z: Q6 l! \7 c4 U7 }
  URL一般为:[url=http://4addb71f-1b5c-xxxx-94c5-f/]http://4addb71f-1b5c-XXXX-94c5-f
... ylink.io/wechat.php- o; h4 Y  j( \1 Z' t4 e1 S
  下划线部分作为JS接口安全域名和授权回调页面域名。
$ M0 V. _8 v- V4 x1 d' e+ {, g* c6 \: ]2 `0 K/ r
[/url]0 `* Q0 ?* }$ d8 q3 d) @9 N- {% M
5 B1 r1 S1 L7 o- O& |  O1 T
! o/ Z3 P8 l/ c1 v9 z) ?  X2 H9 C" |" S
  开通所有测试功能,并填写网页授权域名:% [9 a6 T. M5 a/ r
+ u: U6 M# r/ M* M
[url=http://mico.io/ask/uploads/article/20150723/4147bd2c388956cee39120fa591cd440.png]
% X9 `) S' z2 H# N2 H6 p. C$ u

/ G; ~( j( [* y- c7 P 1 e9 b' t% Z0 C- N+ w
  点击修改,打开如下:1 ?2 w3 L5 {% o
. G0 d% x/ N/ R2 e: N/ Q8 T
[/url]
( g* N4 }& D8 u* X# c0 J) C. R, {
6 D- n( F* z9 L - P0 @5 h* j% t& a9 f
  同“JS接口安全域名”,格式为前面提供的URL的域名部分,如xxxx.app.easylink.io,其中“xxxx”为FogCloud上创建的微信APP的id。) x+ q. r$ v4 U7 A

6 m: Y! g& F1 n5 w5 N% o, Z  k' v
8 N1 o0 X! n6 Y2 z第七式:使用MiCO SDK开发RGB LED灯的固件) X8 e& h/ I  X0 A0 F: t* B
  (a) 登陆MiCO开发者网站mico.io,去MiCO社区注册账号,并登陆;
5 s  \0 O$ N  ~
8 E4 ^1 j) Z. J5 E9 h8 D- U9 ^$ U# M[url=http://mico.io/ask/uploads/article/20150723/3c04c03f3d922eb74c06906c610b9290.png]

1 n+ Q) K2 _( S8 K5 @7 ^) R9 i7 U+ X9 N/ h4 k4 X0 j
: d( k. G* ^5 r
  (b) 重新打开mico.io首页,开发者中心 ==> Wiki中心,下载MiCO SDK。- v" `+ M" T$ m
& ?  m/ N/ {( O& K% E
[/url]
, J! G9 @: B' Q" R0 }( d7 }; g  T8 I0 j7 N! x3 b/ T. Y0 e4 c8 ]' p
+ V. |+ o, N: }/ i
  (c) 打开MiCO SDK中的微信开发实例工程:3 v# o1 X! g7 D  {1 P

7 e& Y& [) V* b5 I8 |. K& n[url=http://mico.io/ask/uploads/article/20150723/3c6381767bf00833cab64ed4c37df2f8.png]

6 W) V" r& g* C% a4 d1 g  W# |# {' D) O4 @" _2 [

; @% X+ G# ^5 u, b8 V. c5 _) i    1)开发者手中拿到的可能是硬件平台可能是MiCOKit3288或者MiCOKit3165,在编译工程时要先选择硬件平台;4 |' D# Q3 X8 c: O" f7 l
    2)将FogCloud上创建的产品ID/KEY写入固件(必须替换):
# k5 A4 o7 O; i
- |3 @' {. h$ U& v8 N& @  |+ `: Z[/url]
- Y& g9 R* f1 x" \$ _; ]8 K6 s8 j4 H

. ^1 G, Y1 k# a    3)修改版本号,这样才能把新的产品ID/KEY烧入FLASH
1 d: n% o3 _) T) I0 ?1 u3 m/ |4 p% d, M4 Z7 D
[url=http://mico.io/ask/uploads/article/20150723/1661ce047fc9ea5e465db04acd59c24e.png]

9 ?; D- k6 o9 M" k+ A0 Z* S
% T1 w( [2 F, G  U9 N1 l , {4 x4 L2 E6 p' A
    4)添加LED灯控制代码:9 N+ V: _- `0 ^( X. u: M
$ Y, J  U) l4 S( ~7 c  ^( v" k
[/url]
  e' \/ B- S% @7 L1 z( z6 j9 m, Y% o2 @+ Z1 x

8 w% q* \. ^& V7 E* _& Z    5)改为收到云端消息后,解析JSON数据,并控制LED。% F* Z4 a3 `) \/ Y3 T- j$ b
- p& h8 o* q& Y- z: s8 ?
[url=http://mico.io/ask/uploads/article/20150723/fb02025e4062a859d0d33d4178cd156a.png]

3 j% v/ W1 X* `5 Z/ o/ s$ T! Y+ R3 k
6 c$ S4 P3 z/ u" |/ m
    6)错误代码参考:在运行过程中如果出现错误,可在user_log中查看错误代码。/ y+ W! `9 A) I# K* Q( a' g
. Z$ f2 f' L! |5 i( C
[/url]( l2 n& T9 Q% F" ]1 ^

, n. Q& Q0 R: V. v
# Q- ~, M; F3 C( m[url=http://mico.io/ask/uploads/article/20150723/9f6828473efaa4a01ae4434c236a2ef6.png]

5 Z% T* P- Y. p6 }" j# h/ Y6 R6 f& `9 o1 Z/ P7 e4 ~

# d3 ]+ H! A: O% _# E/ y/ L( P$ t    7)MiCO SDK固件烧录。(详细固件烧录方法及步骤请参考http://mico.io wiki中心)
$ W1 s. f* g1 q+ p选择使用的烧录工具J-Link或者ST-LINK:
5 x' I$ O/ [9 y. z" ~8 r3 `5 v8 n# k$ r# J( {2 ^5 q
[/url]
6 J& U3 d' U. I' }/ u3 Y* a) ~$ I: h3 _2 Q3 f! ~

  d/ C7 a# }4 T- A1 X! o  ^! Z: ]  编译/连接:
$ d2 k$ M- g. Z1 j! ~; J: N& ?% u' I" O
[url=http://mico.io/ask/uploads/article/20150723/14ee93da638bb344905c2f6c7a8481ef.png]

  i  B4 S! r' ]0 w8 n! t- R# e
( I; @) _# k1 W) h4 D3 U) N 6 ?( q8 Y5 w! _. p% ]: v7 e; U
  烧录/下载:
  ]# d' D  z. J2 l2 h6 e. S( r: Z/ h6 [2 L% R
[/url]. ~3 Y+ j: a3 j' \( Q# i

) r. X2 Q' e* _0 ~6 R4 h
( m: F  O1 f+ ], Z第八式:用网页编辑工具(sublime等)开发微信APP代码
+ N3 R6 A5 S8 l以下为核心代码及其注释& `% A: l& j# q* J  o6 R
//应用程序入口在application_start(void),一系列动作(如配网、连接云等)以后,用户程序入口在这里。
* A' J' v$ B4 y% C  w( AOSStatus user_main( mico_Context_t * const mico_context  , M, W5 _$ c1 K( ~5 @
{
" r2 j7 M6 r' P8 A1 @' i: b& m  //user_log_trace();
* ~! M  P( p: a/ [0 h& A  OSStatus err = kUnknownErr;% s/ |# V6 X8 s6 v5 G
  fogcloud_msg_t *recv_msg = NULL;//接收数据结构体; I, s9 k0 }# u$ l) R
  json_object *recv_json_object = NULL;//结构体内包含json数据格式
. P6 m# [3 ?1 I+ v# \# {9 v  /* rgb灯的色彩模式采取h***色彩模式(色相、饱和度、亮度) */
& V6 t9 ]0 F0 j- M' w! B2 E  bool led_switch = false;//rgb灯开关
0 b& r6 l7 f- H/ X  d  int led_hues = 0;/ s0 T- V& N7 T' |8 c3 Y
  int led_saturation = 0;2 b0 \. C5 " ~  y' f, _
  int led_brightness = 0;4 ~% b) Y& k2 K$ l
  require(mico_context, exit);  }# h8 \; @0 f( T' ^, Z" z
  h***2rgb_led_init();  // RGB_LED初始化. n) w- N8 G9 a# @2 i
  while(1){
# E+ m) @7 K5 u9 L6 p0 C6 L    mico_thread_msleep(100); //延时100ms
/ _4 A4 J7 U; G1 b* s: Y$ d; `    // 检测 fogcloud 连接状态4 c/ f" k+ h* k1 Q
    if(!mico_context->appStatus.fogcloudStatus.isCloudConnected){. |; i, w9 q7 g6 {! O# C
      continue;
3 F4 ?  C; f" w0 j- |6 ]( i    }
: I( ~5 G$ Y6 B6 ?3 K+ V    /* 7 [0 O8 {' y+ ?# p; C7 s6 W0 x
      接收来自云端的数据) d9 K4 A  a+ d. i: o) ^
      recv_msg->data = +- ]2 j! R% m, Y
      topic表示模块订阅的MQTT通道名,data表示云端返回的数据2 q' r* Q6 n/ W( B" @4 ?" t8 ~
     */
7 D3 N& Q8 y, H0 ]; T    err = MicoFogCloudMsgRecv(mico_context, &recv_msg, 100);
% z# r6 b/ S3 a- D8 \1 f    if(kNoErr == err){
3 a( J$ [; C6 J+ J8 I// 打印  例://user_logtopic[30]=[de54a8ea/c8934691816b/in/write]data[23]=[{"rgbled_switch":false}]
1 [6 d; o0 R# ]" i      user_log("Cloud => Module: topic[%d]=[%.*s]tdata[%d]=[%.*s]", 5 P" {4 [. a/ P7 B( V
               recv_msg->topic_len, recv_msg->topic_len, recv_msg->data,
. X3 {( _3 {+ }, v, w2 Orecv_msg->data_len, recv_msg->data_len, recv_msg->data + recv_msg->topic_len); ' {8 ~6 o5 F# k3 @  b* k
// json格式的字符串数据转成json对象
- U( g3 {/ N+ l7 E: F# @- T      recv_json_object = json_tokener_parse((const char*)(recv_msg->data + recv_msg->topic_len));! r9 ]. A1 c' Y2 g& b5 P% L, f
      if (NULL != recv_json_object)# v# L6 [5 t1 Z3 x2 a! G% @
      {
, l! m9 t& [" X9 B        //根据键值对遍历7 c8 e$ J0 d5 i' R9 R$ m
        json_object_object_foreach(recv_json_object, key, val) {) R1 ?- \0 S) R
          if(!strcmp(key, "rgbled_switch")){9 o) Q. Z1 g, w. N# w) }+ X
//如果键为"rgbled_switch",提取值“开关值”9 n* N8 e! |( a
            led_switch = json_object_get_boolean(val); ; O5 H% }( h6 Z0 {$ P& V' T
          }
: E0 r. {, i' Z; a, O# q          else if(!strcmp(key, "rgbled_hues")){
. L& i" M$ m8 O' d! f: e$ h                        //如果键为"rgbled_hues",提取值“色相值"
' d; O8 H: f, Z6 [5 }9 f# s            led_hues = json_object_get_int(val);* w* M) n! ^& m9 _
          }
/ M1 \8 I  ~! M1 s& H6 x8 U          else if(!strcmp(key, "rgbled_saturation")){4 T( D: `& W2 L- J! T4 p8 Z
                        //如果键为"rgbled_saturation",提取值“饱和度值"4 L5 B2 b0 M9 p7 \# A& S
            led_saturation = json_object_get_int(val);
/ ?9 Y$ r7 W* ?          }) q0 g% z: |; o" |" D! i" o
          else if(!strcmp(key, "rgbled_brightness")){
" @4 c7 h. ?! p0 Y) }# X% `//如果键为"rgbled_brightness",提取值“亮度值"7 Q) A9 o& S- [. u
            led_brightness = json_object_get_int(val);& E; ^/ I' o: S  Q  s" q
          }
( V- n; ?$ }& h6 R  n        }
5 X* h  ~+ g' ~& R0 S  m& Q2 {2 {        // 控制LED! B2 Z/ f% |: X2 q5 n5 C1 W
        if(led_switch){
5 z/ r& ~0 K, Y& W+ Y          h***2rgb_led_open(led_hues, led_saturation, led_brightness);2 M6 u& r2 M2 F+ m: r
        }else{
. L6 P7 m- g7 ]          h***2rgb_led_close();  // 关闭
; k# U" ]& g9 @# n: w* a3 h/ g        }
; b: r  x, p- c2 W& g' u        // json对象内存释放& W. b- b! u+ ]+ k/ w2 Q
        json_object_put(recv_json_object);$ S% e' j7 e& f: h0 d2 N" N
        recv_json_object = NULL;
% s# h- X+ m1 b! e, z      }: d( v( h" f' w4 k
      // 结构体内存释放$ l3 i5 |. p% X/ [# @7 I
      if(NULL != recv_msg){( ]6 x2 d+ Q+ o
        free(recv_msg);
0 `* J/ `" `' _' \# T: W: V        recv_msg = NULL;
/ S" X9 Q+ `% N/ l      }
. j( I& r. X' }9 E' b( ^    }
# t1 \/ o; \: @. z2 v  }1 H9 T; b3 J" p) z
exit:
# T' J( `. H5 Q8 u' s/ a  user_log("ERROR: user_main exit with err=%d", err);4 P7 C2 y/ D- J% b
  return err;
; Y, ^$ W  @. g+ c! L* m}* |- I( }* u7 n0 |

9 g  i- X; c- E0 o  G4 p4 S
2 F* {" D8 r% y第九式:使用Github工具托管APP代码* W) N: {5 ]* r( _9 ]
  在例程包中(MiCOKit SDK的APP目录下),找到微信APP控制页面代码(index.html和yourID.html),将yourID.html.重命名为你的产品ID,如cabca380.html。拷贝这两个文件到本地git仓库,再同步到git服务器。同步方法详见附件——上传文件到GitHub.zip。
% O0 K" P4 g$ S1 E8 b
" S8 L) j& C( i. Q6 o7 M[url=http://mico.io/ask/uploads/article/20150723/97411f3674d23cb747a33172ee9c1284.png]
9 L; n: [& L5 ?% m
# ^0 d" [4 B* N7 a& A

) z0 g# P- y; J7 F+ b  index.html   —— OAuth按钮跳转到该页面(一般为设备列表页面,可不做改动)# v3 y: ^" }% {3 `5 m( x: e
$ C4 n% s) z7 }  e  Y8 b
[/url]# G9 A* o; y4 T9 v2 ~

" ]# _3 |, ?: B# M$ o/ w0 U' O) z
$ H, g+ X$ \4 e  xxxx.html   —— 设备控制页面(其中xxxx为FogCloud上创建的产品id)
% m, _9 K$ o+ _+ v0 H) e6 J , b  v/ Q: A( r7 C4 u  e2 [) d
, S( v  o5 @/ e
[url=http://mico.io/ask/uploads/article/20150723/bdd3e767bff5fdcf06f16b6ee478f57e.png]

% r1 I3 w+ Q5 w% `' |7 n7 H& O) H' S: O. u3 J: _0 R' n

+ ~# m/ H% j( V. E$ _. ?* p2 @  详细代码见附件代码包,部分代码解释如下:
& ^$ J0 X" b2 G; z4 N7 m . w8 ]$ {3 f0 o' |5 b6 M# |

2 p1 }* \' ^  n/ H! M# N5 o0 t1 [[/url]) X0 H& |  a2 t* I3 o$ S! `

2 s- m( T4 Q; `- U0 P, [5 ~) k9 M) S2 y7 K! n$ h
[url=http://mico.io/ask/uploads/article/20150723/041017556fe9d8bf147cab201e4055c6.png]

+ _' F1 T  g" E  K, |+ M4 H+ V
$ d# n9 u8 K: ~ ; G+ y7 O0 A6 {; `8 o  x
6 |' x2 k4 D- t' ?/ u
  修改、并提交代码后,如果没有配置WebHook让FogCloud自动更新代码,则需要到FogCloud上手动点击“发布”按钮更新代码,并通过git提交记录确认是否更新成功。
1 P$ n4 Y0 z. i
7 g# h! K$ I4 L! c6 G: ^( k' M$ x5 G1 p
第十式:FogCloud上生成设备二维码: N) B3 P2 x# _  u: I# z% N2 q) @
  (a) 创建新设备
5 q, U& e: w4 S: [4 e
3 ]0 }3 F2 a! F! J[/url]
( Q" W' G( P' f( ?  f  m9 F7 ?. `5 h4 D, [* N! ], X

' u$ b; n. U9 J3 z6 K" i (b)填写设备MAC地址(由小写字母和数字构成,设备上电后会向串口发送MAC地址及其他数据,可用串口工具查看)接口创建设备。. F2 ^9 ], s4 c3 S* Y

; \; T4 U6 k- }1 z
5 t3 M, `1 ^) C0 M/ x# @[url=http://mico.io/ask/uploads/article/20150723/60addb425f19b481c3d2ea9346bbd71f.png]
5 ]4 }$ p& z# |: k; h5 J2 g4 t3 s
& Y# \1 P- Y& W
! s; p. Q+ M3 E. n& h" F

" l* `9 ]; a; P5 c( j  (c) 为设备生成微信二维码* ^2 t& f" E4 ]; z5 b
  点击“同步到微信”按钮:  
! R4 _: o- q( E! m5 n6 l% A. f3 G , c) u  y$ H2 k$ @$ c7 {: h
[/url], }- Y  j+ l: p  B
  {  W* ~; d# j

3 G! J. T+ p# l  选择创建的产品和要使用的APP后点击同步按钮。$ e: }' y8 K2 l+ t4 |

! S+ o3 N) C: T" P2 ?: V" y[url=http://mico.io/ask/uploads/article/20150723/8391b8371fe9a3cf4338e65240989bf1.png]

3 I" y. p; B8 v% E% m0 m7 |: i) N. W/ q. w7 q

7 f, [7 x# J( G$ u  成功后提示:{"result":200,"message":"success"}3 n. C8 _3 d3 {+ l9 ^2 i
( @$ b1 m$ u7 \) n6 [+ J$ I) h
[/url]
# u( U" A7 ^( h5 T
6 D/ K6 [1 _& r+ S9 e: S, \; n& f0 U* k. E* p1 R, Y, z2 V

3 g7 p" }# K" v7 C. ~( \  极少数情况会因为微信公共平台延时的问题出现err:500问题。等待几分钟后重试即可。
' h: ?$ F. p* M$ H  返回到产品界面,可看到你的新设备。 " o( x- S% q% Q. |

9 z5 g* t' ?% n[url=http://mico.io/ask/uploads/article/20150723/fb1885f6aaad37a08f169dbe29946d54.png]

: E, x: O# e4 G; W
+ m3 x# ]: R' D% n. v; p2 ^0 k6 V/ b* a  `
[/url]
7 M3 S9 U( k$ S" \0 e' v
! n" N/ l( [1 V# s* _  l9 H . b6 J5 X3 E( Z! M

3 B7 G5 R* k+ i/ ~2 \第十一式:使用手机微信扫码,测试“Airkiss”配网功能以及设备控制功能。2 Z' ]& Z2 S" P  B
  (a) Airkiss配网
% ^' q0 }$ X+ X' Y" G4 g  Airkiss威廉希尔官方网站 可以帮助你的设备在没有人机交互的情况下智能配置当前Wi-Fi环境的SSID及密码。(假如你的智能设备是一颗灯泡,总没有屏幕和按键让你输入SSID及密码吧)" l. v5 L' W% O
按设备上的Easylink按钮进入配网模式,底板上的LED(D1)灯快速闪烁;
6 D6 ^, h3 x6 [; R手机输入当前所在环境的wifi密码,点击连接,成功或超时会自动跳出该页面。2 o" b( u8 L% A: a4 f+ E6 t
, z/ l0 t; M9 [
[url=http://mico.io/ask/uploads/article/20150723/18e3a2ba0846a30f245578b054272b7d.png]
0 |* P) y! u7 F& K' y

4 O4 z$ {5 i5 h) J- T' Z3 ^
; d% S: S4 I8 U# C9 J: ?  (b) 设备控制) G9 t+ V- o( I: W" w# r
  Airkiss配网成功后会跳转到设备列表,红色圆点表示设备不在线,蓝色圆点表示设备在线。若配网成功后设备依然显示设备不在线,可点击右上角刷新按钮。点击列表进入设备控制界面,点击控制按钮,控制MiCOKit-3288扩展板上的RGB LED灯。1 M0 f6 t  u: a: ]. Z
已经配网成功的设备不需要再次进行Airkiss,只需点击测试公众号中的“Devices”按钮,进入设备列表,点击列表进入设备控制界面,点按按钮,控制MiCOKit-3288扩展板上的RGB LED灯。
/ Y) ^: \* {! \+ c1 ?9 `: M' S( s! Q3 \" ^  |9 E
[/url]4 C/ m% e$ Z  W* ]

! l6 L6 e6 x7 A( U( P6 t7 n( m0 Z. F1 {
[url=http://mico.io/ask/uploads/article/20150723/13e7c77638ede00ccf82d4fb10429ab2.png]

& N/ B0 o/ A6 D7 X) X
. C* X0 U( k6 V, i/ R; U/ K4 M7 B
; j; ]0 Y6 k1 o9 X  如果您完成到此步骤,那么恭喜您大功筑基已成!!
; ]4 {, O6 e" w* K9 |* e- G* G  武功在手,天下我有!9 e* c( ?* s& a7 A8 j& a7 o) ~
  祝愿各位米客能手持MiCO利剑,在物联网智能设备的新江湖建功立业!

) I* E0 ?, }/ s% Y
. J8 G1 w! O, `# l8 {- z4 f另:源代码地址 http://pan.baidu.com/s/1bnsGEy7! F8 a. V6 o, t+ a, g2 J8 T

, P( `7 R! D5 i% t% t* a; P4 IMiCO团队/ B9 w1 J( [/ Q, O! U. w. B
敬上!
' N/ O1 ~4 ]4 M" V  H! \8 z[/url]
" {! q' W8 z8 Q2 U- F# }
[url=http://mico.io/ask/uploads/article/20150724/02263811253059862ccc8df321bb95b5.jpg]! Z- j& g+ [- b% J- I: J$ J3 `% V% `3 [

* n5 L7 z  W3 `6 ?

0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2025-2-25 02:08 , Processed in 0.632982 second(s), Total 65, Slave 46 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表