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

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

[复制链接]
wbeast 发布时间:2019-7-23 19:03
1、硬件平台:STM32F407
: Y) t% E4 e- ~' V; |2、软件rtthread4.00版本$ L/ r2 w: t8 {, {8 @, t5 {/ I
实验例程基于rtthread开发,充分利用rtt丰富组件和软件包,MQTT,JSON,LWIP,AT SOCKET ,file system等等。
. R  ~2 @' b+ s. {6 X9 P9 u) m6 R$ |& ~2 `
TIM截图20190729163559.png / B5 b3 f, L: F  w& ^8 ^
0 v# X& o- C) Q; z" [9 O

6 ~/ u" c; \/ k TIM截图20190729163616.png . b# p0 n4 L3 C+ J# _. G: v4 f

& F: S, y/ w& C% K链接:https://pan.baidu.com/s/1yM3QOZrPyBL9A382g0rkBg , A# @; i. f7 U& j+ K) k
提取码:clb3
; C5 w" |5 d) R* ZPC端的远程温湿度显示工具: q: H) w4 b5 J
webwxgetmsgimg.jpg
9 L; H, m, L# k* e5 A0 c$ F# @4 B, x% u1 {* |
PC端远程控制工具
% ?2 ?+ G$ |; ~0 {$ E( z webwxgetmsgimg (1).jpg ' k3 ~7 Z" C4 }( G

2 q- o4 e& y- r0 S. X' W
2 n0 r: G+ [5 \7 }) d//移动安卓端的工具
) w- s0 W0 ~2 w6 Y: q5 C* | webwxgetmsgimg (2).jpg / _- U& J7 i+ J6 n# |5 ~- |
- ~$ o" `: c% \0 u$ O" t
收藏 2 评论7 发布时间:2019-7-23 19:03

举报

7个回答
wbeast 回答时间:2019-7-25 14:33:29
                            阿里云IOT示例
2 g; a7 {# Q7 u! f# v1 a. K% X/ x
  |9 f  A" G. m( i
本章实验演示连接阿里云IOT,实验运用了rtthreadMQTT软件包,tiny_sha1_hmac加密软件包,LWIP组件等等,用ENV工具可以获取软件包和组件,避免重复造轮子。以温湿度传感器为设备模型,用MQTT协议上传到阿里云物联网平台上,可以在物联网平台上查看温湿度数据。
在阿里云物联网套件申请步骤:

  j0 Y5 i- H- X1、创建产品,如下图所示2 C  {4 n$ y, E# X: B
1.png 1 X( f- T! H0 T5 Y1 P; o
( H8 B) \: c% H7 [  f% G0 l

! N" m/ z8 ^0 u. p  y! x2、输入产品名称和分类。& P4 |7 I# S) {3 z* G3 \9 S4 [
2.png 4 d0 ^& B9 l# n- i
3、设置产品功能定义
) a7 x0 _( n4 g8 P5 U 3.png
! x0 O! L6 {' e% ?# F8 b
# Z% c- n/ K! \, c2 g
4、输入产品功能名称,标识符,数据类型等等。本章实验是以温湿度设备为例子。

# z7 Y: Q6 l6 c4 E 4.png
1 }# l$ H2 ~% U; ? 5.png ) u& J/ ?0 J: b0 Q# c
5、发布产品
6.png
9 H, s2 w9 S( i; c& _4 r
6、添加设备
6 H: G4 t% @0 w
7.png / q4 n* {- l& A5 i) D0 U9 V

& X, L. g7 }4 B. {
% J. R; N+ @3 ^9 j- p$ G7、获取设备三元组信息: ProductKey, DeviceName, DeviceSecret
) v, V: _9 d( O+ p% M" X8 Y TIM截图20190725141910.png
" O* c% d. Y8 K6 f# S7 n2 s' ]
, p# s2 E: H# b/ j1 }! o8、打开程序,在MQTT.h中修改申请的设备三元组信息 : ProductKey, DeviceName, DeviceSecret。2 s3 E) E0 L$ k- k: L! C
9、编译无错误后,下载程序。# L& p# P4 |& `7 T; i: D# N
10、连接成功,如下图所示。

- n) l$ Z5 |+ _; _' `0 n TIM截图20190725141125.png ' h$ [  t5 b) P" X7 G

/ J2 m8 P7 i8 A0 l9 p. C11、查看数据
8 V4 k& a: o# x% m 11.png ( @. j, [! n" y$ W4 m6 n1 M
  t. H, w! A3 n  V8 Q

7 X9 a- R5 S9 e2 f+ d7 r0 o
3 k& m+ L" w- Q2 e, O
' p" V, N$ a: |- B
wangallenwang 回答时间:2019-7-26 11:37:09
wbeast 回答时间:2019-7-29 16:51:39
                                                                    json示例6 `/ ~7 X5 q3 x/ B* m7 |
5 d9 t) K4 l  z+ i# n, n. d
- R- f# P9 _+ Q

7 Z  G" g" Q- U' {* y1 EJSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。3 [6 c( p# \2 t) K$ T4 {6 B

: }; m# {; U7 D5 O! K$ A9 H1、 打开env工具,选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。
3 l3 g: L* r; a0 l$ m7 V  T% a6 e TIM截图20190726160125.png 3 s4 i- p2 J( `
2、通过步骤1,就把JSON移植成功了,是不是很方便。4 P% {; l2 P8 V1 V$ G- ?* q
% R! W/ h  ?+ z
3、程序示例& ~& D  z. r2 l& U! Q
  1. void json_examples(){
    6 B% y* J/ {* ~8 z  M- ], o+ `, c
  2.         6 K- I) ~  u0 O! s- U
  3. 7 G1 {' R3 N7 O8 j& `, ]
  4.           cJSON * usr,*usr1,* Array,*usr2;
    5 L2 x5 P7 N' |$ N& c7 }0 Z: h
  5.            char *out;
    # [" W7 G( a: [% q# v1 V
  6.         ; y: Z, D; K6 \) o
  7.   0 v. i! K2 P4 G& v, \8 v7 n
  8.     usr=cJSON_CreateObject();   //创建JSON对象
    + w/ N/ n7 C7 J, s- P, N1 _
  9.          cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    9 i# w8 z. I+ Z+ Q; v
  10.          cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22));  //在对象中添加数字! l- k; E) K" U8 b! e
  11.           out= cJSON_Print(usr);
    $ d4 \; J8 D( |4 i# X* ^
  12.           rt_kprintf("\r\n%s\r\n",out);
    " A; `3 D: {) ~! ~% l7 |  a
  13.            free(out);//释放内存
    ' Z9 w: r) \7 k
  14.                  cJSON_Delete(usr);//删除JSON对象
    6 I+ p. s& f; {! Q5 C
  15. 6 [  X3 n8 G, v3 M5 L5 o, k$ \
  16.     usr=cJSON_CreateObject();   //创建JSON对象) G9 Q4 u; G/ o8 _- y
  17.          cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT"));  //在对象中添加字符串类型参数( o1 ~9 J, T, L# q, F4 p3 @
  18.          cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456"));  //在对象中添加字符串类型参数. U: j- S% b1 ?5 n+ g# |
  19.           out= cJSON_Print(usr);- I- T% |! x0 a( b- d
  20.           rt_kprintf("\r\n%s\r\n",out);
    % ]/ ]6 C5 [5 b& C+ e* f7 I1 i
  21.           free(out);
    1 E% N; I" S( Y$ N
  22.                  cJSON_Delete(usr);9 Q* m0 ^  G/ {5 t; D2 {( P" k
  23.         
    ; T7 v+ k) I$ n' [% n" ~$ N
  24.         
    7 B6 C9 @6 D. Y& E
  25.     usr=cJSON_CreateObject();   //创建JSON对象
    , u2 x) `! J: O9 |$ e$ C; f
  26.          cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数( `; T9 S+ L) [9 Y! \8 v
  27.          cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数! z, o; A- _3 @$ z. C
  28.           out= cJSON_Print(usr);//json对象转换成字符串: B7 ]: d  A6 }0 j0 Y8 O
  29.           rt_kprintf("\r\n%s\r\n",out);4 v) Z. O4 ?- Y+ P; o4 L
  30.           free(out);//释放内存: J0 l, s9 v4 u/ x( i0 h
  31.                 cJSON_Delete(usr);//删除JSON对象
    9 N- r0 c( E2 H/ x; X) E8 F
  32.                
    % B. b+ A8 {: k( k$ c" _% y, v
  33.                  //创建json数组对象
    1 U' R; ~& c# b
  34.                          Array = cJSON_CreateArray();. g+ c0 S6 l- w, y7 }' k, ?! j; l6 Y; [
  35.                          usr1 = cJSON_CreateObject();* |9 w, Y, _( O* |# z& A; r
  36.                   cJSON_AddItemToArray(Array,usr1);' [4 d" G0 U8 F
  37.                  cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22));  //在对象中添加数字( e% {1 ~! }# h& x
  38.             cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    2 c6 a  c- s4 T& I% n5 n
  39.                   out= cJSON_Print(usr);//json对象转换成字符串
    1 i4 W1 O+ I5 x+ o( I  a. H" K
  40.             cJSON_Delete(usr);
    , d; k! Y+ @% J" ]- l# o; x
  41.             rt_kprintf("\r\n%s\r\n",out);  E0 f$ Y: F- ^' L
  42.                          free(out);
    7 [' H5 Z0 x: n( q
  43.         $ N& `+ o7 t( _8 o
  44. ; |, E, }8 X& n8 K& k3 l
  45.         + G+ G6 h0 L5 C  `& c* N$ O9 P
  46.         
    & ]* O  i; N( q6 }
  47.            //json对象嵌套使用
    ' b1 x0 L! V: J) X. C& f4 m& D0 w) p
  48.                    usr=cJSON_CreateObject();   //创建JSON对象6 I1 k& {( V2 z6 B
  49.                          Array = cJSON_CreateArray();) a% r$ U" S1 B6 I& i6 d7 S
  50.                   cJSON_AddItemToObject(usr, "rows",Array );3 R$ n! i9 d7 x1 ^* X3 W
  51.                          usr1 = cJSON_CreateObject();' N1 f. D+ S+ G( `
  52.                          usr2 = cJSON_CreateObject();, f& p% A! z) ?) I8 p5 C
  53.                   cJSON_AddItemToArray(Array,usr1);
    . L& W6 l9 w, z* n6 f* U
  54.                          cJSON_AddItemToArray(Array,usr2);
    , I+ e0 B: i6 g4 Z2 R
  55.                                 4 o9 b; F& V' W- }
  56.                         cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数
    # Q" W  R& ]7 k0 k' V
  57.             cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());
    * ~* K3 z2 c" O0 l! m+ ?  v
  58.          
    - d) l9 O# ?& D: D, ~* a
  59.                   cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22));  //在对象中添加数字/ T' N2 K1 n# ?" {
  60.             cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    + b0 A' \0 W2 i+ q& f. D; w, i
  61.          ! ^* v2 m/ o) I( _; v6 d' m; E
  62.                   out= cJSON_Print(usr);//json对象转换成字符串0 \- d7 N# o* ]& F
  63.             cJSON_Delete(usr);//删除JSON对象
    : C, J" K8 a; C% t( o" I
  64.             rt_kprintf("\r\n%s\r\n",out);
    # n# h% T& k+ h3 M; K2 l- K
  65.                          free(out);//释放内存
    " R* b, f8 [+ D, @
  66.         
    & K  @, T$ ]. j: z  w2 a
  67. }
    ! x' h3 Q; [, t) ^
  68. 5 h  H$ O2 V- o- Y
复制代码
! d4 g$ g* ]$ O6 u9 K

6 [% z1 q! D1 a4 r2 t% M/ R' t% j4、实验现象,如下图所示。: `5 y8 M* a) K; y
TIM截图20190726160304.png
( G9 ?+ a1 Y- \& Y: }4 e+ \' k/ a  T, m2 [# _: V9 n4 _

+ m5 n; T- Y5 F/ y1 F
6 ]$ K" [6 x# p7 N
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 手机版