前言; ]$ d9 [; k6 O7 V% K, j ST 与阿里巴巴集团旗下的云计算科技公司——阿里云合作,推出基于 STM32L4 IoT 探索套件快速开发 AliOS Things 的方案。STM32 用户可以在 STM32L4 IoT 上运行阿里的物联网操作系统 AliOS,无缝连接阿里云。本文以WiFi 连接阿里云收发消息为例介绍如何获得 AliOS Things 开源代码, 如何基于 IoT 探索套件 STM32 B-L475EIOT01A 与 STM32 常用开发工具 IAR 来快速编译、烧写、调试 MQTT应用。 硬件概述 从 www.st.com 下载物联网套件 B-L475E-IOT01A 的详细硬件设计介绍 (http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-evaltools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/b-l475e-iot01a.html ) 。' k! E, o/ K) k; g. [" @ 这块开发板使用的是 ST 低功耗 MCU 系列中的 STM32L475 芯片,拥有 1M 字节的 Flash 和 128K 字节的 SRAM。 支持 WiFi、蓝牙、SubG,、NFC 等多种无线连接方式。 因为它还支持 Arduino 接口,所以使用者也可以很方便的通过 Arduino 接口来扩展其他的无线连接模块,比如 GSM 模块。' c5 ~" g( v( V0 h T Z* E 板上集成了 64Mbits 的 Quad-SPI Flash。! ?4 s; @ O8 N( S ? 板上还搭载了多种传感器,比如温湿度传感器、高性能 3 轴磁力计、加速度传感器、陀螺仪、接近传感器和压力传感器等。方便开发者用来进行多种应用的演示。1 J* ]. e$ i3 o1 o+ z* B. n$ H- a 板子上还有两个数字全角度麦克风。若需要,还可以实现语音控制的功能。: x2 Q# a0 [( W# E# y( l% L2 W 0 _4 u4 N8 ~3 Q. ]% e7 q 软件环境 阿里巴巴 AliOS Things 开发包% |$ \: j/ s: V* }# f IAR 开发环境。当然,AliOS Things 开发包内建也支持使用 KEIL 和 GCC 开发 STM32 应用,不需要用户额外花时间从零开始对工程文件进行设置。: c/ Y4 t$ S3 H: L/ G5 Y: F 串口工具 Tera Term。可用来显示程序运行的信息和配置 WiFi 用户名和密码。. r; ?9 v" Q8 x: ~, q ) A l8 ^% V2 f# P& F( ] y AliOS Things AliOS Things 是 AliOS 家族旗下面向 IoT 领域的轻量级物联网嵌入式操作系统。可在找到详细的中文介绍。完整源代码开发包可在同页面通过 GIT 或者ZIP 包下载。以 ZIP 包下载为例,你可以找到右边的“Clone or download”按钮(下图中的绿色按钮) + K w9 G. I" u* D" a 会出现一个选择界面如下,选择“Download ZIP”(下图中的蓝色按钮),然后保存 AliOS-Things-master.zip就可以了。 * j5 j; S( R7 L: z* p2 y+ E 7 f- i. X: _' z) s$ G ]: I' V 目前下载后的压缩包大小不到 100M。2 M& O" {. ], q- |7 I: f2 v1 q7 {) U) ~ ; m5 h% `6 q0 _: _0 x( ^ 使用 IAR 编译 IAR 是 STM32 开发人员常用的集成开发工具,如何安装 IAR 就不在本文赘述。 有了 IDE 后,接下来就是解压缩 AliOS-Things-master.zip 到任意目录。然后进到 AliOS-Thingsmaster\projects\IAR\mqttapp 目录,择 IAR 工程文件 alios.eww。 工程文件打开后应该是这个样子:$ q( T I+ k% d/ i " W$ G) d1 _! C/ Z8 z N . l: l5 I* O0 s5 `4 g4 N; f8 l3 h 直接按 F7 或者选择菜单里“make”就可以开始编译。 ! O, f0 {: U& o; q ! Z( _+ X4 j8 v+ W/ k# j 调试运行 使用 micro usb 连接到 B-L475E-IOT01A 开发板。在板子上,该 usb 口靠近一个 LED 灯,而离黑色 Reset 和蓝色用户按钮较远。点击“Download and Debug”按钮,中间弹出 STLink 连接确认窗口,请点击确认。程序会自动下载到开发板里,并停在主函数 main 那里。 你可以随时在菜单里选择“Debug->Go”或者直接按 F5 运行。若需要看到完整 AliOS 运行日志,可以等到串口连接后再让程序继续运行。 4 ]: @8 |6 d8 p4 x" c& a5 V Tera Term 串口配置 需要使用串口终端程序 Tera Term(其他类似串口软件亦可)来配置网络或者察看程序运行的日志。3 M6 I7 _ \& r. Z9 ]. [' T 第一次使用 Tera Term,需要对串口通信进行配置。在菜单里选择“Setup->Serial Port”。1 P% G. A# M0 ]/ S# ]; ?* `3 e7 V 9 K; G1 _8 C3 v 配置参数如下图所示。 ( ^" K7 ?) n& g" F 配置完成后,在“File”菜单里选择“New Connection”。9 C7 N; |9 M4 ]3 P1 j 选择串口 Serial。如果板子连接正常,这里的串口信息会自动显示出来,点击 OK 就可以了。若这里显示的串口号与先前串口通信配置的不一样,需要返回去修改。或者,在配置之前,先利用这里的信息看下实际的串口端口号是什么。 你可以看到有以下运行日志,表示程序已经运行,可以配置 WiFi 了。' [. ^5 T+ ^/ B5 A& A ( a. ~1 Y/ F- W* \ 在串口配置 WiFi. p* r5 w' ^5 y% o0 N6 M: | 首次启动时需要手动配网,配网命令:6 f5 ~+ u9 D, s, |
最后一个是安全接入参数,输入内容为 open 或 wep 或 wpa 或 wpa2,对于 WiFi AP 设定的连接安全协议。后续会保持 WiFi 配置在 kv 里,如果网络环境不变,按 Reset 按钮(板子的黑色按键),开机后会自动连接 WiFi AP。 . I8 q/ i0 w3 S+ `- L5 Y , {* d0 j9 e2 C* B+ a1 K J 程序循环上报 Sensor 和 LED 灯的数据. q! p1 r' b. p 程序会循环上报 Sensor 和 LED 灯的数据到云端。发送数据结束或者网络连接异常,可以按黑色 Reset 按钮重新体验。 2 Y) k) F! R7 o0 [4 ~ 其他# k, Q3 j! M& G 习惯使用 KEIL 开发环境的 STM32 用户,可以在解压缩后的开发包 AliOS-Things-master\projects\Keil\BL475E-IOT01\mqttapp 下找到你需要的工程。对于 GCC 用户,则可以从 https://github.com/alibaba/AliOS-Things/wiki 了解如何下载配置相关的软件;在环境配置完成后,直接在 VS Code 里选择 target 目标mqttapp@b_l475e 就可以进行 GCC 环境下的编译。 $ R$ T2 S# ]" p) S5 x+ y) N . j, e! d. Z* T 总结& ?: ?( }# p3 v d3 @ 对于 STM32 用户,AliOS Things 内建对多款 STM32 L0/L4 MCU 的平台支持,支持主流的 IAR/KEIL/GCC 开发环境。本文基于 STM32L4 IoT 探索套件,以 AliOS Things 物联网 MQTT 应用为例,详细描述了如何获取 AliOS Things 资源以及编译、调试运行 STM32 应用的过程,结合 STM32 与 AliOS Things 可迅速建立物联网节点。STM32 用户可在此基础上来创建更多物联网应用。4 B. o0 ]+ E' ]$ N6 O9 O * N7 E" X; k2 ] |
基于STM32L4R9 的QuadSPI Flash 通讯速率不理想经验分享
STM32L4超低功耗功能概述
基于STM32L431RC Standby和RTC中断唤醒经验分享
基于STM32L431的睡眠模式经验分享
STM32L4R9 的 QuadSPI Flash 通讯速率不理想
STM32L4、STM32L4+和STM32G4系列 微控制器上的专利代码读取保护
STM32L433在STOP模式USART不能工作的解决办法
【实测教程】基于STM32L4系列的实测教程分享合集
STM32L4系列MCU的五种振荡器和使用说明
【实测教程】STM32CubeMX-STM32L4之研究串口通信(printf)