void Measure(uint16_t number_of_measurements,struct measurements *ourMeasurement){ int i; for(i=0;i<number_of_measurements;i++){ takeMeasurement(ourMeasurement); } Calculate_Results(ourMeasurement); }
void AgroShield::SDI12(uint8_t mode) { switch( mode ) { case CHECK_ALL : mySDI12.begin(); delay(500); // Tempo para que mySDI12 seja iniciado. /* Efectua um Scan rápido de todos os endereços. */ Serial.println(" | SEARCH FOR SENSORS"); Serial.println(" | Scanning all addresses, please wait..."); for(byte i = '0'; i <= '9'; i++) if(checkActive(i)) setTaken(i); // Scan dos endereços entre 0-9 for(byte i = 'a'; i <= 'z'; i++) if(checkActive(i)) setTaken(i); // Scan dos endereços entre a-z for(byte i = 'A'; i <= 'Z'; i++) if(checkActive(i)) setTaken(i); // Scan dos endereços entre A-Z /* Imprime a informação actual de cada sensor activo. */ // Scan dos endereços entre 0-9 for(char i = '0'; i <= '9'; i++) if(isTaken(i)){ Serial.println(""); getDateTime(); found_check_all = true; Serial.print("Sensor "); Serial.print(i); Serial.print(":"); printInfo(i); //Serial.println(); } // Scan dos endereços entre a-z for(char i = 'a'; i <= 'z'; i++) if(isTaken(i)){ Serial.println(""); getDateTime(); found_check_all = true; Serial.print("Sensor "); Serial.print(i); Serial.print(": "); printInfo(i); //Serial.println(); } // Scan dos endereços entre A-Z for(char i = 'A'; i <= 'Z'; i++) if(isTaken(i)){ Serial.println(""); getDateTime(); found_check_all = true; Serial.print("Sensor "); Serial.print(i); Serial.print(":"); printInfo(i); //Serial.println(); }; if(!found_check_all) { Serial.println(" | No sensors found, please check connections and restart the Arduino.\n"); //while(true); //break; } // stop here mySDI12.end(); delay(500); found_check_all = false; break; case WILD_CARD : mySDI12.begin(); delay(500); // Tempo para que mySDI12 seja iniciado. mySDI12.sendCommand(wild_card_Command); delay(300); // Espera um tempo pela resposta. Serial.println(" | SENSORS CONNECTED"); getDateTime(); while(mySDI12.available()){ // Escreve a resposta no Serial Monitor. Serial.write(mySDI12.read()); //Serial.print(" | "); } Serial.println(""); mySDI12.end(); delay(500); break; case SIMPLE_LOGGER : mySDI12.begin(); delay(500); // Tempo para que mySDI12 seja iniciado. ////////////////////////////////////////////// Serial.println(); Serial.println(" | SENSORS INFORMATION AND MEASUREMENTS "); Serial.println(" | Scanning all addresses, please wait..."); /* Efectua um Scan rápido de todos os endereços. */ for(byte i = '0'; i <= '9'; i++) if(checkActive(i)) setTaken(i); // Scan dos endereços entre 0-9 for(byte i = 'a'; i <= 'z'; i++) if(checkActive(i)) setTaken(i); // Scan dos endereços entre a-z for(byte i = 'A'; i <= 'Z'; i++) if(checkActive(i)) setTaken(i); // Scan dos endereços entre A-Z /* Verificar se existem sensores activos. */ // for(byte i = 0; i < 62; i++){ // if(isTaken(i)){ // found = true; // break; // } // } for(char i = '0'; i <= '9'; i++){ if(isTaken(i)){ found = true; //Serial.print("Checking address "); //Serial.print(i); //Serial.print("..."); break; } } for(char i = 'a'; i <= 'z'; i++){ if(isTaken(i)){ found = true; //Serial.print("Checking address "); //Serial.print(i); //Serial.print("..."); break; } } for(char i = 'A'; i <= 'Z'; i++){ if(isTaken(i)){ found = true; //Serial.print("Checking address "); //Serial.print(i); //Serial.print("..."); break; } } if(!found) { Serial.println(" | No sensors found, please check connections and restart the Arduino.\n"); //while(true); break; } // stop here Serial.println(); Serial.println(" | Time Elapsed (s), Sensor Address and ID"); Serial.println(" | Sensor Address, Measurement 1, Measurement 2, ... etc."); Serial.println(" | -------------------------------------------------------------------------------"); ////////////////////////////////////////////// // Scan dos endereços entre 0-9 for(char i = '0'; i <= '9'; i++) if(isTaken(i)){ getDateTime(); Serial.print(millis()/1000); Serial.print(","); printInfo(i); //getDateTime(); takeMeasurement(i); Serial.println(""); } // Scan dos endereços entre a-z for(char i = 'a'; i <= 'z'; i++) if(isTaken(i)){ getDateTime(); Serial.print(millis()/1000); Serial.print(","); printInfo(i); //getDateTime(); takeMeasurement(i); Serial.println(""); } // Scan dos endereços entre A-Z for(char i = 'A'; i <= 'Z'; i++) if(isTaken(i)){ getDateTime(); Serial.print(millis()/1000); Serial.print(","); printInfo(i); //getDateTime(); takeMeasurement(i); Serial.println(""); }; ////////////////////////////////////////////// mySDI12.end(); delay(500); break; case INTERFACE : mySDI12.begin(); delay(500); // Tempo para que mySDI12 seja iniciado. mySDI12.sendCommand(""); Serial.println(" | INTERFACE COM SENSORES SDI-12"); Serial.println(" | Insira o comando a enviar (''exit'' para sair)..."); Serial.println(""); while(estado){ if(Serial.available() > 0) { myCommand = Serial.readStringUntil('\n'); //x = Serial.parseInt(); if (myCommand == "exit") { Serial.println(" | Saiu do envio de comandos"); Serial.println(""); estado = false; } if (estado){ //if ( (myCommand[0] >= '0' && myCommand[0] <= '9' || myCommand[0] >= 'a' && myCommand[0] <= 'z' || //myCommand[0] >= 'A' && myCommand[0] <= 'Z' || myCommand[0] == '?') && (myCommand[1] == 'I' || //myCommand[1] == 'M' || myCommand[1] == 'D' || myCommand[1] == 'A') && (myCommand[2] == '!' || //(myCommand[3] == '!' && (myCommand[2] >= '0' && myCommand[2] <= '9' || myCommand[2] >= 'a' && //myCommand[2] <= 'z' || myCommand[2] >= 'A' && myCommand[2] <= 'Z')) ) ) if ( (myCommand[0] >= '0' && myCommand[0] <= '9' || myCommand[0] >= 'a' && myCommand[0] <= 'z' || myCommand[0] >= 'A' && myCommand[0] <= 'Z' || myCommand[0] == '?') && (myCommand[1] == '!' || myCommand[1] == 'I' || myCommand[1] == 'M' || myCommand[1] == 'D' || myCommand[1] == 'A') && (myCommand[1] == '!' || myCommand[2] == '!' || (myCommand[3] == '!' && (myCommand[2] >= '0' && myCommand[2] <= '9' || myCommand[2] >= 'a' && myCommand[2] <= 'z' || myCommand[2] >= 'A' && myCommand[2] <= 'Z')) ) ) { getDateTime(); Serial.println(myCommand); for(int j = 0; j < 1; j++){ mySDI12.sendCommand(myCommand); // mySDI12.flush(); delay(300); if(mySDI12.available()>1) break; if(mySDI12.available()) mySDI12.read(); } delay(300); //mySDI12.read(); //consume sensor address (you can keep it if you'd like) if(mySDI12.available()){ getDateTime(); } // while(mySDI12.available()){ // comandorecebido = (String)mySDI12.read(); // if(comandorecebido == "\n"){ // Serial.println(" | "); // Serial.println(comandorecebido); // } // Serial.println(comandorecebido); // delay(5); // } while(mySDI12.available()){ Serial.write(mySDI12.read()); delay(5); } Serial.println(""); } else{ Serial.println(" | Comando Invalido"); Serial.println(""); } } } } // if(!estado) // while(!estado){ // if(Serial.available() > 0) // { // myCommand = Serial.readStringUntil('\n'); // //if (myCommand == "run sdi monitor") // if (myCommand == "run") // { // estado = true; // Serial.println("Entrou do envio de comandos"); // } // } // } mySDI12.end(); delay(500); estado = true; break; default : ; } }
double NativeADC::takeMeasurementF() { return ((double) takeMeasurement()) / ADC_MAX_VALUE; }