物聯網開發平臺PlatformIO手冊(中)Home & 帳戶 & ESP32實例

来源:https://www.cnblogs.com/testing-/archive/2023/09/07/17668246.html
-Advertisement-
Play Games

1. 進程和線程的區別 進程(Process)和線程(Thread)是操作系統中的重要概念,它們表示執行中的程式的不同執行單元。下麵是它們的區別: 定義:進程是一個獨立的執行環境,具有獨立的記憶體空間,包含程式代碼、數據和執行狀態。線程是進程內的一個執行單元,共用相同的記憶體空間和系統資源。 資源占用: ...


4 PlatformIO Home

PlatformIO Home 是 PlatformIO協作平臺的一個強大、現代和互動式用戶界面 (UI)。它由 PlatformIO Labs 的現代用戶界面工具包提供支持,包含以下關鍵工具:

  • PlatformIO 賬戶

  • 項目管理

  • 庫管理

  • 開發平臺、框架和板管理

  • 設備管理(串列、邏輯和多播 DNS 服務)

  • 靜態代碼分析

  • 固件文件資源管理器

  • 固件記憶體檢查

  • 固件章節和符號查看器。

4.1 安裝

您無需單獨安裝 PlatformIO Home,它已內置於 PlatformIO IDE 和 PlatformIO Core (CLI)。

4.2 快速入門

  • PlatformIO IDE

請使用 PlatformIO 工具欄上的 (HOME) 按鈕打開 PlatformIO Home:

VSCode: PlatformIO 工具欄

  • PlatformIO 核心

請使用 pio home 命令啟動 PlatformIO Home Web 伺服器,併在瀏覽器 http://127.0.0.1:8008 中打開。

4.3 Demo

  • 歡迎與項目管理

  • 靜態分析

統計數據

僅代碼分析(靜態代碼分析)

  • 固件文件資源管理器

  • 文件符號

  • 固件符號

  • 固件區

  • 靜態代碼分析

  • 庫管理器

  • 開發板資源管理器

5 PlatformIO 帳戶

以下功能需要PlatformIO帳戶才能使用:

  • 社區論壇
  • 遠程開發
  • 管理組織
  • 管理團隊
  • 管理軟體包
  • 管理資源(軟體包)訪問。

PlatformIO IDE在PlatformIO Home中內置用戶界面,用於管理PlatformIO帳戶。您可以創建新賬戶、重置密碼、更新配置文件或獲取驗證令牌。必須使用此用戶界面才能使用OAuth登錄。

參考資料

6 ESP32 PlatformIO開發實例

PlatformIO支持多種不同的平臺、架構和框架,具有現代化的開發能力。它是VSCode的擴展,因此只需點擊幾下即可輕鬆安裝和配置。啟動 VSCode 後,進入擴展(Ctrl+Shift+X),在市場中搜索 platformio。它將出現在匹配列表的首位。點擊 "安裝 "按鈕,即可完成安裝。幾分鐘後,安裝完成,我們就在 VSCode IDE中安裝了PlatformIO。

關於 PlatformIO,我們會講很多,但作為最終參考,你可以在這裡找到相關文檔:https://docs.platformio.org/en/latest/what-is-platformio.html。

PlatformIO 有一些獨特的功能。最顯著的可能就是聲明式開發環境。有了PlatformIO,我們只需指定我們要在項目中使用的內容,包括晶元類型(不限於Espressif產品)、哪個框架和框架的哪個版本、有版本限制的其他庫,以及它們的任意組合。我們很快就會瞭解這些內容的含義以及如何配置項目。除此之外,PlatformIO還擁有開發嵌入式項目時需要的所有實用工具,如調試、單元測試、靜態代碼分析和固件記憶體檢查。8年前我第一次使用PlatformIO時(大概是這樣,我不善於回憶過去的事情),免費版本還不提供調試功能。這讓我非常失望。現在PlatformIO是一個免費的開源項目,所有功能我們都可以使用。謝謝你們!廢話少說,讓我們用 PlatformIO 開發相同的應用程式。

6.1 使用PlatformIO的Hello world

  • 訪問PlatformIO主頁。

單擊屏幕右側的新建項目按鈕。設置項目名稱,選擇電路板為 Espressif ESP32-S3-Box,框架為Espressif IoT Development Framework。您可以為項目選擇一個目錄,也可以將其保留為 PlatformIO 的預設目錄。單擊 "Finish(完成)",讓 PlatformIO 完成工作。

項目創建完成後,我們將看到以下目錄結構。

將src/main.c 重命名為src/main.cpp,然後複製粘貼我們已經使用ESP-IDF擴展開發的相同代碼。

#include <iostream>

extern "C" void app_main()
{
std::cout << "Hello World!\n";
}

編輯 platformio.ini 文件,進行以下配置設置。

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = espidf
monitor_speed=115200
monitor_rts = 0
monitor_dtr = 0

正如你可能已經註意到的,除了PlatformIO之外,我們沒有下載或安裝任何東西。它為我們處理了所有這些底層配置和安裝。PlatformIO為此使用了platformio.ini文件。讓我們研究一下它的內容。

[env:esp32dev]這一行定義了環境。

platform = espressif32設置平臺為espressif32。截至編寫本章時,PlatformIO支持48種不同的平臺。如果需要,我們可以指定平臺版本,PlatformIO會為我們找到並下載它。如果沒有指定,它將假定是最新版本的平臺。

board = esp32dev 這將設置板卡 - esp32dev。PlatformIO支持1420種不同的板卡,其中162種屬於 espressif32平臺。

framework = espidf該類別包含PlatformIO註冊表中的另外24個框架。

這三個設置來自項目定義階段。PlatformIO在項目定義階段將它們作為用戶輸入收集起來,並用這些值設置platformio.ini的初始內容。

然後,我們手動添加了後面三行,以定義串列監視器行為。我們將串列波特率設為115200bps,將RTS和DTR設為0,以便在串列監視器連接時重置晶元,從而看到應用程式的整個串列輸出。

您可以通過以下鏈接瀏覽 PlatformIO 註冊表,查看所有平臺、板卡、框架、庫和工具https://registry.platformio.org/search。

PlatformIO 文檔提供了可在 platformio.ini 中配置的完整信息,並附有示例:https://docs.platformio.org/en/latest/projectconf/index.html。

6.2 PlatformIO終端

除了GUI功能外,PlatformIO還提供了命令行工具pio,可通過PlatformIO終端訪問。它在某些情況下非常有用,尤其是當你喜歡使用命令行工具時。要啟動PlatformIO終端,可以單擊底部工具欄上的 PlatformIO:新建終端按鈕。

該工具欄還有其他常用功能的快速訪問按鈕,如編譯、上傳、監控等。單擊終端按鈕(將滑鼠指針懸停在按鈕上時將顯示標簽)後,將重定向到命令行終端,在那裡可以輸入pio命令。寫入pio並按回車鍵,即可顯示pio選項。

我們可以使用 pio 來快閃記憶體 ESP32-C3-DevKitM-1,如下所示:

$ pio run -t upload -e esp32c3kit
Processing esp32c3kit (platform: espressif32; board: esp32-c3-devkitm-1; framework: espidf)
----------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-c3-devkitm-1.html
PLATFORM: Espressif 32 (5.1.1) > Espressif ESP32-C3-DevKitM-1
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
…
Leaving...
Hard resetting via RTS pin...
============ [SUCCESS] Took 24.90 seconds =================
Environment    Status    Duration
-------------  --------  ------------
esp32c3kit     SUCCESS   00:00:24.902
=======================================

我們可以使用以下命令監控串列輸出:

$ pio device monitor -e esp32c3kit
--- forcing DTR inactive
--- forcing RTS inactive
--- Terminal on /dev/ttyUSB0 | 115200 8-N-1
<removed>
[0;32mI (324) cpu_start: Starting scheduler.[0m
Hello World!

pio工具擁有所有可以通過圖形用戶界面實現的功能。要查看其他命令的使用方法,只需在命令名稱後添加 -h 選項即可。

線上文檔更好。您可以通過以下鏈接查看: https://docs.platformio.org/en/latest/core/userguide/index.html#commands

釘釘或微信號: pythontesting 微信公眾號:pythontesting
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 阻塞隊列是一種常用的併發編程工具,它能夠在多線程環境下提供一種安全而高效的數據傳輸機制。本文將介紹阻塞隊列的原理和使用場景,並通過實例演示其在多線程編程中的應用。 # 一、什麼是阻塞隊列 阻塞隊列是一種特殊的隊列,它具有以下幾個特點: 1. 阻塞特性:當隊列為空時,從隊列中獲取元素的操作將會被阻塞, ...
  • 大家好,我是棧長。 最近看到一個話題: > **前幾天去華為面試,後來說通過了,但是HR告訴我簽約簽的是華為慧通的,我該不該去?** > > 來源:https://www.zhihu.com/question/310409624/answer/2437587008 面對這一問題,網友們紛紛表示當然不 ...
  • ### 歡迎訪問我的GitHub > 這裡分類和彙總了欣宸的全部原創(含配套源碼):[https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) ### 本機情況 - 省吃儉用入手了ThinkPad T14, ...
  • 在 Spring 中,`@Autowired` 註解的使用在不同的上下文中會產生不同的效果,這取決於所在的組件或類是否由**Spring**管理。 1. **`@Aspect` 註解的使用**:`@Aspect` 註解通常用於聲明切麵,而切麵是 Spring 管理的組件。因此,`@Autowired ...
  • # Unity UGUI的ScrollRect(滾動視圖)組件的介紹及使用 ## 1. 什麼是ScrollRect組件? ScrollRect(滾動視圖)是Unity UGUI中的一個常用組件,用於在UI界面中創建可滾動的區域。通過ScrollRect組件,可以實現在有限的空間內顯示大量的內容,並且 ...
  • [toc] | 說明 | 內容 | | | | | 漏洞編號 | CVE-2017-10271 | | 漏洞名稱 | Weblogic 其中使用了XMLDecoder來解析用戶傳入的XML數據在解析的過程中出現反序列化漏洞,導致可執行任意命令 | | 修複方案 | 打補丁上設備升級組件 | ### ...
  • 博主之前發佈了紅帽體系的Centos7關於openssl和openssh的升級操作;本文就Ubuntu系統再次分享和交流ssh的升級。如有不正確,歡迎在評論區指出。 之前博主的相關文章: openssh-淺談openssl和openssh的升級 - 李宗盛 - 博客園 (cnblogs.com) o ...
  • 對於有科班背景的讀者,可以跳過本系列文章。這些文章的主要目的是通過簡單易懂的彙總,幫助非科班出身的讀者理解底層知識,進一步瞭解為什麼在面試中會涉及這些底層問題。否則,某些概念將始終無法理解。這些電腦基礎文章將為你打通知識的任督二脈,祝你在編程領域中取得成功! ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...