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.

Exibições: 1944

Responder esta

Respostas a este tópico

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!

Anexos

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...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço