Размер
Метеостанция на основе ESP8266
Play

Метеостанция на основе ESP8266

С момента прочтения этой притчи я, перед тем как начать пользоваться чем-либо, сначала стараюсь выяснить возможности этого «чего-либо». Пропускаю большую часть своих исследований возможностей ардуины и момент перехода поисков в плоскость esp8266. Главное, что в конце концов я оказался на странице проекта Homes Smart. В данном проекте нам не придется программировать. И почти не придется работать паяльником: как и большинство проектов с ардуиной – все соединения можно выполнить на дюпонд-проводах). Почти, т.к. модули и датчики приходят от китайцев без припаянных гребенок – потребуется сначала их впаять. Вот так приходит от китайцев:

Но паяльником нужно будет поработать один раз – можно собрать все скопом и попросить какого ни будь рукастого ремонтника. Некоторые возможности проекта (помимо метеостанции) постараюсь описать в конце обзора. Тут только скажу, что часть возможностей проекта – платная. «Аж» 100руб на каждый модуль esp. Но для метеостанции вполне достаточно бесплатной версии. ЕСП-шки пришли к новому году. Датчики пришли еще раньше, по ходу дела дошли и прочие железки. Поскольку все праздники стояла «отличная» погода – морозы за -20 с ветром – я, в перерывах между праздничными возлияниями, стал реализовывать задумку. Процесс прошивки модуля подробно описан как на странице проекта, так и в предыдущих обзорах. Не буду повторяться (итак обзор получился тяжелым), тем более, что прошить модуль можно не только UART-переходником, но и ардуиной (причем не единственным способом).

Итак – цель: собрать домашнюю метеостанцию, передающую показания на narodmon.ru

Берем модуль esp8266. Модулей этих несколько версий. Наиболее часто встречающиеся:

Версия имеет малое количество портов (ограничение в расширении функционала) и стандартно 512к памяти (впрочем – скорее всего памяти будет 1м). Зато он дешевле других и имеет гребенку для соединения.

У 07 антенна керамическая + есть разъем для внешней антенны. Если актуально – берем его. Памяти 1М или (скорее всего) 4М.

От 07 отличается печатной антенной и чуть меньшей ценой. Для просто метеостанции – подойдет любой. Я выбрал esp-12. Модуль питается от 3,3в. Подача на него 5В может вывести его из строя. Для питания были заказаны стабилизаторы (ну или в местных магазинах поискать). Пока они не пришли – я питал модуль от 3,3 выхода ардуины. Можно воспользоваться готовым стабилизатором, или регулируемым стабилизатором А можно взять модуль esp-12, уже установленный на переходную плату со стабилизатором питания, интерфейсом для прошивки и гребенкой (с учетом всех наворотов, необходимых для отдельного esp12 – наверное еще и дешевле получится). В каментах подсказали другой вариант — дешевле. Взяв паяльник в руки понял, что зрение уже не то :( Гребенку к ардуине припаивал практически на ощупь. А когда взял в руки esp12 – так чуть не побежал искать мелкоскоп… Паяться к ней без оптики для меня оказалось нереально. Для решения этой проблемы (а также для того чтобы можно было пользоваться дюпонд-кабелями) – были заказаны модули-переходники

Припаять esp12 на переходник оказалось проще чем я думал – площадки переходника залужены и нужно только намазать площадки esp каким ни будь флюсом, выставить ровно и прикасаться к луженым площадкам тонким жалом. Не забыть смыть флюс. Вот что получилось у меня:

Переходник, помимо гребенки, имеет площадку для установки стабилизатора. К сожалению – площадка рассчитана на какой-то другой стаб (с другим расположением выводов), поэтому заказанные мной 1117 пришлось припаять немного колхозно. Ну и, чтобы припаянный стаб заработал, надо удалить перемычку (просто смахнуть паяльником средний резистор на лицевой стороне). Работает! Я добавил еще один пин в проходное отверстие – для вывода 3,3в на внешние потребители. Вот что получилось (3.3 выход – красный провод не в общем ряду):

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

Для того, чтобы все соединить, нам понадобится комплект проводов и, желательно, монтажная плата

Подключаем модуль согласно схеме, скачиваем прошивку (в зависимости от размера памяти на нашем модуле (как определить — есть на странице проекта) и заливаем в esp-шку любым способом. У меня прошивка не залилась с первого раза – пришлось сначала залить бланк («пустой» набор, как бы затираем старую прошивку – вся инфа есть на странице проекта), а потом прошить еще раз – успешно.

После прошивки заходим на модуль в safe-mode и настраиваем подключение к роутеру (все по инструкции со страницы проекта), выставляем логин-пароль. Все. Остальное можно настроить потом. На всякий случай выключаем safe-mode и включаем модуль – он должен подключиться к роутеру и быть доступным по адресу, который ему выдаст роутер. Если все подключается – разбираем «прошивочную» схему и начинаем собирать метеостанцию. Если у вас модуль не 01, то просто читаем со схемы на странице проекта название контактов и находим такие же на своем модуле.

Для метеостанции нужны датчики. Как минимум – датчик температуры. Прошивка может работать с классическим далласом

Для его подключения потребуется резистор. На схеме проекта — 1,5кОм. По даташиту 4,7кОм (цена – копейки, валяется у каждого радиолюбителя в хламе). У меня работает 1,5. Если полистать форум проекта — то многим приходиться подбирать резистор, в зависимости от длины и качества кабеля до датчика.

Но можно взять готовый датчик с резистором

Кстати, в нем встроен и датчик температуры, так что можно одним этим датчиком мерить два параметра. Только встроенный датчик температуры – очень неточный. Ну и, если мы претендуем на звание метеостанции, добавим датчик давления.

В нем тоже встроен датчик температуры, но датчик давления не рекомендуют выкидывать на улицу – т.е. давление (и температуру) он будет измерять в комнате.

Я к этим трем датчикам добавил еще один датчик влажности – для замера влажности в комнате (для второго датчика требуется платная версия прошивки).

Итак – датчик температуры и влажности припаиваем к длинному кабелю (я использовал 4-жильный телефонный шнур – метров 7). Можно и не паять, но соединение без пайки на открытом воздухе быстро окислится. Впрочем – даже паяное соединение лучше чем либо защитить (лаком, термопистолетом, эпоксидкой итп – главное не попортить датчики). На другой конец кабеля припаиваем куски разрезанного дюпонд-кабеля. Кабель я выбросил за окно прямо через створку (летом может что-нибудь придумаю)

Еще два куска дюпонда припаиваем к тому, чем будем питать нашу конструкцию (я припаял к миниУСБ разъему, и питаю все от телефонного зарядника). После чего – паяльник можно убрать обратно на антресоли.

После подключения всех датчиков, проверяем все еще раз. Особенно убеждаемся в правильности соединения цепей питания. Включаем. Подключаемся к нашему модулю по адресу, который выдал ему роутер (см в настройках роутера. Лучше сразу, там же в настройках dhcp, выдать модулю постоянный адрес, чтобы не искать его каждый раз после перезагрузки). Переходим по ссылке Hardware и выставляем галочки согласно подключенным датчикам. У меня так:

Нажимаем Set и затем возвращаемся на main. Все, наша метеостанция работает. На главной странице увидим показания наших датчиков.

Но, если мы желаем отправлять данные датчиков на всеобщее обозрение, переходим в Servers. Включаем галочку на narodmon.ru.

Теперь данные с датчиков будут отправляться на сервер народного мониторинга. Предварительно регистрируемся на народмоне по инструкции (раздел Справка вверху страницы), находим свои датчики и настраиваем видимость. Все, теперь можно видеть свои данные на карте, строить графики по переданным показаниям, сравнивать свои показания с «соседними» (если такие есть) и пытаться прогнозировать погоду. Поигравшись с таким вариантом станции, я понял, что мне не хватает локального отображения показаний. Благо, проект поддерживает ряд экранов. У меня под рукой оказался 1602 (16 символов * 02 строки)

Сразу скажу – экраном я не удовлетворен. На него помещается максимум 4 показания, и то не без ущербности. Я вывожу на него время (да – встроенные часы синхронизируются через интернет), давление, температуру за бортом и влажность. Температура и влажность в комнате – остались без контроля :( Заказал себе экран 2004 – 20 символов * 04 строки, но он еще едет. Для подключения экрана потребуется контроллер (он одинаковый для 1602 и 2004)

Контроллер также потребует пайки к экрану (ну я паяльник не убирал далеко. А если кто будет повторять – не забудьте про это). Подключил – все отлично, кроме яркости экрана. Она избыточна (особенно для темной стороны темного времени суток). На плате контроллера экрана есть перемычка – отключающая подсветку. Решил поставить туда ключ и управлять им датчиком движения.

Данный датчик также неоднократно обозревался на муське. Основное — он питается от 5в (и выше), но управляющий сигнал – 3,3в. Попавшиеся под руку MOSFETы не открывались от 3,3 :(. И я рискнул поискать что-нибудь в хламе. Попалось что-то типа КТ817 (думаю, и КТ315 подошел бы, но у него ноги не удобные для дюпонд-кабелей). На базу подал сигнал с датчика движения, а эмитер-коллектор подсоединил вместо перемычки (кого куда – методом научного тыка, хотя можно было и вызвонить где на перемычке плюс, а где минус, но это дольше :)

В результате получил бонус – транзистор из-за большого сопротивления перехода (или из-за неполного открытия) снизил яркость экрана до приемлемой. Теперь экран работает отлично: при сработке датчика движения показания в меру яркие и читаются легко.

Вот, в таком виде станция работает у меня с новогодних праздников. Историю показаний можно посмотреть тут. Кстати, важный момент. Если сравнить показания в солнечный зимний день с показаниями соседних станций (например, 21 января), можно заметить, что мои показания – ниже (реальная температура в январе у нас была только отрицательная). Все потому, что «соседские» датчики просто нагреваются солнцем. Я же учел этот момент – по уму датчик надо монтировать в тень, но не всегда это возможно. Я просто сделал из фольги короткий тубус и закрепил датчики внутри:

Конструкцию к лету думаю усовершенствовать: сделать два тубуса один-в-другом с защитой от осадков и с инжекцией циркулирующего воздуха. А так же – перенести подальше от стены дома (соседи снизу открывают форточки, что заметно влияет на показания) Так же в планах добавить LED индикатор для индикации часов – чтобы считывать показания на расстоянии. Ну еще есть идея сделать проекцию часов на потолок, но придется искать подходящую линзу (наличные кредитки-френеля слишком длиннофокусные).

Ну и в конце, как обещал, кратко расскажу, что же еще можно подключить к этому модулю и какие задачи он может решать (полный список см на странице конструктора прошивки): — Различные датчики температуры, влажности, давления, освещенности. — Дисплеи, помимо описанного мной – семисегментные, ОЛЕД, ТФТ — АЦП (например – мерить влажность почвы) — RC приемник и передатчик 433 и 315 МГц (да-да, открывать ворота и не только) — ИК приемник и передатчик — ФМ-радио (не знаю как оно сюда попало, но есть) — RTC (часы с независимым ходом. То, о чем уже полвека мечтают все владельцы микроволновок) — Управление выключателями Livolo — Отправка СМС — Бегущая строка (лучше один раз увидеть) — Работа с прерываниями — ШИМ — Обновление прошивки через интернет (после первой прошивки вам не надо больше подключать программатор) — Термостат (поддержка температуры или влажности) — Календарь и часы с синхронизацией через интернет, ну и программированием событий по времени и дням недели (в будни включаем кофеварку в 6 утра, в выходные – в 12) — Чтение и управление состоянием портов (подключаем переключатели и/или реле – поливаем огороды итп) — Конструктор кода (кому нужно делать что-то что не умеет прошивка) — Логический модуль (программируем действия простой логикой без знания языков программирования) — «кнопки» на главной странице модуля для управления портами (если надо полить огород не по расписанию) — Берет прогноз с гисметео (в демонстрации бегущей строки данные из него) — Может передавать данные и управляться с разных сервисов (сам не пользовался, но в описании выглядит красиво, например тут и тут — Наверное еще что-то, о чем я забыл или понятия не имею.

Вывод. Модуль отличный! Вариантов применения – уйма. Цена – копейки (даже с умирающим рублем). Описанный проект позволяет на основе этого модуля, без знания даже основ программирования и с минимальными навыками пайки, собрать и настроить под свои нужды много интересных и/или полезных вещей. Автор проекта активно его развивает и общается в форуме проекта. Без устали отвечает на вопросы, берется за реализацию новых фишек (если они укладываются в концепцию проекта). Минусы проекта – это продолжение его плюсов (и наоборот): платная версия «про». Закрытый код.

📎📎📎📎📎📎📎📎📎📎