Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Нужна помощь реле и esp-01 + сенсорная кнопка

Тема в разделе "Железные вопросы по esp8266", создана пользователем Vladimir_G, 15 июн 2018.

  1. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    привет народ !
    приобрел этот модуль ESP8266 Esp01 ESP 01 сети Беспроводной WI FI реле Модуль Интернет вещей IOT APP контроллер адаптер доска 5 В 10A DC 250 В купить в магазине ModuleFans на AliExpress
    переделал по инструкции
    1. Выпаять 15F104
    2. Выпаять R4(не факт что нужно выпаивать, но у меня реле не работало с ним)
    3. На 7й пин от 15F104(или на R2) вешаем вывод от GPIO
    4. GPIO и 3.3 вольта зацепить на 10ком резистором.
    Реле работает несколько месяцев, управление Blynk.
    Но решил на второй свободный GPIO повесить сенсорную кнопку ttp223b. Подпаял ножку сигнала на свободное GPIO2, питание на питание платы 3-5в. При включении модуль не грузится, горят все индикаторы. А если включить модуль без минуса по питанию сенсора, модуль загружается, а затем подать(при запущеном модуле) минус на сенсор , все работает и реле и кнопка, в Blynk отображается. Может какая развязка нужна ???? спасибо
     
  2. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    GPIO2 служебный вывод, во время включения на нем должен быть высокий уровень, потом его можете использовать.
     
    Последнее редактирование: 15 июн 2018
  3. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    Ок вчера поменял выводы местами реле на GPIO2 кнопку на GPIO0 эффект тот-же ...
     
  4. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    Угадывать конечно весело, и больше не из чего, но все таки как заставить стартовать модуль с кнопкой ???
     
  5. nikolz

    nikolz Гуру

    Сообщения:
    4.746
    Симпатии:
    452
    1)используйте другие пины
    2) используйте механическую кнопку
     
  6. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    пинов всего два и эта кнопка нужна
     

    Вложения:

  7. nikolz

    nikolz Гуру

    Сообщения:
    4.746
    Симпатии:
    452
    еще у Вас есть RX и TX можно повесить туда
     
  8. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    на ESP-12 два реле и две кнопки отлично работают. Интересен размер этого модуля.
    Если можно по подробнее на RX, TX повесить, что в скетче менять, извините только учусь, игра для среднего возраста. то есть можно на GPIO3 или GPIO1
     

    Вложения:

    Последнее редактирование: 15 июн 2018
  9. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    Чтобы использовать GPIO2 добавьте инвертор на транзисторе.
    https://upload.wikimedia.org/wikipe...er.svg/180px-Transistor_pegelumsetzer.svg.png
    R1 на 100 om, R2 на 3.3k транзистор любой маломощный.

    Свободный конец R1 к выводу кнопки, с коллектора (UOut) на есп, не забудьте соединить все земли вместе и подать 3,3В на VOut.
     
    Последнее редактирование: 15 июн 2018
  10. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    за схему с транзистором спасибо, че то притупил можно действительно на gpio3 или gpio1 повесить, отложилось в голове, что всего два gpio есть только. Спасибо.
     
  11. nikolz

    nikolz Гуру

    Сообщения:
    4.746
    Симпатии:
    452
    Вы можете подтянуть GPIO2 к питанию 10 ком и подключить к ней обычную кнопку .
    Так годится?
    А может Вас устроит кнопка на reset?
     
  12. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    думаю на gpio3 или gpio1 повесить. А надо подтягивать к питанию через резистор сигнальный с кнопки ? RX TX вроде на блоке реле не задействован, прошиваю через другой com-конвертер.
     
  13. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    CodeNameHawk,
    Всем спасибо. припаялся сигнальным проводком от сенсорной кнопки на RX, который gpio3, скетч залил через внешний USB-TTL converter подключив к нему ESP-01. Контакты RX и TX на блоке реле выведены на гребенку от разъема куда вставляется сама ESP-01. Далее все собрал, модуль загрузился реле и кнопка работают. В Blynk все переключается и отображается при включении нагрузки сенсорной кнопкой. железячки на картинках ниже
     

    Вложения:

    Последнее редактирование: 15 июн 2018
  14. akaFelix

    akaFelix Новичок

    Сообщения:
    1
    Симпатии:
    0
    Поделись скетчем, плиз.. Два дня мучаюсь с аналогичной проблемой
     
  15. Vladimir_G

    Vladimir_G Новичок

    Сообщения:
    24
    Симпатии:
    0
    #define BLYNK_PRINT Serial
    #include <ESP8266WiFi.h>
    #include <BlynkSimpleEsp8266.h>
    #define RELE 2
    #define BUTTON 3
    bool rele;
    char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //esp01 авторизационный код для сервера Блинк
    char ssid[] = "SID";
    char pass[] = "pass";

    void setup()
    {
    // Debug console
    Serial.begin(9600);
    pinMode(RELE, OUTPUT);
    pinMode(BUTTON, INPUT);
    Blynk.begin(auth, ssid, pass); // на сервак Блинк авторизация...
    Blynk.begin(auth, ssid, pass, IPAddress(xxx,xxx,xxx,xxx), 8080); //на локальный сервак Блинк авторизация...
    }

    BLYNK_WRITE(V0)
    {
    rele = param.asInt();
    digitalWrite(RELE, rele);
    }


    void loop()
    {
    if(digitalRead(BUTTON))
    {
    rele = !rele;
    digitalWrite(RELE, rele);
    Blynk.virtualWrite(V0, rele);
    delay (1000);
    }
    Blynk.run();
    }
     
  16. maksimusv

    maksimusv Новичок

    Сообщения:
    14
    Симпатии:
    0
    Есть такой скетч, как бы сенсорная кнопка работает через esp8266-01 и включает выключает реле, но вот через веб интерфейс нет, поправьте меня пожалуйста, уже голова болит!
    Код (Text):
    1. // Relay control using the ESP8266 WiFi chip
    2.  
    3. // Import required libraries
    4. #include <ESP8266WiFi.h>
    5.  
    6. // WiFi parameters
    7. const char* ssid = "******";
    8. const char* password = "*****";
    9.  
    10. //Room Name
    11.  
    12.  
    13. //Response from Client
    14. String request = "";
    15.  
    16. // The port to listen for incoming TCP connections
    17. #define LISTEN_PORT           80
    18.  
    19. // set pin numbers:
    20. const int buttonPin = 0;    // the number of the pushbutton pin
    21. const int relayPin = 2;      // the number of the LED pin
    22.  
    23. int relayState = LOW;         // the current state of the output pin
    24. int buttonState;             // the current reading from the input pin
    25. int lastButtonState = LOW;   // the previous reading from the input pin
    26.  
    27. long lastDebounceTime = 0;  // the last time the output pin was toggled
    28. long debounceDelay = 50;    // the debounce time; increase if the output     flickers
    29.  
    30. // Create an instance of the server
    31. WiFiServer server(LISTEN_PORT);
    32. WiFiClient client;
    33.  
    34. void setup(void)
    35. {
    36.       // Start Serial
    37.       Serial.begin(115200);
    38.       delay(10);
    39.       Serial.println();
    40.       Serial.println();
    41.       Serial.println();
    42.       Serial.println();
    43.  
    44.       pinMode(buttonPin, INPUT);
    45.       pinMode(relayPin, OUTPUT);
    46.  
    47.       // set initial LED state
    48.       digitalWrite(relayPin, relayState);
    49.  
    50.       // Connect to WiFi
    51.       WiFi.begin(ssid, password);
    52.       while (WiFi.status() != WL_CONNECTED) {
    53.         delay(500);
    54.         Serial.print(".");
    55.       }
    56.       Serial.println("");
    57.       Serial.println("WiFi connected");
    58.  
    59.       // Start the server
    60.       server.begin();
    61.       Serial.println("Server started");
    62.  
    63.       Serial.println("You can connect to this Switch at this URL:");
    64.       Serial.print("http://");
    65.       // Print the IP address
    66.       Serial.print(WiFi.localIP());
    67.       Serial.println("/");
    68.  
    69. }
    70.  
    71. void loop() {
    72.     String request = "";
    73.  
    74.      // Handle REST calls
    75.      WiFiClient client = server.available();
    76.      if (client) {
    77.         Serial.println("User connected.");
    78.         while(!client.available()){
    79.              delay(1);
    80.         }
    81.         Serial.print("Request Received:");
    82.        String request = client.readStringUntil('\r\n');
    83.         Serial.println(request);
    84.         client.flush();
    85.      }
    86.  
    87.        //process the request
    88.        if (request.indexOf("/LED=ON") != -1) {
    89.         digitalWrite(relayPin,LOW);
    90.           relayState = HIGH;
    91.        }
    92.        if (request.indexOf("/LED=OFF") != -1) {
    93.         digitalWrite(relayPin,HIGH);
    94.           relayState = LOW;
    95.        }
    96.  
    97.       // read the state of the switch into a local variable:
    98.       int reading = digitalRead(buttonPin);
    99.  
    100.       // If the switch changed, due to noise or pressing:
    101.       if (reading != lastButtonState) {
    102.         // reset the debouncing timer
    103.         lastDebounceTime = millis();
    104.       }
    105.  
    106.       if ((millis() - lastDebounceTime) > debounceDelay) {
    107.         // whatever the reading is at, it's been there for longer
    108.         // than the debounce delay, so take it as the actual current state:
    109.  
    110.         // if the button state has changed:
    111.         if (reading != buttonState) {
    112.           buttonState = reading;
    113.  
    114.           // only toggle the LED if the new button state is HIGH
    115.           if (buttonState == HIGH) {
    116.             relayState = !relayState;
    117.           }
    118.         }
    119.       }
    120.  
    121.       digitalWrite(relayPin, relayState);
    122.  
    123.       // save the reading.  Next time through the loop,
    124.       // it'll be the lastButtonState:
    125.       lastButtonState = reading;
    126.  
    127.      if (client) {
    128.          client.println("HTTP/1.1 200 OK");
    129.   client.println("Content-Type: text/html");
    130.   client.println("");
    131.   client.println("<!DOCTYPE HTML>");
    132.   client.println("<html>");
    133.   client.println("<head><title>ESP8266 RELAY Control</title></head>");
    134.   client.print("<h1>Relay is now: </h1>");
    135.  
    136.   if(relayState == HIGH)
    137.   {
    138.     client.print("<div style=\"text-align: center;width: 198px;color:white ;padding: 10px 30px;background-color: #ff9900;margin: 0 auto;\">OFF</div>");
    139.   }
    140.   else
    141.   {
    142.     client.print("<div style=\"text-align: center;width: 198px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>");
    143.   }
    144.   client.println("<br><br>");
    145.   client.println("<div>");
    146.   client.println("<div style=\"text-align: center;font-size: 50px;width: 298px;color:white ;padding: 10px 30px;background-color: #ff9900;margin: 0 auto;\">Turn <a href=\"/LED=OFF\">OFF</a> RELAY<br></div>");
    147.   client.println("<div style=\"text-align: center;font-size: 50px;width: 298px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">Turn <a href=\"/LED=ON\">ON</a> RELAY<br></div>");
    148.   client.println("</div>");
    149.     client.println("</html>");
    150.  
    151.   delay(1);
    152.   Serial.println("Client disonnected");
    153.   Serial.println("");
    154.       }
    155. }
     
  17. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    551
    Симпатии:
    63
    Скажите зачем у вас delay на 151-й строке? Чего ожидаете от добавления задержки?
     
  18. maksimusv

    maksimusv Новичок

    Сообщения:
    14
    Симпатии:
    0
    ничего особенного, небольшая задержка от зависания
     
  19. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    551
    Симпатии:
    63
    т.е. без этой строки ваше приложение зависает?
    Я закоментировал эту строку.
    На ПК в броузере фф, обращаюсь к esp.
    Вижу страницу с состоянием реле, со ссылками на включение и выключение, переходя по ссылкам вижу в выводе в сериал
    Код (Text):
    1.  
    2. User connected.
    3. Request Received:GET /LED=ON HTTP/1.1
    4. Client disonnected
    5.  
    6. User connected.
    7. Request Received:GET /LED=OFF HTTP/1.1
    8. Client disonnected
    9.  
    Скажите когда зависание произойдет?
     
  20. maksimusv

    maksimusv Новичок

    Сообщения:
    14
    Симпатии:
    0
    да оно хорошо работает когда кнопка не подключена, стоит подключить к gpio0 кнопку, и по ссылкам программа не отвечает! только реагирует на состояние кнопки, и в браузере видно состояние, но GET чет не работает!
     

Поделиться этой страницей