Boa Noite a todos
Os medidores de fluxo e a luz de fluxo de ar (como o sensor não é usado para o fluxo de ar não podem ser utilizados para saber exatamente quando)
Estou tendo a dificuldade de fazer o segundo sensor de registro como leituras, segue o código completp para analises.
#include <OneWire.h> // Biblioteca Sensor de temperatura
#include <DallasTemperature.h> // sensor de biblioteca DS18b20
#include <SPI.h> // Biblioteca Shield de rede
#include <Ethernet.h> // web da interface da biblioteca
#define ONE_WIRE_BUS 7 // Porta que o sensor de temperatura está ligado
OneWire oneWire (ONE_WIRE_BUS); // Definir uma instancia de um fio para comunicação com o sensor
// Codigo dos sensores de temperatura
Sensores de temperatura Dallas (& oneWire);
DeviceAddress sensor1 = {0x28, 0xFF, 0xA5, 0x22, 0x00, 0x17, 0x05, 0x63};
DeviceAddress sensor2 = {0x28, 0xFF, 0x5B, 0x2C, 0x00, 0x17, 0x03, 0xAF};
// Definicoes de MAC, IP, rímel de rede e gateway
byte mac = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip (192, 168, 1, 188); // Definir o endereco IP
Gateway IPAddress (192, 168, 1, 1); // Definir o gateway
Sub-rede IPAddress (255, 255, 255, 0); // Definir uma máscara de rede
Servidor EthernetServer (80); // Inicialização do servidor web na porta 80
// declaracao de variavais
int poten = 0; // Potenciômetro
const int RelePin1 = 15; // pino ao qual o Módulo Relé 1 está conectado A1 = 15
const int RelePin2 = 14; // pino ao qual o Módulo Relé 2 está conectado porta A0 = 14
int incomingByte; // variavel para as bases de dados pela serial
flutuador vazaoagua; // Variável para guardar o valor da vazão de agua
int contaPulsoAgua; // Variável para uma quantidade de pulsos
flutuador vazaoar; // Variável para armazenar ou valor da vazão de ar
int contaPulsoAr; // Variável para uma quantidade de pulsos
void setup (void)
{
Ethernet.begin (mac, ip, gateway, sub-rede); // Inicializa uma interface de rede
server.begin (); // Inicializa uma interface de rede
Serial.begin (9600); // Inicia Monitor serial
sensors.begin(); // Inicia sensores de temperatura
pinMode(RelePin1, OUTPUT); // seta o pino como saída
pinMode(RelePin2, OUTPUT); // seta o pino como saída
//Exibe sensores encontrados/caso não encontre nenhum exibe mensagem de erro
Serial.print(’\n’);
Serial.println(“Localizando sensores DS18B20…”);
Serial.print("Foram encontrados ");
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(" sensores.");
if (!sensors.getAddress(sensor1, 0))
Serial.println(“Sensores nao encontrados !”);
// Imprime o Endereço Sensor temperaturado Ar
Serial.print(’\n’);
Serial.print("Endereco sensor1 : ");
mostra_endereco_sensor(sensor1);
Serial.println();
//Implime o Endereço Sensor temperaturado Ar
Serial.print(’\n’);
Serial.print("Endereco sensor2 : ");
mostra_endereco_sensor(sensor2);
Serial.println();
// Sensor de agua
pinMode(2, INPUT); // Seta pino 2 sensor de agua como entrada de dados
attachInterrupt(digitalPinToInterrupt(2), incpulsoagua, RISING); //Configura o pino 2(Interrupção 0) interrupção
// Sensor de ar
pinMode(3, INPUT); // Seta pino 3 sensor de ar como entrada de dados
attachInterrupt(digitalPinToInterrupt(3), incpulsoar, RISING); //Configura o pino 3(Interrupção 0) interrupção
}
void mostra_endereco_sensor(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 8; i++)
{
// Adiciona zeros se necessário
if (deviceAddress < 16) Serial.print(“0”);
_ Serial.print(deviceAddress*, HEX);_
_ }_
_}_
void loop()
_{_
_ // Le a informacao do sensor de ar*_
* sensors.requestTemperatures();*
* float ar = sensors.getTempC(sensor1);*
* delay(0);*
* // Le a informacao do agua*
* sensors.requestTemperatures();*
* float agua = sensors.getTempC(sensor2);*
* delay(0);*
* //logica para vazão de agua*
* contaPulsoAgua = 0;//Zera a variável*
* sei(); //Habilita interrupção*
* delay (1000); //Aguarda 1 segundo*
* cli(); //Desabilita interrupção*
* vazaoagua = contaPulsoAgua / 5.5; //Converte para L/min*
* //logica para vazão de ar*
* contaPulsoAr = 0;//Zera a variável*
* sei(); //Habilita interrupção*
* delay (1000); //Aguarda 1 segundo*
* cli(); //Desabilita interrupção*
* vazaoar = contaPulsoAr / 5.5; //Converte para L/min*
* // Logica de acionamento do relé*
* if ((ar >= 50) || (agua >= 50) || (vazaoagua <= 4.00) || (vazaoar <= 6.00))*
* {*
* digitalWrite(A1, HIGH);*
* }*
* else*
* {*
* digitalWrite(A1, LOW);*
* }*
* // Lé o Status do relé*
* float RelePin1 = digitalRead(A1);*
* //imprimir dados no serial monitor*
* Serial.print(“Temperatura do Ar :”);*
* Serial.println(ar);*
* Serial.print(’\n’);*
* Serial.print(“Temperatura da Agua :”);*
* Serial.println(agua);*
* Serial.print(’\n’);*
* Serial.print(“Vazao da agua:”);*
* Serial.print(vazaoagua);*
* Serial.print(’\n’);*
* Serial.print(“Vazao do Ar :”);*
* Serial.print(vazaoar);*
* Serial.print(’\n’);*
* Serial.print(“Status do Relé :”);*
* Serial.print(RelePin1);*
* Serial.print(’\n’);*
* //Aguarda conexao do browser*
* EthernetClient client = server.available();*
* if (client) {*
* Serial.print(’\n’);*
* Serial.println(“new client”);*
* boolean currentLineIsBlank = true;*
* while (client.connected()) {*
* if (client.available()) {*
* char c = client.read();*
* Serial.write(c);*
* if (c == ‘n’ && currentLineIsBlank) {*
* // Envio de cabeçalho*
* client.println(“HTTP/1.1 200 OK”);*
* client.println(“Content-Type: text/html”);*
* client.println(“Connection: close”);*
* client.println(“Refresh: 15”);*
* client.println();*
* client.println("");*
* client.println("");*
* //Impressao de dados para a pagina de integração*
* client.print(agua);// HTML LInha 1, Exibe temperatura da Agua*
* client.println("*
");
* client.print(ar);// HTML LInha 2, Exibe temperatura da Ar*
* client.println("*
");
* client.print(vazaoagua);// HTML LInha 3, Exibe Fluxo de agua*
* client.println("*
");
* client.print(vazaoar);// HTML LInha 4, Exibe pressao do Ar*
* client.println("*
");
* client.print(RelePin1);// HTML LInha 5, Exibe status do relé*
* client.println("*
");
* break;*
* delay(15000);*
* }*
* }*
* }*
* client.stop(); // encerra a conecção*
* }*
}
void incpulsoagua()
{
* contaPulsoAgua++; //Incrementa a variável de pulsos*
}
void incpulsoar()
{
* contaPulsoAr++; //Incrementa a variável de pulsos*
}