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

arduino - ESP32 WPS 开机重新连接

我正在尝试开发一种物联网设备,它应该使用 HTTP/REST API 提供一些功能。我决定使用 ESP32 芯片(在“ESP32 开发板”上)。

现在我想实现一个易于使用的 WLAN 配置。我不想像许多其他示例那样在我的源代码中存储凭据;所以我决定使用WPS。

我尝试使用此处的源代码实现一个基本的 Web 服务器: https : //randomnerdtutorials.com/esp32-web-server-arduino-ide/ - 然后我从 EPS32 扩展附带的 Wifi/WPS 示例中添加了 WPS 功能对于 Arduino IDE。

现在 WPS 已经工作了,即当开发板通电时,它处于 WPS 连接模式并等待路由器接受 WPS 连接。它成功获取 SSID 并连接到 WLAN。

但是当我关闭 ESP32 电源并重新上电时,我必须再次执行 WPS 重新连接程序。我希望重新连接,它存储凭据并且能够在 ESP32 设备在以后的任何时间开机时再次连接到同一个 WLAN。我想我必须存储一些凭据并使用它们重新建立连接 - 但是我从哪里获得凭据,以及如何重新连接?

我确实在网上搜索了“ESP32 WLAN WPS 重新连接”和类似术语,但只找到了非 wps(SSID + 密码)连接的重新连接策略。我还检查了 WiFi 库文档和 esp_wps 库文档,但没有找到合适的。

那是WLAN WPS连接源:

0 投票
1 回答
436 浏览

c++ - Arduino如何计算对象数组内的外部中断?

问题

我开始玩 Arduino IoT (ESP32)。我从 SD 卡上的文件中读取了 GPIO 配置。我有外部中断的问题。我需要计算给定 GPIO 上的中断数。

我写了一个存储GPIO配置的类,并将这个类的对象放在一个全局数组中。如何计算给定引脚上的中断,以便通过使用适当的对象方法获得结果?

我尝试了不同的解决方案,但问题在于 ISR 方法,它必须是静态的。此方法无法访问对象字段,因此我不知道在哪里以及如何增加中断计数器。

我把代码分成几个文件。我只附上解决这个问题所必需的。

这支撑了我的项目。请帮忙。

主文件:

GPIO_CONFIG.h

GPIO_CONFIG.cpp

@EDIT 2018/01/04 08:10 我对文件添加了一些更改:

主 .ino 文件

GPIO_CONFIG.h

GPIO_CONFIG.cpp


解决方案

在这里,我放置了必须修改的短片段:

GPIO_CONFIG.cpp

isrptr[gp_index] = &isr;isrptr[gp_index] = isr;

if(&isrptr[i] == &gpio[i].isr){if(isrptr[i] == gpio[i].isr){

0 投票
2 回答
8790 浏览

stability - ESP32(包括 SDK)对于制作商业产品是否稳定?

我正在为 wifi 项目研究 ESP32,尽管有 CC3200 (TI) 之类的替代品,因为它的价格。但我怀疑 ESP32 的硬件或 SDK 的可靠性。

我在开发简单项目时发现了一些错误。我向 ESP 报告了这些,但他们只是将其交付给开发团队,没有额外的回应。

想用TI这样的大公司产品,但是ESP32的价格竞争力太强了。

我想听听那些使用 ESP32 开发商业产品的人的意见。

0 投票
1 回答
727 浏览

uart - Guru Meditation 错误:ESP32 中禁止 Core 0 存储

https://github.com/shubhamshirsode/ESP32_BYN.git

上面的 URL 代码在带有 SoftSerial 的 ESP8266 上运行,但是当我在 ESP32 LORA Heltec 模型上运行时。它给了我“大师冥想错误:禁止核心 0 商店”

我的问题是如果可以,我们可以在 ESP32 中使用软件串行,然后告诉我上面的代码有什么问题。

如果没有,请给我另一个解决方案。

我想通过 ESP32 heltec 模型上的 Modbus RTU 协议获取数据。

预先感谢。

0 投票
1 回答
587 浏览

nodemcu - 在 ESP32 上闪烁 NodeMCU

ESP8266 和 ESP32 菜鸟在这里。我买了几个ESP32 模块,并试图在它们上安装 NodeMCU(它们只附带了一些示例代码)。

我使用云构建器创建了一个固件映像,并尝试将其闪存到设备上(后来,我自己也构建了它,结果相同)。经过一些实验,我发现引导加载程序希望固件从闪存中的 0x1000 开始,而不是 0x0000(我阅读了原始闪存内容以确认这一点),所以我在 0x1000 处刷新了固件。我可以使用read_flash(或其他方法)确认固件已正确刷新。但是当我连接到串行端口以查看输出是什么时,我一开始就得到了这个:

然后一遍又一遍地循环:

在这一点上,我对可能出现的错误非常迷茫,感谢您的帮助。

0 投票
3 回答
2167 浏览

c - 为什么我的 ESP32 开机后一直在复位?

我已经连接了我的 ESP32,在我给它供电后,它会继续重启并显示以下消息:

我已经连接了许多设备,其中键盘连接在 GPIO [6、7、8、15、4、16、17、15] 上,RTC 和 LCD 串行适配器都连接在引脚 [21、22] 上。所有设备均由 ESP32 的 5V 引脚供电。

现在,奇怪的是,在重置时,如果我按键盘上的数字 1 (4x4) 或断开它,重置停止并且即使重新连接后一切都按预期工作。LCD 串行适配器也是如此。所有其他设备不影响 ESP32。

任何关于可能导致这种特殊行为的见解都将不胜感激。

0 投票
1 回答
380 浏览

arduino-ide - 如何将 ESP32 支持安装到 Arduino IDE 中?

这里的页面链接告诉我如何让 Arduino 能够为我的 ESP 板创建草图:

https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/windows.md

打开指向ARDUINO_SKETCHBOOK_DIR并执行的 Git Bash 会话git submodule update --init --recursive

我已经ARDUINO_SKETCHBOOK_DIR从 Arduino IDE 中识别出来了。所以我确实有一条从C:\驱动器指向这个目录的路径。失败的是当我打开 GIT Bash 并将当前目录更改为我定义为的目录ARDUINO_SKETCHBOOK_DIR并输入命令时,GIT bash 抱怨“没有这样的文件或目录”。实际上这个目录仍然是空的。

只是为了我的问题的完整性。我已按照页面上的说明进行操作,我给出了我不知道如何继续前进的链接!

0 投票
2 回答
3551 浏览

c++ - 将字符串转换为 MAC 地址

在 SPIFFS 的文件中,我以“XX:XX:XX:XX:XX:XX”的形式保存了有关 mac 地址的信息。当我读取文件时,我需要将它从 STRING 切换为十六进制值数组。

但我在某处的代码中错了

当我放入AA:00:00:00:00:01文件时,我的 ESP8266 设置29:D5:23:40:00:00

我需要帮助,谢谢

0 投票
1 回答
967 浏览

arduino - 使用 LoRa RA-02(SX1278) 从 Arduino 发送到 ESP32 时数据损坏

我正在尝试通过 LoRa 将数据从 Arduino 发送到 ESP32。我正在使用 2 个带有天线的相同 Ra-02 Aithinker 模块。我为 Arduino “LoRa”使用常用库,为 ESP32移植相同的库。我没有实现所有功能,因为我只需要最简单的设置。

这是移植库的代码:

罗拉.h:

洛拉.c:

在 Arduino 上,我这样发送:

在 ESP32 上,我收到这样的信息:

但问题是我收到了这个:

有人可以建议修复以正确接收数据吗?

顺便说一句,从 ESP32 到 ESP32 的数据正确。我还在两边都转储了 SX1278 寄存器——它们是相同的。

0 投票
1 回答
1510 浏览

arduino - esp32 重启路由器/esp32 时稳定的 wifi 连接、丢失连接、坏连接等

您好,有人管理过稳定的 wifi 连接,可以处理各种问题,例如断电、路由器重启、wifi 丢失并管理机器以正确重新连接吗?此代码不会以稳定的方式工作:

这在覆盆子上非常稳定且容易,因为 pi 可以处理它,但在 esp32 上,示例代码根本无法处理可能出现的所有问题。如果您遇到无法调试的问题,非常令人沮丧。