问题标签 [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 投票
0 回答
363 浏览

arduino - ESP32 输出引脚不适用于 Arduino IDE

所以这是我第一次使用 ESP32 或任何 MCU,我试图闪烁连接到我的 GPIO16 引脚的外部 LED,但它似乎没有工作。我的开发板是一个 38pin ESP32,只有一个内部 LED 连接到引脚 1(不像其他许多 esp32 开发板那样连接到引脚 2),实际上我可以使用闪烁示例程序闪烁。

我也尝试将我的外部 LED 正极端子连接到 GPIO17 和 GPIO18,但仍然无法正常工作。我用开发板的一个 GND 引脚将我的 LED 负极端子接地,我也尝试使用其他 2 个可用的 GND 引脚,但结果是一样的。

在 Arduino IDE 中,我在板管理器中使用 ESP32 开发模块作为我的板,串行通信似乎工作得很好,我只是无法输出 HIGH 和 LOW 信号来点亮我的 LED。

我使用的限流电阻是 220 欧姆。

这是我一直在尝试实现的代码:

我的引脚是否有可能输出非常低的电压或者它们可能无法工作?

我留下了我的引脚图。非常感谢您提前!!

ESP32 开发模块 38 针布局

0 投票
0 回答
223 浏览

arduino - 将 AI-Thinker ESP32-cam 连接到 Adafruit PCA9685 伺服控制器板

我是 Arduino 和 Esp32 编程的新手。我需要将 PCA9685 控制器连接到 ESP-32 cam 才能控制多个伺服电机,但 SCL 和 SDA 引脚被 UART 控制板占用。

我搜索了这个,发现了一些与Wire.hwire.begin()和 TwoWire 相关的东西,但无法实现它。

这是我要运行的测试代码。我从https://randomnerdtutorials.com/esp32-i2c-communication-arduino-ide/得到了实现的想法

我遇到了一些问题,但代码没有响应-

  1. 当 PCA9685 连接到 esp32-cam 并且我尝试上传代码时,它不起作用并给出致命错误。
  2. 在上传前按下重置按钮时,内置闪光灯会闪烁。这是一个问题,因为在尝试上传没有附加 PCA9685 的代码时,上传的代码没有任何致命错误并且没有“闪烁”。
  3. 我尝试了来自上述同一网站的代码,该代码查找 I2C 设备并打印其地址。即使连接了伺服控制器,它也没有显示任何设备。

PS-我是这个领域的绝对初学者。

0 投票
1 回答
482 浏览

http - 通过http在Arduino ESP32上解决文件上传问题的任何解决方案

首先是问题。

用户可以使用 ajax 从网络上传文件。如果文件比较大,上传需要一段时间。如果用户的连接丢失或在上传过程中发生某些事情,文件将被损坏或为空。

如果由于某种原因失败,我应该如何保护上传过程以使文件保持不变?

我在 Arduino ESP32 上使用以下库:

我的 esp32 上有一个基本的文件上传处理程序,如下所示:

这工作得很好,文件在 99% 的情况下都正确上传,但如果失败,我会丢失文件数据,或者如果程序的其他部分想要打开同一个文件,它也会失败。我应该写入一个临时文件,然后如果它成功将内容写入预期的文件吗?这是客户端( JS )端的示例:

我可以在写入之前将文件保存在一个临时 char 变量中,最后我可以匹配文件的大小和临时变量的大小,如果不一样,则回滚到前一个。这可以管理吗?

像这样的东西:

0 投票
2 回答
1171 浏览

python - ImportError:没有名为“smbus2”的模块

我在 VScode 上使用 Pymakr 来编写一个连接到多个传感器的 Pycom L01。我正在尝试使用 smbus2 库,但我无法导入它。
我创建了一个 python 虚拟环境并使用“pip install smbus2”安装它,但是当我尝试上传草图时,输出是:

有人可以帮助我吗?

0 投票
0 回答
86 浏览

android - Cordova 安卓应用和谷歌助手集成

我们正在开展一个智能家居项目,在该项目中,我们使用 ESP32 微控制器以及我们制作的服务器和网站来控制电器。通过向服务器发送 html 请求来切换设备。我们使用 Cordova 从网站构建了一个 android 应用程序。有没有办法将我们的应用程序与谷歌助手链接,以便我们可以使用语音命令?(我们想在我们自己的应用程序中做到这一点,而不是使用 IFTTT 和类似的应用程序)。提前致谢。

0 投票
0 回答
49 浏览

arduino - 发生致命错误:在 esp32cam 中等待数据包头错误超时

嗨我有这个问题我使用ardiuno uni ftdi并在我的代码中更改模型esp32 cam但不起作用它连接然后写

便宜的是 esp32 d0wd (revision 1) features WiFi,bt,doual core,240MHz,vref 校准是 efuse,conding schem none Crystal 是 40MHz mac:f4:cf:a2:98:44:14 上传存根...运行存根。 .. 存根正在运行.. 将波特率更改为 921600 更改了配置闪存大小... 警告:无法检测到闪存大小(闪存 id=0×0 大小 id 0×0)默认为 4 mb 压缩 8192 字节47... 写入 0×0000e000... (100%)

在 0.0 秒(有效 4096 kbit/秒)处以 0×0000e000 写入 8192 字节(47 压缩)....

发生致命错误:等待数据包头超时

0 投票
0 回答
377 浏览

arduino - 为什么 ESP32 不能路由 IP

我正在做一个项目,我需要将 esp32 设置为接入点,并将一些 esp8266-01 设置为客户端。

然后我在每个 esp822 芯片上运行一个 Web 服务器,以获取 json 格式的传感器数据。现在我已经做到了,当我用我的手机连接到这个网络并输入其中一个 esp8266 的 IP 时,我得到了响应,但有两个特殊的 esp8266。

其他 esp8266 可以从接入点获取 ip,但 Web 服务器不发送任何响应并超时。我什至尝试了 7 种类型的 esp8266 型号,但它不起作用,但是当我用家庭调制解调器而不是 esp32 替换接入点时。所有的 esp8266 都能完美运行!!

我认为 esp32 无法处理和路由 IP。但这里有一个矛盾,为什么这两种型号的 esp8266 工作完美而其他没有?

这是 ESP32 的接入点代码

这是 ESP8266 的客户端代码

谢谢谁能指导我...

0 投票
1 回答
215 浏览

bitmap - 如何在 ESP32-CAM 上裁剪位图图像?

我整晚都在敲打这段代码。我正在尝试在 ESP32 CAM 上裁剪位图。我拍了一张照片,将照片转换为 bmp,然后调用以下函数:

这几乎可以工作。如果我将图像的宽度和高度作为crop_width 和crop_height 参数传递,则输出与原始参数相同。如果我通过较小的高度和全宽,那么它也可以工作。当我传入一个小于原始宽度的crop_width 时,我得到一个图像,其对角线“​​移位”线从右上角延伸到底部约1/3 处。看起来我的宽度偏离了一个字节,导致 3/2 斜线。但我无法弄清楚是什么原因。

我附上了一个全尺寸的 jpg 和一个裁剪的位图。请注意,jpg 不是源(我的代码不保存原件),但与裁剪图像的源非常相似。裁剪后的 bmitmap 是通过使用crop_left = 0、crop_top = 0、crop_width = 799、crop_height = 600 的调用创建的。原始图像为 800x600。

我已经删除了所有额外的代码 - 所以没有错误处理,没有从位图标题中提取宽度/高度等。

代码如此简单,这让我发疯。谢谢

图像与原始裁剪非常相似 - 注意不是原始 bmp - 屏幕截图 - 但显示问题

0 投票
0 回答
277 浏览

c++ - ESP32 简单按钮按住 3 秒示例。输出似乎没有意义?

希望有人能看到我缺少的东西,因为它必须就在那里盯着我的脸..

我在 ESP32 上设置了这段代码(如下),以生成一个线程,该线程仅监视连接到开关的引脚的状态。本质上,这段代码应该等待按钮被按住 3 秒钟,然后做一些重要的事情。实际输入似乎读得很好,但由于某种原因,一旦我按下按钮,按钮状态在取消按下开关后会卡住 15 秒。

例如,

  1. 按下开关,实际的 BtnState 读数为 1,buttonState 读数为 1(50us 后),btnPressTime 按预期递增。
  2. 释放开关,actualBtnState 读取 0,btnState 读取 1,btnPressTime 停止递增。
  3. 50us 后,期望看到 btnState 读取 0,然后触发 else 或 elseif 块(取决于按住按钮的时间)。实际结果继续显示 btnState = 1 和 btnPressTime = [无论上次保持时间是什么] 持续 15 秒或更长时间。actuyalBtnState 在整个时间内正确读取为 0 并且由于某种原因 lastDebounceTime 不断增加?

我应该注意到这是一个更大的项目的一部分,因此是线程。我似乎也无法在 resetBtnCB 函数中打印任何内容,因为我立即收到“guru mediation error kernel panicwhat-the-error-is”错误并且 esp 重新启动。

代码:

0 投票
0 回答
275 浏览

arduino - 带有 Esp32 w5500 以太网模块的软件在 Mqtt 存在重新连接问题

**美好的一天,我正在尝试使用 esp32 和 w5500 以太网模块向 mqtt 发送一些东西。但我得到 mqtt 部分不断连接错误。你认为是什么问题?

注意:我将调试步骤打印到代码中。**

我想使用 esp32 和 w5500 模块使用我认为更稳定的 freertos 进行编译。但是我收到了上面给出的错误。你的建议对我很有价值...

代码: