问题标签 [platformio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3265 浏览

c - ESP-32 无法连接到 MQTT 代理:mqtt_client: Error network response

我正在尝试将使用 ESP-IDF 框架运行的 ESP32 连接到 MQTT。我已成功导入此MQTT 库,并将配置设置为如下所示:

我调用 mqtt_app_start(); 在我的 app_main 函数中。上传代码后,我的 ESP-32 未连接到 MQTT 代理并输出:

我仔细检查了主机、用户名、密码和端口的值是否正确。当我查看托管在 cloudmqtt.com 的 Web 界面上的日志时,我可以看到以下输出:

0 投票
0 回答
130 浏览

arduino - platform.io 中的 Arduino 项目

我正在构建基于 Arduino 框架的解决方案。项目在platform.io中编译。

Arduino 硬件串行实现定义了ISR(UART0_UDRE_vect). 硬件实现

有没有办法在自定义库中排除 HardwareSerial 默认实现或覆盖 ISR 实现?

0 投票
1 回答
258 浏览

c++ - 如何创建可供 src/ 代码和 lib/ 库访问的全局对象?

我正在尝试开始使用 PlatformIO,并且遇到了包含优先级和/或变量范围的问题。

我的代码由一个src/main.cpp程序以及位于该lib/<libname>/*.cpp/h位置的几个私有库组成。

我想要一个外部类(Syslog)的全局对象,我的主程序和我添加的任何私有库都可以访问它。

我目前尝试了 2 种方法,它们都拒绝编译:


在 main.cpp 中使用 extern 关键字创建对象,setup()像这样初始化对象:

src/main.cpp:

库/GPSHandler/GPSHandler.cpp:

这会导致编译器错误,例如:


我尝试的第二种方法(这在 Arduino IDE 中有效)是创建一个小SyslogHelper.h文件,它创建了extern Syslog syslog;对象,然后将这个帮助文件包含在我所有的私有库中,如下所示:

src/main.cpp:

src/SyslogHelper.h:

库/GPSHandler/GPSHandler.cpp:

当我尝试在 PlatformIO 中编译它时,它失败了,因为在它尝试编译 SyslogHelper.h 时,它似乎不知道<Syslog.h>文件的位置:

0 投票
0 回答
692 浏览

powershell - Atom 终端:Windows PowerShell 未打开

我已经安装了 Atom 和 platformio-atom-ide-terminal 包。但是终端屏幕是空白的,我没有得到“Windows powershell 提示符”或目录路径。我正在运行一个简单的 Python 代码。

  • Python 版本:Win32 上的 Python 3.7.0(v3.7.0:1bf9cc5093,2018 年 6 月 27 日,04:59:51)[MSC v.1914 64 位(AMD64)]
  • 原子版本:1.34.0

我尝试更改设置。

截图:

空白终端

设置

0 投票
0 回答
563 浏览

esp32 - 使用 platform.io 为 ESP32 设置 sdkconfig

我想知道在使用 platform.io 上传代码时是否有人设法为 ESP32 设置 SDKConfig.h 文件,如果是的话,它是如何完成的。

提前致谢!

✌️

0 投票
1 回答
1359 浏览

c++ - 您可以在 Arduino 字符串中存储多少字节?

String string;我一直在网上搜索我们可以在 Arduino或内部存储多少String v[0];。但即使是Arduino 参考页面也没有答案。每次搜索都会有人说您不应该在 Arduino 上使用 String(大写 S),因为它没有足够的内存来处理又大又坏的 String。我不使用 Arduino Uno,所以我不介意 String 是否使用比 std::string 更多的内存。

你们知道 String 对象可以存储的最大长度是多少吗?

0 投票
1 回答
476 浏览

visual-studio-code - 如何设置 VSCode 以不将花括号放在新行上?

基本上与这个问题相反:
如何设置 VSCode 以将花括号放在新行上?

我正在使用 VSCode 的PlatformIO扩展,每当我格式化文档时,我的所有花括号都错放在新行上,这看起来很糟糕(来自 Java)。

这里有类似的问题,但它询问的是特定的 C++ 扩展。

0 投票
2 回答
820 浏览

c++ - 尝试写入 NVS 时 ESP32 重启

我正在尝试为我的 ESP32 项目创建一个保存系统,并且我有以下代码:

我通过串行命令将其称为以下方式:

通过这样做,我试图创建一个命令解析器来存储值并在之后使用以下命令读取它们:storage write <wifi/main> <key> <value>storage read <wifi/main> <key>.

但是当我尝试输入写入命令时问题出现了,代码执行时,ESP32 Serial 返回:

我不知道该怎么做,我尝试了一些不同的读写代码,但我找不到任何正确存储值的代码。读取命令有效,但显然它没有返回任何内容,因为内存是空的。这是读取命令,如果您想查看它:

我已经处理这个问题好几个星期了,我真的不知道该怎么办,也许系统不适合我想要的,或者我可能做错了什么。

为了进行开发,我将 VSCode 与 PlatformIO 一起使用。

请看一下,如果你能告诉我哪里出了问题或该怎么做,我会很高兴的。

提前致谢。

0 投票
0 回答
138 浏览

visual-studio-code - .vscode 中的“.browse.c_cpp.db”用于什么

我有一些由VSCode创建的项目文件夹(它是 platformIO 项目),每个人都有一个.browse.c_cpp.db.vscode 文件夹。而且它的尺寸非常大(大约 100mB)。并且因为我需要将这些文件夹与云同步,所以它对我来说太大了,所以如果我可以禁用它。

browse.c_acpp.db 的文件统计信息

0 投票
1 回答
289 浏览

c++ - Platformio 编译错误:ArduinoJson6100_100::DynamicJsonDocument 没有名为“nestingLimit”的成员

我是 C++ 新手,并试图在 Platformio 中编译简单的 arduino 项目。

platformio.ini 文件:

main.ino 文件:

应该很简单,但我收到下一个错误:

“ArduinoJson6100_100::DynamicJsonDocument”没有名为“nestingLimit”的成员

完整的编译器堆栈:

在文件夹 test4 中执行任务:platformio run <

处理nodemcuv2(平台:espressif8266;板子:nodemcuv2;框架:arduino)------------------------------------ -------------------------------------------------- ----------------------- 详细模式可以通过-v, --verbose选项 CONFIGURATION 启用: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2。 html PLATFORM: Espressif 8266 > NodeMCU 1.0 (ESP-12E Module) HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash) Converting main.ino Library Dependency Finder -> LDF MODES: FINDER(chain) COMPATIBILITY(soft) 收集了 35 个兼容库 扫描依赖... 依赖图 |-- 1.3.0 |
|-- 6.10.0 | |-- 3.0.2 | |-- 1.2.0 | | |-- 1.0 | |-- 1.0 编译.pioenvs/nodemcuv2/src/main.ino.cpp.o 生成LD脚本.pioenvs/nodemcuv2/ld/local.eagle.app.v6.common.ld 归档.pioenvs/nodemcuv2/libef5/libArduinoJson_ID64。 a 归档 .pioenvs/nodemcuv2/libca3/libTaskScheduler_ID721.a 索引 .pioenvs/nodemcuv2/libef5/libArduinoJson_ID64.a 索引 .pioenvs/nodemcuv2/libca3/libTaskScheduler_ID721.a 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/BearSSLHelpers。 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/CertStoreBearSSL.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/ESP8266WiFi.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/ESP8266WiFiAP.cpp.o 编译 .pioenvs/nodemcuv2 lib6c2/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o 正在编译。pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshComm.cpp.o 编译.pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshConnection.cpp.o 编译.pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshDebug.cpp.o 编译lib.pioenvs/// /painlessMesh_ID1269/painlessMeshJson.cpp.o .piolibdeps/painlessMesh_ID1269/src/painlessMeshComm.cpp:在成员函数'String painlessMesh::buildMeshPackage(uint32_t,uint32_t,meshPackageType,String&)'中:.piolibdeps/painlessMesh_ID1269/src/painlessMeshComm.cpp: 68:25:错误:没有匹配函数调用'ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument()'DynamicJsonDocument jsonBuffer;^ .piolibdeps/painlessMesh_ID1269/src/painlessMeshComm.cpp:68:25:注意:候选人是:在文件中包含从 . piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3: 注意:ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(const ArduinoJson6100_100::BasicJsonDocument&) [with TAllocator = ArduinoJson6100_100::DefaultAllocator] BasicJsonDocument(const BasicJsonDocument) .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3:注意:候选人需要 1 个参数,提供 0 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:33:12:注意:ArduinoJson6100_100 ::BasicJsonDocument::BasicJsonDocument(size_t, TAllocator) [with TAllocator = ArduinoJson6100_100::DefaultAllocator; size_t = unsigned int] 显式 BasicJsonDocument(size_t capa, TAllocator allocator = TAllocator()) ^ 。piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:33:12:注意:候选人需要 2 个参数,提供 0 个 .piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:在成员函数 'void MeshConnection::handleMessage(String&, uint32_t)': .piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:543:25: 错误: 没有匹配函数调用'ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument()' DynamicJsonDocument jsonBuffer; ^ .piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:543:25:注意:候选人是:在来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/DynamicJsonDocument.hpp:7:0 的文件中,来自 .piolibdeps/ArduinoJson_ID64/ src/ArduinoJson.hpp:21,来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson.h:9,来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson.h:9 piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:43:3:注意:模板参数推导/替换失败:.piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:543:25:注意:候选人需要2个参数,0提供DynamicJsonDocument jsonBuffer;^ 在来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/DynamicJsonDocument.hpp:7:0、来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson.hpp:21、来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson.h 的文件中: 9、来自.piolibdeps/painlessMesh_ID1269/src/painlessMesh.h:12、来自.piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:9:.piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3: 注意: ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(const ArduinoJson6100_100:: BasicJsonDocument&) [with TAllocator = ArduinoJson6100_100::DefaultAllocator] BasicJsonDocument(const BasicJsonDocument& src) ^ .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3: 注意:候选人需要 1 个参数,0 提供 .piolibdeps/ArduinoJson_ID64 /src/ArduinoJson/Document/BasicJsonDocument.hpp:33:12: 注意:ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(size_t, TAllocator) [with TAllocator = ArduinoJson6100_100::DefaultAllocator; size_t = unsigned int] 显式 BasicJsonDocument(size_t capa, TAllocator allocator = TAllocator()) ^ .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:33:12:注意:候选人需要 2 个参数,提供 0 .piolibdeps/ painlessMesh_ID1269/src/painlessMeshConnection.cpp:544:16: 错误:'ArduinoJson6100_100:: DynamicJsonDocument' 没有名为 'nestingLimit' 的成员 jsonBuffer.nestingLimit = 255; ^ * [.pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshComm.cpp.o] 错误 1​​ [.pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshConnection.cpp.o] 错误 1 ​​============ ============================= [错误] 耗时 10.54 秒 ================ ======================== 终端进程以退出代码终止:1

我究竟做错了什么?

谢谢!