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

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

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

Как можно было судить выше, сердцем схемы является микроконтроллер 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) — то есть регулируемый вариант, задать необходимое напряжение при таком выборе необходимо будет при помощи 2-х резисторов, подключаемых к микросхеме в соответствии с даташитом на нее. Самым экономичным вариантом замены этой микросхемы стабилизатора будет замена ее на стабилитрон на нужное напряжение (параметрический стабилизатор на стабилитроне). Номиналы конденсаторов в обвязках микросхем стабилизаторов напряжения можно варьировать в широких пределах в области взятого порядка.

Как было указано выше, в качестве датчиков были использованы 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-битATmega81
IC2
ИС I2C интерфейсаPCA95171
IC3
Датчик атмосферного давленияBMP1801
IC4
Датчик температурыDHT111
VR1
Линейный регуляторL7805AB1
VR2
Линейный регуляторAMS1117-3.31
VD1-VD4
Выпрямительный диод1N40074
C1, C3-C5, C7, C8
Конденсатор100 нФ6
C2, C6, C9
Электролитический конденсатор220 мкФ3
R1
Резистор22 Ом1
R3-R7
Резистор10 кОм5
R2
Подстроечный резистор10 кОм1
3296W-1-103LFR8
Резистор4.7 кОм1
HG1
LCD-дисплейSC16021
На базе HD44780Tr1
ТрансформаторBV EI 382 11891
220В — 9В ACS1
Тактовая кнопкаTC-A1091
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.