Arduino

технологии

Мобильный датчик комфорта

Идея устройства возникла при переезде в новый офис. Офис довольно большой, сотрудников много. Хотелось иметь возможность контролировать, насколько хорошо работает вентиляция. Дома у меня в каждом помещении установлены датчики CO2, температуры и влажности. Но для офиса я решил сделать мобильное устройство, чтобы можно было замерять показатели в разных его частях, а также иметь возможность взять его в поездку.

Вот что у меня получилось в итоге:

Watcher

В качестве датчика CO2 был выбран все тот же MHZ19B. Как с ним работать, я уже описывал ранее. У данного датчика неплохое соотношение цены/качества.

MHZ19B

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

DHT22Real time module

Ну и так как модуль времени уже был, почему бы не сделать часы с будильником?

Из остального, что было использовано: экран 16х2 символов с драйвером I2C для отображения всей информации, три кнопки и выключатель для управления, спикер и светодиод для сигнализации о превышении минимуму/максимума показателей.

ScreenButtonsSpeakerLuminadiode

Ну и последнее: в качестве "мозга" была выбрана плата Arduino Nano, для питания устройства был использован батарейный блок на 4 аккумулятора, а в качестве корпуса - готовый корпус как на фото ниже, доработанный дремелем. Ссылки на все используемые компоненты есть в конце статьи. Ну или можно выбрать наиболее понравившееся вам компоненты в каталоге.

Arduino NanoCaseBattery block

Интерфейс был спроектирован следующий: на главном экране показываются текущие значение показателей всех датчиков, а также текущее время и суммарное напряжение батареи. На следующем экране - просмотр истории показателей. Далее - управление будильниками. И последний экран - экран настроек.

В настройках можно выбрать режим работы дисплея (время работы подсветки и экрана), установить текущее время и граничные значения всех показателей, при достижении которых сработает "alarm", настроить период записи истории показателей, а также сбросить все настройки к значениям по умолчанию.

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

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

Итак, схема соединение всех компонентов следующая (кликнуть для увеличения):

Watcher schema

Обратите внимание, что кнопки подключаются без сопротивлений, я уже описывал этот способ. Питание подводится к пинам GND и 5V.

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

Используемые компоненты:

  • корпус 115x90x55: 1, 2
  • Arduino Nano: 1 2 3
  • батарейный блок: 1
  • датчик MHZ19B: 1, 2, 3
  • датчик DHT22: 1, 2, 3
  • модуль реального времени: 1, 2, 3
  • остальные мелочи (кнопки, спикер, светодиод) можно выбрать в каталоге