PoolMaster: gestion et domotisation de ma piscine

Et pour ce qui est de la sonde j'ai toujours la meme erreur : Error getting temperature from DS18b20_0
Alors j'ai changé de pin, j'ai changé de sonde, j'ai vérifier son fonctionnement en installant un code simple pour pouvoir la lire. Je ne comprends pas d'ou viens le problème.

Merci Loulou74 du coup de main pour résoudre mes problemes, mais je vais abandonné car trop de soucis.

Alexkids11:
Et pour ce qui est de la sonde j'ai toujours la meme erreur : Error getting temperature from DS18b20_0
Alors j'ai changé de pin, j'ai changé de sonde, j'ai vérifier son fonctionnement en installant un code simple pour pouvoir la lire. Je ne comprends pas d'ou viens le problème.

Merci Loulou74 du coup de main pour résoudre mes problemes, mais je vais abandonné car trop de soucis.

Dommage mais je comprends.
J'ai pas encore testé mon code sur la config Arduino Mega 2560 donc je ne suis pas surpris qu'il y aie quelques bugs à résoudre.

Alexkids11:
Et pour ce qui est de la sonde j'ai toujours la meme erreur : Error getting temperature from DS18b20_0
Alors j'ai changé de pin, j'ai changé de sonde, j'ai vérifier son fonctionnement en installant un code simple pour pouvoir la lire. Je ne comprends pas d'ou viens le problème.

Merci Loulou74 du coup de main pour résoudre mes problemes, mais je vais abandonné car trop de soucis.

une question toute bête mais je la pose quand même : tu as bien changé l'adresse de la sonde DS18b20 ?
(ligne 277)

DeviceAddress DS18b20_0 = { 0x28, 0x92, 0x25, 0x41, 0x0A, 0x00, 0x00, 0xEE };
Chaque sonde a sa propre adresse qui permet d'avoir plusieurs sondes sur le même pin

Autre question : il y a bien la résistance de 4.7k de tirage sur le pin de data

TheLapin:
une question toute bête mais je la pose quand même : tu as bien changé l'adresse de la sonde DS18b20 ?
(ligne 277)

DeviceAddress DS18b20_0 = { 0x28, 0x92, 0x25, 0x41, 0x0A, 0x00, 0x00, 0xEE };
Chaque sonde a sa propre adresse qui permet d'avoir plusieurs sondes sur le même pin

Autre question : il y a bien la résistance de 4.7k de tirage sur le pin de data

C'est peut être pas bête du tout comme question. Non je n'ai pas changé l'adresse de la sonde, je peux mettre quoi comme adresse car sur ma sonde je n'ai rien d'ecrit.

Oui il y a bien la résistance de 4.7kohms .

Apres ma sonde fonctionne bien avec d'autres codes, mais il n'y a pas d'adresse a mettre.

Alexkids11:
C'est peut être pas bête du tout comme question. Non je n'ai pas changé l'adresse de la sonde, je peux mettre quoi comme adresse car sur ma sonde je n'ai rien d'ecrit.

Oui il y a bien la résistance de 4.7kohms .

Apres ma sonde fonctionne bien avec d'autres codes, mais il n'y a pas d'adresse a mettre.

Merci Lapin.
@Alexkids11: il est bien écrit dans la doc (section "compatibility") et dans le code qu'il faut mettre l'adresse MAC de ta sonde. C'est important car si par la suite tu voulais ajouter une seconde sonde, par ex. pour la temp. ext., et bien sans la bonne adresse par sonde, tu ne saurais pas discriminer laquelle a retourné quelle temp. (à part si elles sont sur des pins différents).

Il y a pléthore de sketchs sur le net pour trouver l'adresse de ta sonde, par ex. ici: capnfatz.com - capnfatz Resources and Information.

Pour moi je pensais que c'etait une adresse a choisir comme pour l'adresse mac du shield ethernet, donc je ne m'etais pas posé la question.

Mais effectivement j'ai fais le boulé et maintenant j'ai bien la valeur de la sonde.

Me reste plus qu'a résoudre la communication, du coup ça me fait penser que j'ai du passer a coté d'un truc logique pour vous. Mais pas pour moi :).
Encore merci pour votre patience.

@Alexkids11: j'ai ajouté (version 3.0.2) un peu de code debug autour de la fonction MQTTClient.Publish()
Si tu as encore le courage tu peux essayer cette nouvelle version et me donner ce que le port série de dit
A+

J'ai télécharger le nouveau fichier et en le configurant j'ai laissé MqttServerClientID = "ArduinoPool2"; .
Je l'avait modifier sur l'ancienne version. Donc avant de téléversé la nouvelle version je modifie la configuration de JMQQT en remettant ArduinoPool2.
Je relance le demon et la il me trouve une nouvelle entrée que je peux parsé, avec toute les valeurs.
J'ai tout d'accessible.

Je téléverse la nouvelle version, je n'ai plus les info sur JMQQT. j'ai l'entrée Poolstatus offline.
Je remet MqttServerClientID = "Jeedom" , uniquement dans l'arduino et la ça me remet Poolstatus online avec toutes les infos accessibles.
Bref ça fonctionne avec la nouvelle et l'ancienne version en laissant le MqttServerClientID différent de la configuration de JMQQT.

Petite question : sur la nouvelle version ou peut on configuer les pins de l'écran lcd ? Je n'ai pas trouvé .

En tout cas, encore merci.

Un truc important en MQTT est de ne pas avoir plusieurs clients qui se connectent au broker MQTT (Mosquitto) avec le même ID. Ton Arduino ET Jeedom sont deux clients distincts donc ils ne doivent pas avoir le même ID.
Donc tu laisses MqttServerClientID = "ArduinoPool2" (ou un autre nom quelconque) dans ton Arduino et tu mets autre chose dans jMQTT.

Pour les pins du lcd, j'ai changé le code car j'utilise maintenant un LCD qui communique via le port I2C.
Si ton LCD n'est pas I2C, change la ligne 192:

LiquidCrystal_I2C lcd(0x27,20,4);  // set the I2C LCD address to 0x27 for a 20 chars and 4 lines display

par l'ancien code:

//pin definitions, may vary in your setup
const int rs = 9, en = 10, d4 = 11, d5 = 12, d6 = 13, d7 = 42;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Merci pour cette éclaircissement, tout s'explique, depuis le début j'avais tout faux.

Bonjour à tous,
Avant tout, merci à toi Loulou74 pour ce super projet.

J'avais longtemps hésité par faute de connaissances dans le domaine de la domotique pour monitorer ma piscine avec mon smartphone ou PC.
Mais à la découverte de ton projet je me suis vite motivé et c'est chose presque faite...

J'ai donc réuni tous les composants nécessaires à la réalisation de la gestion de ma piscine.
Cependant, étant novice en Domotique j'ai beaucoup de mal à faire communiquer tout ce petit monde.
En parcourant les différents posts j'ai donc installé Mosquitto broker sur mon PC (sous W10) + MQTT.fx malheureusement par manque d'expérience et d'informations je n'arrive pas a communiquer avec MQTT.fx en ayant préalablement renseigné le MQTT broker profile settings avec le login, password et IP .

Pour info, il n' y a que le shield ethernet sur le Mega2560 pour tester la communication sur mon PC et ma carte Ethernet W5100 est bien reconnue par mon routeur.
J'installerai plus tard le module RTC , capteur de T° etc...

Il y aurait il un tuto qui pourrait m'aider de A à Z ou bien pourrait on dire ce que j'ai oublié d'installer ou faire ou bien suis-je entrain de faire fausse route tout simplement.

Par avance, merci pour toutes les informations que vous pourrez m'apporter.
voici ci-après un extrait du log du moniteur série.

22:43:00.300 -> Stored config version: 108. Loading settings from eeprom
22:43:00.304 -> 108, 0, 0
22:43:00.304 -> 8, 12, 20, 20, 59
22:43:00.328 -> 1800, 1800
22:43:00.328 -> 3600000, 7200000, 0, 0
22:43:00.363 -> 7.40, 730.00, 0.50, 0.25, 10.00, 27.00, 3.00, 4.23, -2.28, -1000.00, 2500.00, 1.00, 0.00
22:43:00.467 -> 1330000.00, 0.00, 0.00, 2857.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.40
22:43:03.102 -> Failed to connect to the MQTT broker
22:43:03.135 -> [memCheck]: 3947b
22:43:04.101 -> Failed to connect to the MQTT broker
22:43:04.135 -> Failed to connect to the MQTT broker
22:43:06.511 -> 2063-03-16 17:18:13 - Error getting temperature from DS18b20_0
22:43:06.579 -> Ph: 7.27 - Orp: 2.12 - 378.79mV
22:43:06.613 -> PSI: 15.43 - 15.43Bar
22:43:08.922 -> 2063-03-16 17:18:16 - Error getting temperature from DS18b20_0
22:43:08.990 -> Ph: 5.80 - Orp: 1.68 - 601.17mV
22:43:09.025 -> PSI: 11.34 - 13.38Bar
22:43:10.745 -> Trying to print too many characters to LCD Screen1: 83
22:43:11.332 -> 2063-03-16 17:18:18 - Error getting temperature from DS18b20_0

Bonjour Sylvaindu13,

On dirait que ton souci vient plus de ta config broker MQTT que de PoolMaster.
Avant tout je suis étonné que tu l'aies installé sur un PC Win10. Ton PC tourne en continu? Perso je l'aurais plutôt installé sur un Raspberry Pi ou une VM sur un NAS. Ensuite, MQTT.fx sur le PC, ok, car tu l'utilises rarement, et pour du debug principalement. Il y a foultitude de tutos sur Mosquitto. Donc je commencerais par la.

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