本次采用STM32F103C8T6單片機、ESP-01S 模塊、紅外避障模塊、蜂鳴器模塊,OLED(0.96 iic)、繼電器模塊 、超聲波模塊,接入機智云平臺,分別演示機智云平臺的各類型數(shù)據(jù)點的用法。為嵌入式學(xué)習(xí)添磚加瓦,快速接入機智云云平臺。
使用到的模塊
STM32F103C8T6
ESP-01S
超聲波模塊(HC-SR04)
蜂鳴器模塊
OLED(0.96 iic)
紅外避障模塊
繼電器模塊
USB A TTL CH340
基本工作
第一步:進入機智云開發(fā)者中心創(chuàng)建智能產(chǎn)品
機智云開發(fā)者中心
詳細參考機智云文檔中心
產(chǎn)品創(chuàng)建 - Gizwits
分別新建數(shù)據(jù)點
第二步:ESP-01S燒錄機智云固件
需要用到 USB A TTLCH340串口來對ESP01S進行燒錄,連接圖如下
完成成連接,我們到機智云下載中心下載機智云對應(yīng)的固件:
機智云下載中心地址(Gizwits)
解壓我們可以看到有好多種固件,帶combine的是合并固件,燒錄只需要選擇這一個即可,分別有 8M 16M 32M 大小的固件給我們燒錄,這時候就需要去查看我們的ESP01S的flash大小是多少了。
通過去百度查找對應(yīng)型號的esp8266,在查看該WIFI模組的Flash大小,我的為8M,所以我選擇燒錄 8M大小的合并固件。
使用flash_download_tool工具下載(無需安裝,解壓直接使用)下載地址:工具|樂鑫科技 (espressif.com.cn)
雙擊打開
選擇 ESP8266
USB A TTL CH340 連接到電腦串口(如果顯示不和我一樣 USB-SERILACH340 (xxx),就是沒有安裝 CH340的驅(qū)動)
添加文件
燒錄選項
好了就先擦除一下芯片以前的固件
在進行燒錄(顯示紅圈中的參數(shù)基本就燒錄成功,硬件沒問題,能讀取到信息)
燒錄完成
接下來就是測試了,把多余的線去除,理論上接線圖如下
但是發(fā)現(xiàn),我使用的是拓展塢供電,可能電流不夠,導(dǎo)致掉串口,我就換了一種接法,使用STM32最小系統(tǒng)的3V3對ESP01s進行供電,連接圖如下
注意設(shè)備的共地很重要
機智云下載中心下載機智云串口調(diào)試助手
下載連接:Gizwits
解壓后雙擊打開
點擊新增
復(fù)制粘貼,我們新建產(chǎn)品的pk和ps
新增成功
選擇串口,打開串口,點擊初始化,有RX回復(fù)表示串口通信成功
接下來就是機智云的下載中心下載機智云的APP對設(shè)備進行配網(wǎng)
下載地址:Gizwits
手機打開瀏覽器,掃描二維碼進行下載
安裝APP
權(quán)限全部允許
調(diào)試APP可以點擊下方跳過登陸,直接使用
回到機智云串口調(diào)試助手點擊初始化,過幾秒在點擊 Airlink 進入配網(wǎng)
在到手機APP操作,點擊添加設(shè)備后,選擇一鍵配網(wǎng)
記住需要Wifi的網(wǎng)段在 2.4G網(wǎng)段,不用使用 5G 或者2.4G和5G合并的網(wǎng)絡(luò),可以使用電腦開熱點進行配網(wǎng)。
在等待下圖的過程中,可以發(fā)現(xiàn)機智云串口調(diào)試助手會有大量的數(shù)據(jù)接收到,可能是配網(wǎng)成功的現(xiàn)象。
稍作等待完成,如果不行,就退回到主界面,看一看到ESP01S以及聯(lián)網(wǎng)了,與我的手機在同一局域網(wǎng)內(nèi),我們點擊連接即可。
機智云串口調(diào)試助手,上報數(shù)據(jù)
到此完成ESP01S的配網(wǎng)流程,ESP01S可以直接接到STM32最小系統(tǒng)的串口進行使用了。
接下來是各個模塊與單片機的連接,接線圖如下
STM32代碼下載與cobeMX配置
利用機智云開發(fā)者中心的MCU開發(fā)便捷快速生成代碼
下載好并解壓縮機智云平臺生成的代碼。
打開解壓好的STM32CubeMX文件,記住路徑不能有中文!
配置IO口輸入模式來接收紅外避障模塊的電平硬件 PC15
兩種狀態(tài):
沒反射——D0輸出高電平——滅
燈反射——D0輸出低電平——亮燈
配置蜂鳴器控制引腳PB12
配置繼電器控制引腳 PB13
配置板載LED燈的PC13引腳
配置超聲波Trig引腳為 PA5
配置TIM3 選擇通道1 并開啟外部中斷
選擇區(qū)分文件方便使用
最后生成代碼(不可以有中文路徑!?。?/p>
打開MDK-ARM工程文件夾
添加外設(shè)文件夾
在project 中添加Hardware 文件夾的編譯路徑,以及添加進入工程
補全外設(shè)的頭文件,在main.h中添加
include"stm32f1xx_hal.h"
編譯無誤后繼續(xù)
添加頭文件
主函數(shù)中初始化OLED
While(1)死循環(huán)中,實現(xiàn)邏輯代碼
while (1) { SR04_GetData(); if(Last_i!=(uint32_t)distant) //當(dāng)前的距離和上一次的距離不同則進入 { // currentDataPoint.valuehongwai = ;//Add Sensor Data Collection OLED_ShowString(1,1,"dis:",OLED_8X16); OLED_ShowNum(32,1,distant,3,OLED_8X16); OLED_ShowString(1,16,"Buzzer:",OLED_8X16); currentDataPoint.valueHC_SR04 = distant;//Add Sensor Data Collection if(distant<=30) { OLED_ShowString(56,16,"ON ",OLED_8X16); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_RESET); //蜂鳴器 響 currentDataPoint.valueBuzzer = 1;//Add Sensor Data Collection }else { OLED_ShowString(56,16,"OFF",OLED_8X16); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_SET); //蜂鳴器 停 currentDataPoint.valueBuzzer = 0;//Add Sensor Data Collection } Last_i=(uint32_t)distant;// Last_i 保存上一次的值 } OLED_ShowString(1,32,"Relays:",OLED_8X16); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13)) { OLED_ShowString(56,32,"ON ",OLED_8X16); }else { OLED_ShowString(56,32,"OFF",OLED_8X16); } OLED_ShowString(1,48,"LED:",OLED_8X16); if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_15)) //讀取 紅外避障模塊電平 {//高電平,就是沒有遮擋 OLED_ShowString(56,48,"OFF",OLED_8X16); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);//給板載LED低電平 滅 }else {//低電平,有物體遮擋 板載LED亮 OLED_ShowString(56,48,"ON ",OLED_8X16); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);//給板載LED高電平 亮 } OLED_Update(); HAL_Delay(300); /* USER CODE END WHILE */
/* USER CODE BEGIN 3 */ userHandle(); gizwitsHandle((dataPoint_t *)¤tDataPoint);}
在gizwits_product.c 的第79行后面添加控制繼電器的代碼,如下圖
編譯前勾選下圖中的USEMicro LIB
機智云開發(fā)者中心查看數(shù)據(jù)
APP中查看數(shù)據(jù)
成果圖
-
單片機
+關(guān)注
關(guān)注
6043文章
44623瀏覽量
638737 -
STM32
+關(guān)注
關(guān)注
2272文章
10925瀏覽量
357703 -
機智云
+關(guān)注
關(guān)注
2文章
591瀏覽量
26462
發(fā)布評論請先 登錄
相關(guān)推薦
如何使用STM32F103RC配合esp-01s接入機智云的物聯(lián)網(wǎng)?
怎樣去使用基于stm32f1的esp01s驅(qū)動庫呢
基于STM32機智云平臺控制設(shè)備開關(guān)的相關(guān)資料推薦
ESP8266-01S接入機智云物聯(lián)網(wǎng)平臺
STM32F4最小系統(tǒng)板的設(shè)計(轉(zhuǎn)載)
![<b class='flag-5'>STM32</b>F4<b class='flag-5'>最小系統(tǒng)</b><b class='flag-5'>板</b>的設(shè)計(轉(zhuǎn)載)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于STM32的機智云平臺控制設(shè)備開關(guān)(物聯(lián)網(wǎng))
![基于<b class='flag-5'>STM32</b>的<b class='flag-5'>機智</b><b class='flag-5'>云</b>平臺控制設(shè)備開關(guān)(物聯(lián)網(wǎng))](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
正點原子STM32F103+ESP8266使用工程模板接入機智云的詳細步驟
![正點原子<b class='flag-5'>STM32F103+ESP</b>8266使用工程模板<b class='flag-5'>接入</b><b class='flag-5'>機智</b><b class='flag-5'>云</b>的詳細步驟](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用blinker控制esp01s Relay繼電器模塊
![使用blinker控制<b class='flag-5'>esp01s</b> Relay繼電器模塊](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用小度音箱blinker控制ESP01S Relay繼電器模塊
![使用小度音箱blinker控制<b class='flag-5'>ESP01S</b> Relay繼電器模塊](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【有獎直播】STM32最小系統(tǒng)板與ESP01S接入機智云實戰(zhàn)指南
![【有獎直播】<b class='flag-5'>STM32</b><b class='flag-5'>最小系統(tǒng)</b><b class='flag-5'>板</b>與<b class='flag-5'>ESP01S</b><b class='flag-5'>接入</b><b class='flag-5'>機智</b><b class='flag-5'>云</b>實戰(zhàn)指南](https://file.elecfans.com/web2/M00/40/03/pYYBAGJrSWqAb-nSAAAXmKtCFeo833.jpg)
評論