Правильный 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:
Я пытался установить для relayPin значение 0 или 2, но реле не активируется/деактивируется.
Итак, какой правильный PIN-код установить в моей константе relayPin для управления портом GPIO0?
Реле успешно работает, если я подаю на него +3,3В на GPIO0 с внешним питанием.
Заранее спасибо
@Roberto Milani, 👍0
Обсуждение5 ответов
Глядя на более качественные изображения печатной платы на 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
большинство контактов GPIO на ESP8266 "загружаются" в режиме INPUT
Вам нужно
const int relayPin = 0; // или 2
void setup()
{
pinMode(relayPin, OUTPUT);
}
Причина, по которой GPIO1 работает, заключается в том, что GPIO1 является последовательным TxD, поэтому он настроен на вывод
Спасибо за ваш комментарий! Это уже было написано в моем коде, но я забыл его написать, теперь я отредактировал 1-й пост;) Спасибо, @Roberto Milani
Вы можете использовать любой контакт 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
1 решение, которое я сделал, это использовать rx [GPIO 3] для управления реле. Для этого
- Необходимо замкнуть контакты GPIO 0 и GPIO 3 (Rx) на плате реле.
- Вставляя ESP-01, либо согните GPIO 0, либо полностью снимите его с платы ESP-01. Будьте осторожны, после удаления вам будет сложно снова запрограммировать модуль ESP-01, потому что GPIO 0 должен стать низким во время загрузки, чтобы включить программный режим. И это причина, почему GPIO 0 имеет ВЫСОКИЙ уровень при загрузке.
Если хотите, можете попробовать этот продукт Умный коммутатор. Релейный модуль ESP01 на базе Android
У меня была точно такая же проблема. Решил подавать 5 вольт на реле. На беспроводном реле есть регулятор, который дает 3В на ESP-01, а не 5В. Но для работы реле требуется 5В.
- Как заставить 5-вольтовое реле работать с NodeMCU
- Esp8266 Vin контакт
- Управление реле 5В с помощью Wemos D1 R1
- NodeMCU продолжает отключаться
- Управление 5В от ESP8266 Wemos D1 mini
- Реле с активным низким уровнем и контакты ESP8266 GPIO
- WiFi-реле Arduino UNO + ESP8266 от LC Technology
- ESP8266 отключается через несколько часов
почему бы вам просто не написать тестовый код, который последовательно проверяет все контакты?, @jsotola
@jsotola пробовал с https://pastebin.com/pNsZY1ZX, но ничего не происходит :(, @Roberto Milani
проверьте дорожки на плате реле, @Juraj
@Юрай, как я могу это сделать?, @Roberto Milani
Я в той же лодке, что и Роберто, и мне интересно, была ли решена эта проблема и каково было решение. Также интересует прошивка, которая использовалась в ESP., @naji