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

Прошивка Wemos D1 mini Pro по воздуху. Проблема.

Тема в разделе "Раздел для начинающих", создана пользователем zip1961, 15 июл 2019.

  1. zip1961

    zip1961 Новичок

    Сообщения:
    33
    Симпатии:
    0
    Добрый день уважаемые форумчане. В инструкции по прошивке ESP 8266 прочитал такое:

    Примечание: Чтобы загружать скетч при помощи OTA снова и снова, внутри него нужно прописать соответствующие функции. Для примера используйте скетч «BasicOTA.ino».

    Что за соответствующие функции? Дело в том, что я прошиваю по ОТА без проблем, проверяю. Все работает, но когда перезагружаю IDE ( у меня последняя прошивка), порт сетевой исчезает. Мне приходится снова по проводу загрузить ОТА, и потом прошивать прошивку по воздуху и т.д. Питон-версия 1.7.10. В ОТА рас комментировал эти строчки:

    ArduinoOTA.setPort(8266);
    ArduinoOTA.setHostname("myesp8266");
    ArduinoOTA.setPassword("admin");

    И вторая проблема.

    Загружаю скетч в вемос , на смартфоне все показывает, через несколько часов отваливается Blynk. Перезагружаю Вемос . Все появляется и опять со временем отваливается. По проводу, когда прошивал такого не было.

    Может поможете, что нужно в скетче дописать?



    И еще. Интересная особенность. Когда заливаю ОТА в мониторе порта ничего нет, IP соответственно тоже (скорость установлена правильно) , но в меню инструменты OTA-порт появляется.

    Вот скетч:

    Код (C):
    1. #include "DHT.h"
    2. #define fan1 D1 //вентилятор D1 Гараж
    3. #define fan2 D5 //вентилятор D5 Подвал
    4. #define fan3 D6 //вентилятор D6 Смотровая яма
    5.  
    6. #define DHT1PIN D7//датчик на улице
    7. #define DHT2PIN D4//датчик в гараже
    8. #define DHT3PIN D3//датчик в подвале
    9. #define DHT4PIN D2//датчик в смотровой яме
    10.  
    11. #define DHT1TYPE DHT22
    12. #define DHT2TYPE DHT22
    13. #define DHT3TYPE DHT11
    14. #define DHT4TYPE DHT11
    15.  
    16. DHT dht1(DHT1PIN, DHT1TYPE);
    17. DHT dht2(DHT2PIN, DHT2TYPE);
    18. DHT dht3(DHT3PIN, DHT3TYPE);
    19. DHT dht4(DHT4PIN, DHT4TYPE);
    20.  
    21. #define BLYNK_PRINT Serial
    22. #include <ESP8266WiFi.h>
    23. #include <BlynkSimpleEsp8266.h>
    24. #include <WiFiClient.h>
    25. #include <ESP8266WebServer.h>
    26. #include <ArduinoOTA.h>
    27.  
    28.   const char *ssid = "ASUS"; // задаем имя создаваемой сети
    29.   const char *password = "*******"; // задаем пароль создаваемой сети
    30.  
    31. ESP8266WebServer server(80); // Сервер не 80 порту
    32.  
    33. BlynkTimer timer;
    34.  
    35. WidgetLED fan_1(V8);  // Светодиод на смарте
    36. WidgetLED fan_2(V9);  // Светодиод на смарте
    37. WidgetLED fan_3(V10); // Светодиод на смарте
    38.  
    39. int stat = 0;
    40. int maxHum = 90;
    41. char auth[] = "*****************";
    42. bool flag_avto_fan = 1; // ВКЛ Автоматический режим по занчениям датчиков
    43. //----------------------------------------------------------
    44. void handleRoot()
    45. {
    46.   server.send(200, "text/html", "<h1>You are connected<h1>");
    47. }
    48. //-----------------------------------------------------
    49. void setup()
    50. {
    51.   Serial.begin(115200);
    52.   ArduinoOTA.begin();
    53.   Blynk.begin(auth, "ASUS", "*******");
    54. Serial.println();
    55. Serial.println("Configuring access point...");
    56. WiFi.softAP(ssid, password); //создаем иочку доступа, с указанным ранее именем и паролем
    57. IPAddress myIP = WiFi.softAPIP(); //ПОЛУЧАЕМ ip АДРЕСв терминал
    58. Serial.print("AP IP address:"); // выводим полученный IP- адрес в терминал
    59. Serial.println(myIP);
    60. server.on("/", handleRoot);
    61. server.begin(); //запускаем сервер
    62. Serial.println("Server started");
    63.   dht1.begin();
    64.   dht2.begin();
    65.   dht3.begin();
    66.   dht4.begin();
    67.  
    68.   pinMode(fan1, OUTPUT);
    69.   pinMode(fan2, OUTPUT);
    70.   pinMode(fan3, OUTPUT);
    71.   timer.setInterval(1000, Send);                 // опрос датчиков с интервалом 1с.
    72.   timer.setInterval(30000L, reconnectBlynk);     // проверяем каждые 30 секунд, если подключение к серверу
    73. }
    74. //---------------------------------------------------
    75. void loop() {
    76.  
    77. // Wait a few seconds between measurements.
    78.   delay(2000);
    79.   if (Blynk.connected()) Blynk.run();    // Запуск Blynk
    80.   timer.run();
    81.   server.handleClient();
    82. }
    83. //---------------------------------------------------
    84. void Send() {
    85.  
    86.   // опрос датчиков
    87.   //---------- dht1
    88.   float h1 = dht1.readHumidity();
    89.   float t1 = dht1.readTemperature();
    90.   if (isnan(h1) || isnan(t1)) Serial.println("Failed to read from DHT1 sensor!");
    91.   else {
    92.     Serial.print("Humidity1: ");
    93.     Serial.print(h1);
    94.     Serial.print(" %\t ");
    95.     Serial.print("Temperature1: ");
    96.     Serial.print(t1);
    97.     Serial.println(" *C ");
    98.   }
    99.   //---------- dht2
    100.   float h2 = dht2.readHumidity();
    101.   float t2 = dht2.readTemperature();
    102.   if (isnan(h2) || isnan(t2)) Serial.println("Failed to read from DHT2 sensor!");
    103.   else {
    104.     Serial.print("Humidity2: ");
    105.     Serial.print(h2);
    106.     Serial.print(" %\t ");
    107.     Serial.print("Temperature2: ");
    108.     Serial.print(t2);
    109.     Serial.println(" *C ");
    110.   }
    111.   //--------- dht3
    112.   float h3 = dht3.readHumidity();
    113.   float t3 = dht3.readTemperature();
    114.   if (isnan(h3) || isnan(t3))Serial.println("Failed to read from DHT3 sensor!");
    115.   else {
    116.     Serial.print("Humidity3: ");
    117.     Serial.print(h3);
    118.     Serial.print(" %\t ");
    119.     Serial.print("Temperature3: ");
    120.     Serial.print(t3);
    121.     Serial.println(" *C ");
    122.   }
    123.   //--------- dht4
    124.   float h4 = dht4.readHumidity();
    125.   float t4 = dht4.readTemperature();
    126.   if (isnan(h4) || isnan(t4)) Serial.println("Failed to read from DHT4 sensor!");
    127.   else {
    128.     Serial.print("Humidity4: ");
    129.     Serial.print(h4);
    130.     Serial.print(" %\t ");
    131.     Serial.print("Temperature4: ");
    132.     Serial.print(t4);
    133.     Serial.println(" *C ");
    134.   }
    135.   Serial.println();
    136.  
    137.   // *********************  Логистика работы вентиляторов **************
    138.  
    139.   if (flag_avto_fan) { // если ВКЛ автоматический режим !!!!!!!!
    140.     //-------- (h1>h2)
    141.     if (h1 > h2) // если влажность на улице больше, чем в гараже, выключается вентилятор fan1
    142.     {
    143.       digitalWrite(fan1, LOW);
    144.       fan_1.off();//выкл вирт.светодиод
    145.     }
    146.     else if (h1 < h2) // если влажность на улице меньше, чем в гараже, включается вентилятор fan1
    147.     {
    148.       digitalWrite(fan1, HIGH);
    149.       fan_1.on(); //вкл вирт.светодиод
    150.     }
    151.      //-------- (h1>h4)
    152.      if (h1 > h4) // если влажность на улице больше, чем в смотровой яме, выключается вентилятор fan3
    153.     {
    154.       digitalWrite(fan3, LOW);
    155.       fan_3.off();//выкл вирт.светодиод
    156.     }
    157.     else if (h1 < h4) // если влажность на улице меньше, чем в смотровой яме, включается вентилятор fan3
    158.     {
    159.       digitalWrite(fan3, HIGH);
    160.       fan_3.on(); //вкл вирт.светодиод
    161.     }
    162.     //------------(t1<0) для гаража
    163.     if (t1<0) // если температура на улице меньше 0 градусов, выключается вентилятор fan1
    164.     {
    165.       digitalWrite(fan1, LOW);
    166.       fan_1.off();//выкл вирт.светодиод
    167.     }
    168.     else if (t1>0) // если температура на улице больше 0 градусов, включается вентилятор fan1
    169.     {
    170.       digitalWrite(fan1, HIGH);
    171.       fan_1.on(); //вкл вирт.светодиод
    172.     }
    173.    //------------(t1<0) для cмотровой ямы
    174.    if (t1<0) // если температура на улице меньше 0 градусов, выключается вентилятор fan3
    175.     {
    176.       digitalWrite(fan1, LOW);
    177.       fan_3.off();//выкл вирт.светодиод
    178.     }
    179.     else if (t1>0) // если температура на улице больше 0 градусов, включается вентилятор fan3
    180.     {
    181.       digitalWrite(fan3, HIGH);
    182.       fan_3.on(); //вкл вирт.светодиод
    183.     }
    184.     //-------- h2
    185.     if (h2 > maxHum)
    186.     {
    187.       digitalWrite(fan1, HIGH);
    188.       fan_1.on();             //вкл вирт.светодиод
    189.     }
    190.     else if (h2 < (maxHum - 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
    191.     {
    192.       digitalWrite(fan1, LOW);
    193.       fan_1.off(); //выкл вирт.светодиод
    194.     }
    195.     //-------- h3
    196.     if (h3 > maxHum)
    197.     {
    198.       digitalWrite(fan2, HIGH);
    199.       fan_2.on();             //вкл вирт.светодиод
    200.     }
    201.     else if (h3 < (maxHum - 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
    202.     {
    203.       digitalWrite(fan2, LOW);
    204.       fan_2.off(); //выкл вирт.светодиод
    205.     }
    206.     //--------- h4
    207.     if (h4 > maxHum)
    208.     {
    209.       digitalWrite(fan3, HIGH);
    210.       fan_3.on(); //вкл вирт.светодиод
    211.     }
    212.     else if (h4 < (maxHum - 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
    213.     {
    214.       digitalWrite(fan3, LOW);
    215.       fan_3.off(); //выкл вирт.светодиод
    216.     }
    217.   }
    218.   //---------------- отправка показания датчиков на Blynk
    219.   static uint8_t t;
    220.   if (++t > 5) { // каждые 5 сек или любой другой интервал выводит данные на Blynk !!!
    221.     t = 0;
    222.     Blynk.virtualWrite(V0, h1);
    223.     Blynk.virtualWrite(V1, t1);
    224.     Blynk.virtualWrite(V2, h2);
    225.     Blynk.virtualWrite(V3, t2);
    226.     Blynk.virtualWrite(V4, h3);
    227.     Blynk.virtualWrite(V5, t3);
    228.     Blynk.virtualWrite(V6, h4);
    229.     Blynk.virtualWrite(V7, t4);
    230.   }
    231. }
    232. //------------------------ Групповое ВЫКЛ вентиляции
    233. BLYNK_WRITE(V11) {      
    234.   if (param.asInt()) {
    235.     flag_avto_fan = 0;   // ВЫКЛ Автоматику
    236.     digitalWrite(fan1, LOW); fan_1.off();
    237.     digitalWrite(fan2, LOW); fan_2.off();
    238.     digitalWrite(fan3, LOW); fan_3.off();
    239.   }
    240.   else {
    241.     flag_avto_fan = 1;  // ВКЛ Автоматику
    242.   }
    243. }
    244. //---------------------------------------------------
    245. void reconnectBlynk() {                    // функция проверяет соединение с сервером Блинк
    246.   if (!Blynk.connected()) {                // если соединения нет то
    247.     if (Blynk.connect())                   // конектимся
    248.       BLYNK_LOG("Reconnected");            // выводим в лог
    249.     else
    250.       BLYNK_LOG("Not reconnected");        // выводим в лог
    251.   }
    252. }
     
  2. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.051
    Симпатии:
    175
    Простите старика... Что такое "Питон-версия 1.7.10"? Насколько я помню сейчас 2.7х и 3.7х...
     
  3. svs2007m

    svs2007m Читатель

    Сообщения:
    100
    Симпатии:
    9
    Вроде в loop() не хватает:
    ArduinoOTA.handle();
    И что там делает delay(2000); ?
     
  4. zip1961

    zip1961 Новичок

    Сообщения:
    33
    Симпатии:
    0
    На многих сайтах советуют именно версию 1.7** (самая актуальная). Сначала ставил последнюю, потом переустановил.
     
  5. zip1961

    zip1961 Новичок

    Сообщения:
    33
    Симпатии:
    0
     
  6. CodeNameHawk

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

    Сообщения:
    1.564
    Симпатии:
    178
    Интересно, где вы такую нашли.
    Download Python

    Надо ставить ту версию, что рекомендуют ардуинщики.
    Installing — ESP8266 Arduino Core documentation
     
  7. zip1961

    zip1961 Новичок

    Сообщения:
    33
    Симпатии:
    0
    Как раз на этом же родном сайте и нашел в старых версиях
    Я так и делаю:
    Использование git версии
    Это рекомендуемый метод установки для участников и разработчиков библиотек.

    Предпосылки
    • Arduino 1.6.8 (или новее, текущая рабочая версия 1.8.5)
    • мерзавец
    • Python 2.7 ( https://python.org )
    • терминал, консоль или командная строка (в зависимости от вашей ОС)
    • интернет-соединение
    или так
    Prerequisites
    • Arduino 1.6.8 (or newer, current working version is 1.8.5)
    • git
    • Python 2.7 (https://python.org)
    • terminal, console, or command prompt (depending on your OS)
    • Internet connection
     
  8. CodeNameHawk

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

    Сообщения:
    1.564
    Симпатии:
    178
    То есть вы видели, что рекомендуют ставить 2,7 а вы ставите 1,7.
     
  9. zip1961

    zip1961 Новичок

    Сообщения:
    33
    Симпатии:
    0
    Я дико извиняюсь не 1.7.10, а 2.7.10 у меня.
     

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