Беспроводное оборудование noolite и умный дом (часть 2). arduino mega server

Беспроводное оборудование noolite и умный дом (часть 2). arduino mega server

Итак, переходим ко второй части отечественного повествования об интеграции беспроводного управления nooLite в совокупности домашней автоматизации. И в данной части мы поболтаем о управляющем модуле nooLite MT1132 и его интеграции в популярную совокупность Arduino Mega Server. Это расширяет (и без того весьма развитые) возможности AMS беспроводным управлением электроприборами и светом в вашем Умном доме.
Смотрите кроме этого: AMS и волшебный кристалл

В этом случае предлагаю мало позаниматься волшебством (из-за чего нет?) и создать волшебный кристалл для отечественных повседневных потребностей. Применять его мы будем по прямому назначению — для прорицания разных неочевидных событий и сущностей. И пригодится нам для того чтобы изготовить всего два ингредиента — Arduino Mega Server и беспроводной контроллер светодиодной ленты nooLite SD111-180.Кристалл будет не декоративный (для обмана наивной публики), а действительно функциональный, со множеством волшебных особенностей.

О первой частиВ первой части этого цикла рассказывалось о правилах работы беспроводного управления nooLite и о том, как возможно руководить этим оборудованием из скетчей на Arduino. И в первой же части была дана подробная информация о подключении модуля MT1132 и его программировании. И это весьма нам окажет помощь сейчас.Из-за чего?Вследствие того что Arduino Mega Server это и имеется Arduino. И всё, что написано в прошлой статье справедливо и для Arduino Mega Server.

Исходя из этого, перед прочтением данной статьи рекомендуется ознакомиться с первой частью цикла.Пара слов об Arduino Mega ServerArduino Mega Server это многофункциональная совокупность со множеством неповторимых возможностей. Подробнее об этом возможно определить на сайте проекта. В том месте доходчиво и с «картинами» обрисованы его главные возможности.

В случае если сказать кратко, то это ОС для контроллеров Arduino. И возможности «обнажённого» контроллера отличаются от возможностей контроллера с AMS на борту приблизительно кроме этого, как и возможности «обнажённого» компьютера отличаются от возможностей компьютера с Windows либо Linux на борту.Это образное сравнение, но оно даёт хорошее представление о том, что такое Arduino Mega Server.ИнтеграцияТеперь давайте разглядим как именно управляющей модуль MT1132 интегрирован в совокупность.

Физически подключение модуля ничем не отличается от подключения к Arduino Mega либо Arduino Due, обрисованного в прошлой статье. Исходя из этого я опять отсылаю вас к прошлой статье, дабы не повторять тут одно да и то же.При провода — питание, почва, и RX для приёма управляющих команд от Arduino и модуль готов к работе. Воистину, nooLite MT1132 чемпион по простоте подключения оборудования к микроконтроллеру.Софтверная часть также весьма похожа на обрисованную в прошлой статье и на 85% сходится с ней.

Различия заключаются лишь в специфичных для AMS переменных и функциях, каковые мы детально разглядим в данной статье.Ядро управления nooLiteПод ядром управления nooLite мы будем подразумевать код, что делает главные функции по управлению и формированию команд модулем MT1132 (что, со своей стороны, и отправляет команды в эфир).Данный код, в соответствии с идеологией модульной структуры AMS, оформлен в отдельный модуль и есть отдельной логической единицей совокупности. Данный модуль возможно включен (в случае если вам необходимо управление nooLite) либо отключён (в случае если вам управление nooLite не требуется).Это выгодно тем, что разрешает экономить полезную память микроконтроллера и не задействовать данный модуль тем, кому не требуется управление nooLite.

Модуль может выключаться динамически (наряду с этим память не экономится), а возможно отключён на этапе компиляции несложным комментированием строчка кода.//#define NOO_FEATURE И в этом случае вся память, занимаемая модулем, остаётся свободной. Совокупность спроектирована так, что она машинально распознаёт откомпилирован модуль либо нет и корректно обрабатывает это событие.Для удобства пользователей в приборную панель в шапке сайта выведена информация о состоянии всех модулей совокупности.

И в том месте сходу видно их состояние сейчас. Это трудится и в версии для Arduino Mega и в версии для Arduino Due.Код модуля ядра nooLiteТеперь давайте разберём код модуля «noo» совокупности Arduino Mega Server. Те функции, каковые были разобраны в прошлой статье, я тут опущу.

В случае если вам, внезапно, что-то неясно, то возвратитесь к прошлой статье и ещё раз её просмотрите.Код модуля обрамлён в директивы условной компиляции, служащие для включения либо выключения кода модуля из компиляции в соответствии с вашими указаниями.#ifdef NOO_FEATURE…#endif Потом задаются выводы, к каким подключён модуль MT1132 (19-й вывод подключать необязательно, он помогает для подтверждения модулем успешности отправки команды)byte const PIN_TX = 18; // TX PIN (to RX noolite) byte const PIN_RX = 19; // RX PIN (to TX noolite) И задаются буквенные обозначения каналов (легко для удобства применения)byte const NOO_CHANNEL_1 = 0; byte const NOO_CHANNEL_2 = 1; Сейчас употребляются всего два канала, но нет ничего, что мешает вам добавить пара строчек кода и применять все 32 канала.Инициализация модуля производится функциейvoid nooInit() { Serial1.begin(9600); modulNoo = MODUL_ENABLE; started(nooLite); } в которой инициализируется Serial1 на стандартной частоте 9600, модулю присваивается статус «ENABLE» и выводится тестовое сообщение в Serial для контроля процесса инициализации.«Основная» функция, формирующая команды, и функции «обёртки», упрощающие команды до предела, детально обрисованы в прошлой статье. Вот фактически и всё ядро управления nooLite.

Сейчас мы можем вольно обращаться к любым управляющим функциям из любого места в коде Arduino Mega Server. И как угодно руководить оборудованием nooLite.Вот полный код ядра управления nooLite.Полный код ядра/* Modul nooLite part of Arduino Mega Server project*/#ifdef NOO_FEATUREbyte const PIN_TX = 18; // TX PIN (to RX noolite)byte const PIN_RX = 19; // RX PIN (to TX noolite)byte const NOO_CHANNEL_1 = 0; // channel (address) 0…31 (MT1132)byte const NOO_CHANNEL_2 = 1;byte const NOO_CHANNEL_3 = 2;byte const NOO_CHANNEL_4 = 3;byte const NOO_CHANNEL_5 = 4;void nooInit() { Serial1.begin(9600); modulNoo = MODUL_ENABLE; started(«nooLite»);}void nooWork() {}void nooSendCommand(byte channel, byte command, byte data, byte format) { byte buf[12];for (byte i = 0; i 12; i++) { buf[i] = 0; }buf[0] = 85; buf[1] = B01010000; buf[2] = command; buf[3] = format; buf[5] = channel; buf[6] = data;int checkSum = 0; for (byte i = 0; i 10; i++) { checkSum += buf[i]; }buf[10] = lowByte(checkSum); buf[11] = 170;for (byte i = 0; i (12); i++) { Serial1.write(buf[i]); }}void nooBind (byte ch) {nooSendCommand(ch, 15, 0, 0);}void nooUnbind (byte ch) {nooSendCommand(ch, 9, 0, 0);}void nooOn (byte ch) {nooSendCommand(ch, 2, 0, 0);}void nooOff (byte ch) {nooSendCommand(ch, 0, 0, 0);}void nooTrigger(byte ch) {nooSendCommand(ch, 4, 0, 0);}void nooCancel (byte ch) {nooSendCommand(ch, 10, 0, 0);}void nooUp (byte ch) {nooSendCommand(ch, 3, 0, 0);}void nooDown (byte ch) {nooSendCommand(ch, 1, 0, 0);}void nooRevers (byte ch) {nooSendCommand(ch, 5, 0, 0);}void nooValue (byte ch, byte v) {nooSendCommand(ch, 6, v, 1);}#endif // NOO_FEATUREИнтерфейс «отвязки» и «привязки»Потому, что Arduino Mega Server предоставляет нам шикарный интерфейс, то мы можем его применять для всех функций работы с самой системой и модулем nooLite.

Нам не требуется будет ничего делать вручную, общение со всеми функциями совокупности nooLite будет происходить при помощи стандартных элементов интерфейса, привычных вам по работе с сайтами в Интернете. Это будут кнопки, выпадающие перечни и т. п. Давайте начнём с отвязки «и» интерфейса «привязки» силовых блоков. Тут всё очень легко: в выпадающем перечне вы выбираете необходимый номер канала, после этого выбираете тип действия — «Привязать» либо «Отвязать» и нажимаете «Послать».

Тут же даны маленькие руководства по тому, что следует сделать по окончании нажатия кнопки «Послать». В целом, всё сделано весьма легко и элегантно.Вы имеете возможность «привязывать» и «отвязывать» блоки в любом количестве и на любых каналах (на одном канале возможно какое количество угодно силовых блоков и включаться они будут синхронно, потому, что находятся на одном канале).Тут необходимо лишь не забывать, что в 0.14 сборке реализовано управление по двум каналам.

В случае если двух каналов вам мало, то вы имеете возможность, по аналогии, добавить управление по любому нужному вам количеству каналов (впредь до 32).Интерфейс управленияТеперь давайте разглядим как организован интерфейс управления устройствами nooLite в AMS. В меню совокупности имеется пункт «Управление nooLite». При нажатии на него раскрывается страница с которой возможно включать и отключать устройства nooLite беспроводным методом. Как я уже сообщил, в 0.14 версии организовано управление по двум каналам.

Они именуются «Блок 1» и «Блок 2» (имеются в виду беспроводные силовые блоки-димеры nooLite).Нажимаем на «Блок 1» и видим красивую кнопку — это и имеется интерфейс управления первым силовым блоком. Вы имеете возможность подключить к этому блоку освещение либо любой электроприбор (соответствующей мощности) и… комфортно и комфортно руководить его выключением и включением, нажимая на эту кнопку.Интерфейс на данный момент Mega Server адаптивный, это значит, что вы имеете возможность руководить выключением и включением электроприборов прямо со собственного смартфона — интерфейс «сложится» и копка окажется громадной и удобной для нажатия на смартфоне.Это ещё не всё.

Не считая выключения приборов и простого включения, совокупность nooLite разрешает делать ещё многие другие вещи, к примеру, димировать (медлено изменять) яркость свечения ламп либо устанавливать нужную мощность нагрузки. Для этого рекомендован ещё один элемент интерфейса — виджет установки мощности и димирования.Виджет установки мощности и димированияНа втором канале присутствуют два элемента интерфейса — выключения и кнопка включения и виджет установки мощности.

При помощи этого виджета возможно устанавливать мощность, отградуированную в процентах от большой. Это универсальное ответ, подходящее для большинства случаев.Вы с однообразным успехом имеете возможность подключить к беспроводному димеру nooLite (к примеру, SU111-300) люстру в вашей комнате либо электроприбор, требующий регулировки мощности (в пределах паспортной мощности вашего силового блока) и имеете возможность легко, прямо с веб-странички устанавливать любую желаемую мощность.В случае если вам необходимо регулировать мощность как-то по-второму, к примеру, с большей точностью либо нелинейно, то вы имеете возможность поменять обычный виджет, подкорректировав исходный код (что, конечно, всецело дешёв).На картине продемонстрирован момент, в то время, когда мощность установлена на 20% от большой.

В один момент возможно поменять мощность из скетча на Arduino машинально. К примеру, с данной совокупностью ничего не следует организовать столь актуальный на данный момент «рассветный будильник», в то время, когда яркость свечения ламп возрастает медлительно и «естественным» образом будит вас по утрам. И без проводов! Силовых и управляющих, достаточно встроить димер в лампу либо люстру.Виджет и кнопка трудятся независимо.

Это значит, что вы имеете возможность установить нужную вам мощность (яркость свечения) и по окончании нового и выключения включения, установленная мощность сохранится, что весьма комфортно.Другие функцииВ документе компании «Ноотехника», обрисовывающем команды управления устройствами nooLite, имеется ещё множество дополнительных команд, часть из которых уже присутствует в ядре, а часть — нет. В случае если вам необходимы другие команды, то вы имеете возможность их добавить самостоятельно, благо это совсем не сложно и в совокупности уже имеется множество примеров.ЗаключениеИтак, мы разглядели интеграцию управляющего модуля nooLite MT1132 в Arduino Mega Server и принцип организации интерфейса управления оборудованием nooLite.

Имея интегрированное ядро управления, вы имеете возможность легко руководить устройствами nooLite из AMS в собственном Умном доме.На этом вторая статья подошла к концу, а в третьей статье из цикла вы познакомитесь с совсем фантастической концепцией совокупности Arduino Mega Server «100 в 1», в то время, когда один контроллер с AMS на борту заменяет вам множество систем и приборов и экономит для вас их цена.И продемонстрировано это будет на примере паяльной станции, которую мы сделаем практически из ничего — из одного беспроводного димера nooLite.P. S.Arduino Mega Server это универсальная и эластичная совокупность, которая возможно интегрирована практически с чем угодно, исходя из этого, приглашаются с сотрудничеству компании, заинтересованные в популяризации расширении и своей продукции клиентской базы — ваше оборудование возможно кроме этого легко интегрировано с популярной совокупностью Arduino Mega Server.

Случайная статья:

\


Похожие статьи:

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.