Миниатюрный комнатный термометр на Attiny85 c OLED

neid86@gmail.com
Offline
Зарегистрирован: 28.10.2014

gzp13 пишет:

Ну работает, может и так как автор хотел. Но в моем понимании термометр хотя бы должен в течении 30сек выдать точную температуру, а он по несколько десятых изменяет и то при нажатии на кнопку.

Начем с того что не самая лучшая библиотека применена для датчика, рабочая но кривая... У меня тоже были проблемы по всем показаниям. Лично я брал адафруит библу и выкидывал из неё все не нужное мне. ...но пока вы сами не изучите работу датчика и как его опращивать вы врятли поймете что у вас получилось, тут по гарантии ни кто код не допиливает!

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

gzp13 пишет:

Собрал,все работает) Спасибо за проект. Но вот влажность показывает нулевую. Температуру хочется выводить с одним знаком после запятой( не сообразил как это сделать).Так и должно быть, в комнате 24гр, показывает 24гр, кладу к окну,там 4гр, а этот показывает 24гр, при след.нажатии на кнопку показания уменьшаются на 0.2-0.4гр, еще раз нажимаем-еще на 0.2-0.5гр, а то и на пару сотых. По идее температура должна уменьшаться сразу, ну пусть с небольшой задержкой., но не так же, она изменяется только после нажатия кнопки и то совcем по чуть чуть.

И еще цикл индикации длится не 38сек, а каких то 5-6сек( частота 1МГц). При частоте 8МГц индикация продолжается 38сек.Но  температура не меняется пока этот цикл не завершится. Получается что этот термометр не нужен, так как он слишком инертный.

Ну чудо :) ..... вечером из любопытства положу термометр ближе к холодному месту, проверю.
При нажатии на кнопку считываются данные с BME280 и циклически показываются, так что логично - во время отображения данные и не будут меняться.
У вас явно проблемы с фьюзами на МК, поэтому и таймер на 38 секунд не корректно отображает.
И термометр в принципе не рассчитан был на отображения температур ближе к нулю градусов и тем более отрицательных температур, соотвественно у вас и выходит вместо 4х градусов - -> 24. Ниже блок вывода - там тупо математика - исправьте по своему вкусу.

для вывода одно знака после запятой исправить блок строк с 191 по 200 отсюда

Миниатюрный комнатный термометр на Attiny85 c OLED | Аппаратная платформа Arduino

на

1default: { // show temp
2    char str[6] = "";
3    str[0] = (temp_raw / 1000) + 0x30;
4    str[1] = (temp_raw % 1000) / 100 + 0x30;
5    str[2] = '.';
6    str[3] = ((temp_raw % 1000) % 100) / 10 + 0x30;
7    str[4] = 0x00;
8    OzOled.printBigNumber(str, 0, 0);
9  }

 

gzp13
Offline
Зарегистрирован: 06.04.2015

Я к тому, что очень медленная динамика изменения температуры. Выношу на балкон из помещения где 25гр, даже через час при нажатии на кнопку температура точно не индицируется. Просто она по несколько десятых уменьшается. По поводу фьюзов. Поставил частоту 8МГц дисплей работает 38сек. Рядом китайский термометр, так вот на нем видно как меняется температура, причем быстро изменяется.

Увеличить бы время опроса датчика)

Green
Offline
Зарегистрирован: 01.10.2015

andycat пишет:

Питается от батареек CR2032, в спящем режиме потребление 7 мкА, в режиме отображения <10мА


И батарейку нужно другую, не?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Green пишет:

andycat пишет:

Питается от батареек CR2032, в спящем режиме потребление 7 мкА, в режиме отображения <10мА


И батарейку нужно другую, не?

э...зачем? кому нужно ? :)
наверное можно любую на 3.3 вольта....

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

gzp13 пишет:

Я к тому, что очень медленная динамика изменения температуры. Выношу на балкон из помещения где 25гр, даже через час при нажатии на кнопку температура точно не индицируется. Просто она по несколько десятых уменьшается. По поводу фьюзов. Поставил частоту 8МГц дисплей работает 38сек. Рядом китайский термометр, так вот на нем видно как меняется температура, причем быстро изменяется.

Увеличить бы время опроса датчика)

там нет понятия время опроса датчика, код работы с BME280 не мой, содран с какого то импортного сайта от attiny.
Вечером ближе к балкону положу датчик, там где градусов на 10 меньше, и нажму кнопку - посмотрю как изменяться данные, сфоткаю. Вообще вряд ли он такой инерционный, ему (датчику) просто необходимо принять температуру окружающего воздуха, думаю минут несколько ему достаточно. Например у меня в деревне есть железка на BMP280, как приезжаю, открываю все окна/двери проветриться, температура падает на глазах.

Green
Offline
Зарегистрирован: 01.10.2015

andycat пишет:

э...зачем? кому нужно ? :)
наверное можно любую на 3.3 вольта....

Ну дак, это...

Standard Continuous Discharge Current           0.3 mA
Maximum Continuous Discharge Current              3 mA

И на сколько хватает?

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Green пишет:

andycat пишет:

э...зачем? кому нужно ? :)
наверное можно любую на 3.3 вольта....

Ну дак, это...

Standard Continuous Discharge Current           0.3 mA
Maximum Continuous Discharge Current              3 mA

И на сколько хватает?

 

в среднем на 7 месяцев, смотрю данные минимум 2 раза в день утром и вечером (особенно давление интересует, т к непонятно отчего иногда голова болит, то ли перепил, то ли давление прыгает :)

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

 

Green
Offline
Зарегистрирован: 01.10.2015

Ну, понятно что дисплей. Только около 10 ма, всё же!
 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Фотки с разницей 10 минут в разных климатических зонах квартиры :) 

Alexxx
Offline
Зарегистрирован: 06.07.2017

Подскажите, пожалуйста. Почему у меня на Digispark USB не помещается?

1text section exceeds available space in board
2Sketch uses 7564 bytes (125%) of program storage space. Maximum is 6012 bytes.
3Global variables use 93 bytes of dynamic memory.

Понял, что в Digispark 2 кБ уходит на загрузчик. Где можно урезать библиотеки чтобы поместилось

 

 

Green
Offline
Зарегистрирован: 01.10.2015

andycat пишет:

Фотки с разницей 10 минут в разных климатических зонах квартиры :)


Китайцы светодиоды на 2032 подключают и ничё. Только понятно что это экстрим. И хватает на зимний вечер.)

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Alexxx пишет:

Где можно урезать библиотеки чтобы поместилось

нигде, использовать голый МК с программированием через USBASP
точнее наверняка можно, но долго/не  просто/нет времени.

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Green пишет:

andycat пишет:

Фотки с разницей 10 минут в разных климатических зонах квартиры :)


Китайцы светодиоды на 2032 подключают и ничё. Только понятно что это экстрим. И хватает на зимний вечер.)


Не очень понял, но железка работает несколько месяцев.

Green
Offline
Зарегистрирован: 01.10.2015

Ну, так я ж говорил уже. Не рассчитана 2032 на 10 ма. На какое время дисплей включается?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Green пишет:

Ну, так я ж говорил уже. Не рассчитана 2032 на 10 ма. На какое время дисплей включается?


Два три раза в день на 30 секунд.

Green
Offline
Зарегистрирован: 01.10.2015

Ну, работает и хорошо.) Случай чего можно будет поменять на 2330, 2354 и т.п.

b707
Offline
Зарегистрирован: 26.05.2017

gzp13 пишет:

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

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

У меня дома дорогая покупная метеостанция Орегон Сайентифик с выносным дачиком - если датчик например принести с балкона в комнату, то температура его меняется постепенно, по нескольку десятых градуса и занимает этот процесс десятки минут.

makks
Offline
Зарегистрирован: 19.09.2021

b707 пишет:

 дорогая покупная метеостанция Орегон Сайентифик с выносным дачиком - если датчик например принести с балкона в комнату, то температура его меняется постепенно, по нескольку десятых градуса и занимает этот процесс десятки минут.

Дело не в цене. Для корректного измерения температуры среды должно наступить тепловое равновесие между ней и датчиком. А насколько это быстро произойдет зависит в основном от теплоемкости датчика. А она в свою очередь от материала и массы датчика. Поэтому чем меньше датчик, тем быстрее он будет показывать температуру среды, в которую его поместили. Обычно да - это минуты или даже десятки минут и опрос датчика за это время произойдет несколько раз. Если нужна быстрая реакция  возможно лучше будет применить термопару. Ее маленький шарик (спай) существенно меньше датчика BME280.