问题标签 [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 回答
325 浏览

arduino - 带有 ESP32-WROOM-32 的 EEPROM

Arduino 和 ESP-32 的初学者需要帮助。

我买了一个 ESP32-WROOM-32,我意识到与 Arduino Nano、UNO 或 Mega 相比,有些东西是不一样的。我意识到谁与众不同的一件事是如何从控制器存储和读取数据。我想将一些数据保存到 EEPROM,即使在设备关闭时也能保留该值。

我有以下代码,我一直在我的小项目中使用 Arduino Boards。该代码包括创建一个 Oled 菜单,我可以在其中导航真实页面并更改 Int 值,并且该值存储在 EEprom 中。

我上传到 esp32 的相同代码没有任何问题,菜单工作正常。我可以更改 Int 值。问题是在关闭/打开电路板后,这些值不是持久性的。

我已经在互联网上寻找一些关于 EEprom 和 ESP32 的 turturials 并尝试实现它,但不幸的是没有结果。

在此先感谢您的帮助

0 投票
1 回答
458 浏览

arduino - ESP32 Arduino 上传 java.lang.NullPointerException 错误

我正在尝试使用基于 ESP32 的板(兼容 Espduino)在 Arduino 1.8.16 上构建最简单的示例(闪烁项目)。它构建正确,但我无法上传到板上。我验证了 CH340 驱动程序已加载并且可以工作(我能够使用 platformio 构建和上传相同的项目),所以问题似乎与 Arduino IDE 1.8.x 有关。我尝试了标准安装和便携式安装,但都不起作用。我还搜索了网络寻求帮助,但直到知道没有解决方案才解决了问题。

这是我遇到的错误:

cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:90) 在 cc.arduino.UploaderUtils 的 cc.arduino.packages.uploaders.SerialUploader.uploadUsingProgrammer(SerialUploader.java:295) 的 java.lang.NullPointerException。在 processing.app.SketchController.upload(SketchController.java:732) 在 processing.app.SketchController.exportApplet(SketchController.java:703) 在 processing.app.Editor 上传(UploaderUtils.java:77)$UploadHandler.run(Editor .java:2061) 在 java.lang.Thread.run(Thread.java:748)

任何帮助将不胜感激。

0 投票
1 回答
117 浏览

arduino - 如何将 MAX30100 脉冲传感器连接到 ESP32 的不同 i2c 引脚并读取数据?

我正在为我的项目使用 ESP32 30 针板、MAX30100 脉冲传感器。我可以将此传感器连接到 ESP32 的不同 i2c 引脚,即不是默认引脚(21,22)。

但我不知道如何从 MAX30100 读取数据,如果它连接到不同的引脚 - (比如说 32、33)

这是我用于默认 i2c 引脚从 MAX30100 读取数据的程序

如何将 MAX30100 连接到其他引脚?指令应该是什么?

这个指令是什么意思?

0 投票
1 回答
680 浏览

google-apps-script - 问题 ESP32 通过 Google App Script 向 Google Sheet 发送数据

起初,我的问题来自我的小项目 IoT。目的,使用 ESP32 通过 Google App Script 向 Google Sheet 发送数据。

ESP32的任务是取两个随机数,通过http通过Google App Script(Web App)传给Google Sheet。

我的问题是,在 ESP32 和 Google App Script 之间的连接每次都失败之后,我只能向 Google Sheet 插入数据 3-4 条记录。我不确定这个问题。

我的代码有 2 个部分,第一个是 ESP32(Arduino IDE),第二个是 Google App Script

第一部分代码如下,非常简单。

第二部分代码如下,

问题的原因是什么?我该如何解决?

非常感谢您提前。

0 投票
1 回答
116 浏览

c++ - 如何在 VSCode 中禁用来自 CPP 编译器的特定编译警告?(最好使用构建选项)

我正在使用 VSCode 和 ESP-IDF 对 Arduino 进行编程。一些 Arduino 库文件正在生成如下警告。

我尝试-Wno-unused-function在各个地方设置标志,但未能禁用这些警告。有人可以建议设置此构建选项的正确位置,因此我看不到这些警告。我在 MacOS 上使用 VSCode。先感谢您。

0 投票
0 回答
58 浏览

esp32 - 通过以太网在 MQTT 上传输的大于 2KB 的数据不通过

我使用 ESP32、以太网模块 W5500、Arduino IDE、以太网库、MQTT、PubSubClient 库的捆绑包。

有一个 ESP32 设备使用 MQTT 协议向网络发送数据。在计算机端,有一个订阅该设备的应用程序,它通过 MQTT 捕获从 ESP32 接收到的所有数据。

如果 ESP32 使用 WiFi 访问网络,那么没有问题 - 发送和传递大小数据包。但是如果使用以太网(DHCP)接入网络,那么在传输大于2kB的数据块时就会出现问题——数据包丢失。大小正好或小于 2 kB 的数据包可以通过,超过 2 kB - 不。以太网库的研究并没有取得成功。

谁知道如何取消对以太网传输数据块大小的限制?

0 投票
0 回答
109 浏览

arduino - 2 个 I2C 和 1 个 UART 在 ESP32 中不能同时工作

我有一个项目,我必须监控对象的加速度、位置和脉搏 + SpO2。所以,我编写了这个程序来使用 ESP32 检查来自 MAX30100 Pulse Oxi 传感器和 MPU6050 Accelero 和 Gyroscope 传感器的数据 -

这个程序工作得很好。完全没有问题。

现在我添加了 GPS,这样我也可以跟踪位置。GPS 与加速度计一起工作,但脉搏血氧计传感器不工作 - 输出为 0,其余传感器产生预期输出。程序如下

请你帮我解决这个问题。程序有什么问题。

0 投票
1 回答
182 浏览

arduino - ESP32 WiFi 初始化中断 GPIO 模拟读取

我正在通过 Arduino IDE 对 ESP32 进行编程,但我对 Arduino 的 WiFi 库有一个奇怪的问题。当我连接到我的 WiFi 网络时,它会强制读取特定引脚(引脚 2)到 4095。在注释掉连接到 WiFi 的代码行后,我在连接到该引脚的传感器上得到了正确的读数,但是它包括它卡在 4095。当微控制器与电路的其余部分断开连接时也会发生这种情况。注释掉该行后,我得到一个白噪声读数,但包含该行的 4095 读数。这是代码:

白噪声读数示例:

有什么想法可能导致这种情况吗?谢谢你。

0 投票
2 回答
119 浏览

c++ - 存储为 RTC_NOINIT_ATTR (ESP32) 时的 C++ int 未定义行为

我正在使用 VSCode 编写 ESP32。我有以下简单的脚本:

我希望输出是:

但相反,我得到:

(其中counter2的值是一个随机值)。我尝试了intuint32_t等的各种组合,但仍然得到随机值。这是由RTC_NOINIT_ATTR定义引起的,但这是我最终应用程序所需要的。有什么我可以做的不同的事情吗?

0 投票
1 回答
541 浏览

bluetooth - ESP32:BLE传输速度很慢

我正在尝试构建一个使用 BLE 与 ESP32 交互的 Android 应用程序。我在 Android 端使用 Vincent Masselis 的 RxBluetoothKotlin 库。对于 ESP32 端,我使用的是 Arduino IDE 中包含的默认 Kolban 库。我的手机是 OnePlus 5T,我的 ESP32 是 MH ET Live ESP32DevKIT。我的 Android 应用程序可以在这里找到,我的 ESP32 程序可以在这里找到

就纯粹的功能而言,整个系统对我来说非常完美。也就是说,每个按钮都做了它应该做的事情,而我得到了我期望得到的确切行为。但是,通信本身非常缓慢。大约 200 字节/秒。我在 Android 应用程序中的测试按钮从 ESP32 请求一堆文本数据,并在对话框中显示。它还列出了一个数字,表示请求和接收之间的时间(以毫秒为单位)。使用它,我得到大约 2 秒的 440 字节数据。当我发送较少的数据时,时间与数据大小大致呈线性关系。40 字节的数据大约需要 200 毫秒,而 20 字节或以下的数据通常需要不到 100 毫秒。

这对我来说似乎相当慢。据我了解,我应该能够至少每秒获得几千字节。我尝试使用 nRF Connect 检查速度,但我的数据传输时间跨度相同,为 2 秒。这表明问题不在我的应用程序中,因为我也有一个完全不同的应用程序。我还将代码放在回调内部的主循环中(我可能一开始就应该这样做),但这并没有改变任何事情。我曾尝试将微控制器和手机带到几个不同的位置,希望能消除干扰。我试图弄乱 BLEDevice::setPower 和 BLEDevice::setMTU,以及在 Android 端设置 RxBluetoothGatt.requestMtu(500)。到目前为止,一切似乎几乎没有影响。唯一做任何事的,正在添加行“pServer->updatePeerMTU(0,500);” 在连接阶段在我的循环中。这导致每当我按下应用程序中的测试按钮时,前 23 个字节的数据都会重复,并使数据传输大约需要 3 秒。如果幸运的话,对于 440 个字节,我可能会得到 1.8 秒以下的时间,但是当我期望一个数量级的差异时,这是一个非常小的变化,甚至可能取决于纯粹的机会,而不是我的任何事情做过。

有谁知道如何提高我的传输速度?