本項目基于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文章
54499瀏覽量
786869 -
物聯網
+關注
關注
2942文章
47414瀏覽量
409151 -
STM32
+關注
關注
2307文章
11128瀏覽量
371487
發布評論請先 登錄
手把手教你學單片機之AVR入門視頻教程
力天手把手教你學單片機視頻全集下載
機智云第一網紅手把手教你使用代碼自動生成神器
手把手教你將MQTT客戶端移植到stm32開發板上
手把手的教大家實現LoRa設備接入騰訊云IoT物聯網平臺
手把手教你學stm32
【課程匯總】Hello HarmonyOS系列課程,手把手帶你零基礎入門
手把手教你學LabVIEW視覺設計
《嵌入式 - STM32開發指南》手把手教你搭建STM32開發環境 [Windows版 - 3]
《嵌入式 - STM32開發指南》手把手教你搭建STM32開發環境 [Linux版 - 3]
【RK3568 NPU實戰】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測Demo,附完整流程與效果

STM32快速上云實戰指南:手把手帶你入門機智云
評論