Переключатель лампы Adafruit Featherwing Latching Relay
Я совершенно новичок в Arduino. Поэтому я заранее приношу свои извинения, если упустил информацию, которую ищу. Я искал в течение нескольких часов и не могу найти никакой помощи с реле Adafruit Featherwing Locking Relay(#2923 на Adafruit). Это тот, который имеет 2 установленных контакта "Set" и "Unset". Я бы с удовольствием использовал Wemos d1 mini для запуска этого реле. Но я не могу найти никаких скетчей или документации о том, как начать работу.
В идеале настройка должна иметь кнопку для переключения между состояниями, а также базовую веб-страницу esp8266 для переключения состояний.
Я просто пытаюсь выключить/включить некоторые светодиоды. И хочу запустить коммутатор через эту настройку.
Спасибо E
Что ж, я продвинулся еще дальше. Мне удалось заставить большую часть этого работать, но теперь CSS, который я использую, вызывает головную боль. Код ниже ошибки на "page = <style....." html-код
//HTML веб - страницы
page = "<style> .button{ background-color:red; color:blue; border-radius: 8px; padding: 12px 24px; }</style><h1>Простой веб-сервер NodeMCU</h1><p> <a href="LEDOn"><button class="button">ON</button></a> <a href="LEDOff"><button>OFF</button></a></p>";
Я получаю ошибку "несогласованные пользовательские литеральные суффиксы "LEDOn" и "button" в строковом литерале".
Любая помощь была бы очень признательна. Эта линия единственная неудачная в моем скетче
@Siburmax, 👍1
Обсуждение2 ответа
Лучший ответ:
Я добавлю сюда окончательный код. Мне потребовались недели, чтобы найти отправную точку, и много часов проб и ошибок, чтобы разобраться во всем этом. С его помощью мне удалось получить стабильно работающий коммутатор.
Этот код был написан для Wemos D1 Mini, соединенного с реле фиксации Adafruit Featherwing. Поскольку он устанавливал и отменял кодирование контактов, это была борьба для меня. Установленные/неустановленные контакты требуют только импульса для их запуска, после чего они остаются "запертыми" в состоянии. даже если сила будет потеряна. Я нашел здесь базовый код, и потребовалось немного подправить его, чтобы заставить работать.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
// Замените свои сетевые учетные
const char* ssid = "SSID";
const char* password = "PASSWORD";
ESP8266WebServer server(80); //создать экземпляр сервера на порту 80 (http-порт)
String page = "";
int LEDUnsetPin = D1;
int LEDSetPin = D2;
void setup(void){
//HTML веб - страницы
//не забывайте, что вам нужны estapes (") вокруг страницы котировок
page = "<style> .button{ background-color:red; color:blue; border-radius: 8px; padding: 12px 24px; }</style><h1>Kitchen LEDs</h1><p> <a href=\"LEDOn\"><button class=\"button\">ON</button></a> <a href=\"LEDOff\"><button>OFF</button></a></p>";
//сделайте вывод светодиодных контактов и изначально выключите
pinMode(LEDUnsetPin, OUTPUT);
digitalWrite(LEDUnsetPin, LOW);
pinMode(LEDSetPin, OUTPUT);
digitalWrite(LEDSetPin, LOW);
delay(1000);
Serial.begin(115200);
WiFi.begin(ssid, password); //начать подключение Wi-Fi
Serial.println("");
// Подождите подключения
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.on("/", [](){
server.send(200, "text/html", page);
});
//включите pin on и выключите сервер off pin
server.on("/LEDOn", [](){
server.send(200, "text/html", page);
digitalWrite(LEDSetPin, HIGH);
delay(10);
digitalWrite(LEDSetPin, LOW);
delay(10);
});
//выключите pin включения и включите
server.on("/LEDOff", [](){
server.send(200, "text/html", page);
digitalWrite(LEDUnsetPin, HIGH);
delay(10);
digitalWrite(LEDUnsetPin, LOW);
delay(10);
});
server.begin();
Serial.println("Web server started!");
}
void loop(void){
server.handleClient();
}
Эта плата специально разработана для экосистемы Feather, поэтому вам нужно будет обеспечить соответствующие соединения, такие как 3,3 В и GND, а также два входных сигнала (также 3,3 В, я полагаю). В двух словах: вы можете игнорировать почти все разъемы на плате, за исключением 3,3 В, GND, SET и UNSET.
Любой учебник D1 (или Arduino в целом), в котором обсуждается, как установить значение выходного вывода, прекрасен-вам нужно, чтобы они были НИЗКИМИ
по умолчанию и приводили соответствующий МАКСИМУМ
на 10 мс (задержка
здесь в порядке), чтобы установить новое состояние.
Любой учебник по вводу коммутатора должен подходить для обучения чтению коммутатора, и есть несколько руководств по настройке простого веб-приложения, которое взаимодействует с 8266 IO. Однако обратите внимание, что вы захотите отслеживать текущее состояние и, возможно, обновить веб-приложение текущим состоянием, если оно будет изменено с помощью кнопки.
Все это говорит о том, что "просто пытаюсь выключить/включить некоторые светодиоды". Реле может и не понадобиться; есть ли явная необходимость в запирающем реле?
Дэйв - это в значительной степени то, что мне нужно. На самом деле нет никакой явной необходимости, просто учебное упражнение. Действительно найти ответ на вопрос, который никто не задавал ;o) - Если кто-то хочет предоставить код ... это было бы здорово, но я не жадный и могу выкопать его сам. Спасибо, @Siburmax
- Высокочастотный PWM на Adafruit Feather M0
- Не удается успешно реализовать синглтон
- Как отправить ключи, отличные от ASCII, через соединение BLE HID с помощью Adafruit nRF52 Feather?
- ESP8266 — невозможно загрузить или использовать серийный монитор — Ubuntu 22.04 LTS
- Сканер I2C ESP8266 (Huzzah Feather) ничего не находит
- Почему на контакте 6 моего Adafruit Feather RP2040 не подается высокий уровень, когда я об этом прошу?
- Код Neopixel не работает на плате Adafruit Feather
- Несовместимость микроконтроллера MacBook + BLE?
Пожалуйста, задайте новый вопрос для нового вопроса, а не глобализируйте его на существующий, особенно когда речь идет о совершенно отдельной теме. Если у вас возникли проблемы с кодом, в том числе и с кодом... полезно., @Dave Newton