Комнатная метеостанция

Представляю еще один проект на основе микроконтроллера AVR Atmega8. На этот раз будем конструировать комнатную метеостанцию. В устройстве применяется два датчика — DHT11 и BMP180. Первый мы будем использовать в качестве измерителя влажности воздуха, а второй в качестве измерителя атмосферного давления, а также, раз уж он имеет более точный термодатчик, то и в качестве термометра для измерения температуры в комнате. В итоге с помощью этой схемы можно отслеживать основные параметры погоды, так сказать. Если добавить датчики скорости и направления воздушных потоков, то данную схему можно будет переквалифицировать в наружнюю метеостанцию. Тем не менее сейчас рассмотрим только комнатный вариант. 

Схема устройства:

Схема комнатной метеостанции на AVR-микроконтроллере

Как можно было судить выше, сердцем схемы является микроконтроллер Atmega8. Данный контроллер можно использовать в любом корпусе — DIP-28 или TQFP-32, не имеет значения, только собственные предпочтения  или особенности изготавливаемой печатной платы. Резистор R3, подтягивающий плюс питания к выводу PC6, предотвращает самопроизвольный перезапуск микроконтроллера в случае каких-либо случайных наводок на схему. Далее в качестве индикатора измеряемых параметров используется жидко кристаллический экран на две строки по шестнадцать символов в каждой — SC1602. Данный ЖК экранчик изготовлен на базе контроллера HD44780, поэтому данную модель можно заменить на другую на этом же контроллере или может быть совместимую с ним. Подсветка в данном варианте схемы на ЖК дисплее организована через выводы «А» и «К» (то есть анод и катод подсветки — дисплей имеет дополнительные выводы для подключения подсветки). Однако, просто подключить питание к этим выводам будет не правильно, нужно подключать 5 вольт через резистор ограничивающий ток, чтобы не сжечь подсветку. По схеме это резистор R1, его номинал составляет 22 Ом, чем больше номинал, тем менее ярко будет подсвечиваться дисплей. Номинал менее 22 Ом не рекомендую использовать, так как может появиться риск вывода из строя подсветки экрана при длительном использовании.

Питается вся схема от простого модуля питания на силовом трансформаторе. Переменное напряжение выпрямляется четырьмя диодами VD1 — VD4 марки 1N4007, пульсации сглаживаются конденсаторами C1 и C2. Номинал конденсатора C2 можно увеличить до 1000 — 4700 мкФ. Четыре выпрямительных диода можно заменить одним диодным мостом. Трансформатор применен марки BV EI 382 1189 — преобразует 220 вольт переменного тока в 9 вольт переменного тока. Мощность трансформатора составляет 4,5 Вт, этого вполне достаточно и еще с запасом. Такой трансформатор можно заменить любым другим силовым трансформатором, подходящим для Вас. Либо данный питающий модуль схемы заменить на импульсный источник напряжения, можно собрать схему обратноходового преобразователя либо применить иже готовый блок питания от телефона, например — все это дело вкусов и потребностей. Выпрямленное напряжение с трансформатора стабилизируется на микросхеме линейного стабилизатора L7805, ее можно заменить на отечественный аналог пяти вольтового линейного стабилизатора КР142ЕН5А, либо применить другу микросхему стабилизатора напряжения в соответствии с подключением ее в схеме (например LM317 или импульсные стабилизаторы LM2576, LM2596, MC34063 и так далее). Далее 5 вольт стабилизируются другой микросхемой — AMS1117 в исполнении, дающей на выходе 3,3 вольта. Это напряжение используется для питания датчика атмосферного давления BMP180 в соответствии с документацией. Стабилизатор напряжения AMS1117 можно также заменить на исполнение ADJ (AMS1117ADJ) — то есть регулируемый вариант, задать необходимое напряжение при таком выборе необходимо будет при помощи двух резисторов, подключаемых к микросхеме в соответствии с даташитом на нее. Самым экономичным вариантом замены этой микросхемы стабилизатора будет замена ее на стабилитрон на нужное напряжение (параметрический стабилизатор на стабилитроне). Номиналы конденсаторов в обвязках микросхем стабилизаторов напряжения можно варьировать в широких пределах в области взятого порядка.

Как было указано выше, в качестве датчиков были использованы DHT11 и BMP180:

DHT11 используется в схеме только как датчик влажности воздуха, данные датчик передает контроллеру через второй вывод, подтянутый резистором R8, к плюсу питания. Номинал этого резистора можно варьировать до 10 кОм. На фото использованы два резистора по 2,7 кОм, соединенных последовательно. Вывод 3 датчика не используется вовсе, выводы 1 и 4 используются для подключения питания. Датчик DHT11 выбран в соответствии с оптимальным соотношением цена / функционал — для комнатных условий самый лучший вариант, для применения на улице лучше подойдет DHT21 в корпусе более предназначенном для применения на улице. 

Датчик BMP180 используется как термометр и как датчик атмосферного давления. Он выбран для измерения температуры, потому что в отличие от DHT11, он измеряет температуру окружающей среды с точностью до 0,1 градуса. BMP180 требует питания в 3,3 вольта, а микроконтроллер питается от 5 вольт. Именно для питания этого датчика и используется дополнительный стабилизатор VR2 на AMS1117. Также для надежной передачи данных от датчика к контроллеру нужно согласовать уровни I2C протокола передачи, который используется. Для этой цели применена микросхема согласования уровней PCA9517 компании NXP. Резисторы R4 — R7 необходимы для работы I2C интерфейсов микросхем. С их помощью на выводах микросхем образуются сигналы логического нуля и единицы.

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

На картинке выше представлена диаграмма работы I2C интерфейса датчика атмосферного давления BMP180.

Номиналы можно варьировать от 2,2 кОм до 10 кОм. При сборке схемы был использован китайский модуль на базе датчика BMP180. Такой модуль содержит все необходимое для работы с датчиком — стабилизатор напряжения на 3,3 вольта, конденсаторы необходимые в обвязке датчика и стабилизатора, а также pull-up резисторы (подтягивающие к плюсу питания), необходимые для работы по I2C.

Также в схеме предусмотрена кнопка сброса микроконтроллера, подключенная к выводу PC6 — reset, замыкающая этот вывод на землю при необходимости сброса. Все резисторы постоянного сопротивления по схеме используются мощностью 0,25 Вт или можно использовать в варианте SMD типоразмера 1206. Также конденсаторы емкостью 100 нФ можно использовать в SMD типоразмера 0805 или 1206.

Устройство, собранное по традиции на макетной печатной плате для микроконтроллера Atmega8 на фото ниже:

Для программирования микроконтроллера Atmega8 для данного устройства необходимо знать конфигурацию фьюз битов:

Микроконтроллер работает от внутреннего генератора на 8 МГц. Для программирования использовался программатор USBasp перепрошитый в AVR doper (STK500).

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

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК AVR 8-бит ATmega8 1
IC2 ИС I2C интерфейса PCA9517 1
IC3 Датчик атмосферного давления BMP180 1
IC4 Датчик температуры DHT11 1
VR1 Линейный регулятор L7805AB 1
VR2 Линейный регулятор AMS1117-3.3 1
VD1-VD4 Выпрямительный диод 1N4007 4
C1, C3-C5, C7, C8 Конденсатор 100 нФ 6
C2, C6, C9 Электролитический конденсатор 220 мкФ 3
R1 Резистор 22 Ом 1
R3-R7 Резистор 10 кОм 5
R2 Подстроечный резистор 10 кОм 1 3296W-1-103LF
R8 Резистор 4.7 кОм 1
HG1 LCD-дисплей SC1602 1 На базе HD44780
Tr1 Трансформатор BV EI 382 1189 1 220В — 9В AC
S1 Тактовая кнопка TC-A109 1