8 (800) 350-30-16

Управление реле по COM порту

Дата: / Категория: Интерфейсы / Автор: DOC_tr

Сегодня речь пойдет не о самостоятельном устройстве на Arduino а о дополнении к умному дому или у чему-то еще.

Часто бывает так, что пинов Arduino недостаточно для того, чтобы коммутировать необходимое количество устройств, а их бывает очень много.

Из внешнего вида устройства можно понять, что устройство умеет коммутировать 8 реле. Благодаря выведенным пинам RX и TX серийного порта, это устройство можно подключить к некоему основному блоку управления умным домом без всяких проблем через обычный серийный порт.

Скетч, с помощью которого мы управляем данным устройством

// Прошивка блока "А" исполнительных реле

String input_string = "";

void setup() {
Serial.begin(9600);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);

digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
}

void loop() {
while (Serial.available() > 0) {
char c = Serial.read();


if (c == '\n') {

// Дебаг
Serial.print("Input_string is: ");
Serial.println(input_string);

if (input_string=="a4off"){digitalWrite(4,HIGH);}
if (input_string=="a4on"){digitalWrite(4,LOW);}

if (input_string=="a5off"){digitalWrite(5,HIGH);}
if (input_string=="a5on"){digitalWrite(5,LOW);}

if (input_string=="a6off"){digitalWrite(6,HIGH);}
if (input_string=="a6on"){digitalWrite(6,LOW);}

if (input_string=="a7off"){digitalWrite(7,HIGH);}
if (input_string=="a7on"){digitalWrite(7,LOW);}

if (input_string=="a8off"){digitalWrite(8,HIGH);}
if (input_string=="a8on"){digitalWrite(8,LOW);}

if (input_string=="a9off"){digitalWrite(9,HIGH);}
if (input_string=="a9on"){digitalWrite(9,LOW);}

if (input_string=="a10off"){digitalWrite(10,HIGH);}
if (input_string=="a10on"){digitalWrite(10,LOW);}

if (input_string=="a11off"){digitalWrite(11,HIGH);}
if (input_string=="a11on"){digitalWrite(11,LOW);}

if (input_string=="test"){for (int i=4; i <= 11; i++){ digitalWrite(i,LOW); delay(1000);}
for (int i=4; i <= 11; i++){ digitalWrite(i,HIGH); delay(1000);}}

input_string = "";
} else {input_string += c;}

}
}

Он собирает данные с серийного порта в переменную типа char после чего идет распознавание команд, который мы сами записываем в условия

Первая команда test - поочередно включает и выключает все реле для того, чтобы убедиться чтов се работает.

Так как в данный момент есть несколько таких блоков, то команды называются НОМЕР_БЛОКА НОМЕР_ПИНА КОМАНДА например a7on или a10off

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

Видеоверсия

Теги: #реле, #умный дом

Ваша оценка:

Рейтинг: 10.0 (Оценок: 1)

Комментарий:

Copyright © RobOM.ru 2016 г. Все права защищены