PoolMaster: gestion et domotisation de ma piscine

Bonjour Loulou74
Merci beaucoup pour ta réponse.
Effectivement, c'était juste un problème d'IP.
il fallait que je mette l'adresse du PC sur lequel était installé le broker MQTT, ça fonctionne maintenant.
Sinon, oui je compte investir dans un NAS ultérieurement.
C'était seulement un test pour que je comprenne comment ça fonctionne. Ensuite je souhaiterai monitorer le tout avec mon smartphone, je pense utiliser BLINK ou un autre ...
Honnêtement je ne sais pas quoi utiliser car je n'ai pas encore bien compris à quel moment on calibre les sondes ORP et PH et quel client utiliser pour le faire.

Bonne soirée.

Bonjour Sylvaindu13,

Dans l'ordre je ferais:

1- installe PoolMaster
2- installe Mosquitto sur ton réseau local, par exemple sur un Raspberry Pi. Éventuellement installe y aussi NodeRed (pour Blynk). Assure toi que PoolMaster est connecté à Mosquitto
3- une fois que tu as des mesures qui remontent (à la fois sur l'écran LCD et sur Mosquitto), tu peux envoyer des commandes de calibrage MQTT à PoolMaster via Mosquitto (via MQTT.fx, NodeRed, Blynk, Jeedom...tu as le choix). On verra à ce moment quoi envoyer et comment. Tu verras c'est assez simple.

Bonjour a tous
Je viens de téléverser le projet pour la 1er fois sur mega2650 mais j'ai un soucis de lecture sur le LCD 4x16. Il n'y a pas de retour a la ligne. Voici mon code modifié:

//LCD init.
//pin definitions, may vary in your setup
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
bool LCDToggle = true;

Je voulais joindre une photo mais je ne sais pas comment faire.
Merci.

Bonjour Maccaire,

Le code est fait pour un LCD 4x20 et non pas 4x16.

A noter aussi que j'ai changé en cours de route de type de LCD, il faut maintenant un LC de type I2C plutôt que avec data bits parallèles

Loic

Merci de votre réponse Loic
Je commande sur amazone et je relance le televersement modifie en bus I2C.
Pour les swichts et les leds, Je ne comprends pas le cablage.
//Front panel push button switch
#define PUSH_BUTTON_PIN 40 //Connect a button switch from this pin to ground
#define GREEN_LED_PIN 54 //Digital output pin to switch ON/OFF Green LED of push button
#define RED_LED_PIN 56 //Digital output pin to switch ON/OFF Red LED of push button
Encore besoin de vos conseils.
Merci

maccaire:
Merci de votre réponse Loic
Je commande sur amazone et je relance le televersement modifie en bus I2C.
Pour les swichts et les leds, Je ne comprends pas le cablage.
//Front panel push button switch
#define PUSH_BUTTON_PIN 40 //Connect a button switch from this pin to ground
#define GREEN_LED_PIN 54 //Digital output pin to switch ON/OFF Green LED of push button
#define RED_LED_PIN 56 //Digital output pin to switch ON/OFF Red LED of push button
Encore besoin de vos conseils.
Merci

Pour le switch et les LEDs tu devras peut-être choisir d'autres pins libres sur le mega2560 (je n'utilise pas cette plateforme) mais l'idée est d'utiliser une entrée digitale pour le bouton et deux sorties digitales pour les LEDs.

Ensuite le bouton que j'ai référencé (Adafruit) ne contient pas de LED verte donc tu peux ignorer le câblage de la LED verte ou bien en câbler une indépendante du bouton.

Mon bouton comporte en revanche une LED rouge qu'il faut relier entre le GND et une sortie digitale de libre (RED_LED_PIN). Attention de vérifier si tu dois utiliser une résistance entre la LED et la sortie digitale, en fonction de ta plateforme (dans mon cas oui)

Bonsoir Loulou74
J'avance doucement dans mon projet, comme j'avais sous la main un module PH4502C je l'ai mis a la place du phidget sur la pin A7 mais le ph est complètement faux du genre 8.86 au lieu de 7.69 relevé sur mon ph metre.
J'ai code qui marche bien avec cette sonde:
Si c'est possible de le transcrire pour PoolMaster, je suis nul dans ce domaine.
Un autre soucis le module ne ce met pas a l'heure et je n'ai pas vu de doc.
Pour rappel je suis sur mega2560.
Merci

Bonsoir Maccaire,

Je ne connais pas le module PH4502C mais partons du principe qu'il fonctionne correctement. Une valeur de pH de 8,86 au lieu de 7,69 n'est pas si mal du tout, il faut probablement juste la calibrer. Pour ce faire il faut au moins une solution de référence, deux ou trois c'est encore mieux. Il faut également avoir la communication MQTT en place.

Donc tu mesures ta première solution, tu notes la valeur (par ex. 4.02) ainsi que la valeur nominale de la solution (par ex. 3.80). Si tu as une seconde solution tu fais pareil (imaginons que cette seconde mesure donne 9.0 pour une valeur nominale de 9.11) et tu envoies la commande suivante via MQTT:

{"PhCalib":[4.02,3.8,9.0,9.11]}

Ou

{"PhCalib":[4.02,3.8]}

si tu n'as qu'une solution de référence.

Explication en anglais: multi-point linear regression calibration (minimum 1 point-couple, 6 max.) in the form [ProbeReading_0, BufferRating_0, xx, xx, ProbeReading_n, BufferRating_n]

Pour l'heure c'est pareil: API MQTT! Tu utilises la fonction suivante:

{"Date":[1,1,1,18,13,32,0]} -> set date/time of RTC module in the following format: (Day of the month, Day of the week, Month, Year, Hour, Minute, Seconds), in this example: Monday 1st January 2018 - 13h32mn00secs

Bon bricolage

Merci Loulou74 de m'assister dans mon install, je n'arrive pas a utiliser mqtt correctement, j'ai bien creer le brocker mosquitto sur un raspberry qui me sert pour domoticz mais je ne comprend pas ce que je dois mettre sur le fichier pour :MqttServerLogin et MqttServerPwd car dans l'install de mosquitto je n'ai rien rentrer.

maccaire:
Merci Loulou74 de m'assister dans mon install, je n'arrive pas a utiliser mqtt correctement, j'ai bien creer le brocker mosquitto sur un raspberry qui me sert pour domoticz mais je ne comprend pas ce que je dois mettre sur le fichier pour :MqttServerLogin et MqttServerPwd car dans l'install de mosquitto je n'ai rien rentrer.

Pas de souci, tant que je peux...
Ton install de broker Mosquitto ne requiert donc probablement pas de login et mdp.

Dans ce cas essaie avec:

const char* MqttServerLogin = nullptr;
const char* MqttServerPwd = nullptr;

ou

const char* MqttServerLogin = "";
const char* MqttServerPwd = "";

Ok c'est en bonne voie, mais je ne recoit que les topics : Home /Pool Status et Home /Pool mais pas Api alors comment je peu envoyer des commandes pour étalonnage et la pendule.
Un defauts affichage {"Tmp":-12700,"pH":823,"PSI":978,"Orp":216,"FilUpT":0,"PhUpT":0,"ChlUpT":0,"IO":24,"IO2":32} pas le point pour le ph 8.23?

Good, ça progresse :wink:

C'est normal que tu ne reçoives rien sur le topic Home/API, PoolMaster n'y publie rien... Par contre il y a souscrit, donc si toi tu publies une commande sur le broker sur le topic Home/API, PoolMaster le recevra :slight_smile:

Pour l'affichage c'est pas un défaut, c'est normal, relis la description du projet. Si tu ne parles pas anglais, Google est ton ami:

PoolMaster en Francais

Ok j'ai trouver pour API, il fallait ajouter pour publish, heure ok il me reste étalonnage ph.

maccaire:
Ok j'ai trouver pour API, il fallait ajouter pour publish.

Que veux-tu dire?

Sinon j'ai remarqué dans tes valeurs que tu n'as pas encore de sonde de température d'eau ou alors que son adresse unique n'est pas correctement renseignée dans le code.

Grosse catastrophe , j'ai deplacer mon installation fils volants de la cuisine au sous-sol pour faire l'étallonage de la sonde et plus rien ne marche, la carte éhernet clignote normalement l'afficheur alligne 2 rangées de carrés blancs et le terminale m'envoie cela:
10:49:09.459 -> Stored config version: 110. Loading settings from eeprom
10:49:09.495 -> 110, 0, 0
10:49:09.530 -> 8, 12, 20, 20, 59
10:49:09.530 -> 1800, 1800
10:49:09.564 -> 3000000, 3600000, 0, 0
10:49:09.564 -> 7.40, 730.00, 0.50, 0.00, 12.10, 27.00, 3.00, 4.16, -2.10, -1189.00, 2564.00, 1.00, 0.00
10:49:09.668 -> 2000000.00, 0.00, 0.00, 20000.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.40
J'ai re téléverser mais pareil .

maccaire:
Grosse catastrophe , j'ai deplacer mon installation fils volants de la cuisine au sous-sol pour faire l'étallonage de la sonde et plus rien ne marche, la carte éhernet clignote normalement l'afficheur alligne 2 rangées de carrés blancs et le terminale m'envoie cela:
10:49:09.459 -> Stored config version: 110. Loading settings from eeprom
10:49:09.495 -> 110, 0, 0
10:49:09.530 -> 8, 12, 20, 20, 59
10:49:09.530 -> 1800, 1800
10:49:09.564 -> 3000000, 3600000, 0, 0
10:49:09.564 -> 7.40, 730.00, 0.50, 0.00, 12.10, 27.00, 3.00, 4.16, -2.10, -1189.00, 2564.00, 1.00, 0.00
10:49:09.668 -> 2000000.00, 0.00, 0.00, 20000.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.40
J'ai re téléverser mais pareil .

Ces lignes sont normales, il affiche les valeurs de la config stockée en EEPROM au démarrage du programme.
S'il n'affiche rien de plus, c'est sans doute qu'il est bloqué au démarrage, par exemple en essayant de se connecter au broker MQTT. As-tu rebranché le réseau?

oui j'ai rebranché le cable ethernet,je n'ai pas de soude i2c je n'ai qu'une sonde 3 fils étanche et une sonde dht11

La sonde de température dont je parle est une DS18B20 de ce type

Ok commandez chez ali mais pas express. Je vais commencer a installer dans le boitier car en fils volants j'ai beaucoup de reset intempestif et l'horloge ne garde pas heure, rien ne s'incrit sur la sd elle est toujours vierge. Je vous tiens au courant aprés le week end.
Bon week end a vous.

Encore une question
Le bouton poussoir sert a changer la page de l'écran mais les 2 autres boutons a quoi servent ils, sont ils poussoir ou inter.