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

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

[复制链接]
wbeast 发布时间:2019-7-23 19:03
1、硬件平台:STM32F4076 H# q+ _; ~6 q7 d7 `
2、软件rtthread4.00版本
& c$ X: L# R+ L9 |/ r# k& K实验例程基于rtthread开发,充分利用rtt丰富组件和软件包,MQTT,JSON,LWIP,AT SOCKET ,file system等等。
2 t' [6 C% f& j3 a( k. l9 T) E0 u0 m$ t" h; [
TIM截图20190729163559.png
2 u" H9 t/ {% t4 i4 v8 O9 {+ O9 D6 J. B8 V, s9 b4 v7 @+ n

. C4 c! R' |, J4 i4 Z% ?, l TIM截图20190729163616.png
" S7 ~  z9 P, r2 j7 d( O% e$ W# n- b4 ~
链接:https://pan.baidu.com/s/1yM3QOZrPyBL9A382g0rkBg $ ~* v0 U  H& B/ }
提取码:clb3 $ c2 W5 L9 M: u: i/ Y
PC端的远程温湿度显示工具
! R: Y5 Q* a' b: v% E8 d webwxgetmsgimg.jpg 3 B* W, _: U' b6 \# X- O

9 w! E! B! Z2 l  C+ z# LPC端远程控制工具
) V: e+ i" [# Z2 y: q- o webwxgetmsgimg (1).jpg ) V, O! T; s2 _/ H( k
8 [0 t2 B8 L* @7 j& U
7 v% {3 k! ]1 B- l8 f
//移动安卓端的工具, W8 w" F  Z6 m& R1 B) x
webwxgetmsgimg (2).jpg
$ e) N) \  e2 Z" f- v$ _" D
- t- |/ Z7 w% C1 ]( v$ N
收藏 2 评论7 发布时间:2019-7-23 19:03

举报

7个回答
wbeast 回答时间:2019-7-25 14:33:29
                            阿里云IOT示例
  R( a& A) D" \5 K/ E

- [; Q; w+ t3 P) H* ^本章实验演示连接阿里云IOT,实验运用了rtthreadMQTT软件包,tiny_sha1_hmac加密软件包,LWIP组件等等,用ENV工具可以获取软件包和组件,避免重复造轮子。以温湿度传感器为设备模型,用MQTT协议上传到阿里云物联网平台上,可以在物联网平台上查看温湿度数据。
在阿里云物联网套件申请步骤:
9 g/ N8 Z+ v3 ?8 b& q7 ^9 \
1、创建产品,如下图所示* W- a2 n+ R' H; k
1.png 3 U, O' k- N0 q  S4 m
$ k9 ?* ?& z3 b, }7 `3 P
; I9 I! l+ `( u2 W
2、输入产品名称和分类。
! r, e/ A; N8 D 2.png # d& K" t% |5 e0 W8 W9 ~: n
3、设置产品功能定义+ C" Y  Y6 |  A; M" p- d
3.png / y1 ?" U% E) @5 |+ ~9 z8 {
6 m4 ^/ E4 S9 R$ w$ l' T
4、输入产品功能名称,标识符,数据类型等等。本章实验是以温湿度设备为例子。

6 Z7 b6 ~2 q% P. n 4.png
/ X$ N* ]; b7 e1 F- v0 g3 { 5.png
/ o  {! i' A; D. V  D2 \
5、发布产品
6.png

8 P' ?2 V% {/ R* K7 Z
6、添加设备

8 \1 f# W! N% e1 x+ Y 7.png
3 R5 `2 U% l" E: _7 ^7 i! Z' s# X  U8 V8 e" \( H
# m7 s6 c3 p8 g( O7 f! P
7、获取设备三元组信息: ProductKey, DeviceName, DeviceSecret
, s+ s$ W3 t8 v7 n' G6 ?5 K' s TIM截图20190725141910.png
* A: C4 v3 w) G+ g, h- a3 R) I" d0 d7 f$ u1 o
8、打开程序,在MQTT.h中修改申请的设备三元组信息 : ProductKey, DeviceName, DeviceSecret。# p( u8 V) n/ A# T0 d$ h
9、编译无错误后,下载程序。
; L, ]: |, Z- q( H! ^0 i10、连接成功,如下图所示。
" e/ O' t( ]. R- x
TIM截图20190725141125.png , P3 P8 \2 d6 \- O# }' U
! u) l: I$ z2 E5 N) F% c- l
11、查看数据3 n/ s2 A1 g! e/ Z5 i9 w
11.png
2 d- {6 O. f* l; X* ]
# L, W- N9 O3 |& D2 P+ {
. S; ]) f! s1 k' Y! ]
5 r9 e# @2 u$ w7 v( j: ]2 ?) h
2 g$ C9 @* [# H8 f, A
wangallenwang 回答时间:2019-7-26 11:37:09
wbeast 回答时间:2019-7-29 16:51:39
                                                                    json示例$ \+ d1 @! ~2 [$ q/ n
5 ]! w! V. U( ^, `
- [8 k4 C; P% ^

) v4 u3 J8 \+ R5 c0 [" P$ wJSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。) U1 |% E( _+ m$ F

3 j4 E$ ]2 Z! @8 p; f' z9 N( [2 i1、 打开env工具,选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。" a. S- _+ t4 d$ C
TIM截图20190726160125.png 2 K% |# ]+ F. G4 O" A5 p( n! X8 v5 n
2、通过步骤1,就把JSON移植成功了,是不是很方便。
& X! s2 \0 W0 ], n, m9 [3 J: W6 m* G0 t
3、程序示例
/ v; l/ B( `1 z+ i* e
  1. void json_examples(){
    ! W/ X/ y/ U  T
  2.         * e3 _0 ]9 \& b0 j

  3. ( \2 J/ A! f1 a8 o- L) ^* s
  4.           cJSON * usr,*usr1,* Array,*usr2;2 ]; x: o" l2 f1 o9 w
  5.            char *out;# ~& \+ ?6 `" ]: h0 v
  6.         
    & b) z/ N! o) t8 _2 P" X- s
  7.   
    " v) h% @3 ^: D
  8.     usr=cJSON_CreateObject();   //创建JSON对象
    6 m5 [0 M) w7 v- ?
  9.          cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22));  //在对象中添加数字& @; n2 e! f" H3 V; }
  10.          cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22));  //在对象中添加数字, Q7 D; k6 p2 ?3 V" W
  11.           out= cJSON_Print(usr);9 f9 b5 C: E4 M9 B$ [
  12.           rt_kprintf("\r\n%s\r\n",out);; O! I7 P- b1 M* ^' t
  13.            free(out);//释放内存
    9 Y; Z$ U( r3 Q( S. y2 O
  14.                  cJSON_Delete(usr);//删除JSON对象' a6 W6 \$ p3 q5 j

  15. / G: q6 v; E( ^( \
  16.     usr=cJSON_CreateObject();   //创建JSON对象6 J! x2 T( `, w- ~! J4 S5 U
  17.          cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT"));  //在对象中添加字符串类型参数( Y  j* O' ?) o
  18.          cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456"));  //在对象中添加字符串类型参数* E* w, j9 ~7 D. ]+ `0 a4 X
  19.           out= cJSON_Print(usr);& z0 [' J  x; {# n
  20.           rt_kprintf("\r\n%s\r\n",out);' t6 V9 ]1 }7 n1 e. ]! y
  21.           free(out);
    9 l8 s- q/ x( h4 O* h
  22.                  cJSON_Delete(usr);; p  \: \! t% o
  23.         ' y' S) l) R$ q0 N6 k; c  P
  24.         
    5 ?% k* N# r: e1 t) g$ {
  25.     usr=cJSON_CreateObject();   //创建JSON对象
    3 I9 g$ \) {' \- e- ~
  26.          cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数6 L- I7 Z! z0 `
  27.          cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数) D/ R1 w: x. [+ `6 N
  28.           out= cJSON_Print(usr);//json对象转换成字符串, l' |4 z8 U8 e6 |
  29.           rt_kprintf("\r\n%s\r\n",out);
    6 j7 p% b7 j* @! z3 X* ^; U
  30.           free(out);//释放内存
    9 t+ {4 m# s) \4 c# U5 y, J
  31.                 cJSON_Delete(usr);//删除JSON对象0 s3 ]2 w! }4 x5 h8 F5 C
  32.                
    ) `$ G. V; p) {+ ]6 w' \) H
  33.                  //创建json数组对象
    9 f6 i2 v$ r( i$ @6 U! \" e% ?
  34.                          Array = cJSON_CreateArray();
    ; N7 i( ?3 X% m+ z' v4 X4 Z
  35.                          usr1 = cJSON_CreateObject();; Y1 p* |1 D3 f& i* i5 k% K' i
  36.                   cJSON_AddItemToArray(Array,usr1);
    $ c. T  c5 ~2 W6 J
  37.                  cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    4 J" z) |( x4 y
  38.             cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22));  //在对象中添加数字3 o! }! g8 U. g
  39.                   out= cJSON_Print(usr);//json对象转换成字符串, A* a* n6 A3 s% U  N( h7 h! t8 v: C
  40.             cJSON_Delete(usr);
    0 u% @% b: E; E
  41.             rt_kprintf("\r\n%s\r\n",out);" R+ ]8 Z% n/ p- I- P7 }" i
  42.                          free(out);$ {" m6 S7 E7 Q- w! t& L) G6 C0 d
  43.         
    5 @) V; ?3 h0 L! g) P! z

  44. # o* F# J8 z* }0 a6 o' S( ^
  45.         
    / P5 [& }! o+ D/ n5 f
  46.         7 s" `4 S, e7 R( P
  47.            //json对象嵌套使用4 G& ~# v( }% ^$ r4 n, n9 D  o
  48.                    usr=cJSON_CreateObject();   //创建JSON对象1 U( n) B. Z2 S" N/ t
  49.                          Array = cJSON_CreateArray();
    - L; s5 ?& E! d8 s; L6 n
  50.                   cJSON_AddItemToObject(usr, "rows",Array );
    - e9 M* A; ?4 E
  51.                          usr1 = cJSON_CreateObject();
    4 U' F" V0 ~  P, S5 w/ r, F
  52.                          usr2 = cJSON_CreateObject();
    # c; g: ]( E% g
  53.                   cJSON_AddItemToArray(Array,usr1);8 f& x* D. k( Q
  54.                          cJSON_AddItemToArray(Array,usr2);: [6 X: U9 b, N' N
  55.                                 " ]$ l# t2 [  U4 @
  56.                         cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数
    : p% n9 j) J3 w% Z) ^4 ^
  57.             cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());$ j7 |( h7 o4 f# T, F7 f0 S
  58.          
    7 C( C$ J& O0 Y0 ~0 B) K5 b7 [
  59.                   cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22));  //在对象中添加数字, ?0 S6 p2 @) \) M  Q
  60.             cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22));  //在对象中添加数字, u7 j% n. Q. S  @# w
  61.          2 i7 s0 c& q; A+ C6 u: c
  62.                   out= cJSON_Print(usr);//json对象转换成字符串
    9 L0 J  |' ?$ Z) D& v, q
  63.             cJSON_Delete(usr);//删除JSON对象
    . t7 }- E4 A) K' l
  64.             rt_kprintf("\r\n%s\r\n",out);
    2 E" r$ N" Q3 A! c
  65.                          free(out);//释放内存# \7 d0 D+ j, r/ `( D
  66.         # w5 T- L  d/ p0 v8 q' v" a  W9 f7 c
  67. }5 M  B/ c6 W* V9 N
  68.   W' v5 Y% P& T) V6 X
复制代码

/ R0 g8 d, H+ s( H; k6 R, T
/ d& y1 W4 d. Q$ q4、实验现象,如下图所示。3 B0 o, q% R3 @  |
TIM截图20190726160304.png
' A, m6 c( B  n* u) t5 h$ j+ l. X: H' U
0 I% @: j& S& T0 _/ Q) W
4 ]" J9 W6 n6 \4 r1 [
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 手机版