Метеостанция на Arduino

Описание несложной метеостанции на Arduino, которую я сделал в прошлом году. Конструкция проверена девятью месяцами безотказной работы.

Особенности:

1) Индикатор, на котором отображается температура, включается только тогда, когда кто-то есть в прихожей. Сам индикатор тоже установлен в прихожей.
2) Одновременно включается синий светодиод подсветки, который установлен на уровне пола (в одном корпусе с датчиком движения). Удобно, когда ночью надо пройти по коридору в темноте.
3) Время подсветки прихожей и отображения температуры на индикаторе задается регулировкой переменного резистора на датчике движения HC-SR501. У меня где-то пара минут, этого достаточно.
4) Измеряется и отображается температура дома и на улице. Один датчик стоит в квартире на уровне 1.7 метра от пола, второй на балконе (спрятан от попадания прямых солнечных лучей, расположен примерно в метре от стены дома).
5) Сразу после подключения питания к метеостанции происходит инициализация датчика движения – светодиод мигает примерно минуту.

Детали:

1) Arduino Nano CH340/ATmega328P MicroUSB – 1 шт
2) Сверхяркий светодиодный модуль Piranha – 1 шт
3) Датчик движения HC-SR501 – 1 шт
4) Индикатор 8-сегментный MAX7219 – 1 шт
5) Датчик температуры Dallas DS18B20 – 2 шт.
6) Резистор 4.7 кОм – 2 шт
7) Стандартный блок питания от смартфона на 5 вольт c USB выходом
8) Шнур USB – Micro USB

Все покупается на Алиэкспресс. Рекомендую уже легендарного продавца RobotDyn, если у него чего-то нет, то GREAT WALL и Super seller For Arduino&3D.

Софт:

1) Arduino IDE
2) Fritzing (в том случае, если будете менять схему под себя).

Схема:

meteo.fzz

(Макетная и печатная плата не разведены, актуальна только принципиальная схема).

В виде картинки:
Bigus.ru

Управляющая программа (скетч для Arduino IDE):

meteo_station.rar

(распаковать вместе с папкой, иначе Arduino IDE будет ругаться).

Потребуется скачать и установить сторонние библиотеки: DallasTemperature, LedControl, OneWire (возможно, эта библиотека вообще не нужна, тогда удалите в коде строку #include OneWire.h). Как ставить дополнительные библиотеки можно почитать здесь.
Так же не забываем определить 64-х битные адреса конкретно ваших датчиков температуры и вписать их в код программы.

Я не использовал для сборки конструкции проводки с разъемами, потому что они вечно отваливаются, а паял прямо к плате.
Собранную схему запихал в пластиковую коробку(такие используют электрики, цена рублей пятьдесят в хозмаге, есть любые размеры) и прикрепил в укромном месте в коридоре, для этого пришлось провести розетку 220 вольт близко к этому месту. В качестве проводов к датчикам и индикаторам использовал кабели UTP (витая пара для Ethernet).
Bigus.ru

Индикатор временно стоит рядом с меловой доской, где мы записываем разные мелочи. Позже планирую сделать корпус и подумать над местом размещения.
Bigus.ru