Telegram реле

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

  1. REMBOV

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

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

    Вложения:

    • arduino.ino
      Размер файла:
      972 байт
      Просмотров:
      608
    • wifi.ino
      Размер файла:
      1,8 КБ
      Просмотров:
      611
    • hWEWmvxNM4Y.jpg
      hWEWmvxNM4Y.jpg
      Размер файла:
      133,1 КБ
      Просмотров:
      889
    • PAEMUMhI4FA.jpg
      PAEMUMhI4FA.jpg
      Размер файла:
      114,5 КБ
      Просмотров:
      843
    • UV90eWrrqWs.jpg
      UV90eWrrqWs.jpg
      Размер файла:
      91,2 КБ
      Просмотров:
      757
  2. IvanUA

    IvanUA Гуру

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

    Airbus Радиохулиган Модератор

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

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

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

    IvanUA Гуру

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

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

    NikitOS Public enemy Администратор

    Как люблю я говорить, акцент на возрасте не нужен...
    И вообще 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. NikitOS

    NikitOS Public enemy Администратор

    За что
     
  11. Airbus

    Airbus Радиохулиган Модератор

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

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

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

    IvanUA Гуру

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

    Airbus Радиохулиган Модератор

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

    NikitOS Public enemy Администратор

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

    Airbus Радиохулиган Модератор

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

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

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

    ИгорьК Гуру

  19. NikitOS

    NikitOS Public enemy Администратор

    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 нравится это.