Правильный PIN для активации беспроводного реле с ESP8266 ESP-01

Я пытаюсь запрограммировать модуль ESP8266 ESP-01, чтобы он мог подключаться к моей личной сети Wi-Fi и активировать беспроводное реле, которое я купил.

Нет проблем с подключением к Wi-Fi, поэтому я опустил код об этом, моя проблема состоит в том, чтобы найти правильный PIN-код, который нужно установить на НИЗКИЙ/ВЫСОКИЙ для управления моим реле. Установка relayPin на 1, как показано в этом коде, работает, и я вижу, как встроенный светодиод включается и выключается.

const int relayPin = 1;

void setup() {
    pinMode(relayPin, OUTPUT);
}

void loop() {
    Serial.println("Close Relay for 100 ms and then Open");
    digitalWrite(relayPin, LOW);
    delay(100);
    digitalWrite(relayPin, HIGH);
    delay(200);
}

В Интернете я нашел следующую схему модуля ESP8266 ESP-01:

Модуль ESP8266 ESP-01

Я пытался установить для relayPin значение 0 или 2, но реле не активируется/деактивируется.

Итак, какой правильный PIN-код установить в моей константе relayPin для управления портом GPIO0?

Реле успешно работает, если я подаю на него +3,3В на GPIO0 с внешним питанием.

Заранее спасибо

, 👍0

Обсуждение

почему бы вам просто не написать тестовый код, который последовательно проверяет все контакты?, @jsotola

@jsotola пробовал с https://pastebin.com/pNsZY1ZX, но ничего не происходит :(, @Roberto Milani

проверьте дорожки на плате реле, @Juraj

@Юрай, как я могу это сделать?, @Roberto Milani

Я в той же лодке, что и Роберто, и мне интересно, была ли решена эта проблема и каково было решение. Также интересует прошивка, которая использовалась в ESP., @naji


5 ответов


1

Глядя на более качественные изображения печатной платы на ALIExpress, похоже, что GPIO0 используется для переключения реле .

Однако то, чему соответствует этот вывод, зависит от того, какую плату вы выбрали в IDE.

,

Маженко спасибо за ответ! В Arduino IDE я установил «Универсальный модуль ESP8266», но где я могу найти сопоставление PIN-кода? :), @Roberto Milani

"Отображение PIN-кода"? GPIO0 - это контакт 0 ... GPIO1 - это контакт 1 ... до GPIO16 - это контакт 16 ... это не сложно :p, @Jaromanda X

@JaromandaX В этом случае похоже, что да, это сопоставление 1: 1 между номером GPIO и номером контакта Arduino (по умолчанию). Однако, поскольку digitalWrite() является слабым псевдонимом __digitalWrite(), вполне возможно, что определение платы переопределяет эту функцию своей собственной для реализации другой схемы нумерации., @Majenko

Контакт 1 — это gpio 1 всегда на каждом 8266. Некоторые платы могут иметь d0 d1 и т. Д. Но это совершенно не имеет отношения к esp01., @Jaromanda X

Хорошо, спасибо, я попытался установить relayPin на 0, но на реле ничего не происходит :( Я также пробовал с этим скетчем, но ничего не происходит: https://pastebin.com/pNsZY1ZX Чего не хватает?, @Roberto Milani


2

большинство контактов GPIO на ESP8266 "загружаются" в режиме INPUT

Вам нужно

const int relayPin = 0; // или 2

void setup() 
{
    pinMode(relayPin, OUTPUT);
}

Причина, по которой GPIO1 работает, заключается в том, что GPIO1 является последовательным TxD, поэтому он настроен на вывод

,

Спасибо за ваш комментарий! Это уже было написано в моем коде, но я забыл его написать, теперь я отредактировал 1-й пост;) Спасибо, @Roberto Milani


-1

Вы можете использовать любой контакт esp-01. Вы можете указать контактам TX и Rx вести себя как обычный ввод-вывод с помощью команды pinMode/Function_3, как описано здесь:

https://arduinodiy.wordpress.com/2018/06/14/simple-wifi-relay-board-or-diy-sonoff-sv-sonoff-4-channel-2/

,

вопрос о печатной плате с реле, уже подключенным к контакту, @Juraj


0

1 решение, которое я сделал, это использовать rx [GPIO 3] для управления реле. Для этого

  1. Необходимо замкнуть контакты GPIO 0 и GPIO 3 (Rx) на плате реле.
  2. Вставляя ESP-01, либо согните GPIO 0, либо полностью снимите его с платы ESP-01. Будьте осторожны, после удаления вам будет сложно снова запрограммировать модуль ESP-01, потому что GPIO 0 должен стать низким во время загрузки, чтобы включить программный режим. И это причина, почему GPIO 0 имеет ВЫСОКИЙ уровень при загрузке.

Если хотите, можете попробовать этот продукт Умный коммутатор. Релейный модуль ESP01 на базе Android

,

0

У меня была точно такая же проблема. Решил подавать 5 вольт на реле. На беспроводном реле есть регулятор, который дает 3В на ESP-01, а не 5В. Но для работы реле требуется 5В.

,