Супперовый ивент “Kyiv Mini Maker Faire” будет совсем скоро. Специально под него решил подготовить демостенд с моим ЭнергоМонитором и за одно поставить эксперимент - адаптировать его чтобы он мог работать локально, без внешних серверов.
Т.е. дома ставится коробочка – Raspberry PI, которая собирает данные со счетчика, со специальных датчиков и по желанию можно подключить экран, чтобы сразу все было видно :) или заходить удаленно, как на локальный вебсервер.
ЗЫ Ищу – волонтера , готового поучаствовать в этой выставке (20-21 мая) в Киев, посидеть на стенде Море интересных впечатлений, гарантируется! Пишите, будет интересно!
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
Желание контролировать и управлять есть у многих :). Но какие-же мы Наполеоны, если квитанция за электричество или газ приводит нас в недоумение. А почему столько? Почему я заранее не знал, что будет такая сумма! Это все я столько потребил или кто-что в мое отсутствие?
Мейкерский подход, тем и хорош, что можно на коленке собрать, пусть топорный, но дающие результат девайс. Мне нужно было простое и эффективное устройство, хотя бы отчасти отвечающее на эти вопросы и главное - за пару дней и в продакшен.
Перелопатив интернет, наткнулся на информацию, что многие электросчетчики имеют светодиод для отображение кол-ва прошедшей энергии. Очевидное прямо перед глазами! Так родился энергомонитор, который, в базовой версии собирает показания потребленных квт*ч за единицу времени.
Стоит сказать, что это не ноу-хау, есть несколько украинских решений, к примеру ecoisme. Есть opensource решения в том числе достаточно известные emoncms. Но одно - не доступно и дорого, другое - чересчур сложное в настройке. Многие подключают подобные решения к системам умных домов (openHAB или MajorDoMo). Но тут оказалось, что визуализация страдает, периодическая агрегация данных за месяц, год делается как-то очень сложно. Добавить расчет стоимости превращается в проблему.
Поэтому за основы были взяты крайне популярные и гибкие средства для визуализации графиков и работы с метриками, часто используемые для мониторинга высоконагруженных систем.
Краткий принцип работы: esp8266 собирает кол-во импульсов за единицу времени, производит первоначальные расчеты и отправляет через wifi по MQTT на сервер, где mosquitto mqtt broker принимает эти данные, mqttwarn фильтрует и перенаправляет необходимы сообщения с данными в базу influxdb(time-series database), и финальное отображение происходит с помощью grafana (платформа для аналитики и мониторинга).
Более подробно работа устройства, код и схемотехника будут описаны в следующих постах.
В итоге: получилось полезное устройство, выявившее интересные закономерности в потреблении электричества. К примеру, насколько затратно мыть посуду руками, при наличии электробойлера и т.д.
Данную штуку можно использовать для мониторинга обесточенности объектов (дом, офис, склад и т.д.), планировать и оценивать результаты разных энергоэфективных подходов, обнаруживать неучтенные источники потребления и т.д.
В планах - добавить несколько разных способов съема данных: через токовый трансформатор, с умных розеток и т.д.
Если у вас есть идеи, как можно еще использовать данное устройство или предложения по монетизации, то я буду участвовать в Kyiv Mini Maker Faire 20-21 мая 2017г, где и можно будет лично пообщаться. Или пишите. Всегда рад новым знакомствам.
Решил, на себя примерить известный стереотип, ты же "ит-шник, можешь работать где угодно". Понятно, что это трудно достижимая цель. Для нормальной работы, кроме самой возможности, должна быть свежая голова, приемлемое окружение и правильные задачи не требующие длительного погружения в процесс. По феншую: не нужно мешать мухи с котлетами, совсем, отдельно дела - отдельно отдых.
Я сейчас сотрудничаю с #Upwork, если кто не знает, то большая часть разработчиков в этой компании работают удаленно. Сам Upwork активно проповедует удаленный способ работы и немало для этого сделал. В общем решил пробовать, итак мелкий трип по Европе, с остановками во Львове Варшаве, Берлине, Лейпциге, Кракове.
Супперская идея - сеть коворкингов. Удобно, платишь однажды, работаешь в любом коворкинге. Первый чекин во Львовском #ihub.
ЗЫ: Какой коворкинг в центре Варшаве самый супперовый?
Двух проходной выключатель с обратной связью на основе esp8266
Часто наборы для создания умных домов, страдают излишнем упрощением. К примеру, я бы хотел, чтобы выключатель контролировался не только удаленно, но и непосредственно самим выключателем, как мы привыкли, вкл/вкл прямо на месте. Более того, мне важно знать статус этого выключателя, вдруг я его включил и забыл выключить? И конечно, это IoT должно подключаться к моему серверу, управления дома, чтобы все контролы были под рукой и могли участвовать в общей цепочке принятия решений.
Корпус
В качества корпуса я использовал готовый, который можно купить на http://kosmodrom.com.ua/el.php?name=UNI-M-BOX-050-01BE Состоит из двух алюминиевых профилей и двух пластмассовых щечек. В разобраном виде это выглядит, вот так:
Схемотехника
Здесь все достаточно просто: из интересного - я обнаружил, что при загрузке esp8266 имеет высокий уровень на GPIO и только потом устанавливается в заданный уровень. Чтобы избежать “мигания” при включении, я использовал логический инвертер 74HC04. (Подозреваю, что это пушкой по воробьям и можно было использовать MOSFET. А что вы используете для таких целей?) Таким образом, логическая единица на GPIO 5 у меня инвертируется и далее нужно использовать в коде LOW для включения и HIGH для выключения.
Для отрисовки схемы я использовал KiCad. А что вы используете? В качестве управляющего реле используется реле SSR-40DA. Никто не мешает использовать любую другую которую вытянет 74HC04.
Дополнительную проблему составила дальность действия устройства. Мне необходимо было, чтобы он мог работать на расстоянии порядка 40 метров и сигнал мог проходить через разнообразные перекрытия из дома на улицу. Эксперименты с esp-12 показали, что он не вытягивает это расстояние и пришлось использовать esp-07, у которого есть возможность подключить внешнюю антенну. Интересной особенностью esp-07, является то, что для работы внешней антенны нужно отпаять конденсатор идущий к внутренней - керамической антенне. Вот тут подробное обсуждение.
Плата
Не мудрствуя долго, я собрал все схему на макетной платне 4x6см.
Практически в собранном виде это выглядит вот так
По плану предполагалось что блок питания будет внутри корпуса, но пока я его подключал, он умер смертью храбрых и я решил подключить внешний, чтобы не тратить время на поиск нового.
Кроме того я не припаивал MCU для того, чтобы иметь возможность ее просто перепрограммировать. К сожалению в esp-07 всего 1M памяти и удаленное обновление OTA мне недоступно.
Home Automation Server
С програмной частью оказалось все сложнее. У меня был ряд требований:
Работа по mqtt протоколу
Включение/выключение возможно как удаленно, так и выключателем
Необходимо постоянно знать статус выключателя
И самое главное, работа выключателя без сети или без mqtt брокера. С этим оказалось все сложнее
Совместная работа с home-automation сервером
Работа по доменным именам, а не ip
Так как я планирую сделать несколько устройств и все они должны дополнять друг друга и работать совместно. Мне нужно было использовать, какой-то общий сервер для визуализации и отслеживания всей информации от этих устройств. В качестве него я выбрал home-assistant.io, опенсорсное решение на питоне, которое поддерживает много полезных протоколов. Все это было установленно на Raspberry PI 2, там же стоит mqtt брокер, DHСP и DNS сервисы, через которые я управляю IP адресами всех устройств.
Программа
Исходники доступны на GitHub. Код более менее очевиден (disclaimer: нуждается в рефакторинге и вылизывании, но он рабочий :)
Из интересных моментов:
Я использовал библиотеку PubSubClient для работы с MQTT и отталкивался от примера с неблокирующим реконектом к брокеру. Но в действительности реконект блокирует loop и если вы в этот момент, нажмете кнопку, с большой вероятностью, что это событие будет пропущено. По этому поводу я создал тикет и автор подтвердил, что это действительно так. (Как бы это обойти?) Чтобы оптимизировать работу, я увеличил время между попытками реконекта, таким образом вероятность попасть на реконект уменьшается, а также использую вместо кнопки именно выключатель - это увеличивает время подачи необходимого сигнал для обнаружения его в loop()
Инсталяция
Инсталяция состоит из двух частей:
Установка окружения
Необходимо установит home-assistan.io (HA)
Поставить MQTT брокер, сконфигурировать его и подключить к HA. Я использую mosqutto broker
Добавить в конфиг секцию HA, конфигурацию для этого выключателя
Заливка скетча
Необходимо поправить credentials, согласно настроек вашей сети
Скомпилировать и залить на esp8266 c помощью Arduino IDE или PlatformIO, ну или еще как-то :)
Ссылки
Вся техническая документация на github https://github.com/glebv/esp8266-wifi-relay-2way-switch
Буду рад обсудить все замечание по этому проекту или помочь с инсталяцией и сборкой!
Для моего ирригационного проекта, потребовался малопотребляющий контроллер. После краткого изучения, я остановился на attiny85. Все профессионалы давно с ним знакомы, но я не они, поэтому ниже постоянно обновляемый пост с полезными ссылками, которые мне пригодились.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming