本项目基于STM32F103C8T6最小系统板,采用HAL库开发方式,结合ESP01s Wi-Fi模块,实现将各类传感器数据快速上传至机智云平台。通过移植机智云SDK到自定义项目,用户可以方便地将传感器数据实时传输到云端,支持通过机智云APP远程查看数据和发送控制命令。该项目为物联网应用提供了一个简便的解决方案,能够帮助开发者快速搭建起智能设备的云端连接与远程控制功能。
PART.01实物材料
主控芯片:使用STM32F103C8T6,这里用到最小系统板,方便快捷。
wifi模块:选用ESP8266-01s
传感器:DHT11温湿度模块、LED
准备软件:keil5(MDK版本)、STM32CubeMx(用于配置STM32与生成HAL库代码)
PART.02实物连接
LED负极 --- STM32的PA0
LED正极 --- 电源正极3.3V
ESP01S的3v3 --- 电源正极3.3V
ESP01S的GND --- GND
ESP01S的TX --- STM32的PA3
ESP01S的RX --- STM32的PA2
DHT11 的 3v3 --- 电源正极3.3V
DHT11 的 GND --- GND
DHT11 的 DATA --- STM32的PA1

1、在机智云平台上创建设备,设置数据点。
进入机智云平台,注册登录之后,进入开发者中心

创建设备,设置数据点

这里以其他为例

设置好名称,类型(这里根据图片默认即可)

然后编辑我们想要的数据点

这里以温湿度的数据点设置为例,如图

我们这里一个设置三个数据点:温度temp,湿度humi,照明LED_Flag

PART.03ESP01s刷机智云的固件
接下来先给wifi模块ESP01s刷机智云的固件,用于后面的移植机智云的SDK,我们使用CH340 USB转TTL模块,给esp01s烧录固件。

实物连接ch340连接esp01s
Esp01s 3V3 --- 3.3v
Esp01s GND --- GNDv
Esp01s TX --- CH340的RXD
Esp01s RX --- CH340的TXD
Esp01s EN --- 接高电平3.3V
Esp01s IO0 --- 接低电平GND,这里用于下载模式
CH340的跳冒接 VCC与3V3

连接好实物图之后就可以开始准备烧录固件了,先去机智云官网下载ESP8266固件。
进入机智云官网---开发者中心---下载中心---GAgent---下载ESP8266固件。

先解压,等下用这个8Mbit版本的固件。

接下来打开ESP乐鑫官方的烧录固件工具(文章结尾工具包链接里面有提供)。

选择对应的固件版本,这里ESP01s选择刚刚下载包里面的8Mbit版本,地址0x000,其他选项配置如图,点击start开始烧录。

烧录好固件后,就可以进行MCU STM32 HAL库版本的SDK移植了。
PART.04机智云SDK的移植与上云
移植机智云SDK
进入MUC开发页面

生成代码包之后下载下来,用于后面的移植到自己的工程。

我们把这个SDK移植到自己的工程(也可以直接选择使用这个SDK工程)
移植机智云的SDK,我们需要先配置STM32需要的配置:一个定时器TIM2实现1ms中断给机智云作为基准时钟,一个串口usart1 用于与电脑通信实现调试打印功能,一个串口USART2用于单片机与esp8266的底层通信,我们打开STM32CubeMx开始配置。
配置TIM2实现1ms中断

配置串口usart1,波特率115200

配置串口usart2,波特率9600

在NVIC中打开中断。

配置完成,点击生成代码。
我们把下载的SDK的官方文件里面的这两个文件复制到自己的工程。Gizwits机智云文件,Utils工具文件,Hal生成的hal库用到的程序。

打开keil工程,在工程中也需要把这两个移植文件添加入工程

记得引用一下路径

接下来我们修改机智云gizwits_product.c文件中的函数,实现自己的数据点上传。
void userInit(void) 这个函数是数据点初始默认值函数。

void userHandle(void)这个函数实现了给云平台数据点赋值,这里我们把读取到的温湿度赋值给数据点。

编写云平台下发数据的逻辑控制。

Main.c文件添加初始化与调用函数,初始化函数调用。
调用机智云的初始化函数,打开定时器计时与中断和串口2接收中断,数据点初始化,设置wifi模式为AIRLINK一键配网模式。

While循环中调用主要功能函数

以上机智云的SDK就移植到自己的程序里面了,接下来连接好实物之后开始测试。
PART.05实物连接
LED负极 --- STM32的PA0
LED正极 --- 电源正极3.3V
ESP01S的3v3 --- 电源正极3.3V
ESP01S的GND --- GND
ESP01S的TX --- STM32的PA3
ESP01S的RX --- STM32的PA2
DHT11 的 3v3 --- 电源正极3.3V
DHT11 的 GND --- GND
DHT11 的 DATA --- STM32的PA1

PART.06使用ST-Link烧录器烧录程序
首先用一部手机连接wifi,这里wifi必须要2.4g模式的(建议再用另一台手机开热点,这一台手机连接热点然后代开机智云APP),之后我们打开机智云APP开始测试。
添加设备,这里选择一键配网然后输入wifi密码。

下一步之后,给板子断电,点击“我已完成上述操作”之后立马给板子通电,等待连接之后,返回就连接成功了。

测试成功,可以看到机智云APP可以显示温湿度数据和控制LED了。


-
传感器
+关注
关注
2574文章
54429浏览量
786319 -
物联网
+关注
关注
2939文章
47341浏览量
408237 -
STM32
+关注
关注
2305文章
11123浏览量
371232
发布评论请先 登录
手把手教你学单片机之AVR入门视频教程
力天手把手教你学单片机视频全集下载
机智云第一网红手把手教你使用代码自动生成神器
手把手教你将MQTT客户端移植到stm32开发板上
手把手的教大家实现LoRa设备接入腾讯云IoT物联网平台
手把手教你学stm32
【课程汇总】Hello HarmonyOS系列课程,手把手带你零基础入门
手把手教你学LabVIEW视觉设计
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 3]
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 3]
【RK3568 NPU实战】别再闲置你的NPU!手把手带你用迅为资料跑通Android AI检测Demo,附完整流程与效果

STM32快速上云实战指南:手把手带你入门机智云
评论