物聯網開發平臺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 微服務框架,幫助我們輕鬆構建和管理微服務應用。 本框架不僅支持 Consul 服務註 ...
  • 先看一下效果吧: 如果不會寫動畫或者懶得寫動畫,就直接交給Blend來做吧; 其實Blend操作起來很簡單,有點類似於在操作PS,我們只需要設置關鍵幀,滑鼠點來點去就可以了,Blend會自動幫我們生成我們想要的動畫效果. 第一步:要創建一個空的WPF項目 第二步:右鍵我們的項目,在最下方有一個,在B ...
  • Prism:框架介紹與安裝 什麼是Prism? Prism是一個用於在 WPF、Xamarin Form、Uno 平臺和 WinUI 中構建鬆散耦合、可維護和可測試的 XAML 應用程式框架 Github https://github.com/PrismLibrary/Prism NuGet htt ...
  • 在WPF中,屏幕上的所有內容,都是通過畫筆(Brush)畫上去的。如按鈕的背景色,邊框,文本框的前景和形狀填充。藉助畫筆,可以繪製頁面上的所有UI對象。不同畫筆具有不同類型的輸出( 如:某些畫筆使用純色繪製區域,其他畫筆使用漸變、圖案、圖像或繪圖)。 ...
  • 前言 嗨,大家好!推薦一個基於 .NET 8 的高併發微服務電商系統,涵蓋了商品、訂單、會員、服務、財務等50多種實用功能。 項目不僅使用了 .NET 8 的最新特性,還集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、 ...
  • 本文主要介紹攝像頭(相機)如何採集數據,用於類似攝像頭本地顯示軟體,以及流媒體數據傳輸場景如傳屏、視訊會議等。 攝像頭採集有多種方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),網上一些文章以及 ...
  • 前言 Seal-Report 是一款.NET 開源報表工具,擁有 1.4K Star。它提供了一個完整的框架,使用 C# 編寫,最新的版本採用的是 .NET 8.0 。 它能夠高效地從各種資料庫或 NoSQL 數據源生成日常報表,並支持執行複雜的報表任務。 其簡單易用的安裝過程和直觀的設計界面,我們 ...
  • 背景需求: 系統需要對接到XXX官方的API,但因此官方對接以及管理都十分嚴格。而本人部門的系統中包含諸多子系統,系統間為了穩定,程式間多數固定Token+特殊驗證進行調用,且後期還要提供給其他兄弟部門系統共同調用。 原則上:每套系統都必須單獨接入到官方,但官方的接入複雜,還要官方指定機構認證的證書 ...
  • 本文介紹下電腦設備關機的情況下如何通過網路喚醒設備,之前電源S狀態 電腦Power電源狀態- 唐宋元明清2188 - 博客園 (cnblogs.com) 有介紹過遠程喚醒設備,後面這倆天瞭解多了點所以單獨加個隨筆 設備關機的情況下,使用網路喚醒的前提條件: 1. 被喚醒設備需要支持這WakeOnL ...
  • 前言 大家好,推薦一個.NET 8.0 為核心,結合前端 Vue 框架,實現了前後端完全分離的設計理念。它不僅提供了強大的基礎功能支持,如許可權管理、代碼生成器等,還通過採用主流技術和最佳實踐,顯著降低了開發難度,加快了項目交付速度。 如果你需要一個高效的開發解決方案,本框架能幫助大家輕鬆應對挑戰,實 ...