Главная » Статьи » Проекты

Логгер температуры 2.0

  

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

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

 Схема устройства базируется на микроконтроллере ATMega64. В отличии от приведенной ранее схемы в нее добавлены цифровой датчик DS18B20 и радиомодуль NRF24L01 - они оба используются для получения данных об уличной температуры (на выбор).



 Общий вид платы без дисплея. Ее общее описание уже публиковалось здесь С тех пор мало что изменилось:)

 


 К свободным выводам, под микроконтроллером слева (туда выведены контакты SPI), припаян радиомодуль NRF24L01. Он расположился с обратной стороны платы. Обратите внимание, что радиомодуль должен питаться напряжением не выше 3,6 вольт. Поэтому он запитан от имеющегося на плате стабилизатора напряжения на 3,3 вольта (U1 на схеме)



Теперь принимать температуру с улицы или откуда-то еще можно по радиоканалу. 


 А для универсальности (если нет в наличии трансиверов NRF) уличную температруру можно брать от датчика DS18B20, который подлкючается к выводу PortA.3 (на плате под этот случай выведены контактные площадки, останется только подпаять подтягивающий резистор сопротивлением 4,7кОм). Все махинации с выбором датчиков организованы в меню устройства.




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




 Смотрим небольшое видео






Радиопередатчик 


 Передатчиком служит плата с микроконтроллером ATmega8, которую описывал здесь тыц

Датчик подключается к выводу PortC.0 поэтому схема передатчика температуры в конечном варианте выглядит так


 Питание передатчика должно находится в диапазоне 3,0-3,6 вольт (если ниже - откажется работать датчик ds18b20, выше - повышается опасность спалить трансивер). Для тестирования  запитывал схему парой старых батареек, общим напряжением 2,98 вольт. 






 Еще одно небольшое видео, с демонстрацией приема температуры от передетчика




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





Организация меню


 Основное меню содержит четыре пункта



Review - просмотр логов температуры за прошедшие дни. Здесь можно посмотреть максимум/минимум температур за текущие сутки, а также среднесуточную температуру.




 Transmit - здесь мы можем послать все накопленные данные в компьютер (в любую терминальную программу, скорость COM порта 38400 бод). На выбор два формата в котором отправляются данные. CSV это формат экселя, с разделителем-точкой. Удобно использовать для построения графиков прямо в таблицах Windows Excel. 




Setting - тут собсно все настройки датчиков, часов, а также стирание внешней энергонезависимой памяти. 



Info - версия прошивки и информация об авторе. 


 Устройство пока находится в стадии доработки, поэтому информация получилась обобщенной. Но основные возложенные на него функции уже выполняет. В дальнейшем планирую добавить управление и настройки напрямую с ПК. Опыт, хоть и не большой, в написании программ на PB уже имеется:)

 


Прошивка логгера

Код для передатчика на Attiny2313 (спасибо Max'у за тестирование)

Прошивка передатчика

Печатная плата 




Категория: Проекты | Добавлено: 02.02.2013
Просмотров: 53438 | Комментарии: 175 | Теги: измерения, eeprom, BMP085, NRF24L01, датчик влажности, dht11, DS1307 | Рейтинг: 4.9/14
Всего комментариев: 175« 1 2 3 4 5 6 »
145 Dmitriy   (06.07.2014 19:05) [Материал]
Все отлично заработало, автору спасибо!

+1   Спам
144 klazarev   (20.04.2014 20:54) [Материал]
Вот пересчет реальных давления и температуры по формуле из http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf
Давление от температуры практически не зависит и места меньше занимает.
https://docs.google.com/document/d/1UFZFfu0OaCOTHOlbT37UTLlUV7gPWcMFaH7Xtl7Px9M/edit?usp=sharing

143 Rusivan   (10.04.2014 10:53) [Материал]
Скажите, какое потребление у заоконного датчика? На сколько хвататет батреек?

142 sany2   (20.03.2014 21:06) [Материал]
Фьюзы походу не при чём.Дисплей труп наверно.У меня так же после переполюсовки работал

141 AndriyGus   (20.03.2014 20:10) [Материал]
Нет, не пусто. На дисплее беспорядочно мерцают квадраты. Если нажимать на кнопки, то видно слабые изменения. http://my-files.ru/39cm2x.2014-03-20 16.49.08.jpg Так вот я думаю, проблема в фьюзах или дисплей черезчур китайский. Покупал здесь http://arduino-ua.com/prod319-LCD_20x4_s_podsvetkoi.

140 sany2   (20.03.2014 18:17) [Материал]
Есть ещё способ проверить правильность фьюз.Зашиваем,вытаскиваем кварц-всё,мега мёртвая(не читается и не шьётся).Вставляем кварц обратно-всё норм.

139 sany2   (20.03.2014 18:12) [Материал]
Попробуй добавь галочку CKSEL0.А на дисплее вообще пусто?

138 AndriyGus   (20.03.2014 17:32) [Материал]
Добрый день! Помогите с фьюзами меги64. Пробовал прошивать и первой прошивкой и второй, уже и мегу менял, а дисплей чистый!Я поставил такие: http://my-files.ru/g3p85a.Fuse Bits.JPG подскажите, пожалуйста, где я ощибся.

137 max   (15.03.2014 23:03) [Материал]
Выкладывайте на любой файлообменник, а ссылку сюда.

136 Terminal999   (15.03.2014 21:15) [Материал]
Как выложить свою печатную плату в Sprint-Layout? Если автор не против!

135 Terminal999   (10.03.2014 18:48) [Материал]
Sany 2. Большое человеческое спасибо!

134 gregos   (10.03.2014 16:57) [Материал]
Sany 2 большое спасибо! Всё заработало!

133 gregos   (10.03.2014 15:21) [Материал]
Удалил свой BASCOM AVR 2.0.7.1 Скачал и установил BASCOM 1.11.9.8 Перекомпилил проект из статьи. Ура! Работает. Сейчас попробую добавить термокомпенсацию!

132 gregos   (10.03.2014 14:30) [Материал]
Сейчас попробую.Потом отпишусь о результате.

131 sany2   (10.03.2014 13:38) [Материал]
Насколько я помню автор тогда пользовался версией BASCOM-AVR 1.11 - может в этом дело?

130 gregos   (10.03.2014 13:25) [Материал]
У меня есть копия архива из статьи.

129 sany2   (10.03.2014 13:21) [Материал]
А рабочий HEX откуда берёте?

128 gregos   (10.03.2014 13:19) [Материал]
Беру из статьи "logger2.0.bas" ничего не меняю, компилирую, прошиваю, результат тот-же: чёрные квадраты.

127 sany2   (10.03.2014 12:40) [Материал]
уже интересней.А вы попробуйте скомпилировать исходник из статьи и прошить - что будет?

126 gregos   (10.03.2014 12:36) [Материал]
Sany 2 большое спасибо за поддержку! Но результат тот-же: 1 и 3 строки чёрные квадраты и всё мёртво. Перепрошиваюсь на прошивку из статьи-работает. Ума не приложу в чём дело.

125 sany2   (10.03.2014 11:48) [Материал]
Попробуй эту http://yadi.sk/d/qdV6FCeoKEd7y
У себя компилировал.

124 gregos   (10.03.2014 10:47) [Материал]
Может у меня сам BASCOM AVR какой-то нерабочий? Но компиляция проходит до конца, ничего не пишет что там, например, ошибка.

123 gregos   (10.03.2014 10:37) [Материал]
В 1 и 3 строках чёрные квадраты и больше ничего.

122 sany2   (10.03.2014 08:43) [Материал]
Да вроде должно всё работать.ХЗ - не на чем попробовать.A во второй-четвёртой строке данные меняются(думаю вряд-ли)?

121 gregos   (09.03.2014 23:40) [Материал]
Ребята, помогите, пожалуйста, с перекомпиляцией прошивки для Логгера 2.0 Хочу добавить термокомпенсацию для BMP 085, так как давление показывает неправильно. Открываю "BMP-085.bas" в самом конце меняю кусок программы:
T = T / 10
Temperatur = Fusing(t , "###.#")
Potenz5255 = 1 / 5.255
Altitude = P / 101325
Altitude = Altitude ^ Potenz5255
Altitude = 1 - Altitude
Altitude = Altitude * 44330
Druck = P
Druck = Druck / 133.3224
'Druck = Druck * 0.0075
'Druck = Druck / 100
Luftdruck = Fusing(druck , "####.##")

Закрываю (сохраняю)"BMP-085.bas"
Теперь давление не должно зависеть от температуры. (Я так думаю)
После перекомпиляции и перепрошивке ATmega 64 в 1 и3 строках индикатора чёрные квадраты. Прошиваю назад прежней прошивкой-работает. Помогите готовой прошивкой с компенсацией или подскажите как правильно перекомпилировать. Пожалуйста! Заранее благодарен.

120 sany2   (07.03.2014 07:23) [Материал]
Jtag отключите

119 AndriyGus   (07.03.2014 05:15) [Материал]
Здравствуйте! Вопрос к повторившим конструкцию. Помогите с фьюзами меги64, уже неделю мучаюсь! И даташит смотрел - результату ноль! Мега пишется, читается, а на дисплее - пустота!

118 sany2   (04.03.2014 10:29) [Материал]
config pinb.0=output
do
......
if t1>20 then '20 заданная температура
portb.0=1
else
portb.0=0
end if
......
loop

117 Terminal999   (04.03.2014 01:34) [Материал]
Подскажите пожалуйста как реализовать реле к передатчику. Чтобы можно было при определенной температуре включать и выключать реле.

116 Terminal999   (04.03.2014 01:12) [Материал]
Все разобрался, был плохой контакт GND(земля).

1-30 31-60 61-90 91-120 121-150 151-175
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация
Логин:
Пароль: