Комнатный термометр-светофор

Автор: | 01.07.2022

Как то раз, сидя в душном офисе, пришла мне в голову идея по улучшению процесса проветривания помещения.

В разгар отопительного сезона батареи греют сильно, а пластиковые окна исключают приток свежего воздуха с улицы. Спустя какое-то время в офисе становится душно. При этом в коллективе всегда находятся те, кому становится душно раньше других. Они просят открыть окно для проветривания (или сами открывают).

Во время проветривания всегда находятся люди, которым становится холодно раньше других. Они просят закрыть поскорее окно.

Чтобы каким-то образом урегулировать процесс проветривания было решено прибегнуть к помощи электроники. У меня в ящике стола лежал набор “Матрёшка”, который мне любезно одолжил наш коллега. В наборе есть плата Arduino Uno, макетная плата, терморезистор, цветные светодиоды и набор резисторов.

Схему подключения взяли из эксперимента “Комнатный термометр”. Только светодиодов взяли восемь, вместо десяти: три зелёных, два жёлтых и три красных. Резистор в цепи термистора – 10 кОм. Токоограничивающие резисторы в цепи светодиодов – 220 Ом (для каждого светодиода отдельный резистор).

Схема подключения

Скетч позаимствовали там же, только немного изменили:

#include <math.h>

#define FIRST_LED_PIN 2
#define LED_COUNT 8
#define STANDART_TEMPERATURE 25.5
#define DELAY 1000

void setup() 
{
  for (int i = 0; i < LED_COUNT; ++i)
    pinMode(i + FIRST_LED_PIN, OUTPUT);
}

void loop() {
  float voltage = analogRead(A0) * 5.0 / 1023.0;
  float temperature = 1.0 / (log(voltage / 2.5) / 4300.0 + 1.0 / 298.0) - 273.0;

  for (int i = 0; i < LED_COUNT; ++i)
  {
    float sectionTemperature = STANDART_TEMPERATURE;
     if (i != 0)
     {
        sectionTemperature += (i / 2);
     }
     
    boolean enableSegment = (temperature >= sectionTemperature);
    digitalWrite (i + FIRST_LED_PIN, enableSegment);
  }
  
  delay(DELAY);
  
}

Добавили константу STANDART_TEMPERATURE – это температура комфорта. Она соответствует первому светодиоду (зелёному). При этой температуре проветривание можно заканчивать.

Каждый следующий светодиод загорается при повышении температуры на половину градуса Цельсия. Сначала загораются зелёные, потом жёлтые и красные светодиоды. Когда горят красные – нужно открыть окно и проветривать до тех пор пока не будут гореть зелёные.

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

Термометр проработал в офисе до конца отопительного сезона. Мы пробовали делать для него забавную доработку: при помощи пьезопищалки воспроизводился “Имперский марш” из Звездных войн. Но эта доработка всех сильно отвлекала, поэтому от неё быстро отказались.

Жду вопросов и предложений в комментариях.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *