• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Разные показания с ds18b20, bmp180 и вре11 :) у 8266-03 и 12e

Thorn

New member
Ладно оставим ds пока в покое. Почему тогда барометры bmp180 (оба) завышают показания температуры более чем на 2 град именно с 8266-03, а с node 8266-12e показывают отклонение от заведомо верного не более чем в 0,5град? При этом показания давления они передают с точностью до 0,08 ммртст. одновременно что на 03 что на 12e. Они подключены по i2c и им ненужны особо никакие подтяжки. Такое ощущение что именно темпиратуру 03 платка нелюбит :)
 

CodeNameHawk

Moderator
Команда форума
Они подключены по i2c и им ненужны особо никакие подтяжки.
Гадалка вам посоветовала?

Интерфейсная шина IIC (I2C) | Электроника для всех
"Передача/Прием сигналов осуществляется прижиманием линии в 0, в единичку устанавливается сама, за счет подтягивающих резисторов. Их ставить обязательно всегда! Стандарт!"

Влияние номинала подтягивающих резисторов на сигнал шины I2C — Student-proger.ru

Читайте документацию.
 

AndrF

Active member
Действительно заинтриговали. Впрочем, после того как вчера оказалось что у меня матричный светодиодный индикатор вообще без питания работал (оказалось что ему достаточно питания по линиям SPI) - в любые чудеса поверишь...

Надеюсь что сможете разобраться - причина довольно интересна.
 

AndrF

Active member
"Передача/Прием сигналов осуществляется прижиманием линии в 0, в единичку устанавливается сама, за счет подтягивающих резисторов. Их ставить обязательно всегда! Стандарт!"
Он же использовал модули, а там резисторы уже стоят. В модулях, если их включено несколько на одну шину, обычно приходится выпаивать лишние резисторы.
 

Thorn

New member
Гадалка вам посоветовала?

Интерфейсная шина IIC (I2C) | Электроника для всех
"Передача/Прием сигналов осуществляется прижиманием линии в 0, в единичку устанавливается сама, за счет подтягивающих резисторов. Их ставить обязательно всегда! Стандарт!"

Влияние номинала подтягивающих резисторов на сигнал шины I2C — Student-proger.ru

Читайте документацию.
имел ввиду что всякие часики ds331 ровно как и мои bpm уже имеют "подтяжки". Случай да я бы понял хитрый если бы увидел именно завышение на 0,5 -1 град а тут именно 4 и более по темпиратуре только. Собрал ДВЕ идентичные схемы за исключением самого контроллера и заливаю в них идентичные скетчики от своих до примеров и постоянство удивляет завышения именно. Я потому скрины в первом посте и прилепил то. В итоге уже меняя сами датчики понял что причина в самой 8266-03 именно, (подятжка, питание, чтото есчо :) ) но никак ни датчики виноваты ибо разные партиитам и прочее, ставлю в 12е их же - становятся ожидаемыми, а в 03 - завышаютсо.
и да... чудес не бывает. К примеру сегодня нашел есчо один ds18 с разрядностью 0,5 целых, тоесть он не видит 28,1град он видит или 28,0 или 28,5 - так что тут ухо востро.
 

AndrF

Active member
По DS18B20 - в вашем скетче я не вижу интервала на конвертирование. Вы запустили конвертацию и тут же пытаетесь прочитать данные, а так нельзя - в зависимости от требуемого разрешения должен быть интервал от 95 до 750 миллисекунд.
 

Thorn

New member
Думал про эту реализацию однако поделка должна подключаться к вафле отправлять параметры и засыпать на минуту или более, в тестах что проводил такой режим набирает в среднем 80...82мА\час, порядка 1-2 сек если вериить тестеру на передачу данных. Один цикл, нет задержек кроме перехода в сон и отключение клиента. Поэтому цикл один опрос датчика - ррасчёт - отправка сон... нет постоянного опроса. А так да я делаю примерное так.
Код:
//=========== Обработка температур
void tempDallas(){
  if (tzad<millis()&&flagDallas==1){
    temp=DS18B20(addr1);
    prvMlsTemp=millis();
    flagDallas=0;
  }
}
а в loop() так
Код:
  if (millis()-prvMlsTemp>zadTime[6]&&flagDallas!=1){dallas();}
    tempDallas();
где zadTime массив задержек и выбирается нужный, tzad=750.....1000 мсек
 

Thorn

New member
Да писал я уже и про библиотечки и про примеры... говорю же - не обратился бы если бы лежало на поверхности, несмотря на мои НЕглубокие знания.
Однако нашел ответы на свои вопросы - почему некоторые далласы кои я считал "мёртвыми" и врунишками по причине неверных показаний - оказались вполне себе хорошими, просто я в setup() - НИКОГДА неустанавливал их разрядность и она по сути плавала от 0,5 до 0,06 .... такие пироги. Счас всё пучком - в код внёс правочки.
И теперь о завышени именно температурных показателей - у меня все dht11+bmp180+ds18b20были навесным монтажём и основные контакты бли на вре11 вот у него + сучок был очнеьь небрежно припаян. Так nxj полдня гоняю пока в тестах и результат приемлемый.
 

enjoynering

Well-known member
кусочек, дверки, температурку, врунишками, правочки...

это адь и израиль.
 
Сверху Снизу