通过机智云平台,快速实现以下功能:
MCU + ESP8266 实现 单点控制
实现 多点控制(如多个按键控制一个设备)
实现 MCU 数据上报至云端
实现 获取网络时间(NTP)

机智云(Gizwits) 是一款面向物联网开发者的云平台,提供:
免费的云端服务与接入架构
自动生成设备端代码
支持多种硬件平台(如 STM32、ESP8266、ESP32 等)
提供开发调试 App
组成结构:
机智云 = 云端服务器 + APP框架 + 自动生成底层代码
核心优势:
省去协议编写
提高开发效率
简化配置流程
| 开发方案 | 描述 | 特点 |
|---|---|---|
| MCU + ESP8266 串口通信 | 模组负责联网,MCU负责功能逻辑 | 本文采用 |
| SoC 模组直接开发(如 ESP32) | 直接在模组上跑应用 | 简化硬件 |
注册机智云账号,创建产品
创建自定义数据点(即控制/状态变量)
下载机智云代码(自动生成)
配置 MCU 串口与定时器
移植 Gizwits 库到工程中
配置固件、烧写 ESP8266
调用初始化函数,测试控制与上报功能
voidUSART2_IRQHandler(void)
{
static u8 data;
if(USART_GetITStatus(USART2,USART_IT_RXNE))
{
USART_ClearITPendingBit(USART2,USART_IT_RXNE);
data = USART_ReceiveData(USART2);
gizPutData(&data, 1); // 写入环形缓冲区
}
}
int32_tuartWrite(uint8_t *buf, uint32_t len)
{
for(uint32_t i = 0; i < len; i++)
{
USART_SendData(USART2, buf[i]);
while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
if(i >=2 && buf[i] == 0xFF)
{
USART_SendData(USART2, 0x55);
while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
}
}
return len;
}
定时器中断服务函数中添加:
voidTIM1_UP_IRQHandler(void)
{
if(TIM_GetITStatus(TIM1, TIM_IT_Update))
{
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);
gizTimerMs(); // 为 Gizwits 协议提供时基
}
}
voidGizwits_Init(void)
{
TIM1_Update(); // 初始化1ms定时器
Usart2_Init(); // 初始化串口
memset(¤tDataPoint, 0, sizeof(dataPoint_t));
gizwitsInit(); // 初始化协议栈
}
while (1)
{
gizwitsHandle(¤tDataPoint); // 数据处理与上报
userHandle(); // 采集逻辑
}
| 固件类型 | 描述 | 推荐场景 |
|---|---|---|
| 合并固件 combine.bin | 适合快速下载,只设置一个地址 | 推荐新手 |
| 分离固件 | 需配置 4 个地址:boot、init、blank、app | 更灵活 |
板子拨到 LOAD 模式
使用乐鑫串口烧录工具,配置固件路径
设置波特率(115200 或 9600)
点击 START 开始烧写
烧写完成后,切回 RUN 模式
下载 Gizwits 调试 APP(推荐 v2.4.5)
使用 SoftAP 或 AirLink 配网
绑定设备(扫码或输入 DID)
实时观察数据点上传、下发控制
voiduserHandle(void)
{
// 模拟采集温度数据
currentDataPoint.valueTemperature = get_temperature();
}
int8_tgizwitsEventProcess(...)
{
switch(event[i])
{
case EVENT_LED:
currentDataPoint.valueLED ? LED_ON() : LED_OFF();
break;
...
}
}
机智云默认支持网络时间同步,用户可在 gizwitsEventProcess 中监听:
case EVENT_NTP:
// 时间戳处理 ntp_time
break;
本教程从实际出发,完整展示了使用 机智云平台 + ESP8266 + MCU 实现智能家居联网通信的全过程。通过代码自动生成 + 固件烧录 + STM32 工程移植,开发者无需关心底层协议即可快速构建联网设备。
全部0条评论
快来发表一下你的评论吧 !