ГЛАВА 22
Метеостанция на
Как на Arduino делать устройства лучше фирменных
Вдруг из темноты выступила какая-то фигура, очертания которой показались д'Артаньяну знакомыми, и привычный его слуху голос сказал.
— Я принес ваш плащ, сударь, сегодня прохладный вечер.
Домашняя метеостанция — один из самых необходимых и оправданных радиолюбительских проектов. Как мы уже говорили, бытовые метеостанции, имеющиеся в продаже, не выдерживают никакой критики — ни с точки зрения удобства пользования и дизайна, ни с точки зрения метрологических качеств. Через руки автора этих строк прошло не менее десятка моделей бытовых метеостанций, и ни у одной из них работу нельзя было признать удовлетворительной. Дисплеи перенасыщены лишней информацией, значения температуры «разъезжаются», показатели влажности не совпадают на десятки процентов, в довершение всего станция все время теряет внешний радиодатчик и поймать его можно, только полностью отключив питание и тем самым потеряв настройки дисплея и часов…
Все эти проблемы не имеют никаких объективных предпосылок и явно возникают исключительно из-за халатности разработчиков и производителей. С помощью современной элементной базы они легко решаются на среднем любительском уровне при наличии минимального терпения и аккуратности. Единственное, возможно, узкое место, которое трудно преодолеть при самодеятельном конструировании, представляет собой дисплей — после ознакомления с ассортиментом того же «Чипа-Дипа» становится понятно, почему для почти каждого бытового прибора придумывают экран своей оригинальной конструкции. Но тут уж ничего не поделаешь, придется выбирать, что дают. В остальном Arduino позволяет подойти к конструированию метеостанции «по-взрослому» — не делая скидок на любительское происхождение при выборе функциональности. Поскольку мы станем ориентироваться на ассортимент готовых модулей, то результат окажется, как минимум, не дороже тех убогих произведений, которыми переполнены интернет-магазины домашней техники. При этом мы легко сможем реализовать дополнительные функции, которые либо присущи очень дорогим моделям, либо отсутствуют в промышленных образцах вовсе. Самое трудное, как всегда в таких случаях, — оформление конечного результата так, чтобы его было не стыдно повесить на стенку, но тут все в ваших руках.
Должен сказать, что в процессе отладки конструкции, описанной далее, производители комплектующих для Arduino не переставали меня удивлять. Я был готов к тому, что показания приобретенных датчиков придется корректировать программным путем, — совершенно невероятно, чтобы они на производстве подвергались уточняющей калибровке. Однако, датчики и без коррекции удовлетворяли требованиям!
А 2-милливаттный Xbee-радиодатчик спокойно работал через три межкомнатных перегородки — лучше фирменного роутера Wi-Fi в тех же условиях.
Перед тем как приступать к проектированию, надо точно определить, к чему мы стремимся. Давайте сформулируем, что должна «уметь» и из каких основных узлов состоять домашняя метеостанция.
□ Главный модуль — измерение внутренней температуры (в месте установки), влажности и атмосферного давления. Питание от сети.
□ Выносной датчик внешней (уличной) температуры и влажности — связь с главным модулем по радиоканалу, питание от батарейки (а значит, функции энергосбережения). Связь должна надежно работать как минимум через оконный стеклопакет, а лучше — через бревенчатую (в идеале — кирпичную или бетонную) стенку, на расстоянии не менее 5–7 метров.
□ Часы реального времени с календарем — должны иметь автономное питание и возможность автоматической/полуавтоматической коррекции хода.
□ Дисплей главного модуля — внешняя температура/влажность, внутренняя температура/влажность, атмосферное давление, время, дата, день недели. Проработаем два варианта: с ЖК-модулем (тем, который описан в предыдущей главе) и с более эстетично выглядящим, но и существенно более дорогим светящимся экраном на основе OLED.
□ Запись показаний на SD-карту — этот пункт появился сам собой в процессе подбора комплектующих. Оказалось, что