Wemos D1 R32 теряет соединение Bluetooth
У меня этот проект работает, за исключением случаев, когда я отключаю питание ESP32 со следующими соединениями (ESP32 -> Модуль реле) 5V — VCC, GND — GND, Pin12 — IN1, Pin13 — IN2. Когда я снова и снова включаю ESP32, релейный модуль «Реле активировано» срабатывает. Светодиоды горят тускло, и ESP32 не отображается как доступное устройство Bluetooth. Если я отключу провод 5 В, появится ESP32, а затем снова подключу 5 В, и все будет работать нормально. Примечание. Это не будет работать при отключении GND. Я попытался использовать контакт 14 на базе транзистора, чтобы включить 5 В только после того, как соединение выполнено, однако возникает тот же сбой. При подключении 5В перезагрузка не работает. Я включу изображение тускло горящих светодиодов и код для ESP32 с кодом, который я добавил с помощью транзистора.
#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
int upButton = 12;
int downButton = 13;
char received = 0;
int upButtonState = 0;
int downButtonState = 0;
int powerRelay = 14;
BluetoothSerial SerialBT;
void setup() {
// поместите сюда код установки для однократного запуска:
Serial.begin(115200);
pinMode(upButton,OUTPUT);
pinMode(downButton,OUTPUT);
pinMode(powerRelay,OUTPUT);
//****** Не имеет смысла, но HIGH на релейном модуле выключен. ******//
digitalWrite(upButton,HIGH);
digitalWrite(downButton,HIGH);
digitalWrite(powerRelay,LOW);
SerialBT.begin("CamperJack"); //Имя Bluetooth-устройства
Serial.println("The device started, now you can pair it with bluetooth!");
}
void loop() {
if (Serial.available()) {
SerialBT.write(Serial.read());
}
if (SerialBT.available()) {
received = SerialBT.read();
Serial.print("The value of received = ");
Serial.println(received);
Serial.write(SerialBT.read());
digitalWrite(powerRelay,HIGH);
}
// если (Серийный.доступный() > 0)
// {
// получено2 = SerialBT.read();
// }
////////// Кнопка вверх //////////
if (upButtonState == 0 && received == '1' && downButtonState != 1)
{
Serial.println("Up Button ON");
digitalWrite(upButton,LOW);
received = 0;
upButtonState = 1;
}
if (upButtonState == 1 && received >= '1' )
{
Serial.println("Up Button OFF");
digitalWrite(upButton,HIGH);
received = 0;
upButtonState = 0;
}
////////// Кнопка вниз //////////
if (downButtonState == 0 && received == '2' && upButtonState != 1)
{
Serial.println("Down Button ON");
digitalWrite(downButton,LOW);
received = 0;
downButtonState = 1;
}
if (downButtonState == 1 && received >= '1')
{
Serial.println("Down Button OFF");
digitalWrite(downButton,HIGH);
received = 0;
downButtonState = 0;
}
delay(20);
}
@bc65925 Cartersburg Forge, 👍1
Обсуждение1 ответ
На самом деле я решил эту проблему, НЕ используя GPIO12. Я где-то читал, что 12 для чего-то используется при загрузке, поэтому я переключился на контакты 13 и 14, и все работает отлично!
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
- Контакты RX и TX на esp32
- ESP32: отключить детектор отключения питания
iirc, вы снимаете перемычку, подключаете 5 В к среднему контакту группы перемычек, затем подаете 3,3 В на контакт vcc в группе из 4 контактов, чтобы логика работала на 3,3 В, а энергоемкая катушка работала на 5 В., @dandavis
Я фактически решил эту проблему, НЕ используя GPIO12. Я где-то читал, что 12 для чего-то используется при загрузке, поэтому я переключился на контакты 13 и 14, и все работает отлично!, @bc65925 Cartersburg Forge