物联网开发平台PlatformIO手册(中)Home & 帐户 & ESP32实例
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登录。
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
- https://docs.platformio.org/en/latest
- https://www.bordergate.co.uk/configuring-an-esp32-in-ubuntu-22-04/
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还拥有开发嵌入式项目时需要的所有实用工具,如调试、单元测试、静态代码分析和固件内存检查。
6.1 使用PlatformIO的Hello world
- 安装依赖
sudo apt-get install git wget flex bison gperf python3 python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
-
安装VS Code和PlatformIO插件(略)
-
访问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。
- 如出现不能连接串口
systemctl stop brltty-udev.service
sudo systemctl mask brltty-udev.service
systemctl stop brltty.service
systemctl disable brltty.service
sudo usermod -a -G dialout <user>
sudo usermod -a -G tty <user>
- 如出现识别不到python版本
"platformio-ide.useBuiltinPython": true,
"platformio-ide.customPATH": "C:\\ProgramData\\anaconda3\\Scripts", # 需要使用具体的python路径。
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