Arduino.ru
Датчик BME280 — не отобржается влажность и выстоа отрицательная.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Изначально не выводилось ничего. В библиотеке сменил адрес датчика по I2C на 0х76. И еще закоментировал //return false; в библиотеке как паказанно вот тут http://davidstein.cz/2017/09/30/arduino-bme280-could-not-find-a-valid-bme280-sensor-solved/
После этого стала отображаться температура и атмосферное давление. Но высота некорректно отображается и влажность 0%. В чем мoжет быть проблема?
Temperature = 23.21 *C
Pressure = 1026.81 hPa
Approx. Altitude = -112.28 m
Humidity = 0.00 %
Помогите пожалуйста разобрться уже 3 день ищу, думаю что нетак.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Этот модуль еще нужно правильно подключить.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Доброго дня. Модуль вроде бы подключен правильно. Так как I2C scaner выводит адрес 0х76 да и температура с атм. давлением отображается корректно.
GND —>земля
VCC —> +3.3V
SCL —> контакт 22 (ESP32 Devkit V1 SCL)
SDA —> контакт 21 (ESP32 Devkit V1 SDA)
Скорее всего что то в библиотеке не так. Но что?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А высоту над уровнем моря вы правильно считаете? — уверены, что в параметр SEALEVELPRESSURE_HPA нужно заносить 760 мм рт ст?
По смыслу этот датчик показывает ИЛИ давление ИЛИ высоту над уровнем моря, но не оба параметра разом. Чтобы вычислить высоту надо знать текушее давление на уровне моря — и именно это текущее давление нужно занести в параметр SEALEVELPRESSURE_HPA, а вовсе не «идеальную» цифру в 760 мм ртст.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
По смыслу этот датчик показывает ИЛИ давление ИЛИ высоту над уровнем моря, но не оба параметра разом.
А как же BMP180 кажет и то и то.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А как же BMP180 кажет и то и то.
неверно выразился — дачик может показывать изменение давления при неизменной высоте или изменение высоты при неизменном давлении. Вычислять и то и другое разом — не выйдет, так по сути измеряется только одна величина и потом пересчитывается либо в то. либо в другое
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вот мой чо кажет в протеусе. В реале в железе то-же что и на смартфоне и гисметео.
Библиотека естественно самописная, нет такой в инете.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вот мой чо кажет в протеусе.
вы физику учили в школе? 🙂
ответьте, каким образом этот датчик измеряет высоту над уровнем моря. и сами все поймете
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
#define SEALEVELPRESSURE_HPA (1013.25)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Живу над уровнем моря) И показатель атм. давления меня пока не смущают. Этот вопрос легче, я решу его позже. Меня больше интересует влажность почему всегда 0.
Тут мои библиотеки. Так как на форуме я не нашел как вложить файлы.
Посмотрите пожалуйста что я не так делаю или что упустил?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
#define SEALEVELPRESSURE_HPA (1013.25)
1013,25 ГПа — это и есть 760 мм. рт. ст — нормальное атмосферное давление на уровне моря
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А, простите. Я на метеостанциях только КПа вижу, что-то мне в голову даже не пришло пересчитывать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вроде почти всё сходится.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Живу над уровнем моря)
это не имеет значения, все равно в этот параметр нужно заносить не идеальное давление 760 мм. а текущее на уровне моря. То есть для вас — ту самую цифру, что СЕЙЧАС! показывает барометр. И тогда датчик совершенно точно покажет высоту 0 м 🙂
Поймите. это кажется бредом — но для определения этим датчиком высоты надо сначала узнать эту высоту каким-то иным способом, пересчитать по ней текущее давление на высоту 0м и вставить полученную цифру в скетч. Зато после этого, если вы например взберетесь с датчиком на 12 этаж или на соседнюю сопку — он вам покажет разницу высоты. на которую вы поднялись от первой точки.
Источник
Arduino.ru
Китайский BMP-280, не заводится.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
BME280 test
Could not find a valid BME280 sensor, check wiring!
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так возьмите библиотеку для BMP, если у вас он. У BME действительно другой ID.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пишет тоже самое:
BMP280 test
Could not find a valid BMP280 sensor, check wiring!
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Адрес-то указали либе? Сканер его видит еще, не спалили экспериментами?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Точно, после указания адреса заработало, только выдает фигню какуюто, температура нормальная, а вот давление и высота скачет туда сюда, да и температура нет нет в минус уходит https://ibb.co/f8BXJT
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вообще беда какаято, стал определятся через раз, а если определяется то показания ненормальные https://ibb.co/gS9N2o
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Контакт может плохой. А может 3.3в датчику не нравится, что на его сигнальные входы подается 5v с ардуины.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Питание подается 2.5в, с БП, не с ардуины. Контакты 2 раза пропаивал уже.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Контакт может плохой. А может 3.3в датчику не нравится, что на его сигнальные входы подается 5v с ардуины.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Питание подается 2.5в, с БП, не с ардуины. Контакты 2 раза пропаивал уже.
SDA/SCL тоже на блок питания заведены или куда-то в другое место?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Хлебный БП ему не нравится:)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Нет, SDA\SCL от ардуины идут на датчик, а питание от бп, между БП и ардуиной должна быть общая земля?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
. между БП и ардуиной должна быть общая земля?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Нет, на бмп нельзя подавать 5в напряжения он работает от 3.3в, на плате нет стабилизатора, поэтому только 3.3в, испробовал все способы с подачей плюса на SCB и подключением земли от ардуины, I2C сканер не в какую не хочет видеть модуль. Хз что делать. Подключаю по тем же проводам RTC модуль, его видит отлично, так что вряд ли проблема в надежности соединений.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
значит уже спалили, если небыло соединения земли ардуино и датчика
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Первый раз когда скетч исправил и запустил все работало, потом давай показывать ерунду, но стабильно показывал и определял его, сегодня его подключил и вообще не реагирует. Каким образом он мог сгореть? Причем когда его подключаешь вместе с другими модулями они тоже не определяются, такое ощущение что он стопорит систему всю, и приходится кнопку сброса нажимать, чтобы сканер снова заработал. И стал показывать остальные модули. С двумя модулями одно и то же, второй позже достал как раз в то время как первый стал ерунду выдавать, еще 3 нулевых лежит ;D . Есть еще какието предположения в чем может быть дело, кстати ерунду выдавал скетч и без подсоединеного модуля, так что он перестал работать почти сразу ( можно сказать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Он не ерунду выдавал, а значения, которые получались в результате вычисления формулы без данных с барометра. Скорее всего. Т.е. модули сразу вылетали, когда им +5V в сигнальный выход попадало. Не зря же 5V версии BMP-шек с согласователем уровней поставляются.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Я его от 2.5в питаю, а не от 5ти.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Подумайте: какое сигнальное напряжение по SCL идет от 5V ардуины? Или померяйте, сделав digitalWrite(. HIGH).
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Нет, на бмп нельзя подавать 5в напряжения он работает от 3.3в, на плате нет стабилизатора, поэтому только 3.3в, испробовал все способы с подачей плюса на SCB и подключением земли от ардуины, I2C сканер не в какую не хочет видеть модуль. Хз что делать. Подключаю по тем же проводам RTC модуль, его видит отлично, так что вряд ли проблема в надежности соединений.
Как нет.
Там есть специально обученный для этого пин.
Он левее пина 5 Вольт и правее пина reset на верхней картинке
Или второй слева в нижнем ряду на нижней.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Я понял, что такое китайский БП для хлеба. Оно?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Я не понимаю к чему вы клоните. Я нуб и даже понимаю о чем вы.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На картинке Ардуино Уно, а у меня про мини.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Да, вот этот кусок, выдает по линии 3.3в только 2.5в а по 5в — 3.4в. Незнаю с чем связанно, питал и от блока питания ПК, и от зарядника. Выходное нарпяжение не меняется.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
В общем получилось обмануть систему, сегодня ни с того не с сего Ардуино ИДЕ перестал видеть порты Комовские, ну это же не в какие ворота не лезет, ты тут пытаешь совладеть с китай модулями, а у тебя еще и программа не работает, ну это же вообще пятая точка. Удалил и установил новую. И самое важное, запитал ХлебныйБП от самой ардуины, и все получилось, модули заработали, только бывает выдают левые значения, то верные то левые, но это я думаю дело в плохом контатке, работают оба натерпевшихся модуля, показывают температуру, и давление около 98к а вот высоту показывают каждый разную один 214м другой 208м но я думаю это поправимо, может наберусь терпения и завершу проэкт. Всем огромное спасибо, ваши ответы с вариантами подталкивают пробовать снова и снова, иначе я бы уже опустил руки, надеюсь вы мне и в следующих постах будете помогать, судя по началу обращатся к форму буду очень часто ;D
Источник
Arduino и метеодатчик BME280
Описание
BME280 – высокоточный метеодатчик, измеряющий такие параметры микроклимата как температура, влажность и атмосферное давление. В зависимости от модуля может подключаться к I2C и SPI шинами микроконтроллера и работать от 3-5V, если на плате есть стабилизатор, или 3V, если его нет.
На обратной стороне платы не просто так написано BME280/BMP280 – BMP является урезанной версией BME, в которой нет влажности. Как их различить, если недобросовестный китаец не поставил галочку? По корпусу датчика:
В наборе GyverKIT первых партий (все наборы 2021 года) шёл BME280 версии I2C 5V, но старт продаж набора совпал с мировым кризисом микросхем, из за которого датчик стал сильно дефицитным и китайцы начали хитрить. В наборах GyverKIT 2021 года можно встретить:
- Рабочий BME280
- Рабочий BMP280
- Нерабочий BMP280
Мы приносим свои извинения за эту ситуацию, вы можете запросить возврат средств за модуль у магазина Giant4.
Подключение
Модуль подключается на шину I2C и питание, как и любой другой модуль такого типа:
- Arduino: SDA – A4, SCL – A5
- Wemos: SDA – D2, SCL – D1
Библиотеки
- Adafruit BME280 (для работы также нужна Adafruit Sensor) – самая известная библиотека для работы с BME280. Очень тяжёлая, часть настроек доступна только при ручном редактировании библиотеки.
- GyverBME280 – наша библиотека, более удобная и лёгкая. Также поддерживает датчики BMP280
В примерах на этом сайте мы будем использовать GyverBME280. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию GyverBME280. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.
Примеры
Первым делом стоит удостовериться в работоспособности датчика и узнать его адрес, он может быть 0x77 и 0x76 . Загружаем следующий код:
Открываем монитор порта:
- Если вывелось только Start scan и ничего больше – датчик бракованный и не будет работать
- Если это рабочий BMP/BME – получим вывод такого вида:
Значит датчик ответил по адресу 0x76. Может ответить по 0x77.
Значит Ардуино не находит датчиков на линии. Либо датчик подключен неправильно, либо бракованный.
Далее откроем базовый пример из библиотеки, который опрашивает значения с датчика. В begin() можно передать адрес, который мы узнали из предыдущего скетча-сканера (не забываем префикс 0x). Загружаем и открываем порт:
- Если выведется только слово Start – датчик бракованный и из-за этого программа зависла
- Если выведется Error! – датчик бракованный или адрес не соответствует, вернись к предыдущему пункту
- Корректно выводятся все три параметра
Start
Temperature: 24.78
Humidity: 41.69
Pressure: 99701.28
Датчик рабочий, и это BME280
- Выводится температура и давление, влажность – 0
Start
Temperature: 24.78
Humidity: 0
Pressure: 99701.28
Датчик рабочий, и это BMP280, т.е. без влажности.
Источник