本次教程主要為了實現(xiàn) STM32F407 探索者開發(fā)板通過中移 Cat.1 4G 模組轉(zhuǎn)接板 ML302-GC211 接入機智云,實現(xiàn)基礎(chǔ)的遠程檢測以及控制。
01 教程材料準(zhǔn)備 STM32F407 探索者開發(fā)板
中移 Cat.1 4G 模組轉(zhuǎn)接板 ML302-GC211
02 教程實現(xiàn)內(nèi)容 遠程控制 LED ; 遠程控制蜂鳴器;
遠程采集 CPU 溫度。
03 云端部署部分教程
?進入機智云開發(fā)者中心。 https://dev.gizwits.com/zh-cn/developer/product/
?點擊右上角創(chuàng)建新產(chǎn)品。
?創(chuàng)建新產(chǎn)品。
?由于本次需要實現(xiàn)控制 LED ,蜂鳴器和采集 STM32F407 芯片的內(nèi)部溫度,所以在創(chuàng)建產(chǎn)品之后,我們在數(shù)據(jù)點里面創(chuàng)建以下幾個數(shù)據(jù)點。實際產(chǎn)品應(yīng)用中根據(jù)自己的需求去增加對應(yīng)的數(shù)據(jù)點,此處為了直觀展示創(chuàng)立4個數(shù)據(jù)點。
?復(fù)制基本信息里面的 Product Secret ,在后面生成代碼需要用到,在左側(cè)導(dǎo)航欄選擇 MCU 開發(fā),硬件平臺選擇 STM32F407X,Product Secret 在產(chǎn)品基本信息里面可以復(fù)制。
到此云端部署部分就完成了。
04 CubeMX 初始化配置教程
?將前面下載的代碼進行解壓,打開解壓后根目錄下的 STM32F407x.ioc 文件。(需要安裝 CubeMX )
?配置開發(fā)板的 LED 引腳 DS0 和 DS1 及蜂鳴器引腳。根據(jù)原理圖可以分析 DS0 和 DS1 分別對應(yīng) PF9 和 PF10 ,蜂鳴器對應(yīng) PF8 。在 CubeMX 里面對幾個引腳進行相應(yīng)的配置及初始化。初始化 LED 和蜂鳴器為關(guān)閉狀態(tài),蜂鳴器引腳需要采用推挽輸出。
?STM32F407 芯片內(nèi)部內(nèi)部溫度采集,根據(jù)芯片相關(guān)的數(shù)據(jù)手冊,STM32F407 內(nèi)部溫度采集為 ADC1 的 IN16 通道。 ?生成 keil 代碼。
到此 CubeMX 就配置結(jié)束了。
05 keil 代碼修改部分教程 ?修改云端下發(fā)的指令處理,打開gizwits_product.c 文件,對其里面的 gizwitsEventProcess 函數(shù)進行云端下發(fā)的可寫數(shù)據(jù)點數(shù)據(jù)處理。
case EVENT_LED0: currentDataPoint.valueLED0 = dataPointPtr-》valueLED0; GIZWITS_LOG(“Evt: EVENT_LED0 %d
”, currentDataPoint.valueLED0); if(0x01 == currentDataPoint.valueLED0) { HAL_GPIO_WritePin(GPIOF, LED0_Pin, GPIO_PIN_RESET);//打開DS0 } else { HAL_GPIO_WritePin(GPIOF, LED0_Pin, GPIO_PIN_SET);//關(guān)閉DS0 } break; case EVENT_LED1: currentDataPoint.valueLED1 = dataPointPtr-》valueLED1; GIZWITS_LOG(“Evt: EVENT_LED1 %d
”, currentDataPoint.valueLED1); if(0x01 == currentDataPoint.valueLED1) { HAL_GPIO_WritePin(GPIOF, LED1_Pin, GPIO_PIN_RESET);//打開DS1 } else { HAL_GPIO_WritePin(GPIOF, LED1_Pin, GPIO_PIN_SET);//關(guān)閉DS1 } break; case EVENT_beep: currentDataPoint.valuebeep = dataPointPtr-》valuebeep; GIZWITS_LOG(“Evt: EVENT_beep %d
”, currentDataPoint.valuebeep); if(0x01 == currentDataPoint.valuebeep) { HAL_GPIO_WritePin(GPIOF, BEEP_Pin, GPIO_PIN_SET);//打開蜂鳴器 } else { HAL_GPIO_WritePin(GPIOF, BEEP_Pin, GPIO_PIN_RESET);//關(guān)閉蜂鳴器 } break;
?新增一個時間變量作為云端上傳的定時間隔,同時作為溫度采集的時間。增加 main.h ,如果不增加,GPIO 會報錯。
?在 gizwits_product.c 的 gizTimerMs 函數(shù)對 timerMsupdate 進行毫秒遞增。 ?在 gizwits_product.c 的 userHandle 函數(shù)對 timerMsupdate 變量進行判斷,此處采用5秒采集上報一次。頻率過高會導(dǎo)致云端拒絕接受數(shù)據(jù),采用延時會導(dǎo)致 CPU 資源浪費。
?ADC 采集轉(zhuǎn)換為溫度上報部分程序。
到此 keil 代碼修改部分就完成了,修改完代碼之后,編譯燒錄到單片機。
06 編譯燒錄
?程序下載完成之后將中移 Cat.1 4G 模組轉(zhuǎn)接板 ML302-GC211 通過接在開發(fā)板的 usart2 上面,即 PA2、PA3 上,ML302-GC211 最好采用獨立供電,以保證電源穩(wěn)定性,4G 模組需要插入移動聯(lián)通 4G 卡。通訊正常過后在云端產(chǎn)品下面設(shè)備日志下可看到設(shè)備上限。 ?將設(shè)備日志里面的設(shè)備的 IMEI 和基本信息里面的 Product Key 進行復(fù)制,粘貼到機智云串口調(diào)試助手里面的設(shè)備二維碼工具,生成設(shè)備的二維碼。
?手機上安裝機智云調(diào)試 APP,APP 下載地址如下:
?通過 APP 掃描二維碼即可綁定設(shè)備。
責(zé)任編輯:haq
-
STM32
+關(guān)注
關(guān)注
2271文章
10923瀏覽量
357095 -
機智云
+關(guān)注
關(guān)注
2文章
591瀏覽量
26446
原文標(biāo)題:探索者開發(fā)板 STM32F407 接入機智云教程
文章出處:【微信號:IoTMaker,微信公眾號:機智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論