Вопрос Выключатель

alexlaw

Member
Я экспериментирую с ESP8266-01.
Делаю проходной Выключатель с WIFI.
рис1.png
Суть его в том, чтобы выключатель физический и электронный работали совместно, если свет включен или выкл, то его состояние можно можно было изменить любым выключателем.
Вопрос куда нужно подключить ESP8266.
Транистор я не ставил. Pin0 соединил с 3 выводом, для получения данных вкл или выкл свет.
Pin2 соединил с выв 6,2. Для управления. Но , тогда управлять можно только через ESP, а физический выкл перестает работать, если хотя бы раз использовать ESP.
рис2.png
И еще вопрос, почему с сервисом Blynk происходит соединение не после подачи питания, а только после перезагрузки ESP?
 

Jury_78

New member
Суть его в том, чтобы выключатель физический и электронный работали совместно, если свет включен или выкл, то его состояние можно можно было изменить любым выключателем.
Вопрос куда нужно подключить ESP8266.
Проще всего "физическую" кнопку подключить к pin-у ESP8266, а уж внутри все реализовать программно как хочется. Т.е. всё управление делать через ESP. Но какой то аварийный выключатель предусмотреть надо.
 

alexlaw

Member
Вопрос с Blynk снят.
Добавил диод между gpio0 и выходом timera555
рис3.png
1-й вопрос остался
Небольшое видео, чтобы была понятна проблема
DSCN1220_mpeg4_002.zip
Кому интересно, как работает схема без ESP, видео на youtube
 

Вложения

Последнее редактирование:

alexlaw

Member
Вопрос об управлении 'проходным выключателем" с помощью ESP8266-01 кажется решился.
Попалась на вашем форуме замечательная программа R_ESP8266_Control 1.0
от Рубена - R_ESP8266_Control.
Если после управления 'проходным выключателем" с помощью ESP8266-01 перевести GPIO2 из output в input,

то физическая кнопка снова позволяет управлять нагрузкой.
Соответственно когда принимает управление ESP нужно перевести GPIO2 в output.
Возможно ли построить это на базе Blynk-пока не знаю.
 

alexlaw

Member
Здравствуйте.
Не могу понять почему у меня высокий уровень на gpio0.
Он сконфигурирован, как INPUT.

Код:
#include <ESP8266WiFi.h>
const char* ssid = "ssid";
const char* password = "password";
int pin0 = 0;
// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);
void setup() {
  Serial.begin(115200);
  delay(10);

pinMode(pin0,  INPUT);

  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  // Start the server
  server.begin();
  Serial.println("Server started");
  // Print the IP address
  Serial.println(WiFi.localIP());
}
void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  // Read the first line of the request
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
  // Match the request
  int val;
  if (req.indexOf("/gpio0") != -1)
    {
      val = digitalRead(pin0);
    }
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }
  client.flush();
  // Prepare the response
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "</html>\n";
  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");
  // The client will actually be disconnected
  // when the function returns and 'client' object is detroyed
}
рис4.png
 

Сергей_Ф

Moderator
Команда форума
Не могу понять
потому что не читаете документацию, потому и не можете понять
почему у меня высокий уровень на gpio0.
потому что на этом выводе есть подтяжка к +3.3V, по условиям старта модуля в рабочем режиме.
 

alexlaw

Member
Получился театр абсурда, чтобы все заработало, получаем данные на pin0, сконфигурировав его "выходом", а управляем pin2, сконфигурировав его "входом"
Код:
/*************************************************************
  Download latest Blynk library here:
    https://github.com/blynkkk/blynk-library/releases/latest
    Downloads, docs, tutorials: http://www.blynk.cc
  Blynk library is licensed under MIT license
  This example code is in public domain.
*************************************************************
  This example runs directly on ESP8266 chip.
*************************************************************/

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "";
int pin0=0;//выход timer555
int out555=0;
int pin2=2;// управление timer555
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "";
char pass[] = "";
WidgetLED led1(V0);

void setup()
{
  pinMode(pin0, OUTPUT);
  digitalWrite(pin0,0);
  pinMode(pin2, INPUT);
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
 
}

void loop()
{
  Blynk.run();
  out555=digitalRead(pin0);
if (out555==0)
  led1.off();
  else
  led1.on();
  pinMode(pin2, INPUT);
  delay(1000);
}
Конечно не айс, но заработал esp совместно с физическим выключателем.
Это только эксперемент.
Видео плохого качества, но чтото увидеть можно.
DSCN1221_xvid.zip
 

Вложения

Сергей_Ф

Moderator
Команда форума
@alexlaw а что мешало выводы поменять? Что то мне подсказывает, что предельный ток по выходу с gpio0 Вы превышаете, а значит долго он не выживет.
 

alexlaw

Member
Самому стало интересно.
Замерил на gpio0.
рис5.png
Maximum drive capability I MAX 12 mA -вроде так по даташиту
 

Сергей_Ф

Moderator
Команда форума
@alexlaw это в одном положении выключателя, а в другом? Когда на выводе 3 у 555 HIGH?

А вообще, я вижу 4 состояния: два состояния реле по кнопке и два по blink. Проверьте их все.
 

Сергей_Ф

Moderator
Команда форума
@alexlaw а лучше перенести реле полностью на вывод esp, и логику кнопки реализовать тоже на esp (gpio0 прекрасно подойдет как вход кнопки). Тогда не придется заниматься извращениями.
 

alexlaw

Member
а лучше перенести реле полностью на вывод esp, и логику кнопки реализовать тоже на esp. Тогда не придется заниматься извращениями.
Это дело вкуса. Мне хочется попробовать именно так.
Тем более можно применить несколько физических кнопок ничего не меняя
Да ток 30мА
 

Сергей_Ф

Moderator
Команда форума
@alexlaw что Вам мешает соединить несколько кнопок по схемному логическому ИЛИ с активным низким уровнем к одному входу esp? Менять ничего не придется.
Вот схемы только диоды переверните для активного низкого уровня. Всё таки 30 мА - это явный перебор.
 
Последнее редактирование:
Сверху Снизу