Estou trabalhando num projeto de uma casa automatizada, e pretendo com o elipse realizar alguns controles e supervisionar alguns valores. Começando pelos leds por exemplo, existe uma programação que os aciona tanto através de sensores de presença quanto através de botões. Vamos chamar a programação que inclui todas essas lógicas de 1. Existe uma programação 2, oferecida através dos exemplos da própria biblioteca ArduinoCloudLink que é chamada de EthernetShield e conecta o Ethernet Shield ao Arduino. Porém, como preciso fazer o monitoramento e controle das ações remotamente, ao juntar a programação 1 à programação 2 o circuito simplesmente não responde: os sensores de presença não captam mais movimento, os botões não são lidos e, com isso, os leds não respondem. Como posso resolver este problema e fazer com que a lógica da minha programação seja obedecida e o meu EthernetShield seja conectado ao elipse Elipse para que eu possa monitorar e controlar estes valores?
P.S. Abaixo, a programação do cômodo do banheiro da casa, onde um led azul é acionado por um sensor de presença e um led branco é acionado por um botão. Como posso configurar o meu EthernetShield ao Elipse sem que o circuito apresente erros? Utilizo um Arduino Mega.
//LED AZUL + PRESENÇA
int ledazul = 18; // led azul do banheiro na na porta 18
int PIRbanheiro = 34; // sensor de presença do banheiro na porta 34
int PIRbanheiroestado = LOW; // começa-se assumindo que não há movimento detectado
int val_banheiro = 0; // variável que lê o estado dos pinos
//INTERRUPTOR + LED BRANCO
int ledbanheiro=16; // led no pino 16
int botaobanheiro=24; // botão no pino 24
int varbanheiro=0; // valor instantaneo enviado pelo botão
int varbanheiro2=0; // valor guardado
int estadobotaobanheiro=0; // guarda o valor 0 ou 1 (HIGH ou LOW)
void setup() {
//LED AZUL + PRESENÇA
pinMode(ledazul, OUTPUT); // declara led como uma saída
pinMode(PIRbanheiro, INPUT); // declara o sensor como uma entrada
//INTERRUPTOR + LED BRANCO
pinMode(ledbanheiro,OUTPUT);
pinMode(botaobanheiro,INPUT);
Serial.begin(9600); //mostra os valores na serial
}
void loop(){
//LED AZUL + PRESENÇA
val_banheiro = digitalRead(PIRbanheiro); // variável que lê o valor do sensor
if (val_banheiro == HIGH) { // se o sensor detectar movimento
digitalWrite(ledazul, HIGH); // liga o led
if (PIRbanheiroestado == LOW) //o sensor acabou de iniciar
{
Serial.println(“Movimento Detectado”); // só queremos saber a mudança de saída, não o estado
PIRbanheiroestado = HIGH;
}
}
else {
digitalWrite(ledazul, LOW); // caso contrário, desliga o led
if (PIRbanheiroestado == HIGH){ //o sensor acabou de terminar a detecção
Serial.println(“Sem Movimento”); // só queremos saber a mudança de saída, não o estado
PIRbanheiroestado = LOW;
}
}
//INTERRUPTOR + LED BRANCO
varbanheiro=digitalRead(botaobanheiro); // ler o valor enviado pelo botão: “HIGH” ou “LOW”
if ((varbanheiro == HIGH) && (varbanheiro2 == LOW)) {
estadobotaobanheiro = 1 - estadobotaobanheiro;
delay(20); // de-bouncing
}
varbanheiro2=varbanheiro;
if (estadobotaobanheiro == 1) {
digitalWrite(ledbanheiro, HIGH); // liga o led
}
else {
digitalWrite(ledbanheiro, LOW); // desliga o led
}
}