标签: arduino-esp32

如何修复 Failed to connect to ESP32: Timed out waiting for packet header 错误?

我尝试刷新 ESP32 但没有成功,我尝试使用esptool.pyArduino IDE。我尝试按启动按钮并重置,但没有成功。这是错误:

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Run Code Online (Sandbox Code Playgroud)

arduino nodemcu esp32 arduino-esp32

11
推荐指数
3
解决办法
5万
查看次数

ESP32 Core 1 发生恐慌(CPU1 上的中断 wdt 超时)

我正在使用带有 ESP32 的 Arduino IDE。硬件很简单:ESP32开发板+ LED和簧片开关。我现在想检测簧片开关输入(1Hz 到 40Hz 频率)并闪烁 LED。

代码很简单:

const int button = 27;
const int led =  25;

unsigned long now = millis();
unsigned long lastTrigger = 0;
boolean startTimer = false;

void IRAM_ATTR buttonInput() {
  Serial.println("IN");
  digitalWrite(led, HIGH);
  startTimer = true;
  lastTrigger = millis();
}

void setup() {
  Serial.begin(115200);
  pinMode(button, INPUT);
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
  
  attachInterrupt(digitalPinToInterrupt(button), buttonInput, RISING);
}

void loop() {
  now = millis();
  if(startTimer && (now - lastTrigger > 25)) { // switch of …
Run Code Online (Sandbox Code Playgroud)

esp32 arduino-esp32

9
推荐指数
2
解决办法
2万
查看次数

exec: "python": 在 $PATH 中找不到可执行文件

自上次更新 Mac OS Monterey 12.3 以来,我在编译 Arduino 草图时收到以下错误消息:

exec: "python": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)

不幸的是,我还没有找到解决这个问题的方法。

我将非常感谢您的想法和建议。

python arduino-esp32

6
推荐指数
2
解决办法
2万
查看次数

文件 boot_app0.bin 和 bootloader_dio_80m.bin 的用途是什么?(ESP32 - Arduino IDE)

由 Arduino IDE 执行的 ESP32 flash 命令似乎刷新了两个引导加载程序文件:boot_app0.binat offset0xe000bootloader_dio_80m.binat offset0x1000。我想知道这两个引导加载程序文件实际上是做什么的,以及为什么有两个。下面我提供一些更多信息。

1. 背景

我所在的团队正在为微控制器开发一种新的免费 IDE:Embeetle IDE。我们计划在不久的将来支持 ESP32 微控制器系列。因此,我现在正在研究 ESP32 构建系统 - 两者ESP-IDF ESP32 项目的工具和 Arduino IDE 方法。

2. ESP32项目的Arduino IDE flash程序

构建.elf文件后,Arduino IDE 会启动一个命令将其转换为二进制文件:

python esptool.py --chip esp32 elf2image
                  --flash_mode dio
                  --flash_freq 80m
                  --flash_size 4MB
                  -o /tmp/arduino_build_852524/WiFiScan.ino.bin
                  /tmp/arduino_build_852524/WiFiScan.ino.elf
Run Code Online (Sandbox Code Playgroud)

最后,该WiFiScan.ino.bin文件与两个引导加载程序文件和分区表一起闪存到主板上:

python esptool.py --chip esp32
                  --port /dev/ttyUSB0
                  --baud 921600
                  --before default_reset
                  --after hard_reset write_flash
                  -z
                  --flash_mode dio
                  --flash_freq 80m
                  --flash_size detect …
Run Code Online (Sandbox Code Playgroud)

microcontroller arduino firmware esp32 arduino-esp32

5
推荐指数
1
解决办法
5896
查看次数

ESP32 作为 BLE 服务器,无法配对 CyclicComputer

我正在尝试使用 PlatformIO 和 NimBLE-Arduino 库在 ESP32 上创建循环电源服务。

当客户端是nRF Connect Android应用程序时,连接,绑定,订阅通知和接收功率数据都可以工作,但是我的Lezyne GPS Mini Cyclic Computer无法完成配对过程。我正在寻找一种方法来解密日志并了解通信中的问题。

我的代码,减少到最低限度:

#include <Arduino.h>
#include <NimBLEDevice.h>

#define CYCLING_POWER_SERVICE_UUID ((uint16_t) 0x1818)
#define CYCLING_POWER_FEATURE_CHAR_UUID ((uint16_t) 0x2A65)
#define SENSOR_LOCATION_CHAR_UUID ((uint16_t) 0x2A5D)
#define SENSOR_LOCATION_RIGHT_CRANK ((uint8_t) 6)
#define CYCLING_POWER_MEASUREMENT_CHAR_UUID ((uint16_t) 0x2A63)

class BLE : public BLEServerCallbacks {
    public:
    BLEServer *server;
    BLECharacteristic *measurementCharacteristic;
    bool connected = false;
    bool oldConnected = false;
    
    short power = 0;
    unsigned short revolutions = 0;
    unsigned short timestamp = 0;
    const unsigned short flags = 0x20; // TODO …
Run Code Online (Sandbox Code Playgroud)

c++ bluetooth-lowenergy bluetooth-gatt esp32 arduino-esp32

5
推荐指数
0
解决办法
124
查看次数

未收到串行数据:ESP32 CAM

当我将代码上传到我的 AI thinker esp 32 cam 时,我不断收到错误消息。我使用 microusb 连接它,但总是出现此错误:

发生致命错误:无法连接到 ESP32:未收到串行数据。有关故障排除步骤,请访问:https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html 上传失败:上传错误:退出状态 2

arduino-ide esp32 arduino-esp32

5
推荐指数
1
解决办法
1万
查看次数

ESP32 httpd:标头字段太长,服务器无法解释

我想流式传输到 Anrdoid 应用程序内的 WebView。

我的代码是:

WebView cam = (WebView) findViewById(R.id.Cam);
        cam.getSettings().setLoadWithOverviewMode(true);
        cam.getSettings().setUseWideViewPort(true);
        cam.getSettings().setBuiltInZoomControls(true);
        cam.getSettings().setPluginState(WebSettings.PluginState.ON);
        cam.getSettings().setPluginState(WebSettings.PluginState.ON);
        cam.loadUrl("http://192.168.0.10");
Run Code Online (Sandbox Code Playgroud)

它可以在模拟器中运行,但如果我在智能手机上安装该应用程序,它就无法运行。我收到一个错误

Header fields are too long for the server to interpret
Run Code Online (Sandbox Code Playgroud)

如何摆脱这个错误?

android-webview esp32 arduino-esp32

3
推荐指数
1
解决办法
6328
查看次数

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

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

包含的文件是:

const char bitmap_1587[] PROGMEM = {248,254,254,230,241,231,247,199};
const char bitmap_1604[] PROGMEM = {249,254,254,254,0,191};
const char bitmap_1575[] PROGMEM = {7};
const char* char_addr[] = {&bitmap_1587,&bitmap_1604,&bitmap_1575};
Run Code Online (Sandbox Code Playgroud)

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

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

无法在初始化时将“const char (*)[6]”转换为“char*”

无法在初始化时将“const char (*)[1]”转换为“char*”

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

c c++ arduino esp32 arduino-esp32

3
推荐指数
1
解决办法
76
查看次数

ESP32 无法连接 iPhone 个人热点

这是我的代码

#include <WiFi.h>
 
const char* ssid     = "wifiname";
const char* password = "12345678";

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA); // SETS TO STATION MODE!
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(1000);
  }  
  Serial.print("IP is ");
  Serial.println(WiFi.localIP());
}

void loop() {
}
Run Code Online (Sandbox Code Playgroud)

我可以使用 WiFiscan 例程找到 iPhone 的个人热点,但无法连接到它。

arduino esp32 arduino-esp32

2
推荐指数
1
解决办法
7954
查看次数

带有 ESP32-WROOM-32 的 EEPROM

我购买了ESP32 -WROOM-32,我意识到与Arduino NanoArduino UnoArduino Mega 2560相比,有些东西不一样。

我意识到不同的事情之一是如何从控制器存储和读取数据。我想将一些数据保存到 EEPROM 中,即使设备关闭也能保留该

我在 Arduino 板的小型项目中一直使用以下代码。该代码包括创建一个OLED菜单,我可以在其中导航真实页面并更改整数值,这些值存储在 EEPROM 中。

我上传到 ESP32 的相同代码没有任何问题,并且菜单工作正常。我可以更改整数值。问题是关闭/打开电路板后,这些值不会保留。

我已经在网上查看了一些关于EEPROM和ESP32的教程并尝试实现它,但不幸的是没有结果。

#include <EEPROM.h>
#include <OneButton.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define DISP_RESET -1

const char*Vartext[] {"Data_0", "Data_1", "Data_2"};

const byte maxAnz = sizeof(Vartext) / sizeof(Vartext[0]);

const int mindata[maxAnz] {0, 0, 0};
const int maxdata[maxAnz] {10000, 200, 300};

uint32_t longstart;
byte Varindex;
byte Page = 0; …
Run Code Online (Sandbox Code Playgroud)

arduino arduino-esp8266 esp32 arduino-esp32

1
推荐指数
1
解决办法
1万
查看次数