Переключатель лампы 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> &nbsp; <a href="LEDOff"><button>OFF</button></a></p>";

Я получаю ошибку "несогласованные пользовательские литеральные суффиксы "LEDOn" и "button" в строковом литерале".

Любая помощь была бы очень признательна. Эта линия единственная неудачная в моем скетче

, 👍1

Обсуждение

Пожалуйста, задайте новый вопрос для нового вопроса, а не глобализируйте его на существующий, особенно когда речь идет о совершенно отдельной теме. Если у вас возникли проблемы с кодом, в том числе и с кодом... полезно., @Dave Newton


2 ответа


Лучший ответ:

1

Я добавлю сюда окончательный код. Мне потребовались недели, чтобы найти отправную точку, и много часов проб и ошибок, чтобы разобраться во всем этом. С его помощью мне удалось получить стабильно работающий коммутатор.

Этот код был написан для 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>    &nbsp;    <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();
}
,

0

Эта плата специально разработана для экосистемы Feather, поэтому вам нужно будет обеспечить соответствующие соединения, такие как 3,3 В и GND, а также два входных сигнала (также 3,3 В, я полагаю). В двух словах: вы можете игнорировать почти все разъемы на плате, за исключением 3,3 В, GND, SET и UNSET.

Любой учебник D1 (или Arduino в целом), в котором обсуждается, как установить значение выходного вывода, прекрасен-вам нужно, чтобы они были НИЗКИМИ по умолчанию и приводили соответствующий МАКСИМУМ на 10 мс (задержка здесь в порядке), чтобы установить новое состояние.

Любой учебник по вводу коммутатора должен подходить для обучения чтению коммутатора, и есть несколько руководств по настройке простого веб-приложения, которое взаимодействует с 8266 IO. Однако обратите внимание, что вы захотите отслеживать текущее состояние и, возможно, обновить веб-приложение текущим состоянием, если оно будет изменено с помощью кнопки.

Все это говорит о том, что "просто пытаюсь выключить/включить некоторые светодиоды". Реле может и не понадобиться; есть ли явная необходимость в запирающем реле?

,

Дэйв - это в значительной степени то, что мне нужно. На самом деле нет никакой явной необходимости, просто учебное упражнение. Действительно найти ответ на вопрос, который никто не задавал ;o) - Если кто-то хочет предоставить код ... это было бы здорово, но я не жадный и могу выкопать его сам. Спасибо, @Siburmax