Arduino mega : ORP 1130 et mini site web

Bonjour,

je me permets de poster un message sur le forum car je suis sur un projet d’automatisation de ma piscine

et je rencontre 2 problèmes :

1-Interface ORP et tension d’alimentation :[/b]
Voici les interfaces ORP 1130 qui permettent de récupérer les signal des sondes pH et REDOX et les envoyer vers une entrée ana de l’arduino :
http://www.phidgets.com/docs/1130_User_Guide

sur banc de test tout marche bien, Arduino Mega alimenté en 7.5V, il sort 5.011V. Dans le local technique, cet arduino commute 5 relais (juste la partie commande, les bobines des relais sont alimentés est alimenté par une alimentation 12V), un ecran LCD et du coup la tension de sortie est de 4.934V, des fois 4.912V et lorsque les relais commutent la tension chute encore de quelques dizaines de mV.

Ça parait rien mais pour le redox c’est la cata !

Du coup j’ai testé en alimentant les adaptateurs ORP 1130 par une autre alimentation indépendante, mais ça ne marche pas du tout les valeurs sont dans les choux, j’imagine que d’avoir des masses différentes perturbent le tout.

J’ai testé en prenant une alimentation universelle dans un magasin de bricolage, réglée en 5V elle délivre 4.964V, j’alimente l’arduino et les calibrateurs par la sortie de l’alimentation, la tension reste stable.

Cette solution avec une alimentation industrielle pour régler le 5V au pouillème solutionnerait mon problème ? ou il y a un piège quelque part ?
2-Mini site web Arduino :[/b]
J’ai mis un shield ethernet et l’arduino envoie toutes les 10 minutes des données sur une base SQL située sur un PC à la maison.
Je souhaiterai aussi accéder à un mini site web directement sur l’Arduino mais cela ne marche qu’une fois sur 20. Des fois je me connecte mais la plupart du temps site web indisponible.
Voici le code pour la partie internet (je peux envoyer par MP le tout si besoin) :
[spoiler]
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println(“new client”);
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.println(“CONNEXION DUN CLIENT”);
Serial.write(c);
// if you’ve gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == ‘\n’ && currentLineIsBlank) {
// send a standard http response header
client.println(“HTTP/1.1 200 OK”);
client.println(“Content-Type: text/html”);
client.println(“Connection: close”); // the connection will be closed after completion of the response
client.println(“Refresh: 5”); // refresh the page automatically every 5 sec
client.println();
client.println("");
client.println("");
client.print("Temps : ");
if (JOURS > 0) {
Serial.print(JOURS);
Serial.print(“j”);
}
client.print(HEURES);
client.print(“h”);
client.print(MINUTES);
client.print(“min”);
client.print(SECONDES);
client.println(“s”);
client.println("
");
client.print(“ORDRE_MOTEUR_MARCHE=” );
client.print(ORDRE_MOTEUR_MARCHE);
client.println("
");
client.print(“RELAIS_MOTEUR=” );
client.print(digitalRead(RELAIS_MOTEUR));
client.println("
");
client.print(“ORDRE_ELECTROLYSEUR_MARCHE=” );
client.print(ORDRE_ELECTROLYSEUR_MARCHE);
client.println("
");
client.print(“RELAIS_ELECTROLYSEUR=” );
client.print(digitalRead(RELAIS_ELECTROLYSEUR));
client.println("
");
client.print(“ORDRE_CHAUFFAGE_MARCHE=” );
client.print(ORDRE_CHAUFFAGE_MARCHE);
client.println("
");
client.print(“RELAIS_CHAUFFAGE=” );
//client.print(digitalRead(RELAIS_CHAUFFAGE1 ));
client.println("
");
client.print(“redox=” );
client.print(REDOX_ACTUEL);
client.println("
");
client.print(“pH=” );
client.print(PH_ACTUEL);
client.println("
");
client.print(“TEMPE_EAUFROIDE=” );
client.print(TEMPE_EAUFROIDE);
client.print(" ºC");
client.println("
");
client.print(“TEMPE_EAUCHAUDE=” );
client.print(TEMPE_EAUCHAUDE);
client.print(" ºC");
client.println("
");
client.print(“TEMPE_AIR=” );
client.print(TEMPE_AIR);
client.print(" ºC");
client.println("");
break;
}
if (c == ‘\n’) {
// you’re starting a new line
currentLineIsBlank = true;
} else if (c != ‘\r’) {
// you’ve gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println(“client disconnected”);
}
/* --------------- FIN PARTIE ETHERNET --------------------------------------------- */
[/spoiler]
Merci de votre aide !

Bonjour dureiken,

Je réponds au post un peu tard mais je me suis lancé dans une automatisation de contrôle de l'eau et ton projet m’intéresse.

En effet je suis plutôt spécialisé dans le développement informatique et mobile (Java, Android, MQTT, NodeRed ...) cependant je débute en éléctronique.

On est plusieurs sur ce sujet et je pense que l'on pourrait tous s'entraider ;) Pour ma part la partie transfert, stockage et affichage de données est effectif en utilisant les protocoles MQTT et HTTP (WS REST). Et le stockage et l'affichage par NodeRed et SQLite (dans un container docker sur un RPi 3).

Niveau Hardware j’étais parti sur un ESP8266 (1 entrée analogique) ou ESP32 (12 entrée analogiques) qui se programme comme une arduino en proposant le WiFi en plus (avec possibilité de mettre le module en hibernation). Comme me l'a remonté un utilisateur sur une autre forum il existe des "issues" sur l'ESP32 sur la précision de la conversion analogique / digital (ADC).

Pour rebondir sur les modules ESP il existe la possibilité de les flasher avec ESP Easy pout permettre l'exposition d'une interface Web ce qui reponderait à ton besoin. Il est possible d'utiliser des modules plus adaptés (un peu plus consommateurs) comme les RPI 3 ou RPI Zéro sur lesquels il est possible de faire tourner des solutions comme Grafana, InfluxDB ou des solutions domotique comme Domoticz (que j'utilise).

Peut-être as tu modifié ta solution logiciel depuis ton post...

Pour ma part je serais intéressé par la partie électronique. Comme le branchement des sondes ORP ete PH en I2C sur l'arduino (UNO pour ma part, j'utiliserais l'ESP pour l'interface WiFi) avec ajout d'une sonde étanche DS18B20 et une DHT 22 pour l'interieur du cabanon).

Si on peut s'entraider ;)

Bonjour,

J'ai acheté 2 carte orp/ĥ 1130 pour récupérer les valeurs ph et redox pour les afficher sur un dashboard custom. J'ai un régulateur de ph avec sa pompe et j'y ai mis un T BNC pour pouvoir brancher ma sonde à la raspberry.

Le problème est que dès que je branche le câble pour la carte orp/ph 1130, le régulateur de ph par t en vrille et affiche des erreurs. Dès que je débranche le câble la sonde revient OK.

Comment avez vous brancher votre carte pour récupérer les valeurs du ph ?? J'ai un régulateur de ph de chez piscine ibiza (ibaph) qui en réalité vient de pool technologies.

Ca fait un moment que le poste existe mais bon, si quelqu'un passe par là ...