Hacking Class - Controlando tomadas da sua casa via Internet

Propaganda
Hacking Class ­ Controlando tomadas da sua casa via Internet O que precisamos para controlar uma tomada via Web
• Microcontrolador
• Relê, transistor, diodo e resistor
• PC ou um shield Ethernet ou wifi para seu microcontrolador
Aqui vamos usar...
• Arduino
• Placa Tomad@
• PC e shield wifi para Arduino
Porque é necessário utilizar relés ?
•
As portas de saída do microcontrolador (ATmega), utilizado nas placas Arduino, tem uma capacidade máxima de corrente de 40mA por porta. Essa corrente é suficiente apenas para alimentar uns 4 Leds comuns, portanto para acionar dispositivos que consomem correntes acima de 40mA em 5Volts, dispositivos de voltagens maiores e dispositivos alimentados com tensão AC, é necessário colocar um transistor e um relé entre o micro­controlador e a carga .
O que é um relé ?
Os relés são basicamente interruptores acionados elétricamente.
Os relés podem possuir um ou mais contatos (“interruptores”) sendo que esses contatos podem ser:
• NA (normalmente aberto) / NO (normal open) ou
• NF (normalmente fechados) / NC (normal closed) .
Como funciona um Relé
•
•
O acionamento dos contatos de um relé ocorre quando a sua bobina é energizada. Nesse momento é criado um campo magnético que atrai uma alavanca responsável pelo acionamento dos contatos
Para acionar um relé precisamos de transistor e diodo de proteção
relé simples
relé duplo
Hacking Class Relê simples de contato duplo NA / NF
Porque é necessário utilizar o transistor ?
•
Existem relés bem pequenos que poderiam ser acionados diretamente por um microcontrolador, porém na maioria dos casos utilizamos um transistor entre a porta do micro­controlador e o relé devido a corrente necessária para ativar a bobina do relé ser maior que 40mA.
Tensão reversa nos relés
•
Ao desenergizar a bobina de um relé, ocorre um fenômeno que faz com que seja gerada uma tensão reversa pela bobina. Devemos proteger o circuito responsável pelo acionamento, instalando um diodo em paralelo com a bobina.
Placa Tomad@
Hacking Class Componentes da placa
R1 e R2 = resistor 1k – para os transistores

R3 e R4 = resistor 330R – para os leds

D1 e D2 = diodo IN4007

Led1 e Led2 = led on / off

Fusível 1 e Fusível 2 = proteção

T1 e T2 = transistor para acionar bobina do relê

Relê 1 e Relê 2

Bornes para encaixe dos fios de acionamento da saída do contato do relê

Conectando seu Program­Me na placa Tomad@
Hacking Class Ligando a placa no Arduino
Hacking Class Ligando a placa na tomada
Devemos romper o fio de uma das fases;

Cortamos o fio e vamos ligar cada uma das pontas em um dos bornes da placa

Hacking Class Código para ligar e desligar relê
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, LOW);
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
delay(1000);
}
Hacking Class Tomada com servidor Web no PC
1. Computador conectado na Web com servidor Java recebe request HTTP com solicitação para acionar a tomada
2. Este servidor web terá uma placa Arduino ligada permanentemente. O servlet (ou equiv) vai acionar a placa via comunicação serial RS­232.
3. Para controlar as tomadas, vamos ligar a placa Tomad@ no Arduino. Essa placa possui um par de relês que podem ser ligados em uma tomada e acionados on / off através de sinal digital 0 ou 1
4. Vamos ligar uma tomada no relê da nossa placa ou então um aparelho qualquer.
Hacking Class Código Arduino void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
void loop() {
if(Serial.available() >0) {
int incoming=Serial.read();
Serial.println("Recebendo dados");
Serial.println(incoming, DEC);
acionarRele(incoming);// seu protocolo
}
}
Hacking Class Código Arduino void acionarRele(int codigo) {
if(codigo=65) {
Serial.println("HIGH no rele 1");
digitalWrite(3, HIGH);
}
else if(codigo=66) {
Serial.println("LOW no rele 1");
digitalWrite(3, LOW);
}
else if(codigo=67) {
Serial.println("HIGH no rele 2");
digitalWrite(2, HIGH);
}
else if(codigo=68) {
Serial.println("LOW no rele 2");
digitalWrite(2, LOW);
}
}
Hacking Class Código Servlet response.setContentType("text/html;charset=UTF8");
PrintWriter out = response.getWriter();
try {
byte[] dados = new byte[1];
dados[0] =
Byte.parseByte(request.getParameter("rele"));
try {
Arduino.enviar(dados);
...
Hacking Class Código Arduino.enviar(bytes) lib RXTX
outputStream = serialPort.getOutputStream();
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
serialPort.notifyOnOutputEmpty(true);
outputStream.write(bytes);
serialPort.close();
Controlando tomadas via Web utilizando shield wifi
•
Nesta demonstração, controlaremos 4 lâmpadas via WEB utilizando o Program­me conectado em 2 placas Tomad@ que farão a interface com as lâmpadas e um shield WIFI que fonecerá a conectividade IP ao Program­Me.
Circuito para controle de 4 lâmpadas
Funcionamento
• Temos rodando no Arduino um mini servidor WEB que apresenta uma página bem simples onde podemos selecionar qual é o relé que desejamos ativar. Uma vez que selecionamos um dos relés, a aplicação detecta qual foi e inverte o nível aplicado na porta associada aquele relé.
Vamos praticar?
• Laboratório de uso de Arduino e placa tomad@
• Informaremos a Url para download dos slides em sala de aula
Download