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

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

基于智能家居项目 完结散花
评论