Bonjour à tous
Voila j'ai besoin de votre aide pour modifier un capteur mysensors afin de domotiser ma cuve de 1000L.
Pour les connaisseurs le site mysensors propose le montage suivant:
le capteur se monte en général sur le bouchon et envoie un "Ping" et donne la distance entre le haut de l'eau et le capteur.
N'aimant pas ce type de capteur et surtout au vue des retours sur la vie des capteurs en milieu humide j'ai plutôt préféré une méthode plus mécanique a savoir des capteurs flottant immergé (10 au totals) monté sur un tube étanche.
ce que je souhaite c'est remplacer la procédure de ping par un contrôle de ces fameux capteurs
en gros le système vérifie les entrées et envoie la valeur la plus haute.
je m'explique:
lorsque le système "ping" je souhaite qu'il vérifie la pin correspondante au capteur le plus haut actionné
exemple - jusqu’à maintenant c’était le capteur L200 qui était validé et lors de ce ping c'est le L400
le montage renvoie la nouvelle information de 400L
-si jamais la cuve est toujours a 200 le montage ne change rien
par rapport au programme d'origine j'ai retirer ce qui concernait le newping
ainsi que ce qui concerne le capteur
j'ai rajouté en définition:
#define L100_PIN 3 // Arduino pin 100 Litres
#define L200_PIN 4 // Arduino pin 200 Litres
#define L300_PIN 5 // Arduino pin 300 Litres
#define L400_PIN 6 // Arduino pin 400 Litres
#define L500_PIN 7 // Arduino pin 500 Litres
#define L600_PIN 8 // Arduino pin 600 Litres
#define L700_PIN A0 // Arduino pin 700 Litres
#define L800_PIN A1 // Arduino pin 800 Litres
#define L900_PIN A2 // Arduino pin 900 Litres
#define L101_PIN A3 // Arduino pin 1000 Litres
qui correspond aux flotteurs dans la cuve
maintenant voila la partie que je souhaite modifier, j'ai supprimer la partie de ligne de code suivante
int dist = [color=red]metric?sonar.ping_cm():sonar.ping_in();[/color]
et dans le code j'aimerai que ce soit la qu'on aille contrôler la valeur de capteur la plus haute mais je ne sait pas comment faire
MyMessage msg(CHILD_ID, V_DISTANCE);
int lastDist;
bool metric = true;
void setup()
{
metric = getControllerConfig().isMetric;
}
void presentation() {
// Send the sketch version information to the gateway and Controller
sendSketchInfo("Distance Sensor", "1.0");
// Register all sensors to gw (they will be created as child devices)
present(CHILD_ID, S_DISTANCE);
}
void loop()
{
int dist = [color=limegreen]Controle la valeur la plus haute du capteur [/color]
Serial.print("Ping: ");
Serial.print(dist); // Convert ping time to distance in cm and print result (0 = outside set distance range)
Serial.println(metric?" cm":" in");
if (dist != lastDist) {
send(msg.set(dist));
lastDist = dist;
}
sleep(SLEEP_TIME);
}
si quelqu’un peut m'aider a faire ça ce serait bien gentil
bonne soirée et bonne fin de confinement