久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 625|回復: 0
打印 上一主題 下一主題
收起左側

STM32最小系統板+ESP01S接入機智云教程篇

[復制鏈接]
跳轉到指定樓層
樓主
ID:476594 發表于 2024-9-13 18:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本次采用 STM32F103C8T6單片機、ESP-01S 模塊、紅外避障模塊、蜂鳴器模塊,OLED(0.96 iic)、繼電器模塊 、超聲波模塊,接入機智云平臺,分別演示機智云平臺的各類型數據點的用法。為嵌入式學習添磚加瓦,快速接入機智云云平臺。
      適用的人群:入門嵌入式、學生、電子DIY愛好者
      注:本項目用到的外設文件我會在文章最后上傳附件,點擊放大圖片可以清晰參看。
教程使用到的模塊:
STM32F103C8T6


ESP-01S

超聲波模塊(HC-SR04)

蜂鳴器模塊


OLED(0.96 iic)

紅外避障模塊


繼電器模塊

USB A TTL CH340



基本工作

第一步:進入機智云開發者中心創建智能產品 機智云開發者中心 (gizwits.com)
詳細參考機智云文檔中心(產品創建 - Gizwits
分別新建數據點

第二步:ESP-01S燒錄機智云固件
      需要用到 USB A TTLCH340串口來對ESP01S進行燒錄,連接圖如下:



完成成連接,我們到機智云下載中心下載機智云對應的固件:
機智云下載中心地址(Gizwits

解壓我們可以看到有好多種固件,帶combine的是合并固件,燒錄只需要選擇這一個即可,分別有 8M 16M 32M 大小的固件給我們燒錄,這時候就需要去查看我們的ESP01S的flash大小是多少了。

通過去百度查找對應型號的esp8266,在查看該WIFI模組的Flash大小,我的為8M,所以我選擇燒錄 8M大小的合并固件。
使用flash_download_tool工具下載(無需安裝,解壓直接使用)
下載地址:工具|樂鑫科技 (espressif.com.cn)

雙擊打開:

選擇 ESP8266

USB A TTL CH340 連接到電腦串口(如果顯示不和我一樣 USB-SERILACH340 (xxx),就是沒有安裝 CH340的驅動)
添加文件:
燒錄選項:


好了就先擦除一下芯片以前的固件

在進行燒錄(顯示紅圈中的參數基本就燒錄成功,硬件沒問題,能讀取到信息)



燒錄完成:

接下來就是測試了,把多余的線去除,理論上接線圖如下:
但是發現,我使用的是拓展塢供電,可能電流不夠,導致掉串口,我就換了一種接法,使用STM32最小系統的3V3對ESP01s進行供電,連接圖如下:
注意設備的共地很重要
機智云下載中心下載機智云串口調試助手:
下載連接:Gizwits
解壓后雙擊打開
點擊新增:
復制粘貼,我們新建產品的 pk 和 ps
新增成功:

選擇串口,打開串口,點擊初始化,有RX回復表示串口通信成功。


接下來就是機智云的下載中心下載機智云的APP對設備進行配網
下載地址:Gizwits

手機打開瀏覽器,掃描二維碼進行下載
安裝APP

權限全部允許:
調試APP可以點擊下方跳過登陸,直接使用


回到機智云串口調試助手點擊初始化,過幾秒在點擊 Airlink 進入配網

在到手機APP操作:
點擊添加設備后,選擇一鍵配網
記住需要Wifi的網段在 2.4G網段,不用使用 5G 或者2.4G和5G合并的網絡,可以使用電腦開熱點進行配網。



在等待下圖的過程中,可以發現機智云串口調試助手會有大量的數據接收到,可能是配網成功的現象。

稍作等待完成,如果不行,就退回到主界面,看一看到ESP01S以及聯網了,與我的手機在同一局域網內,我們點擊連接即可
機智云串口調試助手,上報數據

到此完成ESP01S的配網流程,ESP01S可以直接接到STM32最小系統的串口進行使用了。




接下來是各個模塊與單片機的連接,接線圖如下:

     STM32代碼下載與cobeMX配置
利用機智云開發者中心的MCU開發便捷快速生成代碼
下載好并解壓縮機智云平臺生成的代碼。



打開解壓好的STM32CubeMX文件,記住路徑不能有中文!

配置IO口輸入模式來接收紅外避障模塊的電平硬件 PC15
兩種狀態:
沒反射——D0輸出高電平——滅
燈反射——D0輸出低電平——亮燈

配置蜂鳴器控制引腳PB12:
配置繼電器控制引腳 PB13
配置板載LED燈的PC13引腳
配置超聲波Trig引腳為 PA5
配置TIM3 選擇通道1 并開啟外部中斷
選擇區分文件方便使用
最后生成代碼(不可以有中文路徑!!)

打開MDK-ARM工程文件夾

添加外設文件夾

在project 中添加Hardware 文件夾的編譯路徑,以及添加進入工程

補全外設的頭文件,在main.h中添加
#include"stm32f1xx_hal.h"

編譯無誤后繼續

添加頭文件

主函數中初始化OLED
While(1)死循環中,實現邏輯代碼
  •     while (1)
  •     {
  •         SR04_GetData();
  •         if(Last_i!=(uint32_t)distant)  //當前的距離和上一次的距離不同則進入
  •         {
  •            // 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);
  •     }

[color=rgb(0, 0, 0) !important]復制代碼



在gizwits_product.c 的第79行后面添加控制繼電器的代碼,如下圖:

編譯前勾選下圖中的USEMicro LIB



機智云開發者中心查看數據

在APP中查看數據
成果圖:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品日韩在线 | 丁香综合| 日韩国产精品一区二区三区 | 成人免费共享视频 | 国产精品久久一区 | 久久99精品久久久久久国产越南 | 一区二区亚洲 | 欧美成人在线免费 | 成人网在线 | 国产999精品久久久久久 | 国产亚洲精品久久yy50 | 91av在线免费看 | 久久这里有精品 | 中文字幕一区在线观看视频 | 91麻豆精品一区二区三区 | 亚洲欧美久久 | 亚洲在线看 | av色噜噜| 人妖无码| 亚洲视频免费 | 久久一区二区三区四区 | 成人免费一区二区三区视频网站 | 亚洲欧美日韩精品久久亚洲区 | 久久精品一区二区 | 国产精品久久久久久久久久久久久久 | 国产一级视频在线观看 | 亚洲 一区 | 怡红院免费的全部视频 | 国产精品久久久久久久久久免费看 | 精品视频在线免费观看 | 日韩欧美一级精品久久 | 欧美日韩视频一区二区 | 一区二区三区亚洲 | 国产一卡二卡三卡 | 久久久久久久91 | a级大片免费观看 | 亚洲中国字幕 | 国家一级黄色片 | 久久久久91| 国产一级一级国产 | 久久国产视频播放 |