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

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

[复制链接]
wbeast 发布时间:2019-7-23 19:03
1、硬件平台:STM32F407. j* j$ e8 z' M; e
2、软件rtthread4.00版本5 X3 ^- O3 S0 I& S. Q( n
实验例程基于rtthread开发,充分利用rtt丰富组件和软件包,MQTT,JSON,LWIP,AT SOCKET ,file system等等。' q- q+ `" c* y- b% \% z
9 o2 o6 I; q5 i' Z/ F% O8 ?% E# C  [
TIM截图20190729163559.png 2 n0 a/ v$ P+ `

1 o/ F3 G5 s  Y, H+ @2 ^  n- O: D
. B, m8 E  A' C0 U TIM截图20190729163616.png 2 R! D# v" l$ P; n8 S9 I. Z$ A

/ T: z9 t3 r+ |+ _# z+ z2 H1 ]链接:https://pan.baidu.com/s/1yM3QOZrPyBL9A382g0rkBg
- c8 E5 ?/ O, q9 {7 X" M. H3 _: N提取码:clb3
, j5 ^, S+ M0 h0 qPC端的远程温湿度显示工具
0 D% d- |/ T# H' v% `) K webwxgetmsgimg.jpg ) Z5 _8 a. E6 x0 p6 c" n" y) r4 u

  u# k. M: j- {3 O9 ^% BPC端远程控制工具
  h. z+ s5 J7 j# p; j2 f8 c webwxgetmsgimg (1).jpg , x1 c0 Z3 N6 d' k& ^4 x5 X2 d
, ]2 k7 z- q) c3 Z7 I+ b

0 H6 S. a! ~8 l/ v' |* N* G//移动安卓端的工具9 T8 \5 ?/ b- b4 e. x6 {
webwxgetmsgimg (2).jpg
' f2 `1 ]1 ^0 Q, j6 |4 N" l7 K& h
收藏 2 评论7 发布时间:2019-7-23 19:03

举报

7个回答
wbeast 回答时间:2019-7-25 14:33:29
                            阿里云IOT示例% C( Q3 \3 X( i" @4 E; k$ w

/ \+ w; Q, c8 S  H' E: A本章实验演示连接阿里云IOT,实验运用了rtthreadMQTT软件包,tiny_sha1_hmac加密软件包,LWIP组件等等,用ENV工具可以获取软件包和组件,避免重复造轮子。以温湿度传感器为设备模型,用MQTT协议上传到阿里云物联网平台上,可以在物联网平台上查看温湿度数据。
在阿里云物联网套件申请步骤:
( r7 n4 h  a; G  ?' _- q) k1 I6 S
1、创建产品,如下图所示8 D3 Y2 R0 M( k5 A; p
1.png ' r# u/ U- t( t1 ]% a2 M+ k

* [$ s* d$ V- x0 V) c0 d2 ?, C3 x. {
2、输入产品名称和分类。
: j2 N, L2 k; [; ?1 }( i% { 2.png $ B. T; V' \% F% C$ Q* d) z9 o; z
3、设置产品功能定义
  |7 c4 z- n. T" e. \ 3.png + z7 s7 K% ?; {' v* K5 r9 I! P9 V
/ g0 q: K5 f4 A& p! y% e
4、输入产品功能名称,标识符,数据类型等等。本章实验是以温湿度设备为例子。

9 \. Z4 r  Z4 v9 \3 t 4.png
8 _$ P; H! }* b" Q4 ~7 l1 e  T 5.png 5 B4 F9 `6 K% o8 w- |% n
5、发布产品
6.png
, y8 K) @  G/ S. b$ P: O! S4 k
6、添加设备

9 H) v# K0 I# O' ` 7.png
1 x, x& `4 V+ U9 ?- S: T7 X: w$ o4 `1 i2 Z0 e" [# J
" H& q) U) Y; t. e  p
7、获取设备三元组信息: ProductKey, DeviceName, DeviceSecret# T+ O) N! {2 K* y! }# O9 u
TIM截图20190725141910.png 9 C/ V; p/ w6 c7 Y) m  w

! i+ T! s  _) w: h3 o% \8、打开程序,在MQTT.h中修改申请的设备三元组信息 : ProductKey, DeviceName, DeviceSecret。5 U% L' u. g& X
9、编译无错误后,下载程序。. L! N! p9 `$ U5 p% O2 [" x
10、连接成功,如下图所示。
& e3 ?  k+ D4 J3 b) {
TIM截图20190725141125.png * V/ G3 }2 K8 w) a9 b# I  s6 @

& i) Y/ ^) f3 b; V0 u  H% [& ~8 }11、查看数据3 @! w' H+ p* i
11.png 1 r: i) C5 V" d

- [9 v! Q3 }8 K* C) l! I8 Y7 w3 o+ K# L% w5 B

/ p8 j& \$ F4 Z0 C
! y7 d; l7 v8 l: S9 s) e0 T( Z/ a2 k
wangallenwang 回答时间:2019-7-26 11:37:09
wbeast 回答时间:2019-7-29 16:51:39
                                                                    json示例
0 ~8 n/ F6 D- E. Q* Y, i3 S% @1 @" o: D
& O5 {( y( a3 `& v$ f
) U+ }& w% @2 r! W% m' f2 m

* u# x' R0 q7 eJSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。2 V. Q, s0 S- l1 h9 d9 ~7 \; K
  Z$ Z0 W5 L6 D" }! m8 S& ~& `
1、 打开env工具,选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。
0 r" h2 X: ^4 Q1 v  L TIM截图20190726160125.png
4 _6 G9 Z7 n% |8 N7 D% M6 _3 |. u2、通过步骤1,就把JSON移植成功了,是不是很方便。
! q7 J( D, [/ @- L9 r+ x4 }( i& u; |- I$ `" v* `# }" H0 \# X
3、程序示例6 K0 l1 Z& o7 _- A$ C2 h
  1. void json_examples(){
    ' K0 [: |% F& @
  2.         
    - J: f2 I: g3 n
  3. 6 V' U  P" i' B1 v5 F9 _
  4.           cJSON * usr,*usr1,* Array,*usr2;
    / T! f; T& s. I) L/ H8 I6 J% B
  5.            char *out;/ V$ N0 k# x2 C  |3 r: r
  6.         , `0 J9 R$ ^6 `
  7.   
    $ h  I. r  Y8 ^0 A* q$ ]
  8.     usr=cJSON_CreateObject();   //创建JSON对象+ [$ C  }0 J7 P1 Y% |
  9.          cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    : N8 W# M' e# a" h, a8 i
  10.          cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    3 f- q8 ]% I0 k
  11.           out= cJSON_Print(usr);* M" D8 e5 b4 T/ {) C4 O
  12.           rt_kprintf("\r\n%s\r\n",out);
    8 a( y4 e0 V! M$ N' F1 I/ I
  13.            free(out);//释放内存
    1 \1 [' T( O$ J" M0 n
  14.                  cJSON_Delete(usr);//删除JSON对象) o8 h" d0 n2 O9 [
  15. ' g& i: k+ P. r8 p
  16.     usr=cJSON_CreateObject();   //创建JSON对象
    & u4 ^2 X8 q) O  c6 F
  17.          cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT"));  //在对象中添加字符串类型参数5 L1 d, C- q8 [" C+ k5 A
  18.          cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456"));  //在对象中添加字符串类型参数4 A5 |( X; l$ v" ]+ f! ]/ k
  19.           out= cJSON_Print(usr);
    6 J! j& ^1 U$ y/ M7 N" U' I9 _
  20.           rt_kprintf("\r\n%s\r\n",out);7 f5 R0 Q: I" u5 s4 N7 s& T( r
  21.           free(out);* o* A0 h& t0 C( |  b
  22.                  cJSON_Delete(usr);. s2 P5 e0 I5 E$ Z. ~2 y2 V* f
  23.         + J2 L. D* X3 A  Y
  24.         
      z! }" m; V& _/ e. J0 o/ R
  25.     usr=cJSON_CreateObject();   //创建JSON对象
    # N/ {& k- Q: N' R
  26.          cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数. K# d7 a' Q, `, x) f4 x
  27.          cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数
    9 O7 A% Z6 @  H& o2 x; r: s+ c
  28.           out= cJSON_Print(usr);//json对象转换成字符串
    , O4 y0 T$ c3 }6 _0 R+ Y: }
  29.           rt_kprintf("\r\n%s\r\n",out);
    ' F( B3 }- _( k, c- z
  30.           free(out);//释放内存
    4 p- g& }1 f( M$ P! ?8 s% H2 U
  31.                 cJSON_Delete(usr);//删除JSON对象
    + G7 y5 o. p# V  U5 n, r
  32.                 & ]1 E; c$ N+ ~' \
  33.                  //创建json数组对象
    6 U* F# k; v4 E5 L( F: p
  34.                          Array = cJSON_CreateArray();
    ( h: G" }3 n; T; {. J; }
  35.                          usr1 = cJSON_CreateObject();2 D3 w& v1 G2 i+ [/ M8 ?% N
  36.                   cJSON_AddItemToArray(Array,usr1);
    , C* Y( R+ f: n, \
  37.                  cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    5 H4 g  S% v1 Z; j6 l
  38.             cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    ) H# q; W' T: t1 E% T
  39.                   out= cJSON_Print(usr);//json对象转换成字符串
    1 p% W: ], z: q4 Q: V
  40.             cJSON_Delete(usr);
    4 x. X+ s6 x' u9 i# Z, P
  41.             rt_kprintf("\r\n%s\r\n",out);
    ' s/ h3 O1 R# V, e7 T* U
  42.                          free(out);
    , v# s" e3 T  m/ j) u4 Y) s8 f
  43.         " ?5 l, A* p$ ?8 g3 ]0 y/ @3 d
  44. # s9 N- n" d* `! _4 w& W
  45.         6 z& Y  E  i6 d- b" p9 P
  46.         $ M2 z* G- }6 `' Y9 ^2 D
  47.            //json对象嵌套使用2 v2 u$ l2 t$ N- N: r5 ]' |6 Y
  48.                    usr=cJSON_CreateObject();   //创建JSON对象! `$ \, z9 m/ G9 h0 h
  49.                          Array = cJSON_CreateArray();
      k6 ~3 N' E0 J  F/ I7 F
  50.                   cJSON_AddItemToObject(usr, "rows",Array );
    ! E/ l$ D- m# H4 l$ c
  51.                          usr1 = cJSON_CreateObject();' M# m# B* q- p2 D6 J, {2 m; _
  52.                          usr2 = cJSON_CreateObject();
    , ?5 z- O& i) Y7 B9 u7 M. @* o0 t
  53.                   cJSON_AddItemToArray(Array,usr1);
    9 [. |+ {: C# V6 U. R( c
  54.                          cJSON_AddItemToArray(Array,usr2);" k6 {" [4 r- Q
  55.                                 + z" v# D) a' n. r0 p
  56.                         cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数
    2 ^+ d+ a- p6 g+ k) }0 b3 R& M8 [
  57.             cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());* D; S5 R; g  K
  58.          : ^$ v4 |8 k% H' m9 R% d# |* Z) i' C
  59.                   cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22));  //在对象中添加数字+ }8 K$ E2 E5 I; F, {' N6 y
  60.             cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22));  //在对象中添加数字) a  b% O8 P3 J. a% x# o
  61.          
    9 m2 H& b  R1 k, M$ X# B
  62.                   out= cJSON_Print(usr);//json对象转换成字符串# H9 G% f9 u  w* y/ D
  63.             cJSON_Delete(usr);//删除JSON对象
    & h" N5 X" d& ^3 r6 W  H7 B) _
  64.             rt_kprintf("\r\n%s\r\n",out);& {% X, r9 q  |9 @; o
  65.                          free(out);//释放内存
    # K5 u$ U5 }  S* ?1 v
  66.         
    4 W) B) M- q/ p! ?" u0 L6 v
  67. }3 D/ Q3 G6 }9 y) B! W4 C
  68. ( B5 [9 B+ z! V
复制代码
" G" x2 c2 n" Z7 a0 Z4 ?2 ~

8 E6 }0 c4 U0 _0 J: t/ m4、实验现象,如下图所示。! W3 j+ g( n: n- f; n, D$ l4 V
TIM截图20190726160304.png $ D- b4 c3 T# y% @5 k: z& f9 I$ F

/ [  G& w& j! {
9 o1 H+ p+ K7 h  r) |6 |  u5 T$ u6 @9 c' m  [' Z
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版