Bom dia!
Estou querendo ler o status da lampada usando um sensor de corrente que encontrei feito pelo Marcelo Cuin. Abaixo imagem e códigos utilizados. Como não encontrei o TIL111 no fritzing coloquei um 4N35 no desenho.
O código da biblioteca utilizada:
#include <SPI.h>
#include "EthernetSupW5100.h"
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);
EthernetServer server(80);
int Lampada1 = 5;
int Lampada2 = 6;
int Tomada = 7;
int Fechadura = 3;
void setup()
{
EthernetSupW5100.begin(mac, ip);
server.begin();
// Configurando portas dos botoes
pinMode(Lampada1, OUTPUT);
pinMode(Lampada2, OUTPUT);
pinMode(Tomada, OUTPUT);
pinMode(Fechadura, OUTPUT);
// Estado incial das portas
digitalWrite(Lampada1, LOW);
digitalWrite(Lampada2, LOW);
digitalWrite(Tomada, LOW);
digitalWrite(Fechadura,LOW);
// Registrando botoes
//EthernetSupW5100.addButton(button pin, text on, text off, button type);
EthernetSupW5100.addButton(Lampada1, "Lampada", "Lampada", FLIP_BUTTON);
EthernetSupW5100.addButton(Lampada2, "Lampada2", "Lampada2", FLIP_BUTTON);
EthernetSupW5100.addButton(Tomada, "Tomada", "Tomada", FLIP_BUTTON);
EthernetSupW5100.addButton(Fechadura, "AbrirPorta","",SWITCH_BUTTON);
}
void loop()
{
// Carrega HTML
EthernetSupW5100.loadHtml(server);
// Verifica se algum botao foi pressionado
int lastButton = EthernetSupW5100.getLastClickedButton();
byte state = EthernetSupW5100.getButtonState(lastButton);
// Executa o comando conforme o botao clicado
if (lastButton == Lampada1)
{
digitalWrite(Lampada1, state);
}
else if (lastButton == Lampada2)
{
digitalWrite(Lampada2, state);
}
else if (lastButton == Tomada)
{
digitalWrite(Tomada, state);
}
else if (lastButton == Fechadura)
{
digitalWrite(Fechadura, HIGH);
delay(1000);
digitalWrite(Fechadura, LOW);
}
// Delay
delay(10);
}
O código de teste que fiz para ver se o sensor de tensão esta funcionando:
void setup() {
Serial.begin(9600);
}
// Verifica se o sistema esta online
boolean isOnline(){
// Faz ate 100 leituras procurando valor acima de 300
for (int i = 0; i < 100; i++){
// A partir de 300 considera-se ligada
if (analogRead(A0) > 200){
return true;
}
}
// Se em 100 leituras nao leu 1, entao esta desligada
return false;
}
void loop() {
String statusLine = (isOnline()) ? "online" : "offline";
Serial.print("status energia: ");
Serial.println(statusLine);
delay(1000);
}
Testei o sensor de tensão e funcionou usando o serial monitor. Agora quero fazer o status da lampada mudar na pagina quando eu acionar o interruptor paralelo. Se alguém puder me ajudar ficarei muito grato, pois não sei como fazer.
Tags:
Blz?
Deixa eu ver se eu entendi seu projeto, vc que acionar via net o estado on/off das lâmpadas, tomada e fechadura, não é isso?
Agora vc quer praticamente receber uma informação pela net quando ligarem e desligarem o interruptor?
Sei que é errado responder uma pergunta com outra, entretanto, não posso responder sem certeza.
Blz!
É isso mesmo Rodrigo.
Bom esse circuito do sensor já está funcionando correto?
Bom você precisará criar um algoritmo de entrada, podendo ser de entrada digital mesmo.
Daí começa a complicar vc terá que programar mexendo com protocolos de servidores, eles que irão
monitor via net as informações que o Arduino recebe e depois enviará a resposta na sua página.
Para ser franco, preciso pesquisar mais sobre isso. Contudo tenho exercício de sensor de temperatura sendo monitorado via net, recebendo a resposta dos graus na página, quase a mesma coisa. Serve para vc comparar os códigos de acesso a rede, pode ser?
O circuito já está funcionando.
O único problema ate o momento esta sendo em enviar a informação do status da lampada para a pagina html quando utilizo o interruptor paralelo.
Se puder me enviar o código pra comparar aqui, sera muito útil.
Blz. Aqui está o código. Este projeto é de um livro que resumi.
boa sorte com o projeto!
Obrigado!
Deve ter queimado o diodo do 4n35, tem que por um resistor 1n4007 em anti paralelo com o led.
Jucelei,
Ele disse que só utilizou o 4n35 no Fritzing porque não tinha o TIL111 que é o que ele está usando.
Quanto a ajuda fico devendo mas também estou curioso pela resposta da sua dúvida.
voce quiz dizer resistor ou diodo?
1n4007 é um diodo e nao um resistor
diodo mesmo, valeu...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por