Introduction: Automação Residencial (Domótica) Com Intel Edison

Picture of Automação Residencial (Domótica) Com Intel Edison

O propósito deste projeto é ligar uma saída digital quando a tecla "UP" for pressionada no transmissor de um controle remoto e desligar esta mesma saída quando a tecla "DOWN" for pressionada. Tal experimento possui diversas aplicações associadas a domótica.

Step 1: Protocolo RC5

Para isso, o protocolo RC5 foi utilizado, no qual no link abaixo há todos os detalhes de funcionamento do mesmo.

www.sbprojects.com/knowledge/ir/rc5.php

Step 2: Sensor TSOP4838

Picture of Sensor TSOP4838

O sensor TSOP4838 permite receber via infravermelho na frequência de 38 kHz. Ele é utlizado para detectar os bits "1" e "0" oriundos do controle remoto de uma TV, por exemplo. Mais detalhes sobre o mesmo pode ser verificado no próximo link.


www.vishay.com/docs/82459/tsop48.pdf

Ligue a alimentação do sensor e o pino OUT do mesmo a uma entrada digital qualquer do Intel Edison (o kit Grove foi utilizado). Neste exemplo, a entrada "AN0" foi utilizada.

Step 3: Código Arduino

O código a seguir recebe o frame em RC5. Caso seja recebido o código de sistema 5 e comando 16 o relé será acionado. Caso seja 5 e 56 o relé será desligado. Observe que tal código pode variar de acordo com o controle remoto utilizado, sendo recomendado printar o código de sistema e comando via serial para verificar o código recebido e assim ajustar o código.

//Intel Iot Roadshow Nov/2015
//Autores: Vitor Amadeu e Renata Leal

/* * * * * * * * * * * * * * Declaração de I/Os * * * * * * * * * * * * * */

#define RC_5 A0

#define RELE1 3

#define TEMPO 890

char le_bit(void);

/* * * * * * * * * * * * * * Função de inicialização * * * * * * * * * * * * * */

void setup(void) {

pinMode(RC_5,INPUT_PULLUP);

pinMode(RELE1,OUTPUT);

Serial.begin(9600); }

/* * * * * * * * * * * * * * Função de loop * * * * * * * * * * * * * */

void loop(void) {

if (digitalRead(RC_5)==0) {

char comando=0,sistema=0;

delayMicroseconds(4000);

sistema=sistema|le_bit()<<4;

sistema=sistema|le_bit()<<3;

sistema=sistema|le_bit()<<2;

sistema=sistema|le_bit()<<1;

sistema=sistema|le_bit()<<0;

comando=comando|le_bit()<<5;

comando=comando|le_bit()<<4;

comando=comando|le_bit()<<3;

comando=comando|le_bit()<<2;

comando=comando|le_bit()<<1;

comando=comando|le_bit()<<0;

if(sistema==5 && comando==16)

digitalWrite(RELE1,1);

if(sistema==5 && comando==56)

digitalWrite(RELE1,0);

}

}

/* * * * * * * * * * * * * * Função para ler bit * * * * * * * * * * * * * */

char le_bit(void) {

char last_rx=1;

delayMicroseconds(890);

if (digitalRead(RC_5))

last_rx=0;

delayMicroseconds(890);

return(last_rx);}

Step 4: Testando O Exemplo

Conecte um led ou relé ao pino digital utilizado no código e observe se o mesmo liga quando o botão "UP" for pressionado e desliga quando o "DOWN" for ativado. Após testar com um led, conecte um relé para acionar cargas como lâmpadas, podendo tal aplicação ser utilizada para automatizar uma residência (domótica).

Comments

About This Instructable

228views

1favorite

License:

More by cerne-tecnologia:Automação residencial (Domótica) com Intel EdisonHome automation with Intel EdisonLCD Display on Arduino
Add instructable to: