Thank you all for your replies
Please see complete code & typical output
#include <Arduino.h>
#include <time.h>
#include <SPI.h>
#include <Ethernet.h>
volatile int flow_frequency_2,flow_frequency_3;
unsigned int l_hour, l_hour_1,prev_sens_2=0,prev_sens_3=0;
unsigned long currentTime;
unsigned long cloopTime;
unsigned int sec_count_2=0, sec_count_3=0,pulse_count_2=0,pulse_count_3=0,delay_time=2000;
unsigned int rec_exsist_2=0, rec_exsist_3=0;
EthernetClient client;
byte mac[] = { 0xDE, 0xAD, 0xBF, 0x1F, 0x4E, 0xED };
char server[] = "192.168.1.9";
IPAddress ip(192,168,1,20);
void flow_2(){
flow_frequency_2++;
Serial.print("flow_frequency_2 ");
Serial.print(flow_frequency_2, DEC);
Serial.println("");
}
void flow_3(){
flow_frequency_3++;
Serial.print("flow_frequency_3 ");
Serial.print(flow_frequency_3, DEC);
Serial.println("");
}
void setup(){
Serial.begin(9600);
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), flow_2, FALLING);
pinMode(3, INPUT);
attachInterrupt(digitalPinToInterrupt(3), flow_3, RISING);
currentTime = millis();
cloopTime = currentTime;
pinMode(13, OUTPUT);
Ethernet.begin(mac, ip);
Serial.println("Tweaking4All.com - Temperature Drone - v2.0");
Serial.println("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
Serial.print("IP Address : ");
Serial.println(Ethernet.localIP());
Serial.print("Subnet Mask : ");
Serial.println(Ethernet.subnetMask());
Serial.print("Default Gateway IP: ");
Serial.println(Ethernet.gatewayIP());
Serial.print("DNS Server IP : ");
Serial.println(Ethernet.dnsServerIP());
sei(); // Enable interrupts
}
void loop (){
currentTime = millis();
if(currentTime >= (cloopTime + delay_time)){
digitalWrite(13, LOW);
int del_pulse_2=0;
int del_pulse_3=0;
cloopTime = currentTime;
cli();
Serial.print("delta_pulse_2 ");
del_pulse_2 = flow_frequency_2;
flow_frequency_2=0;
Serial.print(del_pulse_2, DEC);
Serial.println("");
Serial.print("delta_pulse_3 ");
del_pulse_3 = flow_frequency_3;
flow_frequency_3=0;
Serial.print(del_pulse_3, DEC);
Serial.println("");
sei();
delay_time=2000;
if(del_pulse_2==0 && pulse_count_2 == 0){
sec_count_2 = sec_count_2+2;
Serial.print("continu no flow 2 -> sec count : ");
Serial.print(sec_count_2);
Serial.println("");
if(sec_count_2 > 500){
send_data_to_server(2, sec_count_2, pulse_count_2,rec_exsist_2);
rec_exsist_2=1;
sec_count_2=0;
}
}else if(del_pulse_2 > 0 && pulse_count_2 > 0){
pulse_count_2 = pulse_count_2 + del_pulse_2;
sec_count_2 = sec_count_2+2;
Serial.print("continu flow 2 -> sec count : ");
Serial.print(sec_count_2);
Serial.print(" pulse count : ");
Serial.print(pulse_count_2);
Serial.println("");
if(sec_count_2 > 500){
send_data_to_server(2, sec_count_2, pulse_count_2,rec_exsist_2);
rec_exsist_2=1;
sec_count_2=0;
}
}else if(del_pulse_2 > 0 && pulse_count_2 == 0){
Serial.print("transmit zero 2 -> sec count : ");
Serial.print(sec_count_2);
Serial.println("");
if(sec_count_2>0)
send_data_to_server(2, sec_count_2, pulse_count_2,rec_exsist_2);
rec_exsist_2 = 0;
pulse_count_2 = del_pulse_2;
sec_count_2 = 2;
}else if(del_pulse_2 == 0 && pulse_count_2 > 0){
Serial.print("transmit flow 2 -> sec count : ");
Serial.print(sec_count_2);
Serial.print(" pulse count : ");
Serial.print(pulse_count_2);
Serial.println("");
send_data_to_server(2, sec_count_2, pulse_count_2,rec_exsist_2);
rec_exsist_2 = 0;
sec_count_2 = 0;
pulse_count_2 = 0;
}
if(del_pulse_3==0 && pulse_count_3 == 0){
sec_count_3 = sec_count_3+2;
Serial.print("continu no flow 3 -> sec count : ");
Serial.print(sec_count_3);
Serial.println("");
if(sec_count_3>500){
send_data_to_server(3, sec_count_3, pulse_count_3,rec_exsist_3);
rec_exsist_3=1;
sec_count_3=0;
}
}else if(del_pulse_3 > 0 && pulse_count_3 > 0){
pulse_count_3 = pulse_count_3 + del_pulse_3;
sec_count_3 = sec_count_3+2;
Serial.print("continu flow 3 -> sec count : ");
Serial.print(sec_count_3);
Serial.print(" pulse count : ");
Serial.print(pulse_count_3);
Serial.println("");
if(sec_count_3 > 500){
send_data_to_server(3, sec_count_3, pulse_count_3,rec_exsist_3);
rec_exsist_3=1;
sec_count_3=0;
}
}else if(del_pulse_3 > 0 && pulse_count_3 == 0){
Serial.print("transmit zero 3 -> sec count : ");
Serial.print(sec_count_3);
Serial.println("");
if(sec_count_3>0)
send_data_to_server(3, sec_count_3, pulse_count_3,rec_exsist_3);
rec_exsist_3 = 0;
pulse_count_3 = del_pulse_3;
sec_count_3 = 2;
}else if(del_pulse_3 == 0 && pulse_count_3 > 0){
Serial.print("transmit flow 3 -> sec count : ");
Serial.print(sec_count_3);
Serial.print(" pulse count : ");
Serial.print(pulse_count_3);
Serial.println("");
send_data_to_server(3, sec_count_3, pulse_count_3,rec_exsist_3);
rec_exsist_3 = 0;
sec_count_3 = 0;
pulse_count_3 = 0;
}
}
}
void send_data_to_server(int seneNo,int procSec, int pulseCount, int transType){
if (client.connect(server, 80)) {
Serial.println("-> Connected");
client.print( "GET /BondaASP.aspx?");
client.print("prm=100");
client.print("&&");
client.print("ControlNo=A00000001");
client.print("&&");
client.print("SensorNo=");
client.print(seneNo);
client.print("&&");
client.print("TransTime=");
client.print("24/06/2016%2020:00:00");
client.print("&&");
client.print("delaySec=");
client.print(0);
client.print("&&");
client.print("procSec=");
client.print(procSec);
client.print("&&");
client.print("pulseCount=");
client.print(pulseCount);
client.print("&&");
client.print("transType=");
client.print(transType);
client.println( " HTTP/1.1");
client.print( "Host: " );
client.println(server);
client.println( "Connection: close" );
client.println();
client.println();
client.stop();
delay(1000);
delay_time = delay_time - 1000;
} else
Serial.println("--> connection failed/n");
}
Typical output : when sensor 2 fire also sensor 3 fire
TransTime input ProcSec Pulses Liters
05/07/2016 18:54:07 3 474 0 0.00
05/07/2016 18:54:05 2 474 0 0.00
05/07/2016 18:46:09 3 2 3 0.01
05/07/2016 18:46:08 2 2 1 0.00
05/07/2016 18:46:06 3 474 0 0.00
05/07/2016 18:46:04 2 474 0 0.00
05/07/2016 18:38:09 3 2 4 0.01
05/07/2016 18:38:07 2 2 3 0.01
05/07/2016 18:38:06 3 474 0 0.00
05/07/2016 18:38:05 2 474 0 0.00
05/07/2016 18:30:09 3 2 5 0.02
05/07/2016 18:30:08 2 2 4 0.01
05/07/2016 18:30:07 3 474 0 0.00
05/07/2016 18:30:05 2 474 0 0.00
05/07/2016 18:22:09 3 2 1 0.00
05/07/2016 18:22:07 2 2 2 0.01
05/07/2016 18:22:06 3 474 0 0.00
05/07/2016 18:22:04 2 474 0 0.00
05/07/2016 18:14:08 3 2 4 0.01
05/07/2016 18:14:07 2 2 3 0.01
05/07/2016 18:14:06 3 474 0 0.00
05/07/2016 18:14:04 2 474 0 0.00
please see diagram attached
Looking forward to your comments
BR
Yalon