【MiCO实战贴】微信控灯11式(利用微信控制RGB LED灯) - 问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

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

micolover ( 楼主 ) 2015-7-24 10:52:41  只看该作者 倒序浏览
本帖最后由 micolover 于 2015-7-24 14:47 编辑
) h% O$ {, l, ?: M7 F" H$ |, L: U
( E' N/ o* x4 z前言
8 o0 t2 }6 O/ V: S4 D8 @5 ?: K3 T* U  大神玩转MiCO好生羡慕
" c$ [' o2 J1 D  菜鸟低头不语无从下手
/ k. |2 k( m1 g  别慌~看完下面的武功秘籍,你也能成为一代米侠被人仰望* u. z& w' \' s' i% ]8 F8 c

0 h9 P  `3 l: m) x# A0 J  q3 ]一.微信控灯十一式
0 m& p( j4 W+ G  第一式:注册开发者账号        ' h' m& ?! l; R3 G  j: C9 P. B/ n
  第二式:使用个人微信号开通测试公众号        
6 P7 X/ X# s  D" \5 [$ K8 V9 I. u  第三式:在FogCloud上创建、定义自己的产品        : K! r7 ]+ b/ ]6 a8 T4 t
  第四式:在FogCloud上创建产品对应的微信APP        ( I) D  K$ k6 c( |+ K
  第五式:Github上创建微信APP代码托管仓库        : f/ J) O. v4 ^& J
  第六式:配置微信APP以及微信测试公众号        2 x1 R3 f) u" F) N5 j9 e
  第七式:使用MiCO SDK开发RGB LED灯的固件
5 E9 Y2 T" |0 ]- u( U* C  第八式:用网页编辑工具(sublime等)开发微信APP代码        
# v' U4 h" b6 r1 F  第九式:使用Github工具托管APP代码        
/ h# u9 l4 ]1 c" K, z  第十式:FogCloud上生成设备二维码          j& S1 Z" c5 G* I9 g" e+ |
  第十一式:使用手机微信扫码,测试“Airkiss”配网功能以及设备控制功能。          # {/ m3 l; g& T8 u( S" T
二.基本功: r$ m. b5 y7 m' r6 o% V
  注意:练功开始前请确定射频驱动为最新版本
7 q( V+ f( E! `, t* {: J- I+ g6 ]  版本查询及升级方法请参考MiCO社区 → wiki中心 → MiCOKit板块射频驱动升级4 d( m% i& m0 g5 u( ?
  1. MiCOKit-3288开发套件;* L9 U7 B- x% j2 S- E
  2. 开发工具请使用IAR7.3版本及以上; ( Y9 U4 Q2 I/ D1 p. s
  3. FogCloud开发者账号(Fog云使用、开发必须);% D- O5 ^! @& J& ]5 }8 Y3 |9 f3 k
  4. MiCO SDK v2.2.0(固件开发包);' _6 o6 T1 X/ q
  5. 个人微信号(开通测试公众号);) [# ~/ V9 }3 K- W& z
  6. github个人账号(托管微信APP代码);
' o, l4 ?" A1 n/ t5 `  7. 网页编辑工具(sublime等);) c$ \! F; _* u' ^6 f
  8. 大致了解MQTT协议及json格式。
  s* j& F! L) o1 E' _! I$ Y0 X% M; B. ?7 o3 G- \
三.招式详解- `  p" Y1 r- F( o
1 r6 y+ A2 |1 C. O/ N5 X
第一式:注册开发者账号% Q$ Z8 `& E& i  t" ^" ]8 l
  登录www.fogcloud.io直接注册账号即可。该账号将用来管理你的产品及APP。) v, r1 J4 {2 \9 `
$ f" |6 T4 F0 v6 q- z2 q  q. R
[/url]
6 S) e: Y& {0 h6 C: w
( ?* b8 I, g3 \% L8 y  }- j4 F5 X" L7 j0 i5 I
" }5 z/ P* X$ L& N

2 g1 K& g: i. h6 W3 h第二式:使用个人微信号开通测试公众号! b0 S0 G7 ?) q) x) |
  浏览器打开[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
,点击登录,使用手机微信扫码,进入后即开通了测试公众号。
0 J4 p% N  q7 M: f5 p
( o& e1 D' `9 }1 _" K: g1 @[/url]' I6 ]* m+ T) E7 P1 J& O
$ n3 A6 L% ~, Y) ]) y' D

: E2 R# {/ o2 v6 t( L* ~  获得微信号、appID、appsecrect,用于后续在FogCloud上创建产品对应的微信APP。& P* O$ H+ y" g1 i7 V. V# c

2 o3 ~6 j0 j% N# V1 p2 f/ l[url=http://mico.io/ask/uploads/article/20150723/923e41bc3c91f99ba548d65e2ddd7ec6.png]
  U, G% N0 z- ~  O9 g2 o
+ y, E  q9 M6 o; d4 S* a$ [" v
* u/ U( Q8 V, E
第三式:在FogCloud上创建、定义自己的产品
4 H1 D6 r7 c9 C6 h; g0 [3 V: b% i, B3 H1 S2 ?" c1 p! u! u
[/url]. L& l! C# |; n) N) z- t
% q4 W+ K+ n: X7 u

. ?" n: f+ z2 K/ N  S- R1 N  根据提示填写相关信息,创建完成后,如下8 [2 i- d, U& l% A
, J3 m6 _& m3 a
[url=http://mico.io/ask/uploads/article/20150723/ac518bc12959f06f82624e4d9e6fc841.png]
9 W& u7 y) |5 @: Q
; k" @, ^2 ^, n% V1 D5 C
- U8 U4 ^2 M( e+ k2 x3 ?# `5 m
  点击产品名称,进入详细信息:" }5 g  {; x6 Y

3 ?! t8 r, a! `) T1 S& |[/url]
/ ^% j8 C  T9 B
9 a" t" j9 d  _
" d2 p8 ~2 M3 a# C0 ]5 q  产品ID/KEY会写到设备固件代码中;  W' t4 l4 a$ G7 g
  创建产品的数据模型,数据模型是用来在云端定义产品功能、性能等特征数据的标准格式,可以储存设备监控、收集、控制、用户行为等数据,从而对数据进行分析,提升产品服务,开发案例过程中定义数据模型,能够有效帮助开发者将APP、云端与设备端的关键功能、特征数据等同步,避免开发过程出错。
/ e- L0 d1 \9 ^/ B, l# [
  @( l  L1 M' Z# C. a% u5 e[url=http://mico.io/ask/uploads/article/20150723/419d8575656778d542b24f70ff5d4aa2.png]
* w# a: U7 M+ i0 _

( f( C0 H8 L7 u
. M' D# ]' [, @. K  本实例仅控制MiCOKit-3288上的一个RGB LED灯,所需创建的控制数据点有:6 o! J5 W2 v  N- U9 l: |
     1)开关(rgbled_switch)                     读写属性为1         时间序列为否
' n" O1 J& O4 ~3 F& L     2)色相(rgbled_hues)                      读写属性为1         时间序列为否8 V8 H  c' c# x% w
     3)饱和度(rgbled_saturation)                 读写属性为1         时间序列为否, P) [  m; Y# G3 r/ q6 _- d
     4)亮度(rgbled_brightness)                  读写属性为1         时间序列为否! |$ J' C: n* g
  *属性名和描述可按个人习惯添加2 k/ N5 h8 C6 t# C) R3 \; j: }
  注意:在创建数据点时,“时间序列”选项:选中时云端保存历史数据;不选时云端只保存最新的数据。
. \* }) P5 Q" r+ R3 `0 [  数据模型的具体作用在后面的进阶教程中详细讲解。5 L2 f( o5 _+ K& s
2 h, Q# t0 @- |- A) ?  u
第四式:在FogCloud上创建产品对应的微信APP
! Z# ?$ t0 C( ]  N6 F5 g" I3 b; ?2 ~8 \2 Z( L& @

8 _( s. M# v9 T5 ^[/url]8 U! B% ?9 {$ G5 x, o
4 x; c2 t5 F( x" u/ {+ g; d! Z

- Y5 P5 t1 V1 V" h, S$ S  根据提示,填写相关信息,其中微信号、AppID/AppSecret从步骤2中开通的微信测试公众号中获得。- X' l/ J7 I1 Q- c3 d$ S
& d! H3 ]4 _6 o! T+ L) p' p
[url=http://mico.io/ask/uploads/article/20150723/12165d0d0d83feb3aba6851cc9588c08.png]
0 Y: _+ N2 @" U0 F" f2 w8 f4 A

/ X5 r, U, Z* u+ e) Y% I! Q" p" v
. C0 K! ?8 o& N第五式:Github上创建微信APP代码托管仓库
. z6 S+ P/ `' M- ^3 U8 l8 F: z8 k  请登录github.com自行创建新仓库。并克隆到本地,克隆方法详见《上传文件到GitHub》。该步骤的目的是获得一个可以在任何地方访问的git仓库,后面会使用该仓库托管微信APP的代码(其他类似git仓库托管工具也可以)。
8 q0 Q6 w- f/ D/ Z9 o. I- o+ M8 R( O0 n" g- h* D4 P
[/url]
: _4 f5 I8 G' u+ y
4 F1 ?5 ^& S2 Q5 D) p6 z1 p5 m
3 \, G3 P' ?: [/ ^  获得仓库地址,例如:https://github.com/wangeshen/MiCOKit_test.git
+ s, B+ }/ D0 |1 G$ t0 Z; T' X9 C+ r6 k' K! L
5 e5 k( J' Y: b' v+ i
第六式:配置微信APP以及微信测试公众号* }7 B2 {8 C" Z) A- Z6 k; q' M
  (a) FogCloud上的微信APP信息:) S0 H" U- ]/ I$ \& t5 P

/ Y' ?# e' [( l9 s* w! L+ K1 a; C& L5 t[url=http://mico.io/ask/uploads/article/20150723/3e552dc6f9c1097d68b01b4643a04921.png]

3 b  [* a) Q% a
, z$ r9 @# p8 i' ~( M : I$ O( B, s7 j. h4 W1 r
  其中URL和Token会在后续配置微信测试号时用到。
1 x  Z: w2 [1 F' j6 z
+ m5 d. ]$ u' y  (b)Git部署(同步微信APP代码到FogCloud)
& s! F; r1 {' N4 O) i  }7 e5 Z# J
1 \( H/ v. Y% n; ?[/url]7 f1 M4 M. A2 W7 \
6 q0 l. q. v4 @) }' m  m
+ O6 p7 u+ W# `+ p( _& A+ l! S% s4 S
  其中:
4 n4 K, {8 {1 ~' c4 X+ P# Y1 w     Repo即步骤5中创建的github仓库地址,填写后保存;
) V8 U9 Q! T+ j% V     Deploy key和Web Hook Url可添加到github仓库的设置中,以自动同步代码到FogCloud;也可以不添加,但是github仓库中代码更新后,需要手动点击“发布”按钮来同步代码,同步后右边可看到最新的代码提交记录。
7 u; M: X  c) m/ i3 e # J; j+ z. u/ E- G( c4 i
" w8 V( q& ~! F9 R! M
[url=http://mico.io/ask/uploads/article/20150723/47bf7c17eb7ad746792160a06f14ab20.png]
% c, R4 n7 }& {+ N' ~1 t) T

6 x% M. H8 ~# M+ ~9 v9 V
! I" h3 b1 l- S6 X# U, F+ c  (c) 微信菜单管理# _( ]+ V4 v9 o6 g/ s  _! t7 [4 k
  通过FogCloud提供的微信公众号首页菜单定制功能,方便的定制手机端微信上的控制界面及功能;至少包含“Airkiss”按钮,打开微信Airkiss配网功能,“OAuth”按钮(名称可自定义)进入设备控制。& f; n6 c2 H: f2 ?2 i

; O9 ~; o1 p7 A  y0 ?. h9 R( f
, n& ^3 D/ p6 [) `3 q) d[/url]
4 J) Q5 N8 h  B. ]
" N' @4 N+ R8 m
; d3 P0 ?: R. ~3 q  (d) 设置微信测试公众号 URL与Token在创建的APP信息中可以找到
- t* _2 z, P$ k  o5 l: I( f  修改配置信息:- B2 S: y- T+ F3 }' V
  URL一般为:[url=http://4addb71f-1b5c-xxxx-94c5-f/]http://4addb71f-1b5c-XXXX-94c5-f
... ylink.io/wechat.php
9 o* B( T8 q. k+ B. H1 h3 J: x  下划线部分作为JS接口安全域名和授权回调页面域名。) }, `* B$ E# I
* }3 ]1 Y8 M. C) N) |7 Q: i; r* _
[/url]
; R; t: F0 F" j8 {/ T
; x$ _0 W: ?; E" e% j7 ` $ F$ d& r2 d5 M! D& K( Y
  开通所有测试功能,并填写网页授权域名:
5 b! K+ h( i8 q; L* M( k  P% ?, I9 O: F& d% @+ G  ?
[url=http://mico.io/ask/uploads/article/20150723/4147bd2c388956cee39120fa591cd440.png]

& K* {- j% d$ O0 f3 l! t( Z( Z; @: d" G; h- u% G8 ~
) h7 M( M8 D- X/ {9 p) k
  点击修改,打开如下:$ _6 C( t' y$ g$ h1 n

+ R) T# ~3 l6 n2 A[/url]
( D" i7 R* ]. d: D2 L. j$ t. p1 `! w6 |  Q3 l5 A: [

+ a" c) q/ v: \* p* Y; D  同“JS接口安全域名”,格式为前面提供的URL的域名部分,如xxxx.app.easylink.io,其中“xxxx”为FogCloud上创建的微信APP的id。
5 i5 H' |+ L7 F* V: z5 w
6 N9 L" i9 S; l. [( i3 m: t, [' R$ I3 X$ s+ X' |3 P
第七式:使用MiCO SDK开发RGB LED灯的固件6 j" U5 H2 C) V0 ~) `
  (a) 登陆MiCO开发者网站mico.io,去MiCO社区注册账号,并登陆;& r  g) {" c) I8 e9 e
% Z( r7 k) L' F8 N, X8 o5 p
[url=http://mico.io/ask/uploads/article/20150723/3c04c03f3d922eb74c06906c610b9290.png]
5 \4 J, E; i$ c, i8 S% t
5 ?' L7 z+ P8 m4 b" X, y
3 `& r4 Z9 ^. r" a
  (b) 重新打开mico.io首页,开发者中心 ==> Wiki中心,下载MiCO SDK。1 R5 M; V& a5 O- |5 W4 U
/ T5 H8 i" [" U( ?% ?! L5 p
[/url]
1 B; ~7 q: P" ]% u2 Y
2 v" E0 Z/ X$ G7 f% b
1 s& ~+ U' q1 H+ J  (c) 打开MiCO SDK中的微信开发实例工程:, c0 C4 |# r2 A; a3 |( @; H+ f
( e& V: F( A6 v; v, h& \9 _
[url=http://mico.io/ask/uploads/article/20150723/3c6381767bf00833cab64ed4c37df2f8.png]

$ R1 `( b  ~6 [2 I. R) O$ W! L( ]* h$ p( p% c, f* {7 o
+ i0 h# e+ ?3 ~8 V' X1 e
    1)开发者手中拿到的可能是硬件平台可能是MiCOKit3288或者MiCOKit3165,在编译工程时要先选择硬件平台;
% P0 G. v8 r3 k' m8 ^    2)将FogCloud上创建的产品ID/KEY写入固件(必须替换):* f9 l* |; Z. y
- V: E! ^! f9 k. R' Y1 Z
[/url]% w/ y7 q7 x0 z+ a

2 ?. y: Q7 k0 q, }' N& Z
$ F- g" Y( Y+ ]% f3 H    3)修改版本号,这样才能把新的产品ID/KEY烧入FLASH7 o  f+ e/ z5 e" u
& l4 B1 R2 e( v4 R7 }; |3 Q
[url=http://mico.io/ask/uploads/article/20150723/1661ce047fc9ea5e465db04acd59c24e.png]
8 I% I; L4 k+ Y( R  V, ?
; i' b: p  x4 ^! ?

% ]0 i; `9 Y* V5 y0 b" w    4)添加LED灯控制代码:+ k" m  @7 }1 e# S# R5 z

1 _" [( A0 ~6 i8 l1 o- S6 g& s2 x: N[/url]
  u8 E/ }# s7 Y) }# ?7 X
7 q& E: U6 c! C9 Q
! O, G- v, \0 D; G5 `    5)改为收到云端消息后,解析JSON数据,并控制LED。- b8 q% N7 y* ^4 v& o( ^
4 C- ]( S, o7 V! i) @% G. Z
[url=http://mico.io/ask/uploads/article/20150723/fb02025e4062a859d0d33d4178cd156a.png]

3 b9 b9 W3 h& J; h" K" B# w% Z0 E6 k  x7 E9 t$ p4 S
' ~! `+ [, K' x3 X0 z! b# M
    6)错误代码参考:在运行过程中如果出现错误,可在user_log中查看错误代码。
) {" I2 j/ V) q
# k6 E; s' C) G( o7 g! Y! n[/url]
# G1 R  T; Z* V; \  N. i
' H, T# A2 T0 F8 F
* `2 B! H- m3 ]4 v[url=http://mico.io/ask/uploads/article/20150723/9f6828473efaa4a01ae4434c236a2ef6.png]
( A% K9 K& r* g6 V
  F; h9 h+ M* W& t

9 g0 l7 C3 J1 q- v7 Z1 v1 S0 @    7)MiCO SDK固件烧录。(详细固件烧录方法及步骤请参考http://mico.io wiki中心)9 _2 ^& t% v8 `. k8 n# S
选择使用的烧录工具J-Link或者ST-LINK:
/ Y) A4 x8 Z- ]! f
; n/ g% @# F. g5 ^* l. ][/url]
9 \1 @+ d4 r8 z
# ~6 T$ V! w& u 6 E* {" k+ N- A; J1 F5 ]* j. D/ T
  编译/连接:4 {) K6 n! Y3 y3 J6 ^" Z/ G

! K6 }$ F2 {* h) Z3 `# n[url=http://mico.io/ask/uploads/article/20150723/14ee93da638bb344905c2f6c7a8481ef.png]
( L' @3 K8 z# T) Q/ B! g+ S' D

, E( Z# Y9 c  j" ~0 S6 a # _3 k' J* p' a7 F- t& t
  烧录/下载:6 K! [: j* N! y

5 M0 n+ ]2 n8 N% K7 B9 x[/url]
1 a' E3 q3 m2 S9 x. q
5 E' {* I* s$ w9 {% k  K6 ? 4 o* T' m) ^' _  Q% `
第八式:用网页编辑工具(sublime等)开发微信APP代码
. o  i2 `( }! V# z7 Q( Y; z以下为核心代码及其注释% L* `  V0 U5 ?7 ^' ]% ~
//应用程序入口在application_start(void),一系列动作(如配网、连接云等)以后,用户程序入口在这里。/ s& _& K( r2 Q  v
OSStatus user_main( mico_Context_t * const mico_context  4 f+ I6 A' R! Y: q$ Q
{
+ E' y# @: I7 L% R  //user_log_trace();
3 k/ B- I& T+ g9 p( Y8 C2 v; S5 i% B  OSStatus err = kUnknownErr;8 R9 U4 b3 [% x
  fogcloud_msg_t *recv_msg = NULL;//接收数据结构体
! m- a6 b0 K  G; z1 e& _9 E  json_object *recv_json_object = NULL;//结构体内包含json数据格式3 A* N9 l4 P( y' ?( Z
  /* rgb灯的色彩模式采取h***色彩模式(色相、饱和度、亮度) */0 y% h8 U  I9 w' q% R+ g- p3 T
  bool led_switch = false;//rgb灯开关( V* t) ~" y' z8 g1 i
  int led_hues = 0;
3 d- \/ a5 r6 P# T, o0 j  int led_saturation = 0;+ h+ j" }: o0 b+ y" l8 Y2 Z) f
  int led_brightness = 0;; y4 l5 i3 F1 D. }, ~4 s7 B3 @
  require(mico_context, exit);) c( h8 \$ E0 |* \3 o6 @5 b+ \
  h***2rgb_led_init();  // RGB_LED初始化
, a( l: r- V" W! N1 S7 I  while(1){
( @3 ]5 y& ?7 I6 F- t    mico_thread_msleep(100); //延时100ms
, {% Y& K/ `5 p+ y* y5 b5 r    // 检测 fogcloud 连接状态
. o( {, `5 c! j! V% U    if(!mico_context->appStatus.fogcloudStatus.isCloudConnected){) q6 v3 f/ F9 x# ]
      continue;( |, ]6 O, @" I; _: c. p0 L% e
    }/ @( X: Z9 C. C- {2 Y6 W
    /*
0 M- t& K1 X3 A: P% F% r2 j      接收来自云端的数据4 x+ w. M! d) u
      recv_msg->data = +
9 t( Q* C0 N5 H# W: t! X0 ]      topic表示模块订阅的MQTT通道名,data表示云端返回的数据+ I1 f# @( ~5 n( a, d0 s8 T  D* a
     */$ F$ @- B7 t& K
    err = MicoFogCloudMsgRecv(mico_context, &recv_msg, 100);8 o: H3 R# _5 G% r6 m# |
    if(kNoErr == err){3 Q! Q. x; [( \5 L) v4 }
// 打印  例://user_logtopic[30]=[de54a8ea/c8934691816b/in/write]data[23]=[{"rgbled_switch":false}]
) w% Z3 [" |3 G$ s) ^2 v0 Z& ^5 s$ v      user_log("Cloud => Module: topic[%d]=[%.*s]tdata[%d]=[%.*s]",
1 S, K+ n/ b: r5 m8 A  Q               recv_msg->topic_len, recv_msg->topic_len, recv_msg->data,   W& G7 v9 v+ C9 U# C7 n7 Q
recv_msg->data_len, recv_msg->data_len, recv_msg->data + recv_msg->topic_len); % G0 d, i2 x! _4 s3 d6 w
// json格式的字符串数据转成json对象0 n9 ^4 f# D$ B3 l: @
      recv_json_object = json_tokener_parse((const char*)(recv_msg->data + recv_msg->topic_len));
/ a% t7 b3 t- ~  p. ?1 l) g, e      if (NULL != recv_json_object)
" Y" {: \* O7 {0 |# T      { , n  C' G6 @! e
        //根据键值对遍历$ n" D  `. {$ G" T: `( ~8 q
        json_object_object_foreach(recv_json_object, key, val) {$ A! S( X: l2 E9 @6 Z
          if(!strcmp(key, "rgbled_switch")){
- n2 U/ k* V1 \8 t# [//如果键为"rgbled_switch",提取值“开关值”0 q6 R% y* v4 H& W9 l% ~0 v
            led_switch = json_object_get_boolean(val);
* {5 y  F7 T" N          }
# B5 f/ z. Y0 O( y; M! L          else if(!strcmp(key, "rgbled_hues")){' N% q% w, Y$ u) X' i' e
                        //如果键为"rgbled_hues",提取值“色相值"
# |8 p7 a4 ]1 z9 G5 [& Q            led_hues = json_object_get_int(val);
- a# A4 Q- t' r$ r- V; x          }
1 {: f' t' D7 G% \1 T# N          else if(!strcmp(key, "rgbled_saturation")){) }- F' Z6 P) W1 e9 M
                        //如果键为"rgbled_saturation",提取值“饱和度值") w. f, D* ~- B: n) M
            led_saturation = json_object_get_int(val);( q$ v* P3 f: f; _- e9 t2 D2 u4 N
          }0 D2 \2 U) Y: d5 X! O4 R
          else if(!strcmp(key, "rgbled_brightness")){
" f: d9 X; H3 @" D  ~/ x' Y* j//如果键为"rgbled_brightness",提取值“亮度值"( N: [) Y3 u: F3 X5 J
            led_brightness = json_object_get_int(val);) C% _7 n# C8 @5 U, p) \0 j3 }( R
          }" u6 N" e  D$ l/ R- W" `' q* C2 h: f
        }3 ?2 a" {& z& x8 |
        // 控制LED" N. m7 w4 r2 Z$ d5 h
        if(led_switch){: ~4 {: y6 B) o8 N
          h***2rgb_led_open(led_hues, led_saturation, led_brightness);, A% f+ S) `6 n* l( R9 f6 q, ~1 s
        }else{
. g3 O8 C% e0 S6 ^; K, w1 E9 t          h***2rgb_led_close();  // 关闭
# Y% @1 u: e4 X$ T. q" j        }
  b( K$ {$ I% ~5 M        // json对象内存释放% |: L; K6 ^  c& ^, D5 T
        json_object_put(recv_json_object);4 U) E% W% d7 Z  X/ H+ ]
        recv_json_object = NULL;
1 @+ A9 F0 N8 G' f- M% D; s      }
; d! k2 {: X* `3 o. p, u      // 结构体内存释放# P8 {' f  ?9 x' d2 {1 \; j
      if(NULL != recv_msg){
, O+ l0 Z! j$ G, ~' \' A  w) i  s        free(recv_msg);/ I: C% f2 O' q' H
        recv_msg = NULL;
* s$ b/ K  l8 a      }0 ?5 k: o4 x9 A( h! ~
    }3 a/ \; Q' {0 S# A5 }% h
  }
  [; b0 ^; n3 {4 q4 qexit:$ Z/ T( q( U% g
  user_log("ERROR: user_main exit with err=%d", err);
+ H4 v  {2 u# ]  return err;/ K/ c3 \; m  o. e+ C; O; {/ B6 X
}
2 J' d% B5 }: g1 n0 N/ w' W" n# K% c
2 W& q8 X! t) J1 E1 Y1 }1 X! g: ~* Z2 @% [7 [8 [+ }2 n
第九式:使用Github工具托管APP代码; q$ X; [- K# C+ v( s
  在例程包中(MiCOKit SDK的APP目录下),找到微信APP控制页面代码(index.html和yourID.html),将yourID.html.重命名为你的产品ID,如cabca380.html。拷贝这两个文件到本地git仓库,再同步到git服务器。同步方法详见附件——上传文件到GitHub.zip。
9 G5 a, c6 v/ M+ g' J& Q7 {2 G, v# k
[url=http://mico.io/ask/uploads/article/20150723/97411f3674d23cb747a33172ee9c1284.png]
3 u9 H8 V5 w& x2 Y, p$ v
% r9 G! v) w& z8 O% }$ _
( m, I, J. }9 ~
  index.html   —— OAuth按钮跳转到该页面(一般为设备列表页面,可不做改动)
* S* `. u! j6 l# @3 h! N
( L6 F7 r8 ^# N' y, H0 Y5 J% ][/url]
. s7 E9 G. S" F0 A4 }/ H) D1 R2 o' r: t" e9 P& X* A
& O9 K. g# h: D$ g' Y
  xxxx.html   —— 设备控制页面(其中xxxx为FogCloud上创建的产品id)
8 m$ V- B, W; t) \/ x3 i& A( I ) p$ ?( m0 k7 o8 r9 b& O
; g+ g, j( F$ X) z; b* c
[url=http://mico.io/ask/uploads/article/20150723/bdd3e767bff5fdcf06f16b6ee478f57e.png]
# I) ~  I7 {2 ^! ^8 A+ \

  P6 E# B" l5 d  j; N1 V
6 o! d5 p( V2 d6 ~; L7 O  详细代码见附件代码包,部分代码解释如下: ' j+ U  ]9 x8 W! c1 @; [% K
) m' q  e+ _1 }& O4 H6 Q
0 b" K. `4 I0 U6 m5 R) x
[/url]
- G+ ^) T) @' J8 e
7 \9 f( e/ O, B+ D8 " ]( R0 B/ L( _7 {% K; g  k
[url=http://mico.io/ask/uploads/article/20150723/041017556fe9d8bf147cab201e4055c6.png]

; Q3 d0 w2 }5 s2 Y* f
1 |( G) l, ?0 g/ W* f  Y9 i: x 8 y% L2 a  _% i9 @
+ @( u' u  }+ Q: m: B+ H& r( D
  修改、并提交代码后,如果没有配置WebHook让FogCloud自动更新代码,则需要到FogCloud上手动点击“发布”按钮更新代码,并通过git提交记录确认是否更新成功。: z' ?$ C- `) I, \7 s( ?1 C2 K
* u9 [! n! W# }4 ^# S

1 b* l% g' D; z; E7 K3 @第十式:FogCloud上生成设备二维码, r' d+ F+ W1 P  Z
  (a) 创建新设备
, d. @. V7 l( E$ F5 r4 m( |" ?% |. z% a) j5 s: ~: g0 B- J
[/url], j& n% k' _0 b2 l

) p# _6 v( n* m+ @1 r- A; \ 0 O/ c$ o" O, L3 S( u$ I
(b)填写设备MAC地址(由小写字母和数字构成,设备上电后会向串口发送MAC地址及其他数据,可用串口工具查看)接口创建设备。3 g* z: [) w* h
: q. v# V& T9 [, J
1 F* b1 W2 ?# k$ C
[url=http://mico.io/ask/uploads/article/20150723/60addb425f19b481c3d2ea9346bbd71f.png]
& d) s) n. V) c7 t; H
- l6 ^' h: I8 z: _) A" a" ]) F9 z
5 L& ~; t2 L# X# e* B0 q0 p
1 p9 e. l, M( Y9 @; R
  (c) 为设备生成微信二维码: R7 A. r4 p$ Y' ?8 O% F
  点击“同步到微信”按钮:  
% {! U5 L" \( d" h . I6 j- v' D+ [0 L) w
[/url]) n3 ^( a7 d. w6 `
1 [$ }' N! X8 O. i8 }% g1 y
& x3 H: t3 |/ h0 [
  选择创建的产品和要使用的APP后点击同步按钮。8 R2 m7 H4 M: k+ t) `4 y/ d8 A0 Z* U
/ A* ?3 h+ V6 W: a
[url=http://mico.io/ask/uploads/article/20150723/8391b8371fe9a3cf4338e65240989bf1.png]
0 j2 L  O' s+ R* l! y) C
* h& Z) _* f( w& m: B( y

* h0 T% ?) @: ^  成功后提示:{"result":200,"message":"success"}
+ n% j+ m3 u2 U: L) w/ A$ G4 |  l
! A% L: s: g2 q& U' S' O! A[/url]
  }# ?0 u& P, E7 C+ {5 {' T  B- A7 ]% ?

" g* F8 {/ Q3 n5 I9 F' l% [: F
' P! D1 T) _& L  极少数情况会因为微信公共平台延时的问题出现err:500问题。等待几分钟后重试即可。$ t9 @, P  G# \4 Q0 h( w7 b; I
  返回到产品界面,可看到你的新设备。 5 k3 [( X1 c) s) S9 Q% d2 K

3 K2 w! `% a2 K" X) j- Y& G[url=http://mico.io/ask/uploads/article/20150723/fb1885f6aaad37a08f169dbe29946d54.png]
* N+ f7 g% J8 q6 T9 M0 A
. h4 w$ Z- D6 u% m

! A. y* i- ]1 B8 ?8 e[/url]4 _+ S& W/ {2 |0 O; p* h
2 C. Z, y4 k0 J" j4 c
7 C  w2 a6 Q% G  F
# ]; r# B7 ?6 N1 l0 U- S) N
第十一式:使用手机微信扫码,测试“Airkiss”配网功能以及设备控制功能。
8 z& i6 R+ {% G4 f# N: \+ V  (a) Airkiss配网
) P3 o5 e5 Z) j: ^* B  B  Airkiss技术可以帮助你的设备在没有人机交互的情况下智能配置当前Wi-Fi环境的SSID及密码。(假如你的智能设备是一颗灯泡,总没有屏幕和按键让你输入SSID及密码吧)8 E5 J2 u2 a  Y5 D
按设备上的Easylink按钮进入配网模式,底板上的LED(D1)灯快速闪烁;
8 e: @  ^0 Q6 A' N: R, G* g手机输入当前所在环境的wifi密码,点击连接,成功或超时会自动跳出该页面。& g8 @- H& C! {  L

# X6 F, h5 F! j/ {3 m5 P) c[url=http://mico.io/ask/uploads/article/20150723/18e3a2ba0846a30f245578b054272b7d.png]
, f+ I/ Q/ Z4 ]6 g- W( r
0 U  u4 b& @! T0 `, p
5 X9 q6 ~. Q( z& D3 K6 ?  j
  (b) 设备控制- [. A: F: K! l7 }
  Airkiss配网成功后会跳转到设备列表,红色圆点表示设备不在线,蓝色圆点表示设备在线。若配网成功后设备依然显示设备不在线,可点击右上角刷新按钮。点击列表进入设备控制界面,点击控制按钮,控制MiCOKit-3288扩展板上的RGB LED灯。
* h& d9 b, ^2 _& r; I已经配网成功的设备不需要再次进行Airkiss,只需点击测试公众号中的“Devices”按钮,进入设备列表,点击列表进入设备控制界面,点按按钮,控制MiCOKit-3288扩展板上的RGB LED灯。
% j, J: T. D) p0 c) ?, ^' i+ e+ X6 L+ U' j
[/url]0 C$ Y/ ^4 k- H+ `1 T8 K  n
) L7 W7 Y9 X9 I3 v2 C) {

; U. G: |3 J0 s8 L% p[url=http://mico.io/ask/uploads/article/20150723/13e7c77638ede00ccf82d4fb10429ab2.png]
, t- @1 b8 {: j' j) Q9 c

' b/ b. k8 j& ?6 x$ m ( x7 @+ L' U3 l: ~2 S0 _5 O- y: q
  如果您完成到此步骤,那么恭喜您大功筑基已成!!, d6 X0 I" U. H% I( G  l
  武功在手,天下我有!
; P7 y3 r$ \$ O% _& A; Z  祝愿各位米客能手持MiCO利剑,在物联网智能设备的新江湖建功立业!

2 w  I  W8 e* m
( [' Y8 S: a8 y& D' r另:源代码地址 http://pan.baidu.com/s/1bnsGEy7
' c/ {- V3 F$ T6 Q5 T 7 g+ ^! E% P+ V  s8 K
MiCO团队% N9 G/ L# T+ g1 ?; ?9 s
敬上!# b  o+ |6 v: W
[/url]
( [6 I9 H$ b% g- |7 X% Y9 [3 F5 m
[url=http://mico.io/ask/uploads/article/20150724/02263811253059862ccc8df321bb95b5.jpg]
5 m$ r" s$ ?0 Z1 |1 |  C- G( c- l* i% N8 F3 C  o& P2 @# F1 h: I

0个回复

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

本版积分规则


关闭

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

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

GMT+8, 2025-12-4 09:26 , Processed in 0.621521 second(s), Total 36, Slave 26 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

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