Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Toute la communauté vous remercie

Noeud aquarium/aquaponie/hydroponie/jardin

Retrouvez ici des sujets concernant le protocole mySensors et les modules domotiques de type mySensors utilisés avec JEEDOM
/!\ Plugin mySensors non officiel
Avatar de l’utilisateur
Jamsta
Actif
Messages : 744
Inscription : 10 oct. 2014, 07:11
Localisation : Biganos (Région Bordelaise)
Contact :

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par Jamsta » 17 févr. 2015, 12:16

J'ai réduit le temps du sleeptime et ça fonctionne j'ai bien la remontée dans le moniteur et Jeedom, cependant les valeurs sont incohérentes, de temps à autre il y a la bonne valeur PH et le voltage qui remonte sinon j'ai une valeur trop élevée :
moniteur phsensor.JPG
moniteur phsensor.JPG (61.94 Kio) Consulté 679 fois
Je continue mes tests.
Jeedom Pro Z-Wave + Edisio|MySensors + Téléinfo sur RPi B+
Domotik's Habitat
Matériel

Filoucaenais
Timide
Messages : 124
Inscription : 01 juil. 2014, 09:00

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par Filoucaenais » 17 févr. 2015, 12:29

pour sa je peux pas d'aider !
le principal c'est que la fonction de remonter les info à jeedom fonctionnent

Avatar de l’utilisateur
Jamsta
Actif
Messages : 744
Inscription : 10 oct. 2014, 07:11
Localisation : Biganos (Région Bordelaise)
Contact :

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par Jamsta » 17 févr. 2015, 12:30

Oui, je vais trouver :)
Merci encore
Jeedom Pro Z-Wave + Edisio|MySensors + Téléinfo sur RPi B+
Domotik's Habitat
Matériel

Avatar de l’utilisateur
Jamsta
Actif
Messages : 744
Inscription : 10 oct. 2014, 07:11
Localisation : Biganos (Région Bordelaise)
Contact :

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par Jamsta » 17 févr. 2015, 13:39

C'est bon ça fonctionne, les infos remontent bien sous Jeedom. Merci pour ton aide ;)

Le sketch:

Code : Tout sélectionner

#include <SPI.h>
#include <MySensor.h> 

#define CHILD_ID_PH 0 // defenir le N° du capteur
#define PH_SENSOR_ANALOG_PIN 0
#define Offset 0.00            //deviation compensate
#define LED 13
#define samplingInterval 20
#define printInterval 800
#define ArrayLenth  40    //times of collection
int pHArray[ArrayLenth];   //Store the average value of the sensor feedback
int pHArrayIndex=0;    

MySensor gw;
MyMessage msg(CHILD_ID_PH, V_VAR1); // V_PH n'hesiste pas encore

void setup(void)
{
  gw.begin();
  Serial.print("0;0;3;0;2;"); Serial.print(LIBRARY_VERSION); // ne pas en mettre trop sur un ligne et les espace on leur utiliter
 
  gw.sendSketchInfo("PHSensor", "1.0");
  
  gw.present(CHILD_ID_PH, S_WATER); // idem pour S_PH
  
  pinMode(LED,OUTPUT);  
}
void loop(void)
{
  static unsigned long samplingTime = millis();
  static unsigned long printTime = millis();
  static float pHValue,voltage;
  if(millis()-samplingTime > samplingInterval)
  {
      pHArray[pHArrayIndex++]=analogRead(PH_SENSOR_ANALOG_PIN);
      if(pHArrayIndex==ArrayLenth)pHArrayIndex=0;
      voltage = avergearray(pHArray, ArrayLenth)*5.0/1024;
      pHValue = 3.5*voltage+Offset;
      samplingTime=millis();
  }
  if(millis() - printTime > printInterval)   //Every 800 milliseconds, print a numerical, convert the state of the LED indicator
  {
	Serial.print("Voltage:");
        Serial.print(voltage,2);
        Serial.print("    pH value: ");
	Serial.println(pHValue,2);
        digitalWrite(LED,digitalRead(LED)^1);
        printTime=millis();

      gw.send(msg.set(pHValue,2)); // envoi au reseau avec une decimal        
  }
}
double avergearray(int* arr, int number){
  int i;
  int max,min;
  double avg;
  long amount=0;
  if(number<=0){
    Serial.println("Error number for the array to avraging!/n");
    return 0;
  }
  if(number<5){   //less than 5, calculated directly statistics
    for(i=0;i<number;i++){
      amount+=arr[i];
    }
    avg = amount/number;
    return avg;
  }else{
    if(arr[0]<arr[1]){
      min = arr[0];max=arr[1];
    }
    else{
      min=arr[1];max=arr[0];
    }
    for(i=2;i<number;i++){
      if(arr[i]<min){
        amount+=min;        //arr<min
        min=arr[i];
      }else {
        if(arr[i]>max){
          amount+=max;    //arr>max
          max=arr[i];
        }else{
          amount+=arr[i]; //min<=arr<=max
        }
      }//if
    }//for
    avg = (double)amount/(number-2);
  }//if
  return avg;
}
Dernière édition par Jamsta le 17 févr. 2015, 14:15, édité 1 fois.
Jeedom Pro Z-Wave + Edisio|MySensors + Téléinfo sur RPi B+
Domotik's Habitat
Matériel

Avatar de l’utilisateur
mamatdv
Actif
Messages : 1463
Inscription : 10 juil. 2014, 10:03
Localisation : Dijon

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par mamatdv » 17 févr. 2015, 13:47

Il y a vraiment des pros ici ! Bravo messieurs !
Beta-testeur
Mon matosici
Doc jeedom - Trucs et astuce

Avatar de l’utilisateur
Jamsta
Actif
Messages : 744
Inscription : 10 oct. 2014, 07:11
Localisation : Biganos (Région Bordelaise)
Contact :

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par Jamsta » 17 févr. 2015, 16:18

Voici le sketch pour la sonde EC+DS18B20

Code : Tout sélectionner

#include <SPI.h>
#include <MySensor.h> 
#include <OneWire.h>

#define StartConvert 0
#define ReadTemperature 1
#define CHILD_ID_EC 0 // defenir le N° du capteur
#define CHILD_ID_TEMP 1 // defenir le N° du capteur

const byte numReadings = 20;     //the number of sample times
byte ECsensorPin = A1;  //EC Meter analog output,pin on analog 1
byte DS18B20_Pin = 3; //DS18B20 signal, pin on digital 2
unsigned int AnalogSampleInterval=25,printInterval=700,tempSampleInterval=850;  //analog sample interval;serial print interval;temperature sample interval
unsigned int readings[numReadings];      // the readings from the analog input
byte index = 0;                  // the index of the current reading
unsigned long AnalogValueTotal = 0;                  // the running total
unsigned int AnalogAverage = 0,averageVoltage=0;                // the average
unsigned long AnalogSampleTime,printTime,tempSampleTime;
float temperature,ECcurrent; 

unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)

//Temperature chip i/o
OneWire ds(DS18B20_Pin);  // on digital pin 2

MySensor gw;
MyMessage msg(CHILD_ID_EC, V_VAR1); 
MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);

void setup() 
{
  gw.begin();
  Serial.print("0;0;3;0;2;"); Serial.print(LIBRARY_VERSION); // ne pas en mettre trop sur un ligne et les espace on leur utiliter
 
  gw.sendSketchInfo("ECSensor", "1.0");
  
  gw.present(CHILD_ID_EC, S_WATER); 
  gw.present(CHILD_ID_TEMP, S_TEMP);

  // initialize all the readings to 0:
  for (byte thisReading = 0; thisReading < numReadings; thisReading++)
    readings[thisReading] = 0;
  TempProcess(StartConvert);   //let the DS18B20 start the convert
  AnalogSampleTime=millis();
  printTime=millis();
  tempSampleTime=millis();
}

void loop() {
  /*
   Every once in a while,sample the analog value and calculate the average.
  */
  if(millis()-AnalogSampleTime>=AnalogSampleInterval)  
  {
    AnalogSampleTime=millis();
     // subtract the last reading:
    AnalogValueTotal = AnalogValueTotal - readings[index];
    // read from the sensor:
    readings[index] = analogRead(ECsensorPin);
    // add the reading to the total:
    AnalogValueTotal = AnalogValueTotal + readings[index];
    // advance to the next position in the array:
    index = index + 1;
    // if we're at the end of the array...
    if (index >= numReadings)
    // ...wrap around to the beginning:
    index = 0;
    // calculate the average:
    AnalogAverage = AnalogValueTotal / numReadings;
  }
  /*
   Every once in a while,MCU read the temperature from the DS18B20 and then let the DS18B20 start the convert.
   Attention:The interval between start the convert and read the temperature should be greater than 750 millisecond,or the temperature is not accurate!
  */
   if(millis()-tempSampleTime>=tempSampleInterval) 
  {
    tempSampleTime=millis();
    temperature = TempProcess(ReadTemperature);  // read the current temperature from the  DS18B20
    TempProcess(StartConvert);                   //after the reading,start the convert for next reading
  }
   /*
   Every once in a while,print the information on the serial monitor.
  */
  if(millis()-printTime>=printInterval)
  {
    printTime=millis();
    averageVoltage=AnalogAverage*(float)5000/1024;
    Serial.print("Analog value:");
    Serial.print(AnalogAverage);   //analog average,from 0 to 1023
    Serial.print("    Voltage:");
    Serial.print(averageVoltage);  //millivolt average,from 0mv to 4995mV
    Serial.print("mV    ");
    Serial.print("temp:");
    Serial.print(temperature);    //current temperature
    Serial.print("^C     EC:");
    
    float TempCoefficient=1.0+0.0185*(temperature-25.0);    //temperature compensation formula: fFinalResult(25^C) = fFinalResult(current)/(1.0+0.0185*(fTP-25.0));
    float CoefficientVolatge=(float)averageVoltage/TempCoefficient;   
    if(CoefficientVolatge<150)Serial.println("No solution!");   //25^C 1413us/cm<-->about 216mv  if the voltage(compensate)<150,that is <1ms/cm,out of the range
    else if(CoefficientVolatge>3300)Serial.println("Out of the range!");  //>20ms/cm,out of the range
    else
    { 
      if(CoefficientVolatge<=448)ECcurrent=6.84*CoefficientVolatge-64.32;   //1ms/cm<EC<=3ms/cm
      else if(CoefficientVolatge<=1457)ECcurrent=6.98*CoefficientVolatge-127;  //3ms/cm<EC<=10ms/cm
      else ECcurrent=5.3*CoefficientVolatge+2278;                           //10ms/cm<EC<20ms/cm
      ECcurrent/=1000;    //convert us/cm to ms/cm
      Serial.print(ECcurrent,2);  //two decimal
      Serial.println("ms/cm");
      
      gw.send(msg.set(ECcurrent,2)); // envoi au reseau avec une decimal  
      gw.send(msgTemp.set(temperature,2)); // envoi au reseau avec une decimal  

    }
  }

}
/*
ch=0,let the DS18B20 start the convert;ch=1,MCU read the current temperature from the DS18B20.
*/
float TempProcess(bool ch)
{
  //returns the temperature from one DS18B20 in DEG Celsius
  static byte data[12];
  static byte addr[8];
  static float TemperatureSum;
  if(!ch){
          if ( !ds.search(addr)) {
              Serial.println("no more sensors on chain, reset search!");
              ds.reset_search();
              return 0;
          }      
          if ( OneWire::crc8( addr, 7) != addr[7]) {
              Serial.println("CRC is not valid!");
              return 0;
          }        
          if ( addr[0] != 0x10 && addr[0] != 0x28) {
              Serial.print("Device is not recognized!");
              return 0;
          }      
          ds.reset();
          ds.select(addr);
          ds.write(0x44,1); // start conversion, with parasite power on at the end
  }
  else{  
          byte present = ds.reset();
          ds.select(addr);    
          ds.write(0xBE); // Read Scratchpad            
          for (int i = 0; i < 9; i++) { // we need 9 bytes
            data[i] = ds.read();
          }         
          ds.reset_search();           
          byte MSB = data[1];
          byte LSB = data[0];        
          float tempRead = ((MSB << 8) | LSB); //using two's compliment
          TemperatureSum = tempRead / 16;
    }
          return TemperatureSum;  
          
gw.sleep(CHANGE, SLEEP_TIME);
}
moniteur ecsensor.JPG
moniteur ecsensor.JPG (89.65 Kio) Consulté 627 fois
Il ne reste plus q'ua faire un mix de deux :mrgreen:
Jeedom Pro Z-Wave + Edisio|MySensors + Téléinfo sur RPi B+
Domotik's Habitat
Matériel

Avatar de l’utilisateur
Jamsta
Actif
Messages : 744
Inscription : 10 oct. 2014, 07:11
Localisation : Biganos (Région Bordelaise)
Contact :

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par Jamsta » 17 févr. 2015, 18:18

Voilà c'est fonctionnel, la remontée des 3 infos, si les experts MySensors ont le cœur de regarder le sketch, voir si c'est améliorable.

Le sketch PH/EC/T°:

Code : Tout sélectionner

#include <SPI.h>
#include <MySensor.h> 
#include <OneWire.h>

#define CHILD_ID_EC 0 // defenir le N° du capteur
#define CHILD_ID_TEMP 1 // defenir le N° du capteur
#define CHILD_ID_PH 2 // defenir le N° du capteur
#define Offset 0.00            //deviation compensate
#define LED 13
#define samplingInterval 20
#define ArrayLenth  40    //times of collection

const byte numReadings = 20;     //the number of sample times
byte ECsensorPin = A1;  //EC Meter analog output,pin on analog 1
byte PH_SENSOR_ANALOG_PIN = A0;  //EC Meter analog output,pin on analog 1
byte DS18B20_Pin = 3; //DS18B20 signal, pin on digital 2
unsigned int AnalogSampleInterval=25,printInterval=700,tempSampleInterval=850;  //analog sample interval;serial print interval;temperature sample interval
unsigned int readings[numReadings];      // the readings from the analog input
byte index = 0;                  // the index of the current reading
unsigned long AnalogValueTotal = 0;                  // the running total
unsigned int AnalogAverage = 0,averageVoltage=0;                // the average
unsigned long AnalogSampleTime,printTime,tempSampleTime;
float temperature,ECcurrent; 
int pHArray[ArrayLenth];   //Store the average value of the sensor feedback
int pHArrayIndex=0;    

unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)

//Temperature chip i/o
OneWire ds(DS18B20_Pin);  // on digital pin 3

MySensor gw;
MyMessage msgEC(CHILD_ID_EC, V_VAR2); 
MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
MyMessage msgPH(CHILD_ID_PH, V_VAR1);

void setup() 
{
  gw.begin();
  Serial.print("0;0;3;0;2;"); Serial.print(LIBRARY_VERSION); 
  
  gw.sendSketchInfo("HydroponicSensor", "1.0");
  
  gw.present(CHILD_ID_EC, S_WATER); 
  gw.present(CHILD_ID_TEMP, S_TEMP);
  gw.present(CHILD_ID_PH, S_WATER);
  
  pinMode(LED,OUTPUT);  

  // initialize all the readings to 0:
  for (byte thisReading = 0; thisReading < numReadings; thisReading++)
    readings[thisReading] = 0;
  TempProcess(CHILD_ID_EC);   //let the DS18B20 start the convert
  AnalogSampleTime=millis();
  printTime=millis();
  tempSampleTime=millis();
}

void loop() {
  static unsigned long samplingTime = millis();
  static unsigned long printTime = millis();
  static float pHValue,voltage;
  if(millis()-samplingTime > samplingInterval)
  {
      pHArray[pHArrayIndex++]=analogRead(PH_SENSOR_ANALOG_PIN);
      if(pHArrayIndex==ArrayLenth)pHArrayIndex=0;
      voltage = avergearray(pHArray, ArrayLenth)*5.0/1024;
      pHValue = 3.5*voltage+Offset;
      samplingTime=millis();
  }
  /*
   Every once in a while,sample the analog value and calculate the average.
  */
  if(millis()-AnalogSampleTime>=AnalogSampleInterval)  
  {
    AnalogSampleTime=millis();
     // subtract the last reading:
    AnalogValueTotal = AnalogValueTotal - readings[index];
    // read from the sensor:
    readings[index] = analogRead(ECsensorPin);
    // add the reading to the total:
    AnalogValueTotal = AnalogValueTotal + readings[index];
    // advance to the next position in the array:
    index = index + 1;
    // if we're at the end of the array...
    if (index >= numReadings)
    // ...wrap around to the beginning:
    index = 0;
    // calculate the average:
    AnalogAverage = AnalogValueTotal / numReadings;
  }
  /*
   Every once in a while,MCU read the temperature from the DS18B20 and then let the DS18B20 start the convert.
   Attention:The interval between start the convert and read the temperature should be greater than 750 millisecond,or the temperature is not accurate!
  */
   if(millis()-tempSampleTime>=tempSampleInterval) 
  {
    tempSampleTime=millis();
    temperature = TempProcess(CHILD_ID_TEMP);  // read the current temperature from the  DS18B20
    TempProcess(CHILD_ID_EC);                   //after the reading,start the convert for next reading
  }
   /*
   Every once in a while,print the information on the serial monitor.
  */
  if(millis()-printTime>=printInterval)
  {
    printTime=millis();
    averageVoltage=AnalogAverage*(float)5000/1024;
    Serial.print("Analog value:");
    Serial.print(AnalogAverage);   //analog average,from 0 to 1023
    Serial.print("    Voltage:");
    Serial.print(averageVoltage);  //millivolt average,from 0mv to 4995mV
    Serial.print("mV    ");
    Serial.print("temp:");
    Serial.print(temperature);    //current temperature
    Serial.print("^C     EC:");
    Serial.print("Voltage:");
    Serial.print(voltage,2);
    Serial.print("    pH value: ");
    Serial.println(pHValue,2);
    digitalWrite(LED,digitalRead(LED)^1);
    
    float TempCoefficient=1.0+0.0185*(temperature-25.0);    //temperature compensation formula: fFinalResult(25^C) = fFinalResult(current)/(1.0+0.0185*(fTP-25.0));
    float CoefficientVolatge=(float)averageVoltage/TempCoefficient;   
    if(CoefficientVolatge<150)Serial.println("No solution!");   //25^C 1413us/cm<-->about 216mv  if the voltage(compensate)<150,that is <1ms/cm,out of the range
    else if(CoefficientVolatge>3300)Serial.println("Out of the range!");  //>20ms/cm,out of the range
    else
    { 
      if(CoefficientVolatge<=448)ECcurrent=6.84*CoefficientVolatge-64.32;   //1ms/cm<EC<=3ms/cm
      else if(CoefficientVolatge<=1457)ECcurrent=6.98*CoefficientVolatge-127;  //3ms/cm<EC<=10ms/cm
      else ECcurrent=5.3*CoefficientVolatge+2278;                           //10ms/cm<EC<20ms/cm
      ECcurrent/=1000;    //convert us/cm to ms/cm
      Serial.print(ECcurrent,2);  //two decimal
      Serial.println("ms/cm");
      
      gw.send(msgEC.set(ECcurrent,2)); // envoi au reseau avec une decimal  
      gw.send(msgTemp.set(temperature,2)); // envoi au reseau avec une decimal  
      gw.send(msgPH.set(pHValue,2)); // envoi au reseau avec une decimal        
    }
  }
}
double avergearray(int* arr, int number){
  int i;
  int max,min;
  double avg;
  long amount=0;
  if(number<=0){
    Serial.println("Error number for the array to avraging!/n");
    return 0;
  }
  if(number<5){   //less than 5, calculated directly statistics
    for(i=0;i<number;i++){
      amount+=arr[i];
    }
    avg = amount/number;
    return avg;
  }else{
    if(arr[0]<arr[1]){
      min = arr[0];max=arr[1];
    }
    else{
      min=arr[1];max=arr[0];
    }
    for(i=2;i<number;i++){
      if(arr[i]<min){
        amount+=min;        //arr<min
        min=arr[i];
      }else {
        if(arr[i]>max){
          amount+=max;    //arr>max
          max=arr[i];
        }else{
          amount+=arr[i]; //min<=arr<=max
        }
      }//if
    }//for
    avg = (double)amount/(number-2);
  }//if
  return avg;
}
/*
ch=0,let the DS18B20 start the convert;ch=1,MCU read the current temperature from the DS18B20.
*/
float TempProcess(bool ch)
{
  //returns the temperature from one DS18B20 in DEG Celsius
  static byte data[12];
  static byte addr[8];
  static float TemperatureSum;
  if(!ch){
          if ( !ds.search(addr)) {
              Serial.println("no more sensors on chain, reset search!");
              ds.reset_search();
              return 0;
          }      
          if ( OneWire::crc8( addr, 7) != addr[7]) {
              Serial.println("CRC is not valid!");
              return 0;
          }        
          if ( addr[0] != 0x10 && addr[0] != 0x28) {
              Serial.print("Device is not recognized!");
              return 0;
          }      
          ds.reset();
          ds.select(addr);
          ds.write(0x44,1); // start conversion, with parasite power on at the end
  }
  else{  
          byte present = ds.reset();
          ds.select(addr);    
          ds.write(0xBE); // Read Scratchpad            
          for (int i = 0; i < 9; i++) { // we need 9 bytes
            data[i] = ds.read();
          }         
          ds.reset_search();           
          byte MSB = data[1];
          byte LSB = data[0];        
          float tempRead = ((MSB << 8) | LSB); //using two's compliment
          TemperatureSum = tempRead / 16;
    }
          return TemperatureSum;  
          
gw.sleep(CHANGE, SLEEP_TIME);
}
nodehydro.JPG
nodehydro.JPG (17.86 Kio) Consulté 667 fois
moniteurhydrosensor.JPG
moniteurhydrosensor.JPG (97.72 Kio) Consulté 660 fois
Jeedom Pro Z-Wave + Edisio|MySensors + Téléinfo sur RPi B+
Domotik's Habitat
Matériel

Avatar de l’utilisateur
Numeror
Timide
Messages : 223
Inscription : 15 déc. 2014, 17:16

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par Numeror » 18 févr. 2015, 13:31

Magnifique ! Je vais essayer de faire un noeuf similaire
JEEDOM sur Raspberry Pi avec contrôleur Aeon Z-Stick (OpenZwave)
Z-wave : 2x QEES Reto Shell, 2x QEES Reto Switch, 2x douilles Everspring, Philio 4-en-1, détecteur Everspring SP814, Z-wave.me KFOB2
Serveur YunoHost dans les nuages

Avatar de l’utilisateur
mamatdv
Actif
Messages : 1463
Inscription : 10 juil. 2014, 10:03
Localisation : Dijon

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par mamatdv » 13 mars 2015, 17:28

J'ai fait des essais avec le sketch ph metre seul.
Mais j'ai des valeur un peu haute qui remonte.
Vous avez mis en prod le bousin ? Les valeurs sont bonnes ?
J'ai bien essayé de régler le potar de calibration mais je n'arrive pas à descendre assez bas.
Beta-testeur
Mon matosici
Doc jeedom - Trucs et astuce

Avatar de l’utilisateur
Jamsta
Actif
Messages : 744
Inscription : 10 oct. 2014, 07:11
Localisation : Biganos (Région Bordelaise)
Contact :

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par Jamsta » 15 mars 2015, 13:22

Salut mamatdv,

Désolé pour la réponse tardive, j'ai eu quelques contre temps, ces derniers jours.
Oui mon capteur de PH est en marche et fonctionne plutôt bien.
As-tu des solutions de calibrage pour réaliser tes tests, et être sûr de la valeur de ton liquide.
Chez moi, je n'ai pas l'impression que le pota fonctionne par contre dans le sketch tu as l'offset pour peaufiner ta valeur
Quelles sont les valeurs qui te sont remontées?

A+ :)
Jeedom Pro Z-Wave + Edisio|MySensors + Téléinfo sur RPi B+
Domotik's Habitat
Matériel

Avatar de l’utilisateur
mamatdv
Actif
Messages : 1463
Inscription : 10 juil. 2014, 10:03
Localisation : Dijon

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par mamatdv » 16 mars 2015, 21:04

salut jamsta.

En fait, j'ai un pH-mètre à pile qui me permet d'étalonner la sonde mysensor.
Je vais essayer de bouger cet offset que je n'avais pas vu.
Par contre, chez moi le polar fonctionne bien mais ne permet de trop varier la valeur.

Merci à toi. Mes poissons vont avoir une eau top ^^
Beta-testeur
Mon matosici
Doc jeedom - Trucs et astuce

t3uch1
Timide
Messages : 73
Inscription : 03 déc. 2017, 15:09

Re: Noeud aquarium/aquaponie/hydroponie/jardin

Message par t3uch1 » 07 déc. 2017, 09:45

Bonjour j'ai suivi avec intérét tout le poste et a q ce que je vois vous avez reussi a avoir votre pH sous jeedom ?

Quand est-il a l'heure actuel ? Trouve on des capteur pH compatible Jeedom ? Si oui lesquelles ?

J'aimerais domotiser mon aquarium, temperature et pH dans un premier temp mais pour le pH je cherche encore comment faire

Répondre

Revenir vers « [Plugin Tiers] MySensors »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité