Перейти к публикации
iT4iT.CLUB

vavandemidov

Пользователи
  • Публикации

    17
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    1

Сообщения, опубликованные пользователем vavandemidov


  1. 8 часов назад, Вадим сказал:

    Здравствуйте! Повторил проект. Все работает и отображается корректно. Понравилось!!!  Появилась мысль, что для полной метеостанции не хватает датчиков силы ветра, направления ветра (эти датчики довольно дорогие), облачности. Эти три параметра можно взять с openweathermap.org. Kitsum если Вас не затруднит: добавте пожайлуста код из Вашего проекта ""esp8266 и парсинг погоды с OpenWeatherMap"  в этот. Температуру, давление, влажность и тд. берем с своих датчиков, а силу ветра, направление ветра, облачность  с openweathermap.org и показания выводим рядом с своими . С Ув.                       

    И программу телепередач можно еще добавить. Удобно. 


  2. 1 минуту назад, see сказал:

    не думал, что ссылка на товар так важна (каждый волен выбирать по своим потребностям и возможностям)

    заказывал здесь: https://www.aliexpress.com/snapshot/0.html?spm=a2g0s.9042647.6.2.9rX55l&orderId=700633749851919&productId=32724553879

    404 not found 

    Надо разлогиниться и скопировать ссылку


    1. Используйте среду Arduino IDE с поддержкой esp8266 версии 2.4.0 или выше. - ДА
    2. В настройках используемой платы выберите свой модуль, но предполагается, что используется NodeMCU 1.0 (ESP-12E Module). - ДА
    3. Размер Flash обязательно должен быть выставлен как 4M (3M SPIFFS), при этой настройке под файловую систему будет выделен "раздел" объемом 3M. - ДА
    4. Выберите COM порт к которому подключен микроконтроллер. - ОК
    5. Все остальные настройки оставляем по умолчанию, они должны совпадать. - ОК
    6. Компилируем и загружаем образ файловой системы, меню  "Инструменты/ESP8266 Sketch Data Upload", долго и упорно ждем окончания загрузки. При этом Serial монитор должен быть закрыт, иначе получим соответствующую ошибку. - ОК, все загружается.
    7. В последнюю очередь компилируем и загружаем саму программу в микроконтроллер, меню "Скетч/Загрузка". - ОК, все загружается.

    //Пробовал разную последовательность загрузки "Инструменты/ESP8266 Sketch Data Upload" <->   "Скетч/Загрузка"

            8. Откройте Serial монитор на скорости 115200, нажмите на кнопку Reset и посмотрите на вывод - 


    Exception (0):
    epc1=0x4000dce5 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

    ctx: cont 
    sp: 3fff1920 end: 3fff1bc0 offset: 01a0

    >>>stack>>>
    3fff1ac0:  0000005b 00005b00 3fff04c4 40216682  
    3fff1ad0:  00001388 3ffe8524 3fff04c4 402166d8  
    3fff1ae0:  3fff0794 3ffe8524 3fff409c 402077a4  
    3fff1af0:  3fff0794 00001388 3fff1b40 4020964a  
    3fff1b00:  3fff384c 3ffe8524 3fff409c 4020968d  
    3fff1b10:  3fff4674 00001388 3fff1b80 402096ac  
    3fff1b20:  3fff0a94 00000166 3fff1b80 4020a6f2  
    3fff1b30:  3fff0794 00001388 3fff1b80 4020a900  
    3fff1b40:  3fff2dfc 000002ec 40208144 402096a0  
    3fff1b50:  00000000 00000000 3fff0794 401004d8  
    3fff1b60:  3fff2c1c 0000001c 3fff0794 40219528  
    3fff1b70:  4021953c 00000000 3fff0794 4020ce8a  
    3fff1b80:  3fff2c1c 00000000 40208144 402096a0  
    3fff1b90:  feefeffe feefeffe feefeffe 3fff0b90  
    3fff1ba0:  3fffdad0 00000000 3fff0b88 402185b4  
    3fff1bb0:  feefeffe feefeffe 3fff0ba0 40100710  
    <<<stack<<<

     ets Jan  8 2013,rst cause:2, boot mode:(3,6)

    load 0x4010f000, len 1384, room 16 
    tail 8
    chksum 0x2d
    csum 0x2d
    v4ceabea9
    ~ld

     

    Загружаю свой скетч - все работает с ВМЕ280х2. Т.е. NODEMCU рабочий, ВМЕ280х2 тоже работают. ArduinoIDE работает.

    Я уж было хотел писать что Вы сделали в этом проекте все, о чем только можно мечтать и моя жизнь больше не имеет смысла - ан нет! Поживу еще, есть пока к чему стремиться.

    Но с Вашей метеостанцией печалька (

     

    С папкой src или ее содержимым что-нибудь надо делать?

    У кого результат по этой версии положительный?


  3. 1.    spiffs прошивал программой nodemcu-flasher с дефолтными настройками по адресу 0х000. Процесс прошивки заканчивался нормально. после прошивки в мониторе порта пусто, но стоит перегрузить контроллер:

    ets Jan  8 2013,rst cause:2, boot mode:(3,6)

    load 0x4010f000, len 1384, room 16 
    tail 8
    chksum 0x2d
    csum 0x2d
    v4ceabea9
    ~ld2.

    2.    Вашей программой FrduinoIDE 1.8.5 и своей 1.8.6 прошиваю - компиляция/загрузка/DataUpload идет нормально, после прошивки в мониторе порта пусто, но стоит перегрузить контроллер:

    ets Jan  8 2013,rst cause:2, boot mode:(3,6)

    load 0x4010f000, len 1384, room 16 
    tail 8
    chksum 0x2d
    csum 0x2d
    v4ceabea9
    ~ld.

    При этом плата с Вашей предыдущей прошивкой работала нормально, я ее даже не разбирал, правда на ту же I2C припаял еще один ВМЕ280 с другим адресом. Сборка эта работала на других прошивках, но с другими библиотеками. Я так понимаю до датчиков вообще дело не доходит, контроллер не стартует

    (NODEMCU_V3 LOLIN+ВМЕ280x2+питание от usb компьютера.)


  4. Привет. Что за два файла esp8266_firmware_v2.0_beta.bin и esp8266_spiffs_v2.0_beta.bin лежат в архиве?

    После прошивки Вашей версией программы 1.8.5:

    ets Jan  8 2013,rst cause:2, boot mode:(3,6)

    load 0x4010f000, len 1384, room 16 
    tail 8
    chksum 0x2d
    csum 0x2d
    v4ceabea9
    ~ld

    Как впрочем и моей 1.8.6...


  5. Arduino IDE = 1.8.6 скачана с офсайта на прошлой неделе, поддерживаемая платформа esp8266 v_2.0.4-rc2, новее на сегодня в списке предложений к обновлению нет. Всё ПО скачано не более 10 дней назад и до этого предыдущих версий ПО на компе установлено не было, т.к. Ардуинами до этого не интересовался.ПО ставилось на три разных компа на предмет исключения варианта глюка железа. Правда везде Win10 но и х64 и х86. ESP8266 на NodeMcu v3. Основной проект из этой темы компилируется и работает (снимаю мой кэпка, низко кланиюсь),  а вот вариант ESP8266_WS_iT4iT.CLUB_LogOFF.zip ни в какую, есть предположение что у Вас более старая версия библиотеки для работы с ВМЕ280.

    Цитата

    скину это все на форум в виде Portable версии

    Был бы очень благодарен за это.


  6. Метеостанция для измерения параметров в двух точках одинаковыми датчиками, например, дома и на улице. Собственно, пока что просто пример, как подключаются одинаковые датчики на одну шину I2C.

    Детали: Nodemcu v3, два датчика BME280, подключенные на один I2C.

    Для первого датчика с адресом 0х76 использовалась библиотека https://github.com/Seeed-Studio/Grove_BME280  и эта же библиотека отредактирована для второго датчика с адресом 0х77 (в прикрепленном файле). Как поменять адрес второго датчика например тут - http://arduino.ru/forum/apparatnye-voprosy/pomenyat-adres-i2c-na-bme280  Установить обе библиотеки.

    Метеостанция умеет выводить данные в UART. Также создает WEB-сервер, по WIFI соединяется с домашней сетью, данные с метеостанции можно посмотреть в браузере, перейдя по адресу, который дал роутер. В скетч вставить имя/пароль своей сети, а также указать к каким пинам подключены датчики. В моем случае это D1 и D2.

    В дальнейшем предполагается добавить в метеостанцию возможность регулировать температуру и влажность по домашнему датчику, включая обогреватель/кондиционер и ультразвуковой увлажнитель/вентилятор для проветривания. И возможно добавить датчик освещения и включать на ночь уличный свет/ прикрутить датчик влажности почвы и сделать автоматический полив/ добавить управление по WEB-интерфейсу уличным освещением и сливным бачком в тубзике

    Ну и скетч:

    #include "Seeed_BME280.h"
    #include "Seeed_BME280_77.h"
    #include <Wire.h>
    #include <ESP8266WiFi.h>
    
    BME280 bme280;
    BME280_77 bme280_77;
    
    #define pin_sda 5 // default sda pin //вставить свое значение
    #define pin_scl 4 // default scl pin //вставить свое значение
    
    const char* ssid = "ssid"; //вставить свое значение
    const char* password = "password"; //вставить свое значение
    
    
    WiFiServer server(80);
    
    void setup()
    {
      Serial.begin(115200);
      if(!bme280.init()){
        Serial.println("Device error!");
      }
        if(!bme280_77.init()){
        Serial.println("Device error!");
      }
        delay(10);
          // Connect to WiFi network
      Serial.println();
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);
      
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, password);
      
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi connected");
      
    
      server.begin();
      Serial.println("Server started");
    
      
      Serial.println(WiFi.localIP());
        
    }
    
    void loop()
    {
    
      float t = (bme280.getTemperature());
      float p = (bme280.getPressure()*0.00750063);
      float h = (bme280.getHumidity());
    
    
      float t_77 = (bme280_77.getTemperature());
      float p_77 = (bme280_77.getPressure()*0.00750063);
      float h_77 = (bme280_77.getHumidity());
      
        //get and print temperatures
      Serial.print("Temp: ");
      Serial.print(t);
      Serial.println(" C");//The unit for  Celsius because original arduino don't support speical symbols
    
        //get and print temperatures_77
      Serial.print("Temp_77: ");
      Serial.print(t_77);
      Serial.println(" C");//The unit for  Celsius because original arduino don't support speical symbols
      
      //get and print atmospheric pressure data
      Serial.print("Pressure: ");
      Serial.print(p);
      Serial.println(" mm.Hg");
    
        //get and print atmospheric pressure data_77
      Serial.print("Pressure_77: ");
      Serial.print(p_77);
      Serial.println(" mm.Hg");
    
      //get and print humidity data
      Serial.print("Humidity: ");
      Serial.print(h);
      Serial.println(" %");
    
        //get and print humidity data_77
      Serial.print("Humidity_77: ");
      Serial.print(h_77);
      Serial.println(" %");
    
      delay(1000);
    
    WiFiClient client = server.available();
    if (!client) {
    return;
    }
    while(!client.available()){
    delay(1);
    }
    
    String req = client.readStringUntil('\r');
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("Connection: close");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("<head></head><body>");
    client.print("Temperatures_in: ");
    client.print(t);
    client.print(" &#8451");
    client.print("<br>");
    client.print("Pressure_in: ");
    client.print(p);
    client.print(" mm.Hg.");
    client.print("<br>");
    client.print("Humidity_in: ");
    client.print(h);
    client.print(" %");
    client.print("<br><br>");
    client.print("Temperatures_out: ");
    client.print(t_77);
    client.print(" &#8451");
    client.print("<br>");
    client.print("Pressure_out: ");
    client.print(p_77);
    client.print(" mm.Hg.");
    client.print("<br>");
    client.print("Humidity_out: ");
    client.print(h_77);
    client.print(" %");
    client.println("</body></html>");
    delay(1);
    client.stop();
      
    }

     

    Grove_BME280_77-master.zip

    • Like 1

  7. 12 часов назад, Kitsum сказал:

    @vavandemidov Возможно Вы ищите это 

     

    Это уже видел, но у меня компилятор спотыкается в самом начале сразу после настроек датчика BME280:

    #include <BME280I2C.h>
    BME280I2C::Settings
    settings_out(
      BME280::OSR_X1,
      BME280::OSR_X1,
      BME280::OSR_X1,
      BME280::Mode_Forced,
      BME280::StandbyTime_1000ms,
      BME280::Filter_Off,
      BME280::SpiEnable_False,
      0x76 // I2C address
    ),
    settings_in(
      BME280::OSR_X1,
      BME280::OSR_X1,
      BME280::OSR_X1,
      BME280::Mode_Forced,
      BME280::StandbyTime_1000ms,
      BME280::Filter_Off,
      BME280::SpiEnable_False,
      0x77 // I2C address
    );

    invalid conversion from 'int' to 'BME280I2C::I2CAddr' [-fpermissive]

     


  8. Как на lua составить код для ДВУХ подключенных BME280  с разными адресами? поделитесь

    В 18.02.2018 в 04:20, vavandemidov сказал:

    Как на lua составить код для ДВУХ подключенных BME280  с разными адресами? поделитесь

    Ну ладно, как это сделать в Arduino IDE? 

    Выше есть один такой пример, но он не компилируется - в коде ошибка. 


  9. Kitsum, большое спасибо за метеостанцию, самая лучшая из всех, что я нашел.

    Прошу помощи в доработке метеостанции:

    1. Удалить датчик освещенности не только из текущих показаний но и из показаний графика за последние сутки.

    2. Использовать ДВА датчика ВМЕ280 (просто их есть у меня) для метеостанции (улица/дом). В текущих показаниях  сделать 5 индикаторов (показания давления уличного датчика не нужно), на графике оставить показания давления/температуры/влажности уличного датчика.

    Сделать самому не хватает знаний. Из текущих показаний датчик освещенности убрал, из графика не получилось. Пробую добавлять второй ВМЕ280 - компилятор выдает ошибки. Мои знания и умения в этих вопросах находятся на уровне Ctrl+C - Ctrl+V.

    Ну и прошу прощения за наглость - 

    3. Выдать на один из GPIO высокий уровень по понижению температуры домашнего датчика ниже определенного значения, на второй GPIO - высокий уровень по превышению определенного значения (вот бы еще это значение через web-интерфейс задавать!).

    4. На третий GPIO высокий уровень по понижению влажности домашнего датчика ниже определенного значения, на четвертый - высокий уровень по превышению влажности (если не получится менять это значение через web-интерфейс, то просто можно знать где что заменить в скетче)

     

×
×
  • Создать...