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

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

[复制链接]
wbeast 发布时间:2019-7-23 19:03
1、硬件平台:STM32F4072 a! _' B+ C9 N- u
2、软件rtthread4.00版本
* g) X0 L4 o( \* @0 i% q/ `实验例程基于rtthread开发,充分利用rtt丰富组件和软件包,MQTT,JSON,LWIP,AT SOCKET ,file system等等。
! f* ~: |$ s3 E) I7 I8 E, Z& s; w' D1 Y8 C  d: y$ H* m
TIM截图20190729163559.png
7 o1 \& E! @) L) @$ Q
& G7 c2 j0 q* X8 _1 v' p. R
$ ~, F/ c, D" e/ d/ R  Y& @ TIM截图20190729163616.png
! N: W! b9 S, V  d+ U
, P  x6 O( ^2 `3 i4 s链接:https://pan.baidu.com/s/1yM3QOZrPyBL9A382g0rkBg 9 S3 C: B. w" o  E( J& N
提取码:clb3
8 y, p5 K( n: P* b" BPC端的远程温湿度显示工具
# B+ C; s1 w/ x3 U6 M) A* h6 K webwxgetmsgimg.jpg & O3 r" v1 [( V0 I

3 Y+ v4 }1 T4 c. f1 w1 N7 zPC端远程控制工具+ |% O/ c: O, K) D
webwxgetmsgimg (1).jpg 3 p4 N5 u/ V( R- D9 J$ \9 H
" V! t9 }+ C' P. D. I9 c8 m% {; N
8 @( T7 z# e3 G; }; a1 H
//移动安卓端的工具
5 R3 r  t3 X- Z2 u9 v% s2 _0 ]+ j& _5 V webwxgetmsgimg (2).jpg
& }' P9 Q& t6 |8 n9 Z  q# O1 Z
. t2 K- m4 L5 t; }2 I
收藏 2 评论7 发布时间:2019-7-23 19:03

举报

7个回答
wbeast 回答时间:2019-7-25 14:33:29
                            阿里云IOT示例' p( E5 u* P, @
2 x$ J3 t4 q% v$ l
本章实验演示连接阿里云IOT,实验运用了rtthreadMQTT软件包,tiny_sha1_hmac加密软件包,LWIP组件等等,用ENV工具可以获取软件包和组件,避免重复造轮子。以温湿度传感器为设备模型,用MQTT协议上传到阿里云物联网平台上,可以在物联网平台上查看温湿度数据。
在阿里云物联网套件申请步骤:
2 y4 B* E9 q0 U+ Y& ^' J$ d
1、创建产品,如下图所示- @( g8 t, h4 I( E8 x  Z/ |
1.png " b! m0 }9 i9 h
+ a0 H4 D+ T* \( f. D" O2 [% O

8 F6 u. c4 s; c& f2、输入产品名称和分类。
: u/ s4 w/ H* y. H9 a! k# j 2.png ) n4 j" Q' ^( G  a
3、设置产品功能定义* F) O+ U2 P' I/ ]/ A- i
3.png 1 w0 q+ D; s1 W8 U8 x* f

* O9 S- K$ H2 u/ W5 |
4、输入产品功能名称,标识符,数据类型等等。本章实验是以温湿度设备为例子。
9 z. F2 O$ v6 ^' U  p/ ^: p$ j! k
4.png $ ]  u( w& Q) }8 Q0 T, W* d
5.png ( t6 L& f; t( T0 E, s# q7 l
5、发布产品
6.png

+ Q& `1 F' v7 Q
6、添加设备

- P8 Q" D; p4 k9 ?5 K 7.png $ C) n7 l' H% T6 J
; ?+ |, b/ Z. X! ?/ m
- M  A- }3 G' t; H! L6 {
7、获取设备三元组信息: ProductKey, DeviceName, DeviceSecret
3 V2 B' d# e1 T) a" d" i, ]. M TIM截图20190725141910.png 0 r; N. q' _0 l5 f" e

& W# q# r0 w/ T! M% N3 y8、打开程序,在MQTT.h中修改申请的设备三元组信息 : ProductKey, DeviceName, DeviceSecret。
2 i! i  C: i( R9、编译无错误后,下载程序。# r. L' P+ ^3 {$ z; g% h$ t
10、连接成功,如下图所示。
4 |, D$ R7 R4 u9 [7 h4 ~* S6 D2 Q
TIM截图20190725141125.png
3 F  l. ]) ?# W0 [, D! F1 _
- F% S# Z+ m/ j. Y9 K) @3 G0 }11、查看数据
5 A- ?6 P: ?- G 11.png
' E- R* q1 `/ D1 B, ~
6 e3 {: f$ G& Q
/ N8 G- h$ ~! k3 Q' P5 P& u. d  `. a

6 `: o( j4 y' s+ f3 z  S; v  G( P
wangallenwang 回答时间:2019-7-26 11:37:09
wbeast 回答时间:2019-7-29 16:51:39
                                                                    json示例
( v+ w0 ^0 v) G7 g
& h5 H! R9 j2 ~% u9 V
  r8 \" ]( K4 W+ r

& e8 Y6 p  p5 ]$ r% J7 [2 WJSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
; f' l0 ~$ O2 b
9 s$ d& ^* p. p1、 打开env工具,选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。' u0 B* u, f* U" a
TIM截图20190726160125.png
; w: ^* C2 @( `1 O9 i2、通过步骤1,就把JSON移植成功了,是不是很方便。
. w$ v6 v7 ~; b
4 e1 P/ X3 N7 \; N3 b3、程序示例' A& u# n: b2 w8 D1 h: ^2 O( I/ X) v1 C
  1. void json_examples(){4 x1 v7 R# `% B) u5 R
  2.         
    9 W! Y2 |- w9 T/ G. Z; V  w
  3. # d# `# k$ j8 n$ T
  4.           cJSON * usr,*usr1,* Array,*usr2;
    3 w! I0 ~; Y, Q7 ^. D( }5 v
  5.            char *out;1 H( i, ?. r" f' M1 [7 Z
  6.         
    $ y/ D( j* u- V! O+ p" k
  7.   
    0 M# k7 n; [( }# m  b) I0 r/ W
  8.     usr=cJSON_CreateObject();   //创建JSON对象
    ' S- K! l7 Z; \" ?* o7 G" k/ |
  9.          cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22));  //在对象中添加数字6 c- U. k4 l2 J0 @
  10.          cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22));  //在对象中添加数字( S; {! X; a, p! F4 X# ^
  11.           out= cJSON_Print(usr);: C( I; Z0 [/ X  R: s3 @/ L1 w
  12.           rt_kprintf("\r\n%s\r\n",out);
      V! d' L/ |4 R% w8 ]+ ~* s- Z7 Z
  13.            free(out);//释放内存% a% C7 c/ A# \) ~, U2 O
  14.                  cJSON_Delete(usr);//删除JSON对象  ?, m1 x0 |5 D5 \5 E3 w  n
  15. : X& m* d8 b. v, z: j% P" j  G  ~
  16.     usr=cJSON_CreateObject();   //创建JSON对象
    " L" _4 {- f$ E1 o
  17.          cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT"));  //在对象中添加字符串类型参数9 ]5 L* ]; G6 E- z; a2 K/ q; o
  18.          cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456"));  //在对象中添加字符串类型参数/ ?. m! m$ u5 C; }
  19.           out= cJSON_Print(usr);
    4 `2 i# l3 L$ p9 N* J5 z
  20.           rt_kprintf("\r\n%s\r\n",out);1 Q8 Q1 ^' |8 {6 a$ }4 v
  21.           free(out);+ t8 T- C' }1 n, @
  22.                  cJSON_Delete(usr);
    5 ]/ f  P8 m! N$ T- n
  23.         
    ' b% a, g7 N+ e9 [/ z) @# j* M  m3 |
  24.         ) {; v8 P, R( X0 @. N
  25.     usr=cJSON_CreateObject();   //创建JSON对象
    . K9 s$ I' _0 h: h" c2 D$ o: s
  26.          cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数
    & j9 p% g: u* @4 e9 d: ^3 w3 C2 |
  27.          cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数) ^, B4 V0 r( N6 O# |* R7 L9 A4 r% R6 k
  28.           out= cJSON_Print(usr);//json对象转换成字符串
    ; w" k, ]& ^' \2 K0 k' o6 k2 u
  29.           rt_kprintf("\r\n%s\r\n",out);$ \$ [. Q! ?, {
  30.           free(out);//释放内存2 m. H8 w4 g1 D; N' ]
  31.                 cJSON_Delete(usr);//删除JSON对象
    + q4 B/ r  M  R( Y# ^$ T
  32.                
    2 V% e& }  K( \" K, j' W$ Y* S
  33.                  //创建json数组对象& E+ \5 p# N( @; L9 F4 u
  34.                          Array = cJSON_CreateArray();" R) [% c! P, c( @  }( e- T. r$ `4 V
  35.                          usr1 = cJSON_CreateObject();2 s) R& `( j) ^- H
  36.                   cJSON_AddItemToArray(Array,usr1);8 E$ `6 G0 W0 L' B7 h+ e5 v2 d1 S
  37.                  cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22));  //在对象中添加数字, I  p$ X5 T. Z0 S  T
  38.             cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22));  //在对象中添加数字# l9 S6 [3 G2 h7 C/ O
  39.                   out= cJSON_Print(usr);//json对象转换成字符串& z8 b( z% J! {' W9 w( W
  40.             cJSON_Delete(usr);$ Y9 t' B# \5 Z* r7 f. b
  41.             rt_kprintf("\r\n%s\r\n",out);
    % N0 J6 y6 ]. |
  42.                          free(out);
    & P8 Y: ^2 Y8 I' S& k; u& q2 E
  43.         
    ! g+ v  |- W5 L. Q3 Q# i
  44. $ R1 |" z, n: I2 X  q9 |
  45.         ( K) \8 {3 @3 ~3 _; T
  46.         
    * V0 P: c2 W; v# v
  47.            //json对象嵌套使用  W5 S) t, Q# l4 X
  48.                    usr=cJSON_CreateObject();   //创建JSON对象
    , x& m  [) r+ L! O/ \' m0 ^+ ^
  49.                          Array = cJSON_CreateArray();
    : o2 {7 e/ }+ r5 }
  50.                   cJSON_AddItemToObject(usr, "rows",Array );
    3 R0 ^; s; ]' v! A" y/ ]) `
  51.                          usr1 = cJSON_CreateObject();8 z1 Y& k4 W3 }
  52.                          usr2 = cJSON_CreateObject();3 G; a0 B2 N  T
  53.                   cJSON_AddItemToArray(Array,usr1);
    / r+ V- ?; Q9 A8 C; a$ O' [; x- A
  54.                          cJSON_AddItemToArray(Array,usr2);: p5 j0 w5 \* V% W, o( R$ h1 J/ O5 G
  55.                                 
    - H% K4 Q) H+ b. a4 ?2 \" [
  56.                         cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数5 _3 z2 z1 U  |" `
  57.             cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());( v6 k0 h' q2 B9 Z" M# k9 k
  58.          
    ! c" O8 |" v9 g" s' L
  59.                   cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    / B" d6 O. z9 M
  60.             cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    & ]( n( R0 f# d, h: J' S) M
  61.          
    : f' y# B5 ~& z5 q+ f. N
  62.                   out= cJSON_Print(usr);//json对象转换成字符串
    # M7 d- T+ [9 k6 w  I
  63.             cJSON_Delete(usr);//删除JSON对象
    8 N/ G9 {" C7 }5 m! `0 U
  64.             rt_kprintf("\r\n%s\r\n",out);
    ( V/ }7 D$ F6 @! \- Z  p/ ?
  65.                          free(out);//释放内存. X$ Z% v$ r$ T0 \
  66.         
    - C. |% j1 Y# a, Y- R, u2 ?% \0 L
  67. }* d+ F8 D" P- ~5 p# A( K
  68. - R0 |7 ~& U1 ^- a
复制代码
# Z7 {6 \% G$ Z- V3 Y" W, Z

9 @2 X7 R' @$ k/ r# S7 A1 V3 Z4、实验现象,如下图所示。
. m& e) X5 y" m% A' U# U& x, T' e TIM截图20190726160304.png
! A0 z3 a, g+ O5 t  _' z
; X5 Z) v7 I0 t, H1 r# T$ S
& ]9 M4 [0 z& q, E+ G
" _) p9 u- p7 r
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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版