А тем временем пока космические корабли бороздят просторы большого театра вселенной, проходят испытания нового логгера температуры, о котором я уже писал чуть ранее, выкладывал для него печатную плату и схему. Помимо прямой обязанности записывать ежедневные показатели температуры, в устройство добавлены датчики давления и влажности, так что получилась полноценная погодная станция.
В основном режиме работы устройство отображает текущие время и дату, значения температуры/влажности/давления измеренных в помещении выводятся во второй строке. В третьей строке идут текущая температура на улице и зарегистрированный максимум/минимум за текущие сутки (для обозначения использованы спецсимволы-закорючки, надеюсь понятно что где:)).
Схема устройства базируется на микроконтроллере 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’у за тестирование)
Последние статьи
- Лучшая практика проектирования при размещении компонентов печатной платы
- Android 6.0 на lancer X
- Простой усилитель мощности класса АВ своими руками.
- Двухтактный ультралинейный ламповый УНЧ на EL84 (6П14П).
- Люксметр на ATmega8 и цифровом датчике BH1750
- Контроллер для светодиодной ленты с ИК управлением
- Самодельный LED светильник на основе ИК датчика HC-SR501
- Простой усилитель низкой частоты на TDA7377 и NE5532
- Простейший звонок с двумя мелодиями
- LED Cube 8x8x8 на Arduino с RTC