Простая метеостанция с ЖК-экраном

Простая метеостанция с ЖК-экраном

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

Что понадобится

    — микроконтроллер Arduino Uno
    — термистор (терморезистор)
    — сопротивление на 10 кОм
    — семисегментный индикатор
    — макетная плата
    — соединительные провода «папа-папа»

Простая метеостанция с ЖК-экраном

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

Мы будем собирать устройство на макетной плате. Схему можно поправить за считанные мгновения и не придётся ничего перепаивать.

Шаг первый. Подключаем термистор

У меня самый простой термистор: если его нагреть, сопротивление уменьшится, если охладить — вырастет. Такие элементы называют термисторами с отрицательным температурным коэффициентом или NТС (от английских слов Negative Temperature Coefficent).

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

Простая метеостанция с ЖК-экраном

При комнатной температуре, 25 по Цельсию, его сопротивление равно 10 килоомам — столько же, сколько и у постоянного резистора. Теперь выходное напряжение цепи зависит только от сопротивления термистора. Измерю напряжение, подключив цепь к контакту А5.

Простая метеостанция с ЖК-экраном

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

Простая метеостанция с ЖК-экраном

Чтобы не возиться с подключением экрана раньше времени — вдруг мой сенсор не заработает — выведу показания с платы на экран компьютера. Передам данные по USB, с помощью интерфейса последовательного порта. Запищу передачу командой Serial.begin. Текст сообщений буду составлять с помощью функций Serial.print и Serial.println. Первая просто добавляет данные к текущей строке, вторая — сначала добавляет данные, затем заканчивает строку. Загружу в Ардуинку первую программу.

Программа загрузилась, но ничего не происходит. Чтобы увидеть данные, нужно запустить монитор последовательного порта.

Простая метеостанция с ЖК-экраном

Это можно сделать в верхнем меню редактора кода (монитор порта находится во вкладке инструменты) или с помощью комбинации клавиш Ctrl+Shift+M.

Простая метеостанция с ЖК-экраном

При комнатной температуре у меня получилось, что напряжение срезалось вдвое. Это подтверждает, что мой термистор сейчас имеет сопротивление 10 кОм.

Шаг второй. Переводим омы в градусы

Терморезистор меняет сопротивление нелинейно: зависимость логарифмическая и описывается многоэтажной формулой. Придётся разбираться.

Простая метеостанция с ЖК-экраном

T0 и R0 — это основные характеристики термистора. Это температура (T0) при которой сопротивление элемента соответствует номиналу (R0). Температура чаще всего 25 градусов Цельсия, а сопротивление указано на самой детали — 10 кОм.

B — это коэффициент, который можно найти в документации на термистор. Он зависит от материала, из которого сделан сенсор.

Rt — сопротивление термистора при измеряемой температуре мы определили на предыдущем шаге. Значит теперь можем последний член уравнения — текущую температуру T.

Простая метеостанция с ЖК-экраном

Выглядит сложно, но разбивается на два действия. Сначала вычислим логарифм, затем займёмся арифметикой.

Запустим программу и откроем монитор последовательного порта.

Простая метеостанция с ЖК-экраном

Теперь в таблице появилась ещё одна колонка — результаты измерений температуры.

Шаг третий. Подключаем ЖК-экран

Теперь я отучу свою метеостанцию от компьютера: добавлю собственный экранчик и выведу на него температуру в двух шкалах — Цельсия и Фаренгейта.

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

Простая метеостанция с ЖК-экраном

Из кода программы я уберу команды, которые вызывали последовательный порт и группировали данные для отправки на компьютер.

Вместо них добавлю команды для работы с LED-дисплеем: подключение библиотеки, определение контактов и формирование строк. Первая строка меняться не будет, а во вторую выведу сразу два значения температуры: в градусах Цельсия и Фаренгейта.

У нас получилась простая метеостанция, которая умеет работать самостоятельно и передавать данные на компьютер. Это самый простой кирпичик для создания умного дома. Такие устройства можно использовать для контроля температуры в комнатах и парниках, управления системами отопления и подогрева воды, в качестве противопожарной сигнализации. Всё зависит только от вашей фантазии.

Простая метеостанция с ЖК-экраном

P.S. Если что-то непонятно или хочется поговорить о чём-то более подробно, пишите в комментариях. Обязательно отвечу!

Простая метеостанция с ЖК-экраном
Постоянный автор компании «220 вольт». Умеет собирать шкафы, пилить заборы и выпиливать двери. Пишет буквы и снимает видео.