Проект "Blynk", управление цветом светодиода с телефона

Тема в разделе "ESP8266, ESP32", создана пользователем alexkul, 28 мар 2019.

Метки:
  1. alexkul

    alexkul Нуб

    Здравствуйте все.
    Осваивал связку Arduino и ESP8266. Шел последовательно по брошюре "Интернет вещей", добрался до раздела №8 "Blynk". Задача: менять цвет свечения светодиода, управляя процессом с телефона. Успешно собрал схему по картинкам, прошил Arduino Uno, ESP8266, установил Blynk на телефон, создал проект, как в брошюре.
    Итог: связь телефона с ESP8266 - устанавливается. Связь ESP8266 c Arduino Uno - устанавливается. В мониторе порта видны строки вида "b127", получаемые с телефона, через ESP8266. Диоды TX на обеих платах мигают. RGB-cветодиод - не светит.
    При ручном вводе в монитор порта команды вида "b127", RGB-светодиод успешно светит синим цветом.

    Судя по сигнальному светодиоду, Serial.available()==0.

    Подскажите, пожалуйста, в чем ошибка и как реализовать управление RGB-cветодиодом с телефона. Наверняка это не сложнее апельсина.

    Код для Arduino Uno:
    Код (C++):
    int ledR=3;
    int ledG=5;
    int ledB=6;

    void setup() {
    Serial.begin(115200);
    Serial.setTimeout(1000);
    pinMode(7, OUTPUT);  //светодиод для отладки программы
    pinMode(8, OUTPUT);  //светодиод для отладки программы
    }

    void loop() {
    String command=Serial.readStringUntil('\n');
    Serial.print("command: ");                        // не отображается в мониторе порта
    Serial.print(command);                            // не отображается в мониторе порта
       Serial.print(Serial.available());              // не отображается в мониторе порта

    if (Serial.available()==0){
      Serial.print("command: ");                                // не отображается в мониторе порта
      Serial.print(command);                                    // не отображается в мониторе порта
      digitalWrite(8,HIGH);                                       // светит
      int led;

      if (command[0]=='r'){
        digitalWrite(7,HIGH);  // не светит при управлении с телефона. светит при ручном вводе команд в монитор порта.
        led=ledR;
        }
      if (command[0]=='g'){
        digitalWrite(7,HIGH); // не светит при управлении с телефона. светит при ручном вводе команд  в монитор порта.
        led=ledG;
        }
      if (command[0]=='b'){
        digitalWrite(7,HIGH); // не светит при управлении с телефона. светит при ручном вводе в монитор порта.
        led=ledB;
        }
        String brightness=command.substring(1);
       
        analogWrite(led, brightness.toInt());
      }
    }


    Код для ESP8266:
    (данные WiFi - не секретны)

    Код (C++):
    #define BLYNK_PRINT Serial
    #include <ESP8266WiFi.h>
    #include <BlynkSimpleEsp8266.h>

    char auth[]="2ea415b02a9c449581e77e301274d19e";
    char ssid[]="TUR";
    char pass[]="a54681741a";

    void setup() {
    Serial.begin(115200);
    Blynk.begin(auth, ssid, pass);
    }

    void loop() {
    Blynk.run();
      }

      BLYNK_WRITE(V1){
        int redValue=param[0].asInt();
        int greenValue=param[1].asInt();
        int blueValue=param[2].asInt();

        Serial.print("r");
        Serial.print(redValue);
        Serial.print("g");
        Serial.println(greenValue);
        Serial.print("b");
        Serial.println(blueValue);

    }
     
  2. Airbus

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

    Второй скетч(для esp).Снести все нах после blynk.run(); прошить в е это в esp8266.Остальное настраивается из приложения на телефоне инструмент Zergba кажется.И будет Вам Щастье!
     
  3. Airbus

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

    Да и Ардуино в этой связке-лишнее звено.Светодиод подключается напрямую к esp8266
     
  4. https://examples.blynk.cc/?board=ESP8266&shield=ESP8266 WiFi&example=Widgets/LED/LED_Color
     
  5. b707

    b707 Гуру

    А код для Уно - полный бред.
    alexkul - прочитайте справку, что делает и зачем применяется Serial.avaliable() Вы эту контрукцию не по назначению используете
     
  6. Человеку предлагают другую идеологию. Не надо чесать левое ухо правой рукой. Можно без кода светодиоды зажигать. Проникнетесь справкой Blynk. Сперва для понимания трудно. Сущности другие.
     
  7. b707

    b707 Гуру

    Александр, вы это мне пишете?
    Мне "зажигать светодиоды без кода" не требуется. Я и с кодом как-нибудь справлюсь.

    Таких игрушек много, Блинк не единственный. Я рад что вы спустя 2 года наконец поняли, как им пользоваться - но это вовсе не значит, что теперь все должны проникнуться вашим опытом и забросить С++ и Яву. Так не получится, кто-то же должен этот блинк писать, чтобы школьники и такие как вы могли тыкатть в красивые картинки на экране :)
     
    Последнее редактирование: 12 май 2019
    ИгорьК нравится это.
  8. Нет. Не Вам. Неувязочка вышла. Отвлекли. Извините.