Telegram реле

Тема в разделе "Глядите, что я сделал", создана пользователем REMBOV, 27 дек 2017.

  1. REMBOV

    REMBOV Воскреситель Матрёшек

    Итак,начнём с того что мне 12 лет и ардуино занимаюсь почти год.Мой первый проект на ESP8266 .
    Проект состоит из 2х реле,светодиода(потому что больше реле нет),и Troyka esp8266.Работает он так
    бот посылает команду на ESP.ESP обрабатывает сигнал и даёт на ардуино,ардуино отсылает ответ ESP ,а ESP присылает сообщение боту
     

    Вложения:

    • arduino.ino
      Размер файла:
      972 байт
      Просмотров:
      295
    • wifi.ino
      Размер файла:
      1,8 КБ
      Просмотров:
      300
    • hWEWmvxNM4Y.jpg
      hWEWmvxNM4Y.jpg
      Размер файла:
      133,1 КБ
      Просмотров:
      447
    • PAEMUMhI4FA.jpg
      PAEMUMhI4FA.jpg
      Размер файла:
      114,5 КБ
      Просмотров:
      453
    • UV90eWrrqWs.jpg
      UV90eWrrqWs.jpg
      Размер файла:
      91,2 КБ
      Просмотров:
      352
  2. IvanUA

    IvanUA Гик

    Мне кажется что именно в данном варианте, можно немного сократить - к примеру убрать ардуино.
    ЕСП - имеет свои собственные GPIO. Для ваших целей (два реле и один светодиод) их хватит.
    Вам даже хватит портов что бы на них повесить кнопки и слать сигналы в сторону бота)))
     
    BAR__MEN и Airbus нравится это.
  3. Airbus

    Airbus Оракул

    Ну да esp сам себе Ардуина.
     
  4. REMBOV

    REMBOV Воскреситель Матрёшек

    согласен, но я меньше недели с есп работаю
     
  5. IvanUA

    IvanUA Гик

    А в чем проблема то? Вы же пишите код в Arduino IDE...
    Та только названия портов разные)))

    Единственное в чем может возникнуть загвоздка - это согласованию уровней ЕСП и реле...
    Хотя, если на ошибаюсь, то выходы ЕСП можно вывести в режим работы с открытым коллектором. И управлять этим выходом притягивая его к земле (минусу, нулю). Тогда теле цепляете одним концом к +5В, а вторым к ЕСП... Мне кажется должно работать)))).
    ПС. Честно признаю, я так не делал. Я ставил еще транзисторную развязку, один или два транзистора в зависимости от конкретной нагрузки))))
     
  6. BAR__MEN

    BAR__MEN Гуру

    Как люблю я говорить, акцент на возрасте не нужен...
    И вообще 13...будет:)скоро..
     
    Arduino.ru и REMBOV нравится это.
  7. REMBOV

    REMBOV Воскреситель Матрёшек

    cпс
     
  8. Airbus

    Airbus Оракул

    Никакой проблемы нет.Я релюхи сажаю на КТ-315 (потому что их у меня трёхлитровая банка )))по классической схеме.Само типа реле Bestar может быть как на 5 вольт так и на 12.Нужен будет просто второй "плюс" или +5 или +12 или питать от 12 вольт а esp через стаб +3 вольт.С открытым коллектором работать не будет спалите порт.А в остальном та же Ардуина.Посмотрел код REMBOV респект только место вывода в сериал можно сразу же устанавливать нужный порт в нужное состояние.А Ардуину использовать для чего то ещё.
     
  9. IvanUA

    IvanUA Гик

    А можно как то мотивировать сие утверждение?
     
  10. BAR__MEN

    BAR__MEN Гуру

    За что
     
  11. Airbus

    Airbus Оракул

    Там ток вроде 5 миллиампер максимум?То есть выразился я немного не так.Не то что не будет там нет выводов с ОК.Если ток превысить порт можно пальнуть как и в других МК. А разве в AVR или PIC они (ОК)есть?
     
  12. REMBOV

    REMBOV Воскреситель Матрёшек

    ПРОСТ))))0)))
     
  13. IvanUA

    IvanUA Гик

    На сколько я понял то до 12mA.
    Действительно в официальной документации нет упоминания что есть выхода с открытым коллектором(стоком),
    но на разных форумах этот вопрос подымался и не однократно... Кто-то использовал (pinMode(pin, OUTPUT_OPEN_DRAIN);) Кто то просто использовал порты с I2C.... Но в любом случае если он там есть или предположить что был бы, то его использование ограничивалось бы только током порта.
    ПС. Согласен ушли от тему в полемику))))
     
  14. Airbus

    Airbus Оракул

    Где ботовскую библиотеку скачать?
     
  15. BAR__MEN

    BAR__MEN Гуру

    Я в IDE зашел в Скетч>Подключить библиотеку>Управлять библиотеками... там в поиск вписал "telegram" и там было пара библиотек для устаноаки
     
    Arduino.ru, REMBOV и Airbus нравится это.
  16. Airbus

    Airbus Оракул

    Спасибо попробую так.
     
  17. REMBOV

    REMBOV Воскреситель Матрёшек

    тоже захотелось?)))
     
  18. ИгорьК

    ИгорьК Давно здесь

  19. BAR__MEN

    BAR__MEN Гуру

    Arduino.ru нравится это.
  20. Airbus

    Airbus Оракул

    Сделал себе Бота поигрался.У меня без Ардуино немного подправил авторский скетч.Всего 3 канала можно сделать сколько хочешь.
    Код (C++):
    // Telegram rele
    // реле управляемое по Телеграмме

    #include <ESP8266WiFi.h>
    #include <WiFiClientSecure.h>
    #include <UniversalTelegramBot.h>
    #include <ArduinoJson.h>
    char ssid[] = "Ваш логин";
    char password[] = "Ваш Пароль";

    #define BOTtoken "Ваш Токен"
    WiFiClientSecure client;
    UniversalTelegramBot bot(BOTtoken, client);

    String keyboardJson = "[[\"/ledon\", \"/ledoff\",\"/ledon2\", \"/ledoff2\",\"/ledon3\", \"/ledoff3\"]]";

    void setup()
    {
      pinMode(12, OUTPUT); //Реле 1
      pinMode(13, OUTPUT); //Реле 2
      pinMode(15, OUTPUT); //Реле 3
      digitalWrite(12, LOW); //выключено
      digitalWrite(13, LOW); //выключено
      digitalWrite(15, LOW); //выключено
      Serial.begin(9600);
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
      }
    }

    void loop()
    {
      int numNewMessages = bot.getUpdates(
               bot.last_message_received + 1);
      handleNewMessages(numNewMessages);
    }

    void handleNewMessages(int numNewMessages)
    {
      for (int i = 0; i < numNewMessages; i++)
       {
        String chat_id = String(bot.messages[i].chat_id);
        String text = bot.messages[i].text;
         if (text == "/ledon")
         {
          Serial.println("turnOn");
          digitalWrite(12, HIGH); //включено
          bot.sendMessage(chat_id, "вкл", "");
         }
         if (text == "/ledoff")
         {
          Serial.println("turnOff");
          digitalWrite(12, LOW); //выключено
          bot.sendMessage(chat_id, "выкл", "");
         }
         if (text == "/start")
         {
          bot.sendMessageWithReplyKeyboard(chat_id,
              "Choose from one of the following options",
              "", keyboardJson, true);
         }
         if (text == "/ledon2")
         {
          Serial.println("turnOn2");
          digitalWrite(13, HIGH); //включено
          bot.sendMessage(chat_id, "вкл", "");
         }
         if (text == "/ledoff2")
         {
          Serial.println("turnOff2");
          digitalWrite(13, LOW); //выключено
          bot.sendMessage(chat_id, "выкл", "");
         }
         if (text == "/ledon3")
         {
          Serial.println("turnOn3");
          digitalWrite(15, HIGH); //включено
          bot.sendMessage(chat_id, "вкл", "");
         }
         if (text == "/ledoff3")
         {
          Serial.println("turnOff3");
          digitalWrite(15, LOW); //выключено
          bot.sendMessage(chat_id, "выкл", "");
         }
       }
    }
     
    Securbond нравится это.