Tuto DiY - La box connectée - Système de monitoring à distance (Temp/Hum/Lumière/Sol/Co2) pour 12€

Plop,

dis moi ce sont tes cartes de visite sur la photo ??

Si oui a viré de suite car elle mène directement a toi ? ....

C'est dingue en ce moment le manque de sécurité des membres qui mettre leur tronche sur le fofo ou donne des infos cruciale sur eux qui permettent de remonter a leur domicile carrément .

C'est un coup a avoir les myrtilles qui débarque ( sans croissant et le café a 6hr du mat ) .

Ce matin j'ai remonter un membre a 10 bornes de chez moi et a son commerce carrément ....

+++

Plop, re , ola ,

Autant pour moi, mais non c'est une photo tiré de google image. :) Désolé, et merci po ur la modération !

Bye , a+ , +++
 
Dernière édition par un modérateur:
Re Raphiki,

Alors pour approfondir ma pensée pour l’écran, je trouve cela utile dans le sens ou lorsque tu prépares ta solution nutritive tu peux voire en direct les valeurs changées sans utiliser ton portable au dessus de la solution, une main mouillée l'autre main avec l'acide phosphorique ^^ tu vois le truc ? :D

Bon tu vas me dire, sort donc tes testeurs manuels.. Oui c'est vrais je pourrais aussi :D mais je trouve le fait d'avoir un écran vraiment convivial et pratique.

Cela remplacerais notre station méteo (qui coûte une blinde en plus) et/ou les divers appareils permettant d'effectuer nos contrôles (thermo (x2), hygro, Ph metre / Ec metre etc) .. et ton système deviendrais mon "couteau suisse" !

Donc niveau écologie ça ce discute en faite ;) ... non ?

De mon point de vu de noob en la matière (tu m'excuseras j'espère) et pour aller dans le sens de l'écologie car c'est important, c'est vrais, y'à t'il pas la possibilité d'installer un écran avec un système on/off ou en installer un sur l'alimentation de l'écran ?

Apparemment tu ne ferme pas la porte pour l'installation d'un écran et c'est vrais que la solution du Raspberry proposée par @amtarow me parait pas donné et pour le coup vraiment énergivore mais l'idée est là.

J'attends tes actualisations pour l'Hydro et je passe à la douloureuse.

A +
 
Salut,
Tant pis pour le chirp, mon expander est commandé depuis quelques temps, c'est le seul article que je n'ai pas reçu pour le moment.
Et puis j'ai déjà 3 SEN0193 .
C'est pas bien grave pour l'instant je mesure l'humidité du substrat d'1 pot sur les 2, et puis je suis en blumat donc c'est seulement un indicateur pour savoir que mes réservoirs sont vides (ouai ouai, gros flemmard inside !)
Par contre contrairement au tien, mon SEN0193 indique une valeur d'environ 8 quand mon substrat est humide, alors que le tiens environ 80, c'est normal ?
J'attends ton bonus expander avec impatience, car je pense que je vais m'arracher les cheveux sur le code, puisque je n'y connais pas grand chose a part quelques notions.
A+
 
Salut la commu, salut @Raphiki,

Merci pour ton partage man, moi qui suit un peu une brêle en PC, ça me parait faisable, accessible et ça me plait bien ;) MERCI.

J'attends avec impatience la modernisation de ton projet pour l'hydroponie.

+ 1 pour la température de l'eau et le PH mètre, c'est essentiel.

Par contre tu ne parles pas de mesurer l' EC, qui je pense (enfin en tout cas pour moi :) ), serait plus intéressant que de mesurer le taux d'écoulement..

Bonne suite pour ton projet,

A +
 
Salut @Hydro_Funktion ;) merci !

Pour l'EC j'ai étudié la question, et je suis partagé pour l'instant entre partir sur l'achat d'un capteur piloté (car je n'ai pas encore trouvé une solution viable à >20€) ou partir sur une solution cheap (>3€) mais plus complexe et intéressante que j'ai trouvé ici : https://hackaday.io/project/7008-fly-wars-a-hackers-solution-to-world-hunger/log/24646-three-dollar-ec-ppm-meter-arduino . Il s'agit simplement d'un EC mètre analogique mesurant la résistance de l'eau pour en déterminer l'ec.

Si vous trouvez des trucs intéressant n'hésitez pas !

Tcho!
 
Re Raphiki,

Alors pour approfondir ma pensée pour l’écran, je trouve cela utile dans le sens ou lorsque tu prépares ta solution nutritive tu peux voire en direct les valeurs changées sans utiliser ton portable au dessus de la solution, une main mouillée l'autre main avec l'acide phosphorique ^^ tu vois le truc ? :D/emoticons/default_biggrin.png" srcset="/emoticons/[email protected] 2x" title=":D" width="20" />

Bon tu vas me dire, sort donc tes testeurs manuels.. Oui c'est vrais je pourrais aussi :D/emoticons/default_biggrin.png" srcset="/emoticons/[email protected] 2x" title=":D" width="20" /> mais je trouve le fait d'avoir un écran vraiment convivial et pratique.

Cela remplacerais notre station méteo (qui coûte une blinde en plus) et/ou les divers appareils permettant d'effectuer nos contrôles (thermo (x2), hygro, Ph metre / Ec metre etc) .. et ton système deviendrais mon "couteau suisse" !

Donc niveau écologie ça ce discute en faite ;)/emoticons/default_wink.png" srcset="/emoticons/[email protected] 2x" title=";)" width="20" /> ... non ?

De mon point de vu de noob en la matière (tu m'excuseras j'espère) et pour aller dans le sens de l'écologie car c'est important, c'est vrais, y'à t'il pas la possibilité d'installer un écran avec un système on/off ou en installer un sur l'alimentation de l'écran ?

Apparemment tu ne ferme pas la porte pour l'installation d'un écran et c'est vrais que la solution du Raspberry proposée par @amtarow me parait pas donné et pour le coup vraiment énergivore mais l'idée est là.

J'attends tes actualisations pour l'Hydro et je passe à la douloureuse.

A +

Yo Hydro !

Hmm en effet, je vois l'idée.. Et elle me plaît bien :xD:/emoticons/default_xD.gif" title=":xD:" />. J'avais pas vu l'utilité sous ce point de vue, mais oui pouvoir voir les valeurs remontées par les capteurs toutes les secondes peut se montrer bien utiles dans certains cas, surtout en hydro.

J'ai commandé ce petit modèle pour moins de 2€ :

https://fr.aliexpress.com/item/Free-Shipping-White-Blue-Whiteand-Blue-color-0-96-inch-128X64-OLED-Display-Module-For-arduino/32713614136.html

image.webp

Je rajouterais un petit bonus à ce tuto pour pouvoir le piloter, il devrait s'intégrer au reste du projet assez facilement.

Concernant l'hydro je me prend la tête en ce moment avec ma sonde PH. Je n'arrive tout simplement pas à exploiter la valeur analogique, je l'ai peut-être flinguer mais sans en être sur... Donc ne t'attend pas voir le tuto de si tôt.

Salut,
Tant pis pour le chirp, mon expander est commandé depuis quelques temps, c'est le seul article que je n'ai pas reçu pour le moment.
Et puis j'ai déjà 3 SEN0193 .
C'est pas bien grave pour l'instant je mesure l'humidité du substrat d'1 pot sur les 2, et puis je suis en blumat donc c'est seulement un indicateur pour savoir que mes réservoirs sont vides (ouai ouai, gros flemmard inside !)
Par contre contrairement au tien, mon SEN0193 indique une valeur d'environ 8 quand mon substrat est humide, alors que le tiens environ 80, c'est normal ?
J'attends ton bonus expander avec impatience, car je pense que je vais m'arracher les cheveux sur le code, puisque je n'y connais pas grand chose a part quelques notions.
A+

Salut Kevazingo :)/emoticons/default_basic-smile.png" srcset="/emoticons/[email protected] 2x" title=":)" width="18" />

Concernant le SEN0193 je n'ai pas encore mis le code pour le lire, tu utilise quoi toi ? La librairie YL100 sur mon dépôt ? La valeur analogique lue sur le capteur peut varier suivant la ref du capteur, et je dirais même suivant le capteur lui-même. Donc c'est normal.

J'ai reçu l'expander hier. Je commencerai à jouer avec dans les jours à venir, y'aura rien de très compliqué pour l'intégrer au système ;)/emoticons/default_wink.png" srcset="/emoticons/[email protected] 2x" title=";)" width="20" />

Tcho!
 
Salut Kevazingo :)

Concernant le SEN0193 je n'ai pas encore mis le code pour le lire, tu utilise quoi toi ? La librairie YL100 sur mon dépôt ? La valeur analogique lue sur le capteur peut varier suivant la ref du capteur, et je dirais même suivant le capteur lui-même. Donc c'est normal.

J'ai reçu l'expander hier. Je commencerai à jouer avec dans les jours à venir, y'aura rien de très compliqué pour l'intégrer au système ;)

Salut,
Oui j'utilise la librairie YL100.
Du coup si tu vas jeter un œil sur mes graphiques tu peux voir que la sonde fonctionne suivant mes cycles lumineux.
Elle détecte de l'humidité le jour tandis que la nuit elle tombe à 0.
J'ai aussi reçu l'expander hier.
Je reste à l'affut :-)
A+
 
Salut @Raphiki ,

Ha super ! T'es un chef :D

Ha mince pour ta sonde PH.. J'espère que tu solutionneras ça sans trop te prendre la tête.

C'est frustrant pour moi de pas maîtriser un sujet et de pas pouvoir aider comme je souhaiterais ?

Peut-être que notre camarade @JBdu14 pourrait répondre à certaines de tes interrogations d'ailleurs..

Pour ma part je ne suis pas pressé, déjà car j'ai des testeurs manuels et puis parce que je ne cultive pas à l'instant T.

On parlais d'écologie et moi qui prônait la MH/HPS jusqu'à il y a peu de temps encore, je suis justement en train de changer d'avis et je regarde pour basculer sur de la led..

Mais y reste des doutes ^^ Bref..

J'ai commencé à regrouper mes besoins pour les divers achats et j'ai 1 petite question :

- Pour la version Hydro, est-il nécessaire d'acheter l'expander ? Si j'ai bien compris son rôle, il sert à regrouper plusieurs sonde qui ont la même fonction sur un seul PIN de la carte ? Sinon, peux-tu m'expliquer en deux mot sa fonction stp ?

Bon courage pour la suite ;)

A +
 
plop tout le monde :pro:/emoticons/default_pro.gif" title=":pro:">

Pour le Phmetre Arduino en effet il faut aussi le calibrer comme tous les phmetre.

En prenant la valeur à un ph=4 et une autre à ph=7 on peut alors établir une équivalence

Mais je penses qu'il existe une librairie pour utiliser le kit ph mais la je suis trop noob.

Pour ceux qui se posent encore des questions sur les leds et encore plus sur les led bon marché je conseillerais alors de voir mon dernier JDC avec 6x50w driverLess en Flo et 2x50w3500k+2x70w6500k en cro

IMG_20181022_231100.webp
PANO_20181028_085304.webp

Hydro, 8 plantes, 4m2, 6x50w driverless + (5x40w 625nm 665nm avec driver 24v) un 2eme arrive cette semaine.

Cordialement JB.

JB.
 
Dernière édition:
Plop,

Ma qué c'est beau JB !!!

Oui je me pose des questions car il y a à boire et à manger dans la LED.

Mon dévolu se porterait surement pour du ISLED ou HORTICOLED.. Mais en faite je suis un peu perdu face à tout ça et les JDC que je trouve avec les marques qui m’intéresse sont un peu incomplet pour que je me fasse une idée alors je bûche encore le sujet :lire:

J'irais sur le topic adéquate pour poser des questions si nécessaire,

Amicalement,
 
Bonjour @Hydro-Funktion, :respect:

Je te cite "On parlais d'écologie et moi qui prônait la MH/HPS jusqu'à il y a peu de temps encore, je suis justement en train de changer d'avis et je regarde pour basculer sur de la led.. "

D'une manière générale, tu as raison et, comme toi, j'allais m'orienter vers des leds mais la chaleur dissipée par une MH ou HPS peur servir à chauffer la box quand on cultive dans une pièce non chauffée. Dans ce cas, la led n'est pas forcément la solution la plus écolo. :roll:

Peace. Cyberius. :kana_smile:
 
Salut @Raphiki ,

apparemment nos recherches on aboutie au meme endroits :mdr:car j'ai en projet un gestion Ph et j'avais un oeil aussi sur l'Ec et je suis donc tombe comme toi sur le meme lien.

Au vu de son systeme n'importe quel prise, pourvu qu'elle ai la meme forme la meme surface, peut servir de testeur.

Après quelques recherche j'ai trouvé ceci sur Ebay

https://www.ebay.fr/itm/TDS-Sonde-de-Conductivite-Detection-Sondage-Teste-Electrique-Sonde-dEssai/253288118087?hash=item3af925f747:g:VCMAAOSwMGhak~In

a ce prix la tu es sur d'avoir une prise résistante a l'eau prévue pour et avec connecteur, sinon donc n'importe quel prise 220v 2 bornes peut être utilisée aussi.

il serait judicieux de trouver des contacts OR afin de ne pas se couvrir d'engrais et autres sels minéraux ainsi que de se dégrader au fur et a mesure, sachant qu'il doit baigner dans de l'eau acide en permanence.

Tu peux aussi envisager alors de prendre des câbles audio plaqué or style 2 câble mono jack et utilisé les mâles comme sonde et de l'autre coté couper le câble et recup le signal. En plus si tu met a la masse le câble il protégera le signal car le câble est blindé. Si tu as besoin d'autres exemple fait moi signe.

Perso j'ai lassé tomber la gestion de l'Ec dans mon projet, j'aurais 2 ph Metre 1 pour la soupe 1 pour la réserve, 1 pompe péristaltique pour le Ph down (qui sera une bouteille d'1 litre avc un mélange de 5ml/1L afin d'avoir une gestion très précise. J'envisage une 2eme pompes mais elle gérera le niveau de la soupe, car en hydro les plantes arrivent a boire plus d'un litre/jour/plante Si je l'utilise ça ne sera qu'a titre indicatif et pour suivre l'evolution de l'Ec afin de savoir si mes plantes ou mangent plus ou moins.

Perso j'ai preferé ne pas m'embeter en prenant un testeur PPM stylo chinois qui fonctionne très bien à 3e

https://www.ebay.fr/itm/TDS-Sonde-de-Conductivite-Detection-Sondage-Teste-Electrique-Sonde-dEssai/253288118087?hash=item3af925f747:g:VCMAAOSwMGhak~In

Cordialement JB.
 
Dernière édition:
Salut à tous :)
@Raphiki , Quels sont les références de tes ph mètre et ton ec mètre pour l'hydro edition ? Je souhaiterai les commander pour évoluer en même temps. :)

Merci !

A+
 
Salut Amtarow

Sur Ali ? J'ai pas trouvé en dessous de 7e50. Y'en a à 4e50 mais avec 3e de frais de port, c'est juste selon la façon de procédé des commerçant.

Sinon je veux bien quelques liens !

A+

Salut, j'ai trouver celui ci.

https://fr.aliexpress.com/item/ESP-32-ESP-32S-D-veloppement-Conseil-WiFi-Bluetooth-Ultra-Faible-Consommation-D-nergie-Double-Noyaux/32950573785.html?spm=a2g0w.search0104.3.29.69f72edbZOT0PG&ws_ab_test=searchweb0_0%2Csearchweb201602_3_10065_10068_319_10892_317_10696_10924_453_10084_454_10083_10618_10920_10921_10304_10922_10307_10820_10821_537_10302_536_5730115_10843_10059_10884_10887_100031_321_322_10103_5729113_10930-10892%2Csearchweb201603_51%2CppcSwitch_0&algo_pvid=9a13fc35-8ff8-41f7-880a-6fb3ecb5d867&algo_expid=9a13fc35-8ff8-41f7-880a-6fb3ecb5d867-4

A+ :)
 
Bonjour à tous !
Merci pour cet excellent tuto Raphiki. Super boulot, tout est très clair et bien détaillé, jusqu'aux finitions avec les codes couleur c'est appréciable!
J'ai donc réussi à assembler le prototype et configurer le channel thingspeak avec les alertes. Tout a parfaitement fonctionné du premier coup, ceci dit, il m'a fallu installer manuellement le driver NodeMCU car la board n'était pas reconnue. Mais peut être est-ce dû au fait que j'ai utilisé la version .zip du programme arduino.
Le driver est ici :https://github.com/nodemcu/nodemcu-devkit/tree/master/Drivers

J'ai réussi à ajouter la possibilité de contrôler deux relais via une page html. La procédure est expliquée ici :http://iotmonk.com/lessons/controlling-esp12e-nodemcu-led-website-using-thingspeak-anywhere-world-part-1/

CaptureSmartGrowRelay.webp

Je ne sais pas vraiment l'expliquer, je n'ai aucune notion dans le domaine. J'ai simplement réussi à copier/coller les bonnes lignes pour les insérer au bon endroit dans ton code Raphiki et ça fonctionne!
Le principe me semble intéressant car c'est toujours associé à thingspeak. C'est le schéma inverse que pour les capteurs en gros, on ajoute manuellement les valeurs dans un graphique thingspeak via la page html, puis le module ESP8266 met à jour les sorties digitales correspondantes.
J'ai testé les sorties au voltmètre, ça a l'air de fonctionner parfaitement. J'ai donc commandé ce module de relay en 3V3, ça devrait être top :https://fr.aliexpress.com/item/3-3-V-3-V-2-Canal-Module-de-Relais-Optocoupleur-Isolement-Module-de-Commande-De/32848728707.html?spm=a2g0s.9042311.0.0.77496c37iHHXoZ

La seule restriction, c'est le fait que thingspeak n'accepte les données qu'une fois toutes les 15sec. Cela laisse donc une fenêtre de 15sec toutes les 30sec pour activer manuellement les relais vu que par défaut la board envoie les datas toutes les 30sec.
Par contre, on devrait pouvoir mettre en place des React ou code MatLab dans thingspeak pour automatiser tout ça.

Une petite question concernant la précision et/ou calibrage des capteurs. Est-il possible d'ajouter un offset et un coefficient aux valeurs envoyées à thingspeak?

Voilà pour ma petite contribution, merci encore Raphiki.

A bientôt!
 
Dernière édition par un modérateur:
Bonjour,
Tout d'abord merci pour ce tut c'est très sympathique !
A la vue de celui-ci j'ai décider de me lancer avec un ESP32 ainsi que des sensor moisture V1.2 afin de mouvoir monit plusieurs pots.
Apres pas mal de galère vue mes très faibles connaissance en arduino je suis arriver à faire fonctionner le 1.2 et j'ai créer une library adapter à celui-ci en regroupant un peut tous ce qu'on peut trouver à son sujet.

//"Moisure_sensor_V1_2.h"

#pragma once

class V1_2
{
private:
unsigned int pinRead;
const int scale_min = 0; // valeur min de la plage
const int scale_max = 100; // valeur max de la plage
const int AirValue = 3400; //Valeur RAW à l'air libre
const int WaterValue = 850; //Valeur RAW dans un verre d'eau
public:
V1_2(unsigned int _pinRead);
void begin();
float readSoilMoisture();
};

Les valeurs RAW utiliser sont une moyenne des 3 capteurs dont je dispose.

//"Moisture_sensor_V1_2.ccp"

#include "Moisture_sensor_V1_2.h"
#include <Arduino.h>

V1_2::V1_2(unsigned int _pinRead)
{
this->pinRead = _pinRead;
}

void V1_2::begin()
{
pinMode(this->pinRead, INPUT);
}

float V1_2::readSoilMoisture()
{
int RAW = analogRead(this->pinRead);
float moisture = map(RAW,AirValue,WaterValue,scale_min,scale_max);

return moisture;
}

Pour ceux qui souhaiterais faire des essais et récupérer les valeurs RAW ainsi que sa valeur correspondante en %:

#include "Moisture_sensor_V1_2.h"

#define wait 2000 // durée d'attente entre les mesures - waiting time

#define PIN_POT1 13
#define PIN_POT2 33

V1_2 pot1(PIN_POT1);
V1_2 pot2(PIN_POT2);

void setup() {
Serial.begin(115200);
}

void loop()
{
int POT1 = analogRead(27); //v1.2
int POT2 = analogRead(33); //v1.2

float moisture = pot1.readSoilMoisture();
float moisture2 = pot2.readSoilMoisture();

Serial.printf("Moisture 1 : %s %\n",String(POT1).c_str());
Serial.printf("Moisture 1 : %s %%\n",String(moisture).c_str());
Serial.printf("Moisture 2 : %s %\n",String (POT2).c_str());
Serial.printf("Moisture 2 : %s %%\n",String(moisture2).c_str());
delay(wait);
}

Pour ceux qui possède un ESP 32 voici mon code avec 2 capteur d’hygrométrie du sol

#include "DHT22.h"
#include "MAX44009.h"
#include "Moisture_sensor_V1_2.h"
#include <WiFi.h>
#include <HTTPClient.h>
#include <UniversalTelegramBot.h>

#define WIFI_SSID "WIFI ID"
#define WIFI_KEY "WIFI KEY"

#define THINGSPEAK_HOST "api.thingspeak.com"
#define THINGSPEAK_API_KEY "YOUR KEY THINGDPEAK"

#define FIELD_TEMPERATURE 1
#define FIELD_HUMIDITY 2
#define FIELD_POT1 3
#define FIELD_POT2 4

#define PIN_DHT 18
#define PIN_POT1 33
#define PIN_POT2 34
//#define PIN_POT3 35

#define TIME_SLEEP 1000
#define CPT_PUBLISH 30

HTTPClient http;

DHT dht(PIN_DHT, DHT22);
V1_2 pot1(PIN_POT1);
V1_2 pot2(PIN_POT2);

uint16_t cptLoop = 0;

float temperature = 0;
float humidity = 0;
float moisture = 0;
float moisture2 = 0;

uint16_t cptTemperature = 0;
uint16_t cptHumidity = 0;
uint16_t cptMoisture = 0;
uint16_t cptMoisture2 = 0;

void setup()
{
Serial.begin(115200);
Serial.println("\nSetup");
delay(50);

// Initialisation du WIFI
WiFi.begin(WIFI_SSID, WIFI_KEY);

Serial.printf("Connecting to %s with key %s\n", WIFI_SSID, WIFI_KEY);

uint32_t timer = millis();
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(200);

)
if (millis() - timer >= 20000)
{
Serial.println("Unable to connect, restarting...");
ESP.restart();
}
}

Serial.println(" WiFi connected");
dht.begin();
}

void loop()
{
// Incrémentation de 1 du compteur de boucle
cptLoop++;

// Lecture des capteurs
float _temperature = dht.readTemperature();
if (_temperature >= -40 && _temperature <= 80)
{
temperature += _temperature;
cptTemperature++;
}

float _humidity = dht.readHumidity();
if (_humidity >= 0 && _humidity <= 200)
{
humidity += _humidity;
cptHumidity++;
}

float _moisture = pot1.readSoilMoisture();
if (_moisture >= 0 && _moisture <= 100)
{
moisture += _moisture;
cptMoisture++;
}

float _moisture2 = pot2.readSoilMoisture();
if (_moisture2 >= 0 && _moisture2 <= 100)
{
moisture2 += _moisture2;
cptMoisture2++;
}

if (cptLoop >= CPT_PUBLISH)
{
temperature = temperature / cptTemperature;
humidity = humidity / cptHumidity;
moisture = moisture / cptMoisture;
moisture2 = moisture2 / cptMoisture2;

Serial.println("======");
Serial.printf("Temperature : %s C°\n", String(temperature).c_str());
Serial.printf("Humidity : %s %%\n", String(humidity).c_str());
Serial.printf("Moisture : %s %%\n", String(moisture).c_str());
Serial.printf("Moisture2 : %s %%\n", String(moisture2).c_str());

// Si nous ne sommes plus connectés au WiFi
if (WiFi.status() != WL_CONNECTED)
{
Serial.println("Connection to the SSID lost, trying to reconnect...");

uint32_t timer = millis();
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(200);

if (millis() - timer >= 20000)
{
Serial.println(" Unable to connect, restarting...");
ESP.restart();
}
}
}

// Création de l'URL
String url;
url.reserve(256);
url = "http://"+ String(THINGSPEAK_HOST) +"/update?api_key="+ String(THINGSPEAK_API_KEY);

// Ici on intègre les champs et leurs valeurs.
if (cptTemperature > 0)
url += "&field"+ String(FIELD_TEMPERATURE) +"="+ temperature;
else
Serial.println("Unable to read temperature");

if (cptHumidity > 0)
url += "&field"+ String(FIELD_HUMIDITY) +"="+ humidity;
else
Serial.println("Unable to read humidity");

if (cptMoisture > 0)
url += "&field"+ String(FIELD_POT1) +"="+ moisture;
else
Serial.println("Unable to read soil moisture");

if (cptMoisture2 > 0)
url += "&field"+ String(FIELD_POT2) +"="+ moisture2;
else
Serial.println("Unable to read soil moisture");

Serial.printf("Fetching %s\n", url.c_str());

// Etablissement de la communication HTTP
http.begin(url);
int httpCode = http.GET();

if(httpCode != HTTP_CODE_OK)
{
Serial.printf("[HTTP] GET... failed, code: %d, error: %s\n", httpCode, http.errorToString(httpCode).c_str());
ESP.restart();
}

Serial.println("Data sent !");

http.end();

// Remise à zéro
cptLoop = 0;

temperature = 0;
humidity = 0;
moisture = 0;
moisture2 = 0;

cptTemperature = 0;
cptHumidity = 0;
cptMoisture = 0;
cptMoisture2 = 0;

}
delay(TIME_SLEEP);
}

Voila ce qu'il en est de mon avancée de l'adaptation pour un ESP32.
Reste a ce jour un point qui dépasse mon niveau médiocre le capteur MAX44009 ne fonctionne toujours pas j'ai un retour de valeur à 0.00 je n'arrive pas a débugg.
Si quelqu'un a une idée ?

Mon channel : https://thingspeak.com/channels/657204
 
Dernière édition par un modérateur:
Hello !

Chouette tout ça :) Content que ça en inspire plus d'un !

@Tastybud

Propre ton petit boîtier :)

Ton interface est sympa également, l'ajout des graph ThingSpeak rend le truc coolos et ton système automatisé est plutôt bien pensé.

Pour les coupures : ouais dans le code original, si il y a eu un soucis d'envoi, l'ESP se reset en cas de bug inopiné. Vu qu'il n'automatise rien à la base, cela ne pose pas de soucis.

Chouette système en tout cas, ça pourrait servir d'ébauche au tuto développement d'un système automatisé même si il y a surement quelques opti à faire au niveau du code :p

Merci pour ta contrib en tout cas !

@Shint4r0

Bien joué pour l'ajout de l'ESP32. Pour ton soucis lié au capteur MAX44009, sur quels pins est-il connecté ? La correspondance est-elle correcte dans le code ? (PIN_SCL et PIN_SDA)

Sinon as-tu bien penser à ajouter les board supplémentaire dans Arduino IDE pour coder sur l'ESP32 et non l'ESP8266 comme expliqué ici https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md ?

Normalement sans ça tu ne devrais même pas pouvoir flasher l'ESP32 si tu as laissé les informations dans "Type de carte" > "NodeMCU ESP 1.0 ESP12E"

---

Concernant le Moisture Sensor SEN0193 (que tu appelles V1.2 Shint4r0, ref indiquée sur le PCB) :

Je viens de le valider le remplacement du YL100 avec le SEN0193 dans le tuto.

Si vous disposez du YL100, une version du code est toujours disponible sur mon dépot (https://github.com/RaphikiCW/smartgrow). Vous devez cliquer sur le bouton "Branch: master" et sélectionner la branche "yl100", puis cliquez sur "Download ZIP".

A notez que la façon de lire le capteur ne change pas de beaucoup, il s'agit de mapper une valeur analogique entre 0 et 1023 => en pourcentage, en faisant en sorte que la valeur lu par le capteur dans l'air = 0% et que la valeur lu dans l'eau = 100%.

Si vous jetez un coup d'oeil au fichier SEN0193.h vous trouverez ces ligne :

float valueO2 = 820;
float valueH2o = 350;

Ces valeurs de calibration sont définis selon ce que j'ai pu lire sur 2 SEN0193, mais elles peuvent être différentes selon le capteur, ce qui justifierai de potentielle valeur inférieur à 0% ou supérieur à 100%. Si elles le sont, vous pouvez changer ces lignes selon les valeurs de votre capteur.

---

Concernant l'hydro edition j'aurais un peu de temps pour m'y consacrer la semaine prochaine.

Toutefois je doute d'arriver à des résultats concluant concernant le pH et l'EC... Les sondes utilisés sont très cheap et ne sont pas faites pour être constamment plonger dans l'eau, les perte de calibration serait trop fréquente (les testeur perde leur calibration progressivement puis nettement après 2-3 jours). Il en est de même d'ailleurs pour les testeur acheté 20-30e.

Il existe des testeur étant justement conçu pour être constamment dans la solution, mais là on attend des budgets que je ne peux pas me permettre.

Donc du coup ça casse un peu l'idée de monitoring par courbe si on peut pas laisser la sonde dans la solution. Donc je réfléchi à une version avec un écran comme évoqué par @Hydro_Funktion ou le test du pH et de l'EC se ferait de façon promptuelle et non continue, même si on perd un peu l'idée du monitoring.

Tcho!
 
Dernière édition par un modérateur:
@Raphiki Merci de ta réponse.

En fait le problème ne vient pas du réglage de la définition pins mais plutôt de ou se brancher :

#ifdef ESP8266
Wire.begin(dataPin, clockPin);
#else // other platforms
Wire.begin();
#endif
Si j'ai bien compris ce bout de code il dit que si je n'utilise pas d'ESP8266 je ne défini pas les PIN SDA ni SCL
en cherchant sur le net un autre modèle de capteur je suis tomber sur une video ou la personne utilise les pins 21 (SDA) et 22 (SDC) je me suis brancher dessus sa fonctionne.

Par-contre la valeur lue 25000 lux tout une pauvre lampe me semble complètement a cote de la plaque. Je suppose qu'il y a une config possible a se niveau.
j'ai récupérer un code de test et lui me sort une valeur bien plus cohérente de 97 lux même si je trouve sa encore un peut trop élever c'est correct en comparaison.

Si quelqu'un trouve la modif à faire le voici :
#include <Wire.h>
#include "MAX44009.h"
MAX44009 light;

void setup()
{
Serial.begin(115200);
Wire.begin();

delay(500);

if(light.begin())
{
Serial.println("Could not find a valid MAX44009 sensor, check wiring!");
while(1);
}
}

void loop()
{
Serial.print("Light (lux): ");
Serial.println(light.get_lux());
delay(1000);
}

Révélation
#include "MAX44009.h"
#include <math.h>
MAX44009::MAX44009() {}
int MAX44009::begin()
{
Wire.beginTransmission(MAX_ADDR);
Wire.write(0x02);
Wire.write(0x40);
return Wire.endTransmission();
}

float MAX44009::get_lux(void)
{
unsigned int data[2];

Wire.beginTransmission(MAX_ADDR);
Wire.write(0x03);
Wire.endTransmission();

// Request 2 bytes of data
Wire.requestFrom(MAX_ADDR, 2);

// Read 2 bytes of data luminance msb, luminance lsb
if (Wire.available() == 2)
{
data[0] = Wire.read();
data[1] = Wire.read();
}

// Convert the data to lux
int exponent = (data[0] & 0xF0) >> 4;
int mantissa = ((data[0] & 0x0F) << 4) | (data[1] & 0x0F);

//float luminance = pow(2, exponent) * mantissa * 0.045;
float luminance = (float)(((0x00000001 << exponent) * (float)mantissa) * 0.045);

return luminance;
}

#ifndef MAX44009_h
#define MAX44009_h
#include <Arduino.h>
#include <Wire.h>
#define MAX_ADDR 0x4A
class MAX44009 {
public:
MAX44009();

int begin();

float get_lux(void);

};
#endif
 
Dernière édition par un modérateur:
Salut,
Oui j'utilise la librairie YL100.
Du coup si tu vas jeter un œil sur mes graphiques tu peux voir que la sonde fonctionne suivant mes cycles lumineux.
Elle détecte de l'humidité le jour tandis que la nuit elle tombe à 0.
J'ai aussi reçu l'expander hier.
Je reste à l'affut :-)/emoticons/default_basic-smile2.png" title=":-)" />
A+

Yop Keva ;)/emoticons/default_wink.png" srcset="/emoticons/[email protected] 2x" title=";)" width="20" />

En effet c'est assez chelou. Tu utilises la sonde dans du substrat classique ?

La lib YL100 fait relativement la même chose, elle lit la valeur analogique du capteur et map cette valeur sur un pourcentage qui peut varier selon les ref de capteur.

Les 2 capteurs d'humidité au sol que j'utilise en test se porte toujours bien, pas de signe de corrosion. Je vais donc bientôt updater la partie principal de ce tuto pour remplacer le YL100 par le SEN0193.

A+

Salut @Raphiki ,

Ha super ! T'es un chef :D/emoticons/default_biggrin.png" srcset="/emoticons/[email protected] 2x" title=":D" width="20" />

Ha mince pour ta sonde PH.. J'espère que tu solutionneras ça sans trop te prendre la tête.

C'est frustrant pour moi de pas maîtriser un sujet et de pas pouvoir aider comme je souhaiterais ?

Peut-être que notre camarade @JBdu14 pourrait répondre à certaines de tes interrogations d'ailleurs..

Pour ma part je ne suis pas pressé, déjà car j'ai des testeurs manuels et puis parce que je ne cultive pas à l'instant T.

On parlais d'écologie et moi qui prônait la MH/HPS jusqu'à il y a peu de temps encore, je suis justement en train de changer d'avis et je regarde pour basculer sur de la led..

Mais y reste des doutes ^^ Bref..

J'ai commencé à regrouper mes besoins pour les divers achats et j'ai 1 petite question :

- Pour la version Hydro, est-il nécessaire d'acheter l'expander ? Si j'ai bien compris son rôle, il sert à regrouper plusieurs sonde qui ont la même fonction sur un seul PIN de la carte ? Sinon, peux-tu m'expliquer en deux mot sa fonction stp ?

Bon courage pour la suite ;)/emoticons/default_wink.png" srcset="/emoticons/[email protected] 2x" title=";)" width="20" />

A +

Salut Hydro :)/emoticons/default_basic-smile.png" srcset="/emoticons/[email protected] 2x" title=":)" width="18" />

Problème résolu avec la sonde, le soucis était que la pin VIN de certaines cartes NodeMCU ne mesure pas toujours 5V malgré le fait qu'elle devrait si la carte est alimenté en 5V... Du coup j'ai découvert la pin VU, qui elle est directement lié au port USB.

J'avance donc tranquillement avec le temps que j'ai. L'expander et le ph mètre c'est ok, j'attend de jouer avec l'ec mètre et je serais bon pour commencer à rédiger l'édition Hydro. Concernant le ph mètre j'arrive à des résultats plutôt correct en étalonnant le capteur sur 2 solutions de PH 4.01 et 9.18.

Concernant l'expander, voit ça comme une multiprise. L'ESP8266 n'a que 1 entrée analogique, or l'ec metre et le ph metre doivent être lu tout deux par une PIN analogique. L'expander, qui lui comprend plusieurs entrée analogique et qui sera connecté en I2C à l'ESP, pourra lire à tour de rôle chaque capteur analogique.

A+ porte toi bien

Salut à tous :)/emoticons/default_basic-smile.png" srcset="/emoticons/[email protected] 2x" title=":)" width="18" />
@Raphiki , Quels sont les références de tes ph mètre et ton ec mètre pour l'hydro edition ? Je souhaiterai les commander pour évoluer en même temps. :)/emoticons/default_basic-smile.png" srcset="/emoticons/[email protected] 2x" title=":)" width="18" />

Merci !

A+

Salut amtarow et merci pour le coup de pouce :D/emoticons/default_biggrin.png" srcset="/emoticons/[email protected] 2x" title=":D" width="20" />

Pour le ph mètre j'utilise celui-ci :

https://fr.aliexpress.com/item/1Set-Liquid-PH-Value-Detection-Regulator-Sensor-Module-Monitoring-Control-Meter-Tester-BNC-PH-Electrode-Probe/32805675619.html

image.webp

Et l'ec mètre trouvé par JB :

https://www.ebay.fr/itm/TDS-Sonde-de-Conductivite-Detection-Sondage-Teste-Electrique-Sonde-dEssai/253288118087?hash=item3af925f747:g:VCMAAOSwMGhak~In

image.webp

Le ph mètre c'est ok, je vais attaquer l'ec metre bientôt. J'utiliserai des solutions de calibration liquide de EC 1,413 et 2,76.

Donc ça devait être bon, mais si tu veux prendre de l'avance je t'en prie :)/emoticons/default_basic-smile.png" srcset="/emoticons/[email protected] 2x" title=":)" width="18" />

A+ merci du passage
 

Pièces jointes

  • image.webp
    image.webp
    22.1 KB · Affichages: 0
  • image.webp
    image.webp
    22.1 KB · Affichages: 0
  • image.webp
    image.webp
    22.1 KB · Affichages: 0
Re @Shint4r0

25 000 lux si le capteur est directement sous une lampe même faible c'est pas déconnant, c'est plutôt normal.

Si la valeur varie comme il faut selon le niveau de lumière, tu n'as plus de soucis du coup ? En soit le niveau lu n'a pas vraiment d'importance, la valeur n'est pas vraiment exploitable scientifiquement, seul la variation compte.

Le réseau I2C doit en effet être définit sur 2 pins : SDA et SCL. Sur une carte Arduino, elles sont définit nativement. Sur ESP8266 et ESP32, on te laisse le choix de définir quelles sont ces pins. En 2 mots, l'I2C est un bus de communication te permettant de relié plusieurs esclaves (capteurs, relay, etc) en les connectant tous en parallèle sur les 2 seules pins SDA (data) et SCL (clock).

Après sur Internet tu peux trouver des librairies à jour contenant du code compatible ESP/Arduino mais c'est pas toujours le cas, auquel cas un peu de bidouille s'impose ;)

A+
 
Retour
Haut