你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[分享]WB-EIOT开发板实验例程

[复制链接]
wbeast 发布时间:2019-7-23 19:03
1、硬件平台:STM32F407
( ~0 D9 j! k8 p, B# {2、软件rtthread4.00版本+ M7 ~" j. z" m* `
实验例程基于rtthread开发,充分利用rtt丰富组件和软件包,MQTT,JSON,LWIP,AT SOCKET ,file system等等。
' Z3 w$ K1 E# r! g8 i& _% R. t- g( ~! ]7 M2 p
TIM截图20190729163559.png 0 l% \( I$ w7 m( S2 \
: W' m% J: H3 K2 [0 O$ G( t

* O( Z! i% ~6 {! P+ M' I- A TIM截图20190729163616.png
8 P0 }- \+ C, q& X
5 w4 L4 @% L# J* P# ^9 Y: W( D链接:https://pan.baidu.com/s/1yM3QOZrPyBL9A382g0rkBg + [1 p4 E; m; a: U/ ^& }, H
提取码:clb3
+ X2 f% v. ~, F4 X& L5 VPC端的远程温湿度显示工具# _6 m: Q' d6 Z+ y+ D
webwxgetmsgimg.jpg
" X: Y# [9 ~/ [0 I$ E8 j4 y( i. R+ b0 F* E3 g2 h2 n- \" l
PC端远程控制工具5 I; D8 A5 q3 w' j* T. Z4 }
webwxgetmsgimg (1).jpg
# A# L+ L) m0 ]6 D6 \2 I+ R5 c7 S+ X& X& u& j7 M/ F7 ^

: C6 t' y1 P- U0 k8 f. U- h$ R0 t' m8 v//移动安卓端的工具1 I9 d0 ~4 L: u8 r
webwxgetmsgimg (2).jpg " K1 ]5 _8 k# F: v, y5 l$ L

- Q% |4 y0 G. Y: j; e
赞 收藏 2 评论7 发布时间:2019-7-23 19:03

举报

7个回答
wbeast 回答时间:2019-7-25 14:33:29
                            阿里云IOT示例
) }+ I" F& C* b

# x" q/ x+ A$ y- q本章实验演示连接阿里云IOT,实验运用了rtthread的MQTT软件包,tiny_sha1_hmac加密软件包,LWIP组件等等,用ENV工具可以获取软件包和组件,避免重复造轮子。以温湿度传感器为设备模型,用MQTT协议上传到阿里云物联网平台上,可以在物联网平台上查看温湿度数据。
在阿里云物联网套件申请步骤:
3 I4 n7 u) `3 C) ]/ ~. S) c" h
1、创建产品,如下图所示/ E6 T6 v8 o' j5 x, V# a- Z3 T6 \: d
1.png 1 }$ [, k1 J# O: \- o

5 z( P* |' [( g
* m# L% y' `5 s# s; q2、输入产品名称和分类。
5 I$ M0 T" ~0 R3 ] 2.png
3 n$ [: ]- J2 Y* `" T. s3、设置产品功能定义
8 O6 r7 u4 M# ^- }& J$ f% Z  J 3.png / _: ~  o1 ?: x% R8 Z

6 i) o2 b: [8 Z3 Y$ t8 U3 s
4、输入产品功能名称,标识符,数据类型等等。本章实验是以温湿度设备为例子。
6 I8 i+ I, ~. S8 z
4.png ) ~8 W* Z) \1 Y) f
5.png
  l" a# x( w, H! O1 l- C1 g9 S
5、发布产品
6.png
9 P2 d8 {2 K7 T& L, c! Q" S- ]) c
6、添加设备
; m+ L/ V0 c6 K( V6 O$ @$ T
7.png
' k# y4 g, j7 W3 n6 g  [. a! |' P3 ~6 I" M( L
) v3 t  R; n: ^4 _" Q! }
7、获取设备三元组信息: ProductKey, DeviceName, DeviceSecret。( G7 J. v$ f# \
TIM截图20190725141910.png
( i' o+ U8 k# k: }3 K
+ f  W  k; S+ V7 C; \8、打开程序,在MQTT.h中修改申请的设备三元组信息 : ProductKey, DeviceName, DeviceSecret。
0 g! @- o3 p3 S/ i9、编译无错误后,下载程序。
" D6 B! U+ @8 c& A& D8 H" S1 B10、连接成功,如下图所示。

8 n+ a9 }: s+ @2 J TIM截图20190725141125.png
3 v2 ^, q! o! ~8 \- \! ?% S
6 ]7 J8 A2 E+ f$ t7 L11、查看数据& B, j4 d  T+ |3 D; u3 G
11.png
  X2 O$ m/ I3 O% ^2 d
: Q+ ^! ~3 X8 C8 j: x( K$ Y+ V4 S/ T
% N# O3 D2 E; a2 r: _
8 r, e# [; e6 q) O! v& Z
wangallenwang 回答时间:2019-7-26 11:37:09
wbeast 回答时间:2019-7-29 16:51:39
                                                                    json示例
. J3 n. I4 Z& y! I  r; n' f+ V

' x: ]2 V& A" G7 `3 T6 s  ~
: j  m, v7 \( H) _$ ~! Q7 V3 p
% n' R+ D+ n0 i' b
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
% }3 H( I) w& m" Y4 ^1 ]
' G, |* V9 R1 a9 N1、 打开env工具,选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。' ]  j2 r+ K# ]( n
TIM截图20190726160125.png
+ D3 n  S( `2 s) b6 \; k2、通过步骤1,就把JSON移植成功了,是不是很方便。% @/ f' s# V3 O$ t2 G
2 }6 a; C5 |9 ^: t
3、程序示例
. D( p# y3 i3 u- c0 c
  1. void json_examples(){7 b# @- B2 c' `
  2.         
    * l7 o3 x% q9 y! B0 ^- ]
  3. " X) Q" g9 l) l$ k
  4.           cJSON * usr,*usr1,* Array,*usr2;. q0 M" n  u" y5 R4 g  h( C8 F: i8 N9 ~
  5.            char *out;
    0 }  y6 N% b" Y1 I* G
  6.         2 j1 z& N, j! f7 V! _0 ~. g
  7.     S1 K9 T+ l* _+ K% Q+ C
  8.     usr=cJSON_CreateObject();   //创建JSON对象
      o/ C5 z# r8 `% N) h
  9.          cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    8 S0 l8 Q& @& x. q' \+ @- [, t
  10.          cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22));  //在对象中添加数字" d1 Z: H2 R1 l3 [, G9 \* ]
  11.           out= cJSON_Print(usr);
    " T) Z7 R- B' s9 M2 \  I; k; T
  12.           rt_kprintf("\r\n%s\r\n",out);8 ?# u) B" G) E0 w2 z. Z& J2 W
  13.            free(out);//释放内存
    8 G8 D; r% K4 V6 I0 ?
  14.                  cJSON_Delete(usr);//删除JSON对象
    , m, _* E3 m2 E/ S* c5 k

  15. / e4 u/ W6 a0 H" K" @8 ~( i
  16.     usr=cJSON_CreateObject();   //创建JSON对象
    ' T# u9 ^, }1 Q1 t2 J
  17.          cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT"));  //在对象中添加字符串类型参数  \: n% H; V2 w$ Z8 K+ g2 C
  18.          cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456"));  //在对象中添加字符串类型参数
    " G& B8 v) @' [' z9 F
  19.           out= cJSON_Print(usr);  r' u" j/ Z  U9 {8 ^
  20.           rt_kprintf("\r\n%s\r\n",out);, w; [+ F' D/ D& k' l  r+ |
  21.           free(out);
    # v  k9 R1 J; V! F: @
  22.                  cJSON_Delete(usr);. N$ l+ u" g6 \, B% q' v/ [- s
  23.         
    : H# W* r% E. Y8 P/ d. ]
  24.         5 f" C. U2 M- [
  25.     usr=cJSON_CreateObject();   //创建JSON对象
    ! c! a( ?1 v* b% u* I6 h
  26.          cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数8 R& s' }: Z7 [  l2 Z8 y: |7 s: M; _
  27.          cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数0 Y, K! r: T* l; i
  28.           out= cJSON_Print(usr);//json对象转换成字符串
    ( a  I' n# K8 o+ |2 c
  29.           rt_kprintf("\r\n%s\r\n",out);
    ( ?5 k# v: O1 m* X
  30.           free(out);//释放内存5 I. J6 Q. C) a: G3 u( |6 C1 x' ]
  31.                 cJSON_Delete(usr);//删除JSON对象. q! `& ]- E! m7 ?# L/ R3 x8 g
  32.                 ' ~* F  A9 [. W) t
  33.                  //创建json数组对象
    % @. B- H" b) X. w2 x
  34.                          Array = cJSON_CreateArray();- ]3 [6 k$ s/ Z4 U# _: L! g
  35.                          usr1 = cJSON_CreateObject();
    " j  `$ C1 \8 \  K
  36.                   cJSON_AddItemToArray(Array,usr1);# ]/ V. ~1 E6 K* Q. K
  37.                  cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22));  //在对象中添加数字2 ?1 U$ K6 u: D% K: e+ K
  38.             cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    / }/ M6 p. U  E1 C4 q9 j/ l
  39.                   out= cJSON_Print(usr);//json对象转换成字符串
    , _% |4 w1 Z% N0 ?3 s
  40.             cJSON_Delete(usr);- Y& s2 j2 D3 }1 p# @
  41.             rt_kprintf("\r\n%s\r\n",out);
    . G; @6 ~& E5 o# Y) z5 d- p
  42.                          free(out);
    0 G! j$ s1 B, t) J( w
  43.         ' c3 x: @2 _$ D) P9 |
  44. 5 w9 C& `% l6 y8 T
  45.         
    ' `- a* W/ @# p% K6 q( `) H
  46.         % @" R& W4 l* o  {. L7 P$ _0 L" K
  47.            //json对象嵌套使用3 x; }( z$ `8 `( A, V
  48.                    usr=cJSON_CreateObject();   //创建JSON对象" f: }3 q- R  @& V7 k
  49.                          Array = cJSON_CreateArray();2 p" N4 A' B  h3 b
  50.                   cJSON_AddItemToObject(usr, "rows",Array );# F& T8 o. x, [8 n/ U8 ~
  51.                          usr1 = cJSON_CreateObject();
    9 |5 y9 L0 [: Y8 M" E
  52.                          usr2 = cJSON_CreateObject();
    5 N+ p; G1 }0 f
  53.                   cJSON_AddItemToArray(Array,usr1);
    4 Z2 @9 u2 ?, A$ i  w: F
  54.                          cJSON_AddItemToArray(Array,usr2);
    7 u. g* T! h4 }! g7 p5 p
  55.                                 ; {0 h; i" X) o: g1 K7 o
  56.                         cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数
    ! _2 s2 B) [: l4 k! W
  57.             cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());
    . B5 M, J) L$ b. u4 _
  58.          # Q& t) A% K: z0 o
  59.                   cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    " B. \+ ^' o9 S1 N9 {( [
  60.             cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22));  //在对象中添加数字3 G3 x8 u1 Q, S3 E3 h
  61.          , c6 `3 \1 P9 j4 ]* v
  62.                   out= cJSON_Print(usr);//json对象转换成字符串
      Q. I1 _1 w+ Q
  63.             cJSON_Delete(usr);//删除JSON对象" T5 l: S! X: S/ h% b/ R4 b0 G' s
  64.             rt_kprintf("\r\n%s\r\n",out);! e& S. t0 _) m4 D$ R) V
  65.                          free(out);//释放内存
    ' Z* v# p. h. q3 d6 Q6 K
  66.         # M- |  X1 A1 J( t9 M% u
  67. }8 C  n8 f) u" _) t+ A
  68. 1 d) K, p9 a2 q2 s7 \
复制代码

3 Y2 W" F9 Z) \1 G/ t3 t: S* B0 L6 I6 Z0 [  Y, ]8 `+ ~/ k! a
4、实验现象,如下图所示。( e  Y% V0 n6 {) R4 F7 n0 R
TIM截图20190726160304.png
2 u* R6 V. h$ A
3 A0 E" ^% Q9 A3 A! }" X, _) @; T* ]3 x6 J5 U3 n3 n! b2 T
4 B8 d6 O9 M& h: U$ i% Y
wbeast 回答时间:2019-7-30 09:34:55
另外开贴说明
wangallenwang 回答时间:2019-7-31 15:35:27
wangallenwang 回答时间:2019-8-14 14:45:15
generalcircuits 回答时间:2019-8-14 15:33:56
感谢分享,辛苦啦
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版