Это третья статья из цикла об интеграции оборудования nooLite в системы домашней автоматизации. В первой статье рассказывалось об интеграции nooLite с Arduino, во второй — об интеграции с популярной системой Arduino Mega Server, а в этой статье вы узнаете о концепции AMS «100 в 1», которая позволяет иметь множество устройств «внутри» системы Arduino Mega Server. И продемонстрировано это будет на примере паяльной станции, которую мы сделаем буквально из ничего — из одного беспроводного димера nooLite.
О чём идёт речь?
Речь идёт о том, что если у вас есть Arduino Mega Server, то вы можете иметь множество устройств, функциональность которых выполняет AMS. Это могут быть метеостанция, охранный блок, блок контроля потребления электроэнергии, паяльная станция, будильник, автополивалка цветов, фитнес-ассистент, электронная энциклопедия и т. д. и т. п.
И всё это может работать одновременно или «активироваться» загрузкой соответствующих веб-страничек или даже целых веб-сайтов. Ваш скромный и невзрачный контроллер Arduino может содержать неограниченное количество сайтов и каждый сайт может быть посвящён какому-либо одному отдельному устройству.
И для того, чтобы пользоваться всем этим великолепием, вам не нужно быть программистом, вы можете пользоваться стандартным функционалом, присутствующем в дистрибутиве AMS. Другое дело, что в нём может не оказаться нужного вам устройства, тогда выход один — добавлять его самостоятельно.
Чудес не бывает. Или всё-таки бывает?
В чём секрет технологии? Как в один «несчастный» микроконтроллер можно «запихнуть» всё это великолепие? Ларчик открывается просто: мы имеем уникальное сочетание — мощный микроконтроллер (в смысле количества выводов и интерфейсов) и практически неограниченное информационное пространство (до 32 ГБ) на карте памяти. А Arduino Mega Server является связующим элементом, добавляющем к этой связке ещё и дружественный интерфейс.
В результате, множество связей с физическим миром, необходимых для множества приборов, обеспечивает мощный микроконтроллер, а информационное пространство, необходимое для множества сайтов, обеспечивает ёмкость microSD карты памяти. Но фокус, конечно, заключается в «прослойке» — в системе Arduino Mega Server, которая и связывает всё это воедино.
И получается уже не простой микроконтроллер, который только может «мигать светодиодами», а настоящий компьютер со своей операционной системой и дружественным интерфейсом, плюс с неограниченным информационным пространством и множеством сенсоров, принимающих сигналы из внешнего мира, и множеством актуаторов, управляющих внешним миром. И это совершенно новый класс устройств с совершенно уникальными возможностями. Это Arduino Mega Server.
Причём всё спроектировано так, что все устройства, находящиеся внутри AMS, автоматически получают доступ ко всем сервисам, работающим внутри системы. Это сетевой модуль, интерфейсный, беспроводной, точного времени, контроля напряжения и потребляемой мощности, актуаторов и т. д. Получается, что для каждого нового прибора нужно реализовать только специфичную для него функциональность, а всю остальную он наследует автоматически.
И в результате получаются приборы «на стероидах». Простой паяльник вдруг превращается в (беспроводную) паяльную станцию, умеющую общаться по сети, имеющую представление о реальном времени, знающую уровень сетевого напряжения и текущую потребляемую мощность, могущая индицировать режимы своей работы хоть включением люстр в доме и автоматически отключающуюся, если все ушли по делам и в доме никого не осталось.
Это экстремальный пример, такой монстр, скрывающийся под личиной безобидной паяльной станции никому не нужен, но это хорошо демонстрирует (беспрецедентный) потенциал технологии.
И любой другой прибор, который вы захотите интегрировать в AMS, автоматически получит доступ ко всем сервисам, работающим внутри системы, что очень удобно: вам не нужно создавать их для каждого прибора отдельно — достаточно просто выбрать нужные из имеющегося набора уже реализованных возможностей.
Как подключить множество приборов к микроконтроллеру
Есть два способа:
OHAS. Это стандарт, который позволяет подключать любое проводное оборудование к системе без паяльника и знаний программирования. Это то, что позволяет собирать системы, как из кубиков Lego. Вы просто «прищёлкиваете» нужные датчики и исполнительные устройства к системе и… всё! Причём длина соединений может быть от нескольких сантиметров до сотни метров. При подключениях и в качестве транспорта используется стандартное (качественное, опробованное и недорогое) СКС оборудование. Бонус заключается в том, что вы можете использовать уже готовые СКС сети, без прокладки новых (если они у вас есть).
Беспроводные технологии. Это вариант «без шума и пыли» и именно этот вариант мы сегодня рассмотрим на примере оборудования nooLite.
Есть ещё третий способ: «как обычно», припаяв, как Бог на душу положит, но мне нравятся два первых.
Оборудование
Как и в двух предыдущих статьях, в своих экспериментах мы будем использовать беспроводной димер nooLite SU111-300
и замечательный управляющий модуль nooLite MT1132 (если вы ещё не прочитали две предыдущие статьи, то самое время это сделать). Первая статья, вторая статья.
Паяльная станция
Какой прибор интегрировать в AMS для меня, по большому счёту, не имело значения, паяльная станция оказалась на операционном столе, можно сказать, случайно. У меня постоянно обгорал паяльник и я попробовал решить эту проблему с помощью «высоких технологий» и, забегая вперёд, скажу, что эксперимент завершился полным триумфом.
Я просто сэкономил средства в размере стоимости паяльной станции — она мне просто стала не нужна, её функциональность полностью заменил AMS.
Немного о сути проблемы. Проблема всех нерегулируемых паяльников заключается в том, что они разогреваются до максимальной температуры, что, в свою очередь, приводит к почти мгновенному выгоранию канифоли и обгоранию жала самого паяльника. Паять такими паяльниками современные микроминиатюрные компоненты просто невозможно.
Эту проблему решают регулируемые паяльники и паяльные станции, но проблема заключается в том, что эта категория устройств отличается повышенной ценой, а цены на брендовые устройства вообще выходят на космическую орбиту.
Идея была очень простой. Если мы можем регулировать мощность, то тем самым мы можем регулировать и температуру нагрева паяльника. Да, это не совсем паяльная станция с термостабилизацией нагрева жала паяльника, но для бытовых нужд «раз в пару месяцев что-нибудь припаять» — более чем достаточно. И вообще, просто сказка по сравнению с монстром, жарящим постоянно на 400+ градусов Цельсия.
Реализация
В двух предыдущих статьях было рассказано об управлении модулем nooLite MT1132 и интеграции его в Arduino Mega Server, поэтому я на этом останавливаться не буду, а начну сразу с реализации функционала паяльной станции.
Если вы помните, в предыдущей статье речь шла «Блоке 2», в котором присутствуют кнопка включения и отключения и виджет установки мощности, так вот — это и есть почти готовая паяльная станция. У нас не стоит задача сделать настоящую паяльную станцию (хотя если бы это было нужно, то с помощью AMS можно было бы и это сделать), наша задача — наглядно продемонстрировать возможности технологии.
Чтобы из интерфейса управления димером сделать паяльную станцию, нам нужно сделать всего две вещи:
Создать интерфейс паяльной станции. Мы можем сделать любой, сколь угодно изощрённый, интерфейс со множеством индикаторов, кнопок и ручек регулировок, но в данном случае нам это не нужно, мы всё сделаем минимально-достаточно. Будет кнопка включения-выключения станции и регулятор температуры нагрева.
Отюстировать температуру нагрева паяльника. В принципе, это делать необязательно, можно ограничиться установкой мощности в процентах, но лучше, конечно, отградуировать шкалу в градусах Цельсия нагрева жала паяльника. Так удобнее и «правильнее», тем более, что сделать это совсем несложно.
Интерфейс паяльной станции
Здесь нет ничего трудного, просто берём и делаем обычный дизайн веб-странички и немного переделываем внешний вид регулятора мощности (код даже не трогаем).
Добавляем картинку паяльной станции, и, поскольку установка мощности нам не нужна постоянно на виду, прячем её под плашку с надписью «Настройки». Получилось то, что называется «простенько и со вкусом» — есть всё, что надо и нет ничего лишнего. Этот полноэкранный интерфейс «складывается» при использовании со смартфона или планшета и остаётся таким же удобным.
Осталось только отюстировать температуру.
Юстировка температуры
Для юстировки температуры нагрева паяльника удобно использовать датчики, идущие в комплекте с некоторыми тесторами и токовыми клещами.
Датчик, который был в комплекте с моими токовыми клещами (жёлто-зелёный, который виден на картинке), был рассчитан на измерение температуры до 1400 градусов Цельсия, чего, как вы сами понимаете, должно было с запасом хватить для юстировки температуры нагрева паяльника.
Сама процедура крайне проста. Нужно просто приложить датчик температуры к тому месту на паяльнике, температуру которого вы хотите отюстировать (сверху). В моём случае это оказалось место сочленения паяльника и жала. Вы можете попробовать отюстировать температуру на самом жале, но у меня это не очень получилось из-за тонкости жала.
Теперь немного об изменениях в файлах системы. В файле solder.js есть участок кода, отвечающий за формирование значения мощности при нажатии на кнопки виджета
function noo2Multi10() {noo2MultiClear(); noo2Multi = "&noo2multi=10"; noo2Multi_10 = true;}
function noo2Multi20() {noo2MultiClear(); noo2Multi = "&noo2multi=20"; noo2Multi_20 = true;}
function noo2Multi30() {noo2MultiClear(); noo2Multi = "&noo2multi=30"; noo2Multi_30 = true;}
function noo2Multi40() {noo2MultiClear(); noo2Multi = "&noo2multi=40"; noo2Multi_40 = true;}
function noo2Multi50() {noo2MultiClear(); noo2Multi = "&noo2multi=50"; noo2Multi_50 = true;}
function noo2Multi60() {noo2MultiClear(); noo2Multi = "&noo2multi=60"; noo2Multi_60 = true;}
function noo2Multi70() {noo2MultiClear(); noo2Multi = "&noo2multi=70"; noo2Multi_70 = true;}
function noo2Multi80() {noo2MultiClear(); noo2Multi = "&noo2multi=80"; noo2Multi_80 = true;}
function noo2Multi90() {noo2MultiClear(); noo2Multi = "&noo2multi=90"; noo2Multi_90 = true;}
где
&noo2multi=10
это формирование значения 10% мощности при нажатии на первую площадку. И так далее, для каждой из девяти площадок виджета установки мощности. Юстировка заключается в подборе соответствующего значения мощности (в процентах) для заданной температуры.
Например, вы хотите, чтобы при нажатии на первую площадку температура паяльника была 180 градусов. Вы просто нажимаете на площадку и меняете значение (там, где сейчас 10) на такое, при котором температура вашего конкретного паяльника ровна 180 градусам. И так для всех площадок. Например
&noo2multi=56
56 это 56% мощности и в данном случае эта цифра взята с потолка, вы должны вместо неё подобрать нужное значение, при котором температура вашего паяльника будет ровна 180 градусам. Юстировка требуется только один раз, а дальше вы можете спокойно пользоваться вашей паяльной станцией.
Информация для перфекционистов
Если вы не относитесь к обычным людям, которым достаточно, чтобы их паяльник просто не обгорал, то у вас есть множество возможностей для улучшения работы вашей паяльной станции. Например, AMS имеет данные о текущем уровне сетевого напряжения и вы можете корректировать мощность на паяльнике в соответствии со значением текущего напряжения.
Тем, кто хочет идти ещё дальше, AMS предоставляет возможность измерять текущую потребляемую мощность на линии паяльника и вы можете проводить корректировку уже опираясь на показания потребляемой мощности.
Ещё в AMS встроен частотомер и анализатор формы сетевого тока и вы можете потренироваться в обработке сигналов и анализе формы тока, но я не вижу в этом особой необходимости.
Заключение
Совершенство недостижимо и я полностью доволен возможностью просто выставить температуру (со смартфона), при которой паяльник не обгорает и не дымит канифолью. Причём делается это без управляющих и без силовых проводов, полностью беспроводным способом.
Паяльная станция это только пример, концепция «100 в 1» системы Arduino Mega Server ждёт ваших креативных идей — по этой технологии можно создать множество устройств, интегрированных в AMS. И каждое из таких устройств подарит вам радость творчества и избавит от необходимости тратить деньги на его покупку.
О цикле
Ну вот и подошёл к концу цикл об оборудовании nooLite и его интеграции в системы Умного дома. Теперь у вас не должно возникнуть никаких проблем с беспроводным управлением светом и электрооборудованием в вашем Умном доме из скетчей на Ардуино и из системы Arduino Mega Server, автоматически или из веб-интерфейса.
Надеюсь вам было интересно и вы узнали что-то новое и полезное для себя.
Первая часть, вторая часть цикла.
Дополнение. Открыт канал на Youtube и вот промо ролик Arduino Mega Server, который демонстрирует работу с реальной системой.