Как стать автором
Обновить

Комментарии 15

Спасибо, статья очень хорошая, как раз начинаю работать с этим приёмником, и она как говорится в тему. Но я думаю скечь можно было бы упростить.

Вот здесь:
void mrSerialChannel(byte ch) {
switch (ch) {
case 0: Serial.println («0»); break;
case 1: Serial.println («1»); break;
case 2: Serial.println («2»); break;
case 3: Serial.println («3»); break;
case 4: Serial.println («4»); break;
case 5: Serial.println («5»); break;
case 6: Serial.println («6»); break;
case 7: Serial.println («7»); break;
case 8: Serial.println («8»); break;
case 9: Serial.println («9»); break;
case 10: Serial.println(«10»); break;
case 11: Serial.println(«11»); break;
case 12: Serial.println(«12»); break;
case 13: Serial.println(«13»); break;
case 14: Serial.println(«14»); break;
case 15: Serial.println(«15»); break;
case 16: Serial.println(«16»); break;
case 17: Serial.println(«17»); break;
case 18: Serial.println(«18»); break;
case 19: Serial.println(«19»); break;
case 20: Serial.println(«20»); break;
case 21: Serial.println(«21»); break;
case 22: Serial.println(«22»); break;
case 23: Serial.println(«23»); break;
case 24: Serial.println(«24»); break;
case 25: Serial.println(«25»); break;
case 26: Serial.println(«26»); break;
case 27: Serial.println(«27»); break;
case 28: Serial.println(«28»); break;
case 29: Serial.println(«29»); break;
case 30: Serial.println(«30»); break;
case 31: Serial.println(«31»); break;
} // switch
}


Можно было бы написать

void mrSerialChannel(byte ch) {
Serial.println (String(ch));}

Ну и со второй такой же функцией так же. А поскольку функции стали состоять из одного оператора, то вообще их заилайнить в места вызова.

void mrBind(byte ch) {
mrPrintBind(ch);
Serial2.print(“bind_mode_cell_»);
Serial2.print(String(ch));
Serial2.write(3); // End of Text — B00000011(BIN)
}

Скетч написан в первом приближении и там непочатый край для оптимизации. Спасибо за ваши дополнения. Мне лично не очень нравится функция mrCheck(), она работает корректно, но явно требует переделки.
Ждем совмещенный модуль с приемником и передатчиком.
Вообще, да, но насколько мне известно такой вариант не планируется. В Arduino Mega Server будет поддержка двух модулей и с их помощью можно будет реализовать многие возможности.
Долго ждал подобное решение.
У меня к лампам проведена витая пара и теперь можно сделать так.
1. Берем 1-кнопочный пульт PB211 или 2-кнопочный пульт PB411 (описание в статье "Кнопочные выключатели nooLite — первые впечатления").
2. Устанавливаем один MR1132 из этой статьи, к которому подключаем контроллер.
3. Контроллер расшифровывает принимаемые команды от пультов управления и по витой паре (интерфейс RS-485 или другой) отправляет команду на конечные устройства, в качестве которых установлен простейший контроллер с силовым блоком.

Преимущества:
1. Конечное устройство получится размером меньше и значительно проще, чем стандартный силовой блок системы.
2. Общая цена системы в моем случае (к лампам проведены информационный кабели) получится меньше за счет уменьшения количества стандартных радиоуправляемых силовых блоков.
3. По этой же витой паре можно подавать питание на конечные устройства, что также позволит уменьшить их размеры.

Минус — необходимо «колхозить» контролер для расшифровки сигналов от MR1132 или изучить в конце концов Arduino.
А в качестве «установлен простейший контроллер с силовым блоком» что используется?
В данный момент его нет. Можно поискать что-то из готовых блоков, но смогу сделать сам. Это будет преобразователь интерфейса, шести- или восьминогий процессор и силовой элемент.
Порадовала формулировка — Разница заключается в том, что модуль MT1132 это передатчик, а модуль MR1132 это приёмник и наибольший эффект можно получить при их совместном использовании.
Получается, эффект при использовании приёмника без передатчика и передатчика без приёмника тоже неплох?
Да. Передатчик — отдает команды управления. Приемник — исключительно принимает их. В коридоре поставил датчик движения\освещения, включает свет, если есть движение, при определенном уровне освещения.

Используя передатчик — смогу управлять включением силового блока лампы отдельно (пультом или с компа)

Используя приёмник, смогу следить — было ли движения или нет.

Используя и то и другое, могу:
управлять той лампой (выключатели или пулты сейчс не берем в расчет, там свои приемопередатчики) например с вебморды
с нее же следить за наличием движения
привязывать события на движение\освещенность при помощи сервака, который обрабатывает инфу, полученную приемником — а не при помощи внутренней логики. Пример с другим датчиком.

Аналогично с датчиком температуры и влажности. Для его применения ему ни к чему передатчик — от него лучше ПОЛУЧАТЬ инфу, т.е. нужен приемник. Датчик температуры и влажности + приемник = мониторинг этих показателей в помещении = легко заводится демон, который сможет дать команду на силовой блок «включить электричество в кондиционере или вентиляторе» и так далее.

Так что да, их можно применять как раздельно, так и совместно, но наиболее широкий вариант комбинирования — таки вместе.
Как по мне, так это костыль очередной. Приемник не может достоверно сообщить, что исполнительный модуль принял команду и исполнил ее, особенно если они на значимом расстоянии друг от друга.
Как я и писал во всех предыдущих статьях, отсутствие нормального двустороннего общения удручает.
Обещают к лету двустороннее оборудование — как будет на самом деле — посмотрим.
А вы не интересовались, какая потребляемая мощность силовых блоков?
мне отвечали в прошлых постах. что-то вроде нескольких ватт
Спросил через их сайт: Мощность потребляемая силовым блоком приблизительно 0.1 Вт
хм… значит память подвела, не могу найти
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории