问题标签 [arduino-esp32]

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 回答
816 浏览

bluetooth-lowenergy - 使用 WiFi 时停止 BLE

我正在尝试在 ESP32 上使用 BLE 和 WiFi。正如我所见,它们不能同时使用,所以我试图找出一种方法来停止从 BLE 服务器接收数据。这是我迄今为止尝试过的停止 BLE 的方法:

然而,似乎没有一个工作。ESP32 应该连接到 WiFi(使用 WiFiManager),但是当我尝试连接到 Firebase 或 Twilio 时,连接被拒绝。在尝试连接到 Firebase 之前,我有 35000 个空闲堆和 twilio 80000。那么,有没有办法检查 BLE 扫描/连接是否已停止?是否有任何其他命令可以将其关闭?可能是我的堆用完了,因此我无法连接到 Firebase?

0 投票
0 回答
41 浏览

esp32 - 通过 MQTT 从 ESP32-Cam 模块发送有效载荷

目前我正在开发我想使用 ESP32-Cam 模块的 MagicMirror 项目。我想通过 ESP32-Cam 模块识别人名,将人名发送到 MQTT 主题到 RaspberryPi 代理客户端,并在 MagicMirror 屏幕上显示问候消息。请注意,我没有为 MagicMirror 使用任何显示器,而是使用投影仪在安装在天花板上的现有镜子上投影。投影仪与 RaspberryPi 连接,无线 PIR 传感器(安装在镜子上)为镜子附近的任何人提供信号,但我想通过投影仪向该人打招呼(与 RaspberryPi 连接)。我如何通过 MQTT 将人名有效负载到 RaspberryPi。

0 投票
1 回答
92 浏览

c++ - 将字符数组地址存储在新数组中

我在 Arduino 程序中有一个包含的文件。MCU是ESP32。

包含的文件是:

当我编译代码时,返回此错误:

无法在初始化中将 'const char (*)[6] 转换为 'char*'

无法在初始化中将 'const char (*)[6]' 转换为 'char*'

无法在初始化中将 'const char (*)[1]' 转换为 'char*'

请帮我。我如何将 char 数组地址存储在另一个数组中。

0 投票
1 回答
308 浏览

c++ - FreeRTOS:一种在不阻塞列表迭代的情况下延迟列表内成员函数的方法

我想为类的每个实例创建一个具有延迟的函数。如果发生某种情况,将创建一个任务,并且延迟只会发生在这个实例上。

每次延迟都会起作用吗?或者在每次迭代中都会运行一个新任务?for 循环会被阻塞,所以每次迭代都会停止还是异步工作?

整个想法是避免使用 millis() 函数并且不阻塞列表的每个迭代。另一个限制是速度,因为这个循环以 5ms 工作,我想使用核心 0。

编辑:@HS2 提出更好的方法应该是使用 FreeRTOS 计时器

0 投票
1 回答
800 浏览

c++ - 获取 [e][wifigeneric.cpp:739] hostbyname(): 执行 POST 请求时 dns 失败

我开始使用电子和微控制器编程。

我制作了一个简单的电路,我使用 DHT22 传感器来测量温度和湿度。我还在 Node 和 Express 中创建了自己的 API(将 MongoDB 作为数据库)。它是非常简单的 API,只有两个端点:一个用于获取。一个用于发布数据。我可以使用 Postman(和浏览器)创建成功的请求。

为了清楚起见,我想将温度和湿度发送到我的 API,然后在 Vue 网站上对这些数据进行一些处理(我认为这根本不相关,但再次说明一下我想要做什么达到)。

现在我将说我正在使用的内容:

Windows 10 OS NodeMCU ESP32 微控制器 DHT22 传感器 HTTPClient 库(我认为这是导致问题的) PlatformIO 与 Arduino.h 头文件一切正常,但是当我尝试将数据发送到我的数据库时,事情失败了。我总是收到以下错误

[e][wifigeneric.cpp:739] hostbyname(): dns 失败

我尝试使用 http://localhost:3000/endpoint 和http://127.0.0.1/endpoint发出 POST 请求(这部分真的很奇怪,为什么在使用没有域名的 IP 地址时出现 DNS 错误? )。

我已经在网上查找了解决方案。我在 github 上遇到过许多类似的问题,但其中任何一个都对我有用)。此外,他们都没有解决由第 739 行引起的错误。

在这里,我将留下我的代码。是简单而简短,所以我将发布所有内容。请不要因为我的 C++ 技能而责备我,我正在变得更好 :D

提前感谢您,祝您有美好的一天或晚上。

亲切的问候,巴特克。

0 投票
1 回答
51 浏览

c++ - 将许多对象及其数据存储在来自 IMU 的数组中以供进一步计算

我目前有一个机器人项目,它使用了许多 (16) 个 IMU,特别是在 SPI 下运行的 MPU9250。

作为使用Bolder 飞行库的六个传感器的简化示例

要使用这些传感器,它们都必须经过校准,并在使用过程中实时应用磁硬和软偏移,除此之外,我还必须应用陀螺仪和加速度。校准算法。这意味着,对于每个传感器,我必须从每个 IMU 调用 9 个不同的数据点并应用一些数学运算,因此我设置了一些数组来存储值和最终值和偏移量之间的值:

然后在循环本身中,我调用每个对象并获取传感器读数:

虽然代码似乎按我预期的方式工作,但我相信这是存储这些数据的错误方法......即在getAccel, getGyro, getMag数组中,或者像在eulerAngles.

我对此的预感是在初始测试期间,我收到的一些传感器数据有一个振荡错误应用于它们,这让我认为我正在从某个地方的内存中接收垃圾数据

...我会使用 for 循环,但由于每个对象名称都是单独的并且没有索引,我不确定最佳实践,也不确定调用和处理如此大的数据集的最快方法。我发现了一个类似的问题,尽管不幸的是我太笨了,无法将其应用于我的情况。

所以问题是在数组中调用和存储这么多对象(及其数据)以进行进一步计算的正确方法是什么?我想避免有超过一百个变量(当使用所有 16 个 IMU 和中间变量来执行所有适当的数学运算时。我为可能写得非常糟糕的代码道歉,我的 c++/Wiring 不是最好的。

0 投票
1 回答
50 浏览

c - 未定义联合名称时访问 uino 变量

我正在使用 esp32 并尝试使用 i2c 库。

有一个配置结构。

当我尝试在我的代码中创建和分配 i2c_config_t 时,从此开始:

我在最后一行出现错误。在主变量之前。

错误说

'.' 之前的预期主表达式 令牌

从这里我看到工会没有定义的名称,这可能是问题吗?

0 投票
1 回答
356 浏览

esp32 - twai/can RX 消息接收不起作用 在 ESP32-S2 代码中不起作用

所以,我一直在尝试测试 esp32-s2 芯片中称为“twai”的 CAN 总线通信协议。

我有芯片 - Arduino 线 - 可以收发器(SN65HVD230)。Rx 连接到端口 4 Tx 连接到端口 5

消息的接收不起作用,并且知道为什么会显示以下输出。

这是我使用的代码,我知道它有什么问题,我从 espressif 链接获得了命令

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/twai.html

它应该类似于常规esp32芯片中的CAN接口。

这是使用的代码

0 投票
0 回答
23 浏览

firebase - 我可以将 esp32 连接到 Firebase 吗?

我正在做简单的家庭安全物联网项目,我想将 esp32 相机模块 CamWebServer 示例连接到 firebase 数据库,然后连接到 Android 应用程序。或者至少我想在应用程序中提供一个链接。
我想给它一个远程访问。另外我不希望esp32 cam依赖家庭Wi-Fi,我想依赖Hotspot模块(有没有可用的模块?如果有,请告诉我),所以它可以拥有自己的互联网手机有移动数据。
例如,如果入侵者断了家里的电,esp32 cam 仍然可以访问。
我可以这样做吗?
欢迎任何类型的帮助!
谢谢您的帮助!

0 投票
1 回答
87 浏览

c++ - Vscode/ESP-IDF 错误命名空间“std”没有成员“array”无论如何都会编译

我刚刚安装了最新版本的 VScode,加上 Arduino 扩展和最新的 ESP-IDF,我正在尝试编写一个 adafruit esp32 羽毛。

当使用我在 Arduino IDE 版本 1.8.15 中编写的代码时,并且还在 beta Arduino-DE 2.0.9 中进行了测试,我没有出现任何错误。

初始样本是:

第 13 行的第一个错误 ( namespace "std" has no member "array")。

在 VScode 中使用相同的代码时,Vscode 会验证、抱怨,但无论如何都会编译和上传(代码在 esp32 上继续正常工作)。带有不断的曲线标记和错误。

我检查了 c_cpp_properties,其中显示 esp-idf 正在使用版本 c++11。

检查std::array的 cpp ref这应该在 cp++11 中得到支持

修改这个文件只会导致 Vscode 用原始设置覆盖它,因为这个错误,我只能假设我得到的其他错误是相关的(所有似乎都有我的数组有各种问题。

虽然我的编码很糟糕,但我很确定这个问题与程序或编译器设置有关,而不是我的能力不足。

如何解决此命名空间问题?我想使用 Vscode 对我的嵌入式项目进行编程……但目前,除了来自 Intellisense 的看似虚假的报告外,我什么也没得到。