一、項目目標(biāo)
通過機智云平臺,快速實現(xiàn)以下功能:
實現(xiàn)多點控制(如多個按鍵控制一個設(shè)備)
實現(xiàn)MCU 數(shù)據(jù)上報至云端
實現(xiàn)獲取網(wǎng)絡(luò)時間(NTP)

二、機智云平臺簡介
機智云(Gizwits)是一款面向物聯(lián)網(wǎng)開發(fā)者的云平臺,提供:
免費的云端服務(wù)與接入架構(gòu)
自動生成設(shè)備端代碼
支持多種硬件平臺(如 STM32、ESP8266、ESP32 等)
提供開發(fā)調(diào)試 App
組成結(jié)構(gòu):
機智云 = 云端服務(wù)器 + APP框架 + 自動生成底層代碼
核心優(yōu)勢:
省去協(xié)議編寫
提高開發(fā)效率
簡化配置流程
三、兩種典型開發(fā)方案
| 開發(fā)方案 | 描述 | 特點 |
|---|---|---|
| MCU + ESP8266 串口通信 | 模組負(fù)責(zé)聯(lián)網(wǎng),MCU負(fù)責(zé)功能邏輯 | 本文采用 |
| SoC 模組直接開發(fā)(如 ESP32) | 直接在模組上跑應(yīng)用 | 簡化硬件 |
四、開發(fā)流程總覽
注冊機智云賬號,創(chuàng)建產(chǎn)品
創(chuàng)建自定義數(shù)據(jù)點(即控制/狀態(tài)變量)
下載機智云代碼(自動生成)
配置 MCU 串口與定時器
移植 Gizwits 庫到工程中
配置固件、燒寫 ESP8266
調(diào)用初始化函數(shù),測試控制與上報功能
五、代碼移植與配置詳解
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); // 寫入環(huán)形緩沖區(qū)
}
}
2. 實現(xiàn)uartWrite()串口發(fā)送函數(shù)
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 定時器實現(xiàn)
定時器中斷服務(wù)函數(shù)中添加:
voidTIM1_UP_IRQHandler(void)
{
if(TIM_GetITStatus(TIM1, TIM_IT_Update))
{
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);
gizTimerMs(); // 為 Gizwits 協(xié)議提供時基
}
}
4. 初始化代碼封裝
voidGizwits_Init(void)
{
TIM1_Update(); // 初始化1ms定時器
Usart2_Init(); // 初始化串口
memset(¤tDataPoint,0,sizeof(dataPoint_t));
gizwitsInit(); // 初始化協(xié)議棧
}
5. 主循環(huán)中調(diào)用:
while(1)
{
gizwitsHandle(¤tDataPoint);// 數(shù)據(jù)處理與上報
userHandle(); // 采集邏輯
}
六、ESP8266 燒錄機智云固件
兩種燒錄方式:
| 固件類型 | 描述 | 推薦場景 |
|---|---|---|
| 合并固件 combine.bin | 適合快速下載,只設(shè)置一個地址 | 推薦新手 |
| 分離固件 | 需配置 4 個地址:boot、init、blank、app | 更靈活 |
燒錄步驟:
板子撥到LOAD 模式
使用樂鑫串口燒錄工具,配置固件路徑
設(shè)置波特率(115200 或 9600)
點擊START開始燒寫
燒寫完成后,切回RUN 模式
七、機智云 APP 調(diào)試與配網(wǎng)
下載 Gizwits 調(diào)試 APP(推薦 v2.4.5)
使用 SoftAP 或 AirLink 配網(wǎng)
綁定設(shè)備(掃碼或輸入 DID)
實時觀察數(shù)據(jù)點上傳、下發(fā)控制
八、數(shù)據(jù)點邏輯開發(fā)
1. 數(shù)據(jù)上報邏輯
voiduserHandle(void)
{
// 模擬采集溫度數(shù)據(jù)
currentDataPoint.valueTemperature = get_temperature();
}
2. 云端控制執(zhí)行邏輯
int8_tgizwitsEventProcess(...)
{
switch(event[i])
{
caseEVENT_LED:
currentDataPoint.valueLED ? LED_ON() : LED_OFF();
break;
...
}
}
九、獲取網(wǎng)絡(luò)時間(NTP)
機智云默認(rèn)支持網(wǎng)絡(luò)時間同步,用戶可在gizwitsEventProcess中監(jiān)聽:
caseEVENT_NTP:
// 時間戳處理 ntp_time
break;
十、總結(jié)
本教程從實際出發(fā),完整展示了使用機智云平臺 + ESP8266 + MCU實現(xiàn)智能家居聯(lián)網(wǎng)通信的全過程。通過代碼自動生成 + 固件燒錄 + STM32 工程移植,開發(fā)者無需關(guān)心底層協(xié)議即可快速構(gòu)建聯(lián)網(wǎng)設(shè)備。
-
mcu
+關(guān)注
關(guān)注
147文章
18588瀏覽量
385943 -
智能家居
+關(guān)注
關(guān)注
1941文章
9935瀏覽量
195321 -
機智云
+關(guān)注
關(guān)注
3文章
629瀏覽量
27608
發(fā)布評論請先 登錄

基于智能家居項目 完結(jié)散花
評論