Boa tarde Pessoal,

 

  Estou com uma duvida e resolvi recorrer a galera do laboratório garagem, pois vejo a disposição de todos em querer ajudar...

 A duvida é a seguinte, quero colocar sensores em duas salas diferentes ou mais usando um arduino uno para cada sala e visualizar  os status dos sensores pela rede, poderia usar um único arduino para isso, mas teria a questão da fiação. Então vamos partir para primeira opção... criei um programa para ler sensor de presença. Testando de duas formas, a primeira fazendo o upload do mesmo programa nos dois arduinos (com o mesmo IP) para ver se exibia as informações na mesma pagina, mudando algum detalhe para saber de quem era informação. Exibiu apenas a informação de um dos arduinos.

 No segundo caso, mudei no segundo arduino o IP. E aconteceu que quando os dois arduinos estão ligados, mesmo com dois IP's diferentes, no browser ele exibe os dois, porém um de cada vez, dando prioridade para aquele que está ligado durante mais tempo. Se os dois estiverem ligados uma das paginas da erro, seguindo a regra de prioridade.

 Queria saber se é possível 1º exibir tudo em uma única pagina, no caso usando o mesmo IP,

 e 2º O que está errado da na segunda forma que eu fiz? Já que provavelmente é possível exibir informação de vários arduinos com IP's diferentes na net.

 Obrigado dede já!!

        

#include <SPI.h>
#include <Ethernet.h>


//Sensor de presença
int PIRpin = 4;
int PIR = 0;

//Sirene
int buz = 5;

byte mac[] = {
0xDE, 0xDA, 0xEB, 0xFE, 0xAE, 0xFD }; // Enter a MAC address and IP address for your controller below.
IPAddress ip(192,168,0, 170); // The IP address will be dependent on your local network:

EthernetServer server(80); // (port 80 is default for HTTP):

void setup() {
Serial.begin(9600); // Open serial communications and wait for port to open:
pinMode(PIRpin, INPUT);
pinMode(buz,OUTPUT);

while (!Serial) { // wait for serial port to connect.
;
}

Ethernet.begin(mac, ip); // start the Ethernet connection and the server:
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}


void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK"); // send a standard http response header
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<meta http-equiv=\"refresh\" content=\"5\">"); // add a meta refresh tag, so the browser pulls again every 5 seconds:
client.println("<title>Arduino Web Server</title></head>");
client.println("<body>\n");
client.println("<h1>Controle de Sensores</h1>");
client.println("<h3>Presenca</h3>");

// Sensor de Presença e Sirene

PIR = digitalRead(PIRpin);
if (PIR==HIGH){
Serial.println("Presenca: Precenca Detectada ");
client.println("Presenca: Precenca Detectada. ");
//Sirene
digitalWrite(buz,HIGH);
delay(500);
digitalWrite(buz,LOW);
delay(500);
delay(1000);
}

else {
Serial.println("Presenca: Nenhuma Presenca Detectada.!!");
client.println("Presenca: Nenhuma Presenca Detectada.");
delay(2000);
}

client.println("</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}

delay(1); // give the web browser time to receive the data
client.stop(); // close the connection:
Serial.println("client disonnected");
}
}

 

Exibições: 577

Responder esta

Respostas a este tópico

Acho que vc teria que montar um outro server que pegasse a informação de cada um e mesclasse numa página.

Outra dica: além do IP, o MAC tem que ser diferente.

faz a página em um, mostrar um iframe apontando para a página do segundo, manter um na porta 80 outro com a porta 82, 

Não é mais fácil colocar para se comunicarem sem fio e ligar um só na rede?

Você pode criar tudo em um unico arduino e o outro arduino fica recebendo os sensores, nao precisa do arduino ir ate o quarto, envia apenas o sensor .. com fio ou sem fio. Caso use mais de um arduino, vc coloca um para ser o servidor web.. e outro para ler os sensores, o que ler os sensores se comunica com o primeiro enviando via serial ou i2c.

Pessoal obrigado pelo retorno, todo o projeto esta no trabalho então segunda eu dou continuidade testando as soluções sugeridas e passo o resultado final. Não sabia que tinha como ler sensor sem fio, mas o receio é o comprometimento do sinal caso eu precise espalhar sensores pela empresa todo, alem de presença preciso instalar outros sensores... Mas pelo menos deu pra ver que instalar 2 ou mais ardunos na rede não é tão simples. 

 Aproposito Mauro eu tbm alterei o MAC e nada... 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço