Блок для BME280 на библиотеке SparkFunBME280

Создаем свой блок. Вопросы, помощь знатоков.
Ответить
Evolution_pvp
Рядовой
Сообщения: 14
Зарегистрирован: 14.02.2018{, 00:41}
Репутация: 0

Блок для BME280 на библиотеке SparkFunBME280

#1

Сообщение Evolution_pvp » 29.03.2018{, 19:48}

Помогите пожалуйста, нужен блок для датчика BME280 на библиотеке SparkFunBME280.h ( https://github.com/sparkfun/SparkFun_BM ... no_Library ). Блок на библиотеке Adafruit с чем то конфликтует, загружается но не работает.
Может конечно я не туда копаю, но думаю альтернативный блок не помешал бы в целом.
Со SparkFunBME280 датчик работает и отображает всю инфу корректно, заливал готовый скетч.

Дмитруино Uno
Рядовой
Сообщения: 36
Зарегистрирован: 28.01.2018{, 21:21}
Репутация: 1
Откуда: Алтайский край
Имя: Дмитрий

Блок для BME280 на библиотеке SparkFunBME280

#2

Сообщение Дмитруино Uno » 30.03.2018{, 04:18}

Библиотека Adafruit рабочая, но блок с этой библиотекой кривой, нужно просто его подкорректировать, господа профи гляньте блок

dimacyc
Рядовой
Сообщения: 3
Зарегистрирован: 19.03.2018{, 11:07}
Репутация: 0
Имя: Дима

Блок для BME280 на библиотеке SparkFunBME280

#3

Сообщение dimacyc » 30.03.2018{, 10:54}

Пробовал создать пользовательский блок с SparkFunBME280.h библиотекой. Компилируется , но показания датчика 0.00 и не меняются .

Отправлено спустя 3 часа 12 минут 28 секунд:
Блок для BME280 на библиотеке SparkFunBME280
вот код скетча . Где ошибка ? не могу разобраться.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "Wire.h"

#include "SparkFunBME280.h"

#include "SPI.h"

#include <stdint.h>

LiquidCrystal_I2C _lcd1(0x27, 20, 4);
int _dispTempLength1=0;
boolean _isNeedClearDisp1;

float Temperature;
float Pressure;
BME280 mySensor;
int _disp1oldLength = 0;
int _disp3oldLength = 0;
void setup()
{
Wire.begin();

_lcd1.init();
_lcd1.backlight();
mySensor.settings.commInterface = I2C_MODE;
mySensor.settings.I2CAddress = 0x76;
mySensor.settings.runMode = 3;
mySensor.settings.tStandby = 5;
mySensor.settings.filter = 0;
mySensor.settings.tempOverSample = 1;
mySensor.settings.pressOverSample = 1;
mySensor.begin();
}
void loop()
{if (_isNeedClearDisp1) {_lcd1.clear(); _isNeedClearDisp1= 0;}





//Плата:1

if (1) {
_dispTempLength1 = ((((String("p")) + ((String((Pressure)/(133), DEC)))))).length();
if (_disp1oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor(0, 1);
_lcd1.print((((String("p")) + ((String((Pressure)/(133), DEC))))));
} else {
if (_disp1oldLength > 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}
if (1) {
_dispTempLength1 = ((((String("t")) + (( _floatToStringWitRaz(Temperature,0)))))).length();
if (_disp3oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp3oldLength = _dispTempLength1;
_lcd1.setCursor(0, 0);
_lcd1.print((((String("t")) + (( _floatToStringWitRaz(Temperature,0))))));
} else {
if (_disp3oldLength > 0) {_isNeedClearDisp1 = 1; _disp3oldLength = 0;}
}




}
String _floatToStringWitRaz(float value, int raz)
{

return String(value,raz);
}
Вложения
Документ WordPad.doc
(2.18 КБ) 160 скачиваний
Последний раз редактировалось pan 30.03.2018{, 20:44}, всего редактировалось 1 раз.
Причина: портянка на 3 экрана!

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Блок для BME280 на библиотеке SparkFunBME280

#4

Сообщение pan » 30.03.2018{, 14:13}

где блок. и что это за портянка на весь экран.
со скетчами не по адресу

Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03.01.2016{, 13:11}
Репутация: 1
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

Блок для BME280 на библиотеке SparkFunBME280

#5

Сообщение Брат » 30.03.2018{, 19:58}

Из представленной тобой информации трудно понять, что тебе необходимо! На самом деле проблемы нет, имеющийся пользовательский блок ВМР280 даже очень хорошо работает!
Вот часть схемы моего высотомера на ВМР280. Данные датчика фильтруются, показания переводятся в сантиметры, привязываются к высоте места старта. Собственно есть все, выбирай, что необходимо и вперед!
ВМР280.png
Вложения
pr12-180330a.zip
(1.17 КБ) 173 скачивания

Дмитруино Uno
Рядовой
Сообщения: 36
Зарегистрирован: 28.01.2018{, 21:21}
Репутация: 1
Откуда: Алтайский край
Имя: Дмитрий

Блок для BME280 на библиотеке SparkFunBME280

#6

Сообщение Дмитруино Uno » 31.03.2018{, 06:17}

Брат писал(а):
30.03.2018{, 19:58}
высотомера на ВМР280. Данные датчика фильтруются, показания переводятся в сантиметры, привязываются
у тебя другой блок. где же он был раньше. чето влажности нет

Evolution_pvp
Рядовой
Сообщения: 14
Зарегистрирован: 14.02.2018{, 00:41}
Репутация: 0

Блок для BME280 на библиотеке SparkFunBME280

#7

Сообщение Evolution_pvp » 31.03.2018{, 10:24}

Приветствую всех кто что то пытался сделать.
С проблемой я разобрался, я так понял что в блоке для библиотеки Adafruit по умолчанию прописан адрес датчика 0х77 и его ни как не изменить, мне пришлось одну перемычку резать другую спаять так как именно в моём датчике адрес был 0х76, датчик заработал.
Но мне кажется блок для Sparkfun всё же остаётся актуален так как в этой библиотеке адрес легко меняется.
И есть встроенные фильтры чего нет в Adafruit, но это не точно :rolleyes: .

Дмитруино Uno
Рядовой
Сообщения: 36
Зарегистрирован: 28.01.2018{, 21:21}
Репутация: 1
Откуда: Алтайский край
Имя: Дмитрий

Блок для BME280 на библиотеке SparkFunBME280

#8

Сообщение Дмитруино Uno » 31.03.2018{, 21:21}

Попробуйте, у меня заработало
Датчик_BME280_En.ubi
(117.3 КБ) 230 скачиваний

Evolution_pvp
Рядовой
Сообщения: 14
Зарегистрирован: 14.02.2018{, 00:41}
Репутация: 0

Блок для BME280 на библиотеке SparkFunBME280

#9

Сообщение Evolution_pvp » 01.04.2018{, 01:27}

Дмитруино Uno писал(а):
31.03.2018{, 21:21}
Попробуйте, у меня заработалоДатчик_BME280_En.ubi
Так я же говорю я поменял адрес (паяльником) и все заработало на Adafruit.
Просто хотелось бы иметь этот блок на альтернативной библиотеке.

Дмитруино Uno
Рядовой
Сообщения: 36
Зарегистрирован: 28.01.2018{, 21:21}
Репутация: 1
Откуда: Алтайский край
Имя: Дмитрий

Блок для BME280 на библиотеке SparkFunBME280

#10

Сообщение Дмитруино Uno » 01.04.2018{, 17:26}

Evolution_pvp писал(а):
01.04.2018{, 01:27}
Дмитруино Uno писал(а):
31.03.2018{, 21:21}
Попробуйте, у меня заработалоДатчик_BME280_En.ubi
Так я же говорю я поменял адрес (паяльником) и все заработало на Adafruit.
Просто хотелось бы иметь этот блок на альтернативной библиотеке.
этот блок под 76 адрес, как у и у меня датчик, но не работало пока не нашел ошибку в блоке

hatul
Сержант
Сообщения: 147
Зарегистрирован: 06.05.2017{, 18:40}
Репутация: 0
Откуда: Netanya

Блок для BME280 на библиотеке SparkFunBME280

#11

Сообщение hatul » 01.04.2018{, 17:46}

Evolution_pvp писал(а):
01.04.2018{, 01:27}
Так я же говорю я поменял адрес (паяльником)
А почему нельзя в библиотеке поменять адрес!? Я менял,все работает. Мне почему то кажется,что это проще чем паяльником.

Evolution_pvp
Рядовой
Сообщения: 14
Зарегистрирован: 14.02.2018{, 00:41}
Репутация: 0

Блок для BME280 на библиотеке SparkFunBME280

#12

Сообщение Evolution_pvp » 03.04.2018{, 20:57}

hatul писал(а):
01.04.2018{, 17:46}
Evolution_pvp писал(а):
01.04.2018{, 01:27}
Так я же говорю я поменял адрес (паяльником)
А почему нельзя в библиотеке поменять адрес!? Я менял,все работает. Мне почему то кажется,что это проще чем паяльником.
Тыкните носом где что менять, и можно ли это в блоке поменять?
По подробнее если можно.

Дмитруино Uno
Рядовой
Сообщения: 36
Зарегистрирован: 28.01.2018{, 21:21}
Репутация: 1
Откуда: Алтайский край
Имя: Дмитрий

Блок для BME280 на библиотеке SparkFunBME280

#13

Сообщение Дмитруино Uno » 04.04.2018{, 04:09}

Evolution_pvp писал(а):
03.04.2018{, 20:57}
hatul писал(а):
01.04.2018{, 17:46}

А почему нельзя в библиотеке поменять адрес!? Я менял,все работает. Мне почему то кажется,что это проще чем паяльником.
Тыкните носом где что менять, и можно ли это в блоке поменять?
По подробнее если можно.
надо добавить в declare строчку: #define BME280_ADDRESS 0x76 (если не заработает попробуйте в скобках (0х76)

hatul
Сержант
Сообщения: 147
Зарегистрирован: 06.05.2017{, 18:40}
Репутация: 0
Откуда: Netanya

Блок для BME280 на библиотеке SparkFunBME280

#14

Сообщение hatul » 04.04.2018{, 19:21}

Evolution_pvp писал(а):
03.04.2018{, 20:57}
Тыкните носом где что менять
Для начала определись-у тебя BME280 или BMP280. У BMP280 адрес 0х76.Для него надо поправить библиотеку.У него нет показаний влажности. У BMЕ280 есть влажность,у него адрес 0х77. И библиотеку править не надо. Я имею в виду библиотеку Adafruit_BMP280_Library. Какая у тебя подключена библиотека можно узнать так - в пректе жмешь правой кнопкой на блок BME280,выбираешь "редактирование", и в разделе "Библиотеки" смотришь какие библиотеки подключены.

Evolution_pvp
Рядовой
Сообщения: 14
Зарегистрирован: 14.02.2018{, 00:41}
Репутация: 0

Блок для BME280 на библиотеке SparkFunBME280

#15

Сообщение Evolution_pvp » 05.04.2018{, 00:20}

Дмитруино Uno писал(а):
04.04.2018{, 04:09}
Evolution_pvp писал(а):
03.04.2018{, 20:57}

Тыкните носом где что менять, и можно ли это в блоке поменять?
По подробнее если можно.
надо добавить в declare строчку: #define BME280_ADDRESS 0x76 (если не заработает попробуйте в скобках (0х76)
Спасибо, нужно попробовать, вот только перепаивать обратно что то не охота, чуточку бы раньше ответили...

Отправлено спустя 10 минут 39 секунд:
hatul писал(а):
04.04.2018{, 19:21}
Evolution_pvp писал(а):
03.04.2018{, 20:57}
Тыкните носом где что менять
Для начала определись-у тебя BME280 или BMP280. У BMP280 адрес 0х76.Для него надо поправить библиотеку.У него нет показаний влажности. У BMЕ280 есть влажность,у него адрес 0х77. И библиотеку править не надо. Я имею в виду библиотеку Adafruit_BMP280_Library. Какая у тебя подключена библиотека можно узнать так - в пректе жмешь правой кнопкой на блок BME280,выбираешь "редактирование", и в разделе "Библиотеки" смотришь какие библиотеки подключены.
Я же подробно все написал, у меня именно BME280 (с влажностью), но с адресом 0х76, паяльником поменял адрес на 0х77 и все заработало.
BME280.png
BME280.png (266.67 КБ) 2118 просмотров

Дмитруино Uno
Рядовой
Сообщения: 36
Зарегистрирован: 28.01.2018{, 21:21}
Репутация: 1
Откуда: Алтайский край
Имя: Дмитрий

Блок для BME280 на библиотеке SparkFunBME280

#16

Сообщение Дмитруино Uno » 05.04.2018{, 05:14}

у меня такой же датчик, но с 76 адресом, проверял в фл проге через сканирование. работает без прописывания адреса

Evolution_pvp
Рядовой
Сообщения: 14
Зарегистрирован: 14.02.2018{, 00:41}
Репутация: 0

Блок для BME280 на библиотеке SparkFunBME280

#17

Сообщение Evolution_pvp » 05.04.2018{, 22:39}

Интересно как так, а какой блок используете? может какая-то библиотека вам попалась специфическая?
Или мне. %)

Дмитруино Uno
Рядовой
Сообщения: 36
Зарегистрирован: 28.01.2018{, 21:21}
Репутация: 1
Откуда: Алтайский край
Имя: Дмитрий

Блок для BME280 на библиотеке SparkFunBME280

#18

Сообщение Дмитруино Uno » 06.04.2018{, 05:20}

Evolution_pvp писал(а):
05.04.2018{, 22:39}
Интересно как так, а какой блок используете? может какая-то библиотека вам попалась специфическая?
Или мне. %)
блок использую который выложил сверху, сначала он не работал, под редактировал и заработал

dimacyc
Рядовой
Сообщения: 3
Зарегистрирован: 19.03.2018{, 11:07}
Репутация: 0
Имя: Дима

Блок для BME280 на библиотеке SparkFunBME280

#19

Сообщение dimacyc » 07.04.2018{, 07:31}

А что именно подредактировать в блоке?

Дмитруино Uno
Рядовой
Сообщения: 36
Зарегистрирован: 28.01.2018{, 21:21}
Репутация: 1
Откуда: Алтайский край
Имя: Дмитрий

Блок для BME280 на библиотеке SparkFunBME280

#20

Сообщение Дмитруино Uno » 07.04.2018{, 07:44}

dimacyc писал(а):
07.04.2018{, 07:31}
А что именно подредактировать в блоке?
он уже отредактирован
библиотека Adafruit

Ответить

Вернуться в «Разработка пользовательских блоков»