O módulo relé é
um interruptor automático para controlar um circuito de alta corrente com um
sinal de baixa corrente. As vantagens de um relé estão em sua menor inércia do
movimento, estabilidade, confiabilidade a longo prazo e pequeno volume. É
amplamente adotado em dispositivos de proteção de energia, tecnologia de
automação, esporte, controle remoto, reconhecimento e comunicação, bem como em
dispositivos de eletromecânica e eletrônica de potência. De um modo geral, um
relé contém uma parte de indução com uma variável de entrada como
corrente, tensão, potência, resistência, frequência, temperatura, pressão,
velocidade, luz e outros. Também contém um módulo atuador (saída) que pode
energizar ou desenergizar a conexão do circuito controlado. Existe uma parte
intermediária entre a parte de entrada e a parte de saída que é usada para
acoplar e isolar a corrente de entrada, além de atuar a saída. Quando o valor
nominal da entrada (tensão, corrente e temperatura, etc.) está acima do valor
crítico, o circuito de saída controlado do relé será energizado ou
desenergizado.
O
módulo Bluetooth HC-06 é usado para comunicação wireless entre o Arduino e
algum outro dispositivo com bluetooth, como por exemplo um telefone celular, um
computador ou tablet. As informações recebidas pelo módulo são repassadas ao
Arduino (ou outro microcontrolador) via serial.
Partindo para o projeto, percebemos que controlar um módulo relé para ligar uma lâmpada ou qualquer outro equipamento é bem simples, porém para verificar se o equipamento ou a lâmpada foram realmente ligados é necessário enviar um sinal de realimentação para o Arduino. Para isso, podemos utilizar um sensor de corrente para dar um feedback ao sistema informado o funcionamento de uma lâmpada ou do equipamento. Porém, atualmente, não se utilizam mais lâmpadas incandescentes e ao utilizar uma lâmpada de LED, como utilizaremos neste projeto, um sensor de corrente facilmente encontrado e de preço acessível como o ACS712 não permite fazer essa leitura. Então, para resolver esse problema, pode-se utilizar um sensor de tensão ZMPT101B que com uma leitura digital numa porta analógica é possível fazer uma leitura igual a "1" quando desligado (tensão 0 V) ou uma leitura "0" quando ligado (tensão 127 V), mas se a tensão no local variar muito, talvez essa leitura não seja correta, logo terá que optar por um outro sensor ou para baratear o projeto pode até montar um circuito com um carregador velho de celular que pode fornecer um sinal de 5 V ao Arduino informando que a lâmpada está ligada.
Outro aspecto interessante que surgiu para este projeto, foi a necessidade, como por exemplo, em uma residência onde tem uma lâmpada na varanda e/ou um holofote no quintal você ter a possibilidade de ligar tanto via bluetooth como via interruptor. Para isso, faremos um three way (chave paralela) com o módulo relé junto com um interruptor paralelo.
Componentes:
- 01 Arduino Uno/ Mega
- 01 Arduino Sensor Shield (opcional)
- 01 Módulo Bluetooth HC-06
- 02 Módulo Relé JQC-3FF-S-Z ou similares
- 02 Módulo Sensor Tensão ZMPT101B
- 02 Lâmpadas com bocal
- 02 Interruptor paralelo(three way)
- Fios para conexão
Agora, baixe ou monte seu aplicativo no App Inventor conforme abaixo:
Monte o circuito com os componentes conforme o esquema a seguir. Caso tenha dúvida, consulte um profissional eletricista, pois estaremos trabalhando com tensão de 127 V.
Após a montagem do circuito com os componentes carregue o código no Arduino:
1 # include <SoftwareSerial.h>
2 #
define In1 7 // In do Relé
3 #
define In2 8
4 #
define PinSensor1 A0 // Pino
analógico A0 --> feedback1
5 #
define PinSensor2 A5
6 #
define pinRx 0 // RX do
Arduino
7 #
define pinTx 1 // TX do
Arduino
8
9 char comando; // Comando de liga desliga
10 char
rele1 = 'a'; // Situação inicial
do relé desligado
11 char
rele2 = 'b';
12
13 int
feedback1;
14
15 int
feedback2;
16
17 void
setup()
18 {
19 Serial.begin(9600);
20 pinMode(In1, OUTPUT);
21 pinMode(In2, OUTPUT);
22 pinMode(PinSensor1, INPUT);
23 pinMode(PinSensor2, INPUT);
24 pinMode(pinRx, INPUT);
25 pinMode(pinTx, OUTPUT);
26
27 digitalWrite(In1, LOW);
28 digitalWrite(In2, LOW);
29 feedback1 = 1;
30 feedback2 = 1;
31 }
32
33 void
loop()
34 {
35 feedback1 = digitalRead(PinSensor1);
36
37 feedback2 = digitalRead(PinSensor2);
38
39 if (Serial.available())
40 {
41 comando = Serial.read();
42
43 delay(100);
44
45 if (comando == 'A')
46 {
47 if (feedback1 == 1 && (rele1 == 'a'))
48 {
49 digitalWrite(In1, HIGH);
50 // Serial.println(" Ligada ");
51 feedback1 = 0;
52 rele1 = 'A'; // Relé ligado
53 }
54 if (feedback1 == 1 && (rele1 == 'A'))
55 {
56 digitalWrite(In1, LOW);
57 //
Serial.println(" Ligada ");
58 feedback1 = 0;
59 rele1 = 'a'; // Relé desligado
60 }
61 }
62 if (comando == 'a')
63 {
64 if (feedback1 == 0 && (rele1 == 'a'))
65 {
66 digitalWrite(In1, HIGH);
67 // Serial.println(" Desligada ");
68 feedback1 = 1;
69 rele1 = 'A'; // Relé ligado
70 }
71
72 if (feedback1 == 0 && (rele1 = 'A'))
73 {
74 digitalWrite(In1, LOW);
75 //
Serial.println(" Desligada ");
76 feedback1 = 1;
77 rele1 = 'a'; // Relé desligado
78 }
79 }
80
81 if (comando == 'B')
82 {
83 if (feedback2 == 1 && (rele2 == 'b'))
84 {
85 digitalWrite(In2, HIGH);
86 // Serial.println(" Ligada ");
87 feedback2 = 0;
88 rele2 = 'B'; // Relé ligado
89 }
90 if (feedback2 == 1 && (rele2 == 'B'))
91 {
92 digitalWrite(In2, LOW);
93 //
Serial.println(" Ligada ");
94 feedback2 = 0;
95 rele2 = 'b'; // Relé desligado
96 }
97 }
98 if (comando == 'b')
99 {
100 if (feedback2 == 0 && (rele2 == 'b'))
101 {
102 digitalWrite(In2, HIGH);
103 // Serial.println(" Desligada ");
104 feedback2 = 1;
105 rele2 = 'B';
106 }
107
108 if (feedback2 == 0 && (rele2 = 'B'))
109 {
110 digitalWrite(In2, LOW);
111 //
Serial.println(" Desligada ");
112 feedback2 = 1;
113 rele2 = 'b';
114 }
115 }
116 comando = "";
117 }
118
119 feedback1 = digitalRead(PinSensor1);
120
121 if (feedback1 == 1)
122 {
123 Serial.print("soff1");
124 Serial.print("!");
125 }
126 if (feedback1 == 0)
127 {
128 Serial.print("son1");
129 Serial.print("!");
130 }
131
132 feedback2 = digitalRead(PinSensor2);
133
134 if (feedback2 == 1)
135 {
136 Serial.print("soff2");
137 Serial.print("!");
138 }
139 if (feedback2 == 0)
140 {
141 Serial.print("son2");
142 Serial.print("!");
143 }
144 }
Lembre-se de que, antes de carregar o código, o módulo bluetooth tem que estar desconectado do Arduino para evitar interferência com a porta serial.
Feito isso, instale o aplicativo no seu celular, procure o dispositivo e conecte o bluetooth. Com isso, podemos observar que ao conectar o bluetooth, o aplicativo já indica o estado em que se encontram as lâmpadas, se estiver ligada, a imagem vai aparecer de lâmpada ligada, se estiver desligada, a imagem aparece de lâmpada desligada.
Nenhum comentário:
Postar um comentário