Sw xtr 12: PHEHT temperature calibration

MENU ASSISTED CALIBRATION PROCESS for temperature of PHEHT sensor

Required Materials

- 1 Waspmote Plug & Sense! Smart Water Xtreme - 1 PHEHT sensor

Notes

- This example is only valid for Waspmote v15

Code

/*
    ----------- [Sw_xtr_12] - PHEHT Temperature calibration --------------------

    Explanation: MENU ASSISTED CALIBRATION PROCESS for temperature
    of PHEHT sensor

    Copyright (C) 2018 Libelium Comunicaciones Distribuidas S.L.
    http://www.libelium.com

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see .

    Version:           3.0
    Design:            David Gascón
    Implementation:    J.Siscart, V.Boria
*/
#include WaspSensorXtr.h

/*
  SELECT THE RIGHT SOCKET FOR EACH SENSOR.

  Possible sockets for this sensor are:
  - XTR_SOCKET_E (Only valid socket for init() or calibrating)
                           _________
                          |---------|
                          | A  B  C |
                          |_D__E__F_|


  Refer to the technical guide for information about possible combinations.
  www.libelium.com/downloads/documentation/smart_agriculture_xtreme_sensor_board.pdf
*/

//Uncomment the sensor that you want to read the serial number
Aqualabo_PHEHT mySensor(XTR_SOCKET_E);

uint8_t response = 0;


void setup()
{
  //Turn on the sensor
  mySensor.ON();

  response = mySensor.init();
  if (response)
  {
    USB.println(F("Error initializing the sensor. \r\nCheck the sensor is in Socket E and restart the code."));
    while (1);
  }
  
  //Run menu assisted calibration process via monitor serial
  mySensor.calibrationProcess(TEMPERATURE);
  
  //Turn off the sensor
  mySensor.OFF();
}

void loop()
{
  // Turn ON the sensor
  mySensor.ON();

  // Read the sensor
  /*
    Note: read() function does not directly return sensor values.
    They are stored in the class vector variables defined for that purpose.
    Values are available as a float value
  */
  mySensor.read();

  // Turn off the sensor
  mySensor.OFF();

  // 7. Print information
  USB.println(F("---------------------------"));
  USB.println(F("PHEHT"));
  USB.print(F("Temperature: "));
  USB.printFloat(mySensor.sensorPHEHT.temperature, 2);
  USB.println(F(" degrees Celsius"));
  USB.print(F("pH: "));
  USB.printFloat(mySensor.sensorPHEHT.pH, 2);
  USB.println();
  USB.print(F("pH: "));
  USB.printFloat(mySensor.sensorPHEHT.pHMV, 2);
  USB.println(F(" mV"));
  USB.print(F("Redox: "));
  USB.printFloat(mySensor.sensorPHEHT.redox, 2);
  USB.println(F(" mV"));
  USB.println(F("---------------------------"));

  delay(5000);
}

Output

J#
 *********************************************
 MENU ASSISTED CALIBRATION PROCESS
 PHEHT sensor
 Temperature parameter
 *********************************************
 0. Introduction:
 This is a two-point calibration method. At the end of the process the results
 of the calibration will be stored in the FLASH memory of the sensor for
 future uses.
 The sensor is calibrated ex works, meaning that no calibration is required
 before initial startup. During operation the sensor should be calibrated if the
 measured values begin to drift.
 Rinse the sensor in clean water and dry it with a soft cloth or an absorbent
 paper before each calibration.
 For this process it is advisable to use a reference temperature sensor.
 To exit the calibration without considering anything please insert 'Q' to Quit
 and press Enter.
 ****************
 1. Insert the first calibration standart value you will use (offset) and press Enter.
 0*C is recommended (Sensor fully immersed in an ice/water bath)
 Example: 0.350
 > 0.250
 ****************
 2. Set sensor at selected offset: 0.2500*C.
 Wait some minutes until the measure stabilizes.
 Observing the offset in this step will help you assess whether calibration
 is necessary or not, depending on the precision required in your application.
 Then insert 'N' for Next step and press Enter.
 0.44*C
 >
 0.44*C
 >
 0.44*C
 > N
 ****************
 3. Insert the second calibration standart value (slope) and press Enter.
 25*C is recommended (Sensor fully immersed in a bath heated at 25*C)
 Example: 25.140
 > 25.050
 ****************
 4. Immerse the sensor in water at your selected slope: 25.0500*C.
 Wait some minutes until the measure stabilizes.
 Then insert 'N' for Next step and press Enter.
 24.95*C
 >
 24.95*C
 > N
 ****************
 5. In order to validate the calibration some data is required.
 Please insert operator's name (up to 16 letters) and press Enter.
 > LIBELIUM
 ****************
 6.Please insert calibration date.
 Insert year [yy] and press Enter.
 > 18
 Insert month [mm] and press Enter.
 > 11
 Insert day [dd] and press Enter.
 > 5
 Insert Hour [HH] and press Enter.
 > 15
 Insert minute [MM] and press Enter.
 > 16
 ****************
 Calibration successfully finished!
 ****************
 End of calibration process
 *********************************************
 ---------------------------
 PHEHT
 Temperature: 25.77 degrees Celsius
 pH: 7.61
 pH: -36.97 mV
 Redox: 88.63 mV
 --------------------------

Last updated