ESP32-idf學習(三)esp32C3連接iot

一、前言

上一篇用藍牙作為通信方式,雖然勉強完成了控制,但結果顯然不是那么符合我們的預期,既然用藍牙還需要研究一段時間,那我們就先整一些現成的,不需要研究的!iot云平臺!這里當然也是通過wifi的方式。

二、開發準備

1、硬件了解

這是官方手冊中wifi的特性描述,同樣也是2.4g,速率150M是比我之前在stm32上用過的esp8266快的,對我的預期來說那是夠夠的了,畢竟我頂多就控控燈開關,上報一下傳感器數據之類的。

2、例程選擇

我一貫都是用mqtt連接的騰訊云,所以我現在也是選擇mqtt的例程,然后這里還有ssl、tcp和ws,我選擇的是tcp,ssl強調安全加密,ws是適配瀏覽器環境的,tcp沒有加密而且輕量,直接通過1883端口通信。

3、例程分析

這個例程就比較簡單了,只對連接mqtt來說的話,其實前邊都不是我們需要關心的內容,直接從網絡連接 example_connect 這里看起就好

這里有注釋,大意就是根據在menuconfig中的選項(wifi或以太網)自動初始化對應的網絡模塊,而且要提前在menuconfig中設置wifi的參數。(我也是百度翻譯的)

但是這個函數,我是沒找到,可能不是用C來實現的吧(瞎猜的),因為這里所說的menuconfig,在vscode本來就是點一下那個設置的圖標,這里配置后邊再說

然后mqtt_app_start就是,mqtt連接的開始

點開,這里有一個config的結構體,但是跟我記憶中的不太一樣,我記得好像這個結構體以前是輸入端口,username和password之類的就行來著

點進去看看:

現在分了好幾個,我將每一個都折疊了

就是mqtt的參數和任務的參數,我看了一下,broker_t設置url,credentials_t設置username、client_id、password,其他保持默認就好,具體設置后邊說。至于全部參數的詳細作用,其實我也并不能都說得上來,有需要大家自行百度!

三、修改例程

1、設置wifi名稱和密碼

點一下下邊的這個設置,就會發現新大陸兄弟們

直接搜索wifi就好,然后輸你的wifi名稱和密碼,注意是2.4g那個,下邊的參數就用默認的就好,改完點右上角保存

2、設置mqtt的參數

因為是測試,所以我直接將騰訊云設備信息下邊那里有直接給出來的三元組直接宏定義了,服務器地址要加上mqtt://,不要url會報錯

如果是想做成通用點的程序,三元組就要通過計算了,算法官方有:

物聯網通信 設備基于 TCP 的 MQTT 接入_騰訊云

服務器地址的話可以通過snprintf,例如:

char endpoint[100];
snprintf(endpoint, sizeof(endpoint), "mqtts://%s.iotcloud.tencentdevices.com", ClientID);

然后只需要在mqtt_app_start這個函數,注釋掉本來的url,加上我們的參數,就實現簡單的連接了

3、檢驗是否激活設備

燒錄程序:

成功連接wifi后會顯示ip地址

后邊的就是mqtt訂閱成功,成功激活設備了

在平臺上看一看

4、增加上報led狀態和接收led開/關指令

①增加頭文件

②增加宏定義

topic在騰訊云上可以直接看到

③增加變量:

增加了一個燈的開關狀態變量

一個任務句柄

一個環形結構

還有一個信號量

④增加函數

1、led相關

2、存儲區部分

3、回調函數修改:

4、創建任務

我把原先的mqtt_app_start注釋不用,自己創建了一個任務,還有前邊一些初始化

任務也很簡單,就是有中斷有數據接收時,直接進入數據處理,如果是開關的話就執行led開/關的操作,并直接上報燈的狀態。如果沒有的話就5s上報一次。

但其實這里5s并不準確,因為每次上報會有數據回復,又會跳轉到處理數據這里。

四、燒錄驗證

1、串口打印消息查看

這里是主動上報的,我加了一幀打印計數

這是控制的

2、平臺查看

可以看到,數據一直有上報,并且突變時會直接上

3、實際效果

esp32C3基于idf 騰訊云mqtt控制燈亮滅視頻-CSDN直播

五、總結

中斷這里我把數據存到存儲區,然后AI搜了一下這個環形緩沖區結構,再自己修改了下,之前都是用的靜態申請空間的。

一整個流程下來,其實跟我之前STM32+ESP8266是沒什么區別的。感興趣可以對比下。

STM32+ESP8266連接騰訊IOT上傳數據(四)_stm32通過esp8266上傳數據到云平臺-CSDN博客

比stm32+eps8266這種方法省了一個cpu,穩定性還沒測,我準備到時候把功能寫完,再一直掛著試試

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83247.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Axure RP11安裝、激活、漢化

一:注冊碼 Axure RP11.0.0.4122在2025-5-29日親測有效: 49bb9513c40444b9bcc3ce49a7a022f9

高光譜成像相機:基于高光譜成像技術的玉米種子純度檢測研究

種子純度是衡量種子質量的核心指標之一,直接影響農作物產量與品質。傳統檢測方法(如形態學觀察、生化分析)存在耗時長、破壞樣本、依賴人工等缺陷。近年來,高光譜成像技術因其融合光譜與圖像信息的優勢,成為無損檢測領…

Excel 中的TEXTJOIN用法(基礎版),將Excel 多個單元格內容按條件合并到一個單元格

1.新建一張數據透視表 選擇你需要的維度所在的列 2.點擊確定生成,勾選右邊的維度 3.選中單元格,通過 ShiftF3 查看函數參數 第一個參數:分隔符,用來分隔合并的文本,不需要分隔用"" 第二個參數:…

2025.05.28【Choropleth】群體進化學專用圖:區域數據可視化

Load geospatial data Start by loading your geospatial data in R, and build a basic plot. Data from the package The cartography comes with a set of geospatial data included. Learn how to use it to build a choropleth map. 文章目錄 Load geospatial dataData …

QT-Creator安裝教程(windows)

目錄 1,下載 1.1 鏡像源下載 1.2 運行下載的exe文件 1.2.1 QT5 版本安裝 1.2.2 QT6 版本安裝 1.2.3 如何在安裝完成之后,繼續添加擴展包 1,下載 1.1 鏡像源下載 地址:Index of /qtproject/

Deepin 23.10安裝Docker

個人博客地址:Deepin 23.10安裝Docker | 一張假鈔的真實世界 Deepin 是基于 Debian 的國產 Linux 發行版,安裝 Docker Desktop 可能會遇到兼容性問題,因為 Docker Desktop 官方主要支持 Ubuntu/Debian/Red Hat/Fedora/Arch 等主流發行版&…

ARXML解析與可視化工具

隨著汽車電子行業的快速發展,AUTOSAR標準在車輛軟件架構中發揮著越來越重要的作用。然而,傳統的ARXML文件處理工具往往存在高昂的許可費用、封閉的數據格式和復雜的使用門檻等問題。本文介紹一種基于TXT格式輸出的ARXML解析方案,為開發團隊提供了一個高效的替代解決方案。 …

2026-2030工業發展解讀系列:PLM/PDM系統解析報告(預覽版)

1 PLM系統的核心價值與功能定位 PLM是一種貫穿產品全生命周期的戰略性數字化工具,覆蓋從概念設計、研發、生產到退市的全流程管理。 PLM系統功能模塊包含數據管理、流程協同、項目管控等核心,支持從三維設計到生產制造的全鏈條數字化協同。 1.1數據管…

Go語言中的rune和byte類型詳解

1. rune類型 1.1. 基本概念 1. rune是Go語言的內建類型,它是int32的別名,即32位有符號整數; 2. 用于表示一個Unicode碼點,全拼Unicode code point; 3. 可以表示任何UTF-8編碼的字符; 1.2. 特點 1. 每…

【中國?珠海】2025 物聯網與邊緣計算國際研討會(IoTEC2025)盛大來襲!

2025 物聯網與邊緣計算國際研討會(IoTEC2025)盛大來襲! 科技浪潮奔涌向前,物聯網與邊緣計算已成為驅動各行業變革的核心力量。在此背景下,2025 物聯網與邊緣計算國際研討會(IoTEC2025)即將震撼…

Photoshop使用鋼筆繪制圖形

1、繪制臉部路徑 選擇鋼筆工具,再選擇“路徑”。 基于兩個點繪制一個彎曲的曲線 使用Alt鍵移動單個點,該點決定了后續的曲線方向 繼續繪制第3個點 最后一個點首尾是同一個點,使用鋼筆保證是閉合回路。 以同樣的方式繪制2個眼睛外框。 使用橢…

# 使用 Selenium 爬取蘇寧易購優質評價

使用 Selenium 爬取蘇寧易購優質評價 在數據挖掘和網絡爬蟲領域,Selenium 是一個強大的工具,尤其適合處理動態網頁內容。本文將通過一個實際案例,展示如何使用 Selenium 爬取蘇寧易購上的優質評價,并將這些評價保存到本地文件中。…

Windows上用FFmpeg推流及拉流的流程概覽

1. 視頻采集與推流(Windows FFmpeg) 采集設備:Windows上的攝像頭,比如“Integrated Camera”。 采集方式:FFmpeg通過 dshow 設備接口讀取攝像頭。 推流協議:你可以選擇推到 RTMP 或 RTSP 服務器。 推流…

研華工控機安裝Windows10系統,適用UEFI(GPT)格式安裝

主要硬件 主板:AIMB-787 、CPU:i5-6500 U盤啟動工具:通過網盤分享的文件:rufus-3.20.zip 鏈接: https://pan.baidu.com/s/1YlFfd-_EhFHCG4sEHBQ8dQ?pwdQT12 提取碼: QT12 Win10 22H2 Pro 純凈版系統:通過網盤分享…

什么是數字化轉型,如何系統性重構業務邏輯

“數字化轉型不是把原來的流程搬到系統里,而是用數據和技術重新定義業務邏輯,提升決策速度、客戶體驗和組織效率。” 光這一句話,其實就夠用了。 真懂的人,一聽這話就點頭;不懂的人,只覺得聽起來挺高級。…

windows安裝啟動elasticsearch

elasticsearch下載地址: https://www.elastic.co/downloads/past-releases#elasticsearch 1 Elasticsearch 的 Java 要求(Elasticsearch版本選擇): Elasticsearch 7.0~8.x 支持 Java 11(LTS)。Elasticsea…

thc-ssl-dos:SSL 壓力測試的輕量級工具!全參數詳細教程!Kali Linux教程!

簡介 THC-SSL-DOS 是一款用于驗證 SSL 性能的工具。 建立安全的 SSL 連接需要服務器比客戶端高 15 倍的處理能力。 THC-SSL-DOS 利用這種不對稱特性,通過使服務器過載并使其斷網。 此問題影響當今所有 SSL 實現。供應商自 2003 年以來就已意識到這個問題&#x…

comfyui利用 SkyReels-V2直接生成長視頻本地部署問題總結 1

在通過桌面版comfyUI 安裝ComfyUI-WanVideoWrapper 進行SkyReels-V2 生成長視頻的過程中,出現了,很多錯誤。 總結一下,讓大家少走點彎路 下面是基于搜索結果的 ComfyUI 本地部署 SkyReels-V2 實現長視頻生成的完整指南,涵蓋環境配…

廣告攔截器:全方位攔截,暢享無廣告體驗

在數字時代,廣告無處不在。無論是瀏覽網頁、使用社交媒體,還是觀看視頻,廣告的頻繁彈出常常打斷我們的體驗,讓人不勝其煩。更令人擔憂的是,一些廣告可能包含惡意軟件,威脅我們的設備安全和個人隱私。AdGuar…

【配置vscode默認終端為git bash】

配置vscode默認終端為git bash 點擊左下角小齒輪,點擊設置,搜索terminal.integrated.profiles.windows,點擊在setting.json中編輯 第一部分是當前的所有的終端,第二部分是配置默認的終端"terminal.integrated.defaultProfi…