kumekay / kuhomon

Indoor air monitoring device: CO2, Temperature, Humidity, Pressure
34 stars 12 forks source link

Код для модификации с одним bme280 вместо пары bmp280+si702 #4

Closed pandability closed 7 years ago

pandability commented 7 years ago

Добрый день. Не будете ли вы столь любезны выложить вариант кода при использовании датчика BME280? В силу того, что желание познакомиться с IoT возникло исключительно благодаря вашей статье про метеостанцию на GT, собственных сил и знаний пока не хватает.

kumekay commented 7 years ago

Добрый день, да я подготовлю вариант на этой неделе

apan65 commented 7 years ago

pinya, Отлично, как раз хотел сейчас с этим же вопросом обратиться. Буду ждать.

kumekay commented 7 years ago

Я пока не опубликовал этот вариант, т.к. навожу порядок в коде основной ветки. Сделаю в ближайшие несколько дней, после завершения #2

apan65 commented 7 years ago

C нетерпением жду

kumekay commented 7 years ago

Опубликовал версию для BME280 в отдельной ветке: https://github.com/pinya/kuhomon/tree/bme280

На руках у меня BME280 нет, чтобы проверить, но должно работать

apan65 commented 7 years ago

Такая беда "IP address: 192.169.1.107 Load config... Config loaded blynk server: blynk-cloud.com port: 8442 token: Blynk token Connecting to blynk... Connecting to blynk... Connecting to blynk... и тд, не может приконнектиться. "

apan65 commented 7 years ago

Может это проблема роутера, с портами что-то?

kumekay commented 7 years ago

Проблема:

token: Blynk token

При настройке не указан токен blynk

Нужно сбросить на заводские настройки, Вообще, Для сброса на заводские настройки нужно на время подсоединить GPIO 12 (D6) на землю, но здесь этот метод не сработает. Я подумаю как это можно обойти.

Простая перепрошивка не поможет.

apan65 commented 7 years ago

но здесь этот метод не сработает.

Почему? Я так понимаю этот токен я где-то получить должен? Извиняюсь, если глупости пишу, просто совсем не в теме.

Upd. Так, я понял, должен скачать приложение для андроида, зарегиться, создать проект и получить там токен?

Upd2. Ок. Получил. Я так понимаю теперь если его впишу и перепрошью, то это мне не поможет?

kumekay commented 7 years ago

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

Для сброса на заводские настройки нужно на время подсоединить GPIO 12 (D6) на землю,

Но этот метод не очень корректно организован, он работает, когда устройство полностью загружено. Здесь же оно останавливается в процессе загрузки.

Чтобы не ждать моего полноценного решения добавьте первой строкой в main.cpp в функцию setup() (строка 415) вызов factoryReset();

void setup() {
  factoryReset();

Прошейте, подождите минутку, потом удалите эту строчку и прошейте снова. Это сработает, он снова войдет в режим настройки и вы сможете указать верный token

apan65 commented 7 years ago

Так, теперь работает, но с BME по нулям получает. Я его отдельно проверял, сенсор в порядке, может проблема с пинами, хотя вроде всё правильно и в дебаге ничего не пишет.

kumekay commented 7 years ago

Я обновил код, можете прошить и прислать что он выводит в консоль после загрузки, при каждом измерении?

В моем случае:

Getting Temperature from SI7021
Getting Temperature from BMP085
Getting Humidity from SI7021
Getting Pressure from BMP085
Getting CO2
CO2:400
H: 41%
T: 28C
P: 742mmHg
CO2: 400ppm
apan65 commented 7 years ago

Всё так же как и было, я сенсор отдельно с библиотекой bme280t из менеджера проверял, всё работало.

Getting Temperature from BME280
Getting Humidity from BME280
Getting Pressure from BME280
Getting CO2
CO2:710
H: 0.00%
T: 0.00C
P: 0.00mmHg
CO2: 710ppm
kumekay commented 7 years ago

Попробуйте сменить адрес в инициализации устройства. BME280 может работать на разных адресах. в строке 439 укажите адрес 0x76 (по умолчанию 0x77)

        // Init Pressure/Temperature sensor
        if (!bme.begin(0x76)) {
                DEBUG_SERIAL.println("Could not find a valid BME280 sensor, check wiring!");
        }

Если это не поможет, то попробуйте посмотреть на каких адресах у вас вообще есть устройства, это можно сделать при помощи вот этой прошивки: https://playground.arduino.cc/Main/I2cScanner Она выведет все i2c устройства в консоль

apan65 commented 7 years ago

Таки да, в адресе была проблема.

kumekay commented 7 years ago

Отлично, можно закрывать этот вопрос?

apan65 commented 7 years ago

Ага, огромное спасибо за помощь и идею для устройства. Потом может парочка идей придет по улучшению функционала, отпишусь.

kumekay commented 7 years ago

Да, тут есть над чем поработать. Вероятно займусь новой версией в июле. Удачи и спасибо за отзыв!