kumekay/kuhomon

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

Closed this issue · 18 comments

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

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

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

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

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

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

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

Такая беда
"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...
и тд, не может приконнектиться.
"

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

Проблема:

token: Blynk token

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

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

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

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

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

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

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

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

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

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

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

void setup() {
  factoryReset();

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

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

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

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

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

Всё так же как и было, я сенсор отдельно с библиотекой 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

Попробуйте сменить адрес в инициализации устройства. 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 устройства в консоль

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

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

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

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