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


Recommended Posts

Bonjour , Salut , Plop ... 

 

oui parfait on a eu le même souci je pense avec le capteur humidité du sol il a fini dans le même état ^^ ok merci pour l'info du ph sensor.

 

tu as bien compris pour la mesure du niveau d'eau où je voulais en venir. fraudais voir si la marge erreur et importante

 

Oui ça ne serait pas une mauvaise idée de voir adapter ce système pour la culture en hydroponique à l'occasion.

 

:)

 

Au revoir , Bye , A+! ... 

 

Edited by glass-blower
Politesse
Link to post
Share on other sites

Re, 

 

@JBdu14 Alors les données ne sont pas stockées sur un PC mais sur le cloud comme tu dis, sur la plateforme ThingSpeak. Si ta box est allumé h24 comme beaucoup de français y'a pas de soucis de ce côté là.

 

Je comprend ton choix et n'éterniserai pas un débat ici, m'enfin pour ceux qui nous lise, je me permet de rassurer ces mœurs "anti-cloud".

Les réseaux WiFi modernes sont aujourd'hui sécurisé, une bonne clef WPA permet d'éviter à quiconque de se connecter à votre box sans la connaître.

Tu parles des Camera IP mais le système est tout autre. Une camera IP (avec une bonne configuration de la box) peut être rendu accessible depuis l'extérieur à travers un service web hébergé par la caméra elle-même. Quand tu te rend sur l'adresse IP permettant de visualiser ta caméra IP, il y a donc une connexion entrante sur ton réseau local. 

Dans le cadre de mon système, les données sont émises depuis mon réseau local vers l'extérieur, sur un serveur. Aucune connexion entrante depuis l'extérieur n'est donc possible.

 

C'est pourquoi d'après moi il n'y a aucune crainte à avoir.

C'est pas ce système qui risque de vous incriminer ou de vous rendre suspicieux d'une quelconque façon. M'enfin je suis ouvert au débat si quelqu'un apporte des contre-exemples concrets.

 

A+ ;) 

 

 

Link to post
Share on other sites

Bonjour , Salut , Plop ... 

 

je travail en réseau informatique et je confirme qu'il n'y a aucune crainte à avoir autours de cette installation connectée ?

 

Il y a très peu de paquets intéressants qui sont échangés, libre à vous de laissez vos informations privées pour les plus paranos :)

 

Au revoir , Bye , A+! ... 

 

 

 

 

 

Edited by glass-blower
Politesse
  • Like 1
Link to post
Share on other sites

Salut, 

Serait-ce possible de mettre plusieurs capteur thermo/hygro en branchant leur alimentation en parallèle ? 
Mon but est de pouvoir prendre la température au dessus des apex et sous les apex voir a l'extérieur de la box sauf qu'on est limité en broche 3v 

Merci pour le tuto en tout cas, j'ai toute les pièces, ya plus cas assembler le tout et programmer
Petite idée pour un boitier, utilisé le pistolet a colle, pour faire genre imprimante 3D... :mdr:

A+ :) 

  • Like 1
Link to post
Share on other sites
Révélation
il y a 52 minutes, Selrac a dit :

Salut, 

Serait-ce possible de mettre plusieurs capteur thermo/hygro en branchant leur alimentation en parallèle ? 
Mon but est de pouvoir prendre la température au dessus des apex et sous les apex voir a l'extérieur de la box sauf qu'on est limité en broche 3v 

Merci pour le tuto en tout cas, j'ai toute les pièces, ya plus cas assembler le tout et programmer
Petite idée pour un boitier, utilisé le pistolet a colle, pour faire genre imprimante 3D... :mdr:

A+ :) 

 

 

Yop Selrac :) thx pour ton retour

 

Bien sûr pas de soucis en parallèle, ces petites sondes consomment un rien (~1mA) du moment que tu les lis sur des pins digitales différentes. 

Un boîtier à base de colle ? Un peu dangereux comme idée mais je note haha

 

A+

Link to post
Share on other sites

Salut, 

Je suis entrain de faire la programmation des capteurs, 
Est-ce que tu pourrais m'aider pour ajouter un 2eme DHT22, 
Je sais pas si je dois juste ajouter le capteur dans
// THINGSPEAK SETTINGS

et

// PIN SETTINGS


Ou si ya encore d'autre lignes a ajouter quelques part

en attendant ca fonctionne impec avec un seul thermo/hygro, super tuto  ?

Sinon je vois pas pourquoi ca serait dangereux avec la colle du pistolet ? Ca fond a partir 100°C mini 

Merci ! :) 

Link to post
Share on other sites

Bonjour.

 

Nous remarquons trop souvent que les règles élémentaires de politesse ne sont pas respectées.

Nous ne sommes pas sur twitter ou facebook.

 

Sur notre Forum, vous vous adressez à des personnes et non à des robots et ces personnes ont droit à un minimum de courtoisie.

Donc, en introduction de votre message un petit "bonjour" (ou un équivalent) amical est tout à fait normal.

De même qu'un "au revoir" (ou un équivalent) en fin de celui-ci et également un "merci" (ou un équivalent) lorsque qu'un problème a été résolu.

 

Ces quelques touches de politesse, si anodines soient-elles, font en réalité toute la différence et donnent envie de lire ou de participer à un sujet.

Merci pour ceux qui sont concernés ou se sentent visés de faire un sérieux effort à l'avenir.

 

Cordialement, L'équipe CannaWeed

  • Like 2
Link to post
Share on other sites
Révélation
il y a 26 minutes, Selrac a dit :

Salut, 

Je suis entrain de faire la programmation des capteurs, 
Est-ce que tu pourrais m'aider pour ajouter un 2eme DHT22, 
Je sais pas si je dois juste ajouter le capteur dans
// THINGSPEAK SETTINGS

et

// PIN SETTINGS


Ou si ya encore d'autre lignes a ajouter quelques part

en attendant ca fonctionne impec avec un seul thermo/hygro, super tuto  ?

Sinon je vois pas pourquoi ca serait dangereux avec la colle du pistolet ? Ca fond a partir 100°C mini 

Merci ! :) 

 

 

Hello :) 

 

Si tu ajoutes un capteur il faut que tu ajoutes l'ensemble des instructions pour le lire et gérer l'envoie sur ThingSpeak.

Il faut bien sûr que tu ai deux champs supplémentaires sur ThingSpeak pour l'humidité et la température et que tu cherches au de-là des lignes #define ;)

 

Allez je te donne la première ligne à dupliquer :

 

DHT dht(PIN_DHT, DHT22);
 

Là tu créer l'objet de type DHT en lui donnant le nom dht avec en paramètre la pin PIN_DHT définit préalablement et DHT22 (variable globale pour dire que tu lit un capteur DHT22).

Donc pour 2 dht22 tu auras 2 objets DHT, par exemple :

 

DHT dht(PIN_DHT, DHT22);
 
DHT dht_2(PIN_DHT_2, DHT22);
 

Tu dois donc après ça répliquer tout le reste pour lire ce second DHT22, les variables pour lire l'humidité et la température, etc. Le code est commenté et assez simple, tu devrais t'en sortir. Si t'as vraiment du mal je verrais ce que je peut faire.

 

A+ :) 

Edited by Raphiki
  • Thanks 1
Link to post
Share on other sites

Re,

Je suis perdu dans tout ces lignes de codes moi :lol: 
Bon j'ai dupliquer une ligne de temp et d'humi a chaque fois mais rien n' y fait... Pourtant je me suis inspiré du fichier avec Co2 

Je dois faire une erreur en mettant une temperature et humidity en _2 alors qu'il faut pas ? 

En rouge les lignes que j'ai rajouté

Révélation

#include "DHT22.h"
#include "YL100.h"
#include "MAX44009.h"
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

// WIFI SETTINGS
#define WIFI_SSID "*******************"
#define WIFI_KEY "****************"

// THINGSPEAK SETTINGS
#define THINGSPEAK_HOST "api.thingspeak.com"
#define THINGSPEAK_API_KEY "**********************"

#define FIELD_TEMPERATURE 1
#define FIELD_HUMIDITY 2
#define FIELD_MOISTURE 3
#define FIELD_LIGHT 4
#define FIELD_TEMPERATURE_2 5
#define FIELD_HUMIDITY_2 6


// PIN SETTINGS
#define PIN_SCL D1
#define PIN_SDA D2
#define PIN_DHT D3
#define PIN_DHT_2 D4
#define PIN_YL100 A0

// PROGRAM SETTINGS
#define TIME_SLEEP 1000
#define CPT_PUBLISH 30

// VAR DECLARATION
HTTPClient http;

DHT dht(PIN_DHT, DHT22);
DHT dht_2(PIN_DHT_2, DHT22);
YL100 yl(PIN_YL100);
Max44009 max44(0x4A, PIN_SDA, PIN_SCL);

uint16_t cptLoop = 0;

float temperature = 0;
float humidity = 0;
float moisture = 0;
float light = 0;
float temperature_2 = 0;
float humidity_2 = 0;

uint16_t cptTemperature = 0;
uint16_t cptHumidity = 0;
uint16_t cptMoisture = 0;
uint16_t cptLight = 0;
uint16_t cptTemperature_2 = 0;
uint16_t cptHumidity_2 = 0;

// Fonction exécutée au démarrage du système
void setup()
{
  // Initialisation de la sortie Serial pour nous permettre de monitorer notre système
  Serial.begin(9600);
  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);

    // Si il n'arrive pas à se connecter au bout de 20 secondes, le système redémarre (au cas ou un bug serait survenu)
    if (millis() - timer >= 20000)
    {
      Serial.println("Unable to connect, restarting...");
      ESP.restart();
    }
  }
 
  Serial.println(" WiFi connected");

  // Initialisation pour le DHT22 et le YL100
  dht.begin();
  yl.begin();

  dht_2.begin();

// Pourquoi pas de begin sur le capteur de lumiere ? 
}

// Fonction exécutéee en boucle une fois la fonction setup() terminée
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 = yl.readSoilMoisture();
  if (_moisture >= 0 && _moisture <= 200)
  {
    moisture += _moisture;
    cptMoisture++;
  }

  float _light = max44.getLux();
  if (_light >= 0 && _light <= 1000000)
  {
    light += _light;
    cptLight++;
  }

  float _temperature_2 = dht_2.readTemperature();
  if (_temperature >= -40 && _temperature <= 80)
  {
    temperature_2 += _temperature_2;
    cptTemperature_2++;
  }

  float _humidity_2 = dht_2.readHumidity();
  if (_humidity >= 0 && _humidity <= 200)
  {
    humidity_2 += _humidity_2;
    cptHumidity_2++;
  }

  // Si le compteur de boucle arrive à CPT_PUBLISH
  if (cptLoop >= CPT_PUBLISH)
  {
    temperature = temperature / cptTemperature;
    humidity = humidity / cptHumidity;
    moisture = moisture / cptMoisture;
    light = light / cptLight;
    temperature_2 = temperature_2 / cptTemperature_2;
    humidity_2 = humidity_2 / cptHumidity_2;

    
    // Affichage à l'écran des valeurs lues
    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("Light : %s lux\n", String(light).c_str());
    Serial.printf("Temperature_2 : %s C°\n", String(temperature_2).c_str());
    Serial.printf("Humidity_2 : %s %%\n", String(humidity_2).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_MOISTURE) +"="+ moisture;
    else
      Serial.println("Unable to read soil moisture");

    if (cptLight > 0)
      url += "&field"+ String(FIELD_LIGHT) +"="+ light;
    else
      Serial.println("Unable to read lux");
      
    if (cptTemperature_2 > 0)
      url += "&field"+ String(FIELD_TEMPERATURE_2) +"="+ temperature_2;
    else
      Serial.println("Unable to read temperature_2");

    if (cptHumidity_2 > 0)
      url += "&field"+ String(FIELD_HUMIDITY_2) +"="+ humidity_2;
    else
      Serial.println("Unable to read humidity_2");

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

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

    // Si nous n'avons pas réussi à émettre les données, nous redémarrons le système (au cas ou un bug serait survenu)
    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;
    light = 0;
    temperature_2 = 0;
    humidity_2 = 0;

    cptTemperature = 0;
    cptHumidity = 0;
    cptMoisture = 0;
    cptLight = 0;
    cptTemperature_2 = 0;
    cptHumidity_2 = 0;

  }

  // Temps en millisecondes où le programme ne fait rien
  delay(TIME_SLEEP);
}

 

Et la le moniteur

Révélation

Temperature : nan C°
Humidity : nan %
Moisture : 0.91 %
Light : 0.18 lux
Temperature_2 : nan C°
Humidity_2 : nan %
Unable to read temperature
Unable to read humidity
Unable to read temperature_2
Unable to read humidity_2

 

A+ :mdr: 

Link to post
Share on other sites
Il y a 2 heures, Selrac a dit :

  float _temperature_2 = dht_2.readTemperature();
  if (_temperature >= -40 && _temperature <= 80)
  {
    temperature_2 += _temperature_2;
    cptTemperature_2++;
  }

 

Salut,

 

Si je ne m'abuse l'erreur vient d'ici, dans la condition ce ne sont pas les bons paramètres que tu vérifies?

J'ai du mal à dire, l'IDE fourni par Arduino est loin d'être excellent! (Si vous en avez un autre, je suis preneur)

 

Salutations

  • Like 1
Link to post
Share on other sites

Yop @Falapica

 

La conv avec Selrac continue en mp, je posterai ici si le problème est résolu.
J'ai relevé ce petit oubli oui néanmoins c'est pas ça qui devrait provoquer cette erreur.

 

En IDE tu peux voir du côté de Platformio, plugin qui se base sur l'IDE open source Atom et beaucoup plus potable que l'IDE Arduino :xD:. Il est compatible Arduino, ESP8266 et bien d'autres.

 

Tcho!

Link to post
Share on other sites

Bonjour les amis ?

 

J'ai réalisé le prototype du boitier avec un port jack 3 pin pour le capteur dht22 et deux sorties jack 4 pin pour les sondes.

Il ne me manque que l'imprimante 3D. ?Untitled_2018-Sep-20_04-00-08AM-000_CustomizedView13953676289.thumb.jpg.d9faea37db82a7418cc9f331c9802236.jpg

Pour idée de la boite en pistolet à colle je ne te le recommande pas, essaye plutôt de trouver une boite et de fixer les éléments avec quelques point de colle à chaud.

a+ ??❤️

  • Thanks 1
Link to post
Share on other sites

Bonjour la team,

 

Je galère depuis 6 heures  pour faire fonctionner mon NodeMCU Lua Lolin V3 sur Arduino.

J'ai acheté tout le matos, j'ai soudé, j'ai téléchargé, puis installé comme dans le tutoriel et ça ne marche toujours pas.

 

Mon souci:

Le pack ESPtools qui doit upgrader le shéma "smartgrow" bloque, j'ai testé tous les ports COM 3,4,5,7,8, sans succès.

Un génie peut-il m'aider Please ...

 

Edited by BiT00LJuice
Link to post
Share on other sites
Révélation
Le 21/09/2018 à 00:05, kanabise a dit :

Bonjour les amis ?

 

J'ai réalisé le prototype du boitier avec un port jack 3 pin pour le capteur dht22 et deux sorties jack 4 pin pour les sondes.

Il ne me manque que l'imprimante 3D. ?Untitled_2018-Sep-20_04-00-08AM-000_CustomizedView13953676289.thumb.jpg.d9faea37db82a7418cc9f331c9802236.jpg

Pour idée de la boite en pistolet à colle je ne te le recommande pas, essaye plutôt de trouver une boite et de fixer les éléments avec quelques point de colle à chaud.

a+ ??❤️

 

 Yop Kana ;) 

Merci pour ta contrib, il est mignon ton petit boîtier. Seulement ça fait beaucoup de soudure à faire si on veut rester solderless mais thx :) 

A+

 

Révélation
il y a 24 minutes, BiT00LJuice a dit :

je galère depuis 6 heures  pour faire fonctionner mon NodeMCU Lua Lolin V3 sur Arduino.

J'ai acheté tout le matos, j'ai soudé, j'ai téléchargé, puis installé comme dans le tutoriel et ça ne marche toujours pas.

 

Mon souci:

Le pack ESPtools qui doit upgrader le shéma "smartgrow" bloque, j'ai testé tous les ports COM 3,4,5,7,8, sans succès.

Un génie peut-il m'aider Please ...

 

 

 

Salut Bitool,

Un poil de politesse ou tu vas te faire taper sur les doigts ;) 

"Le pack ESPtools qui doit upgrader le shéma "smartgrow" bloque" = Y'a un soucis au niveau de l'upload du sketch ? C'est quoi l'erreur dans la console ? Quand tu branches/débranches ton ESP, tu ne vois pas quel COM apparaît/disparaît dans le menu ?

Tcho

Link to post
Share on other sites

Salut Raphiki,

Désolé pour hier mais ça m'a gonflé.

Je retente aujourd'hui en restant zen.

Donc mon info: j'ai testé ESPlorer et mon NodeMCU communique via le port COM 5.

Je suis avec une version firmware :

AT+GMR
AT+GMR

AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(5a875ba)
v1.0.0.3
Mar 13 2018 09:37:06
OK

 

, je suppose que c'est le problème.

Et quand je téléverse le sketch (n'importe lequel), j'ai cette erreur:

Révélation

Le croquis utilise 275168 octets (26%) de l'espace de stockage de programmes. Le maximum est de 1044464 octets.
Les variables globales utilisent 30168 octets (36%) de mémoire dynamique, ce qui laisse 51752 octets pour les variables locales. Le maximum est de 81920 octets.
C:\Users\irene\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.13/esptool.exe -vv -cd nodemcu -cb 115200 -cp COM5 -ca 0x00000 -cf C:\Users\irene\AppData\Local\Temp\arduino_build_497062/smartgrow.ino.bin
esptool v0.4.13 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de>
    setting board to nodemcu
    setting baudrate from 115200 to 115200
    setting port from COM1 to COM5
    setting address from 0x00000000 to 0x00000000
    espcomm_upload_file
    espcomm_upload_mem
    setting serial port timeouts to 1000 ms
opening bootloader
resetting board
trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2013 bytes of data
    read 0, requested 1
error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data
trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2013 bytes of data
    read 0, requested 1
error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data
trying to connect
    flush start
le port série sélectionné trying to connect
 n'existe pas ou votre Arduino n'est pas connectée
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2013 bytes of data
    read 0, requested 1
error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data
resetting board
trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    serialport_receive_C0: 0D instead of C0
trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2013 bytes of data
    read 0, requested 1
error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data
trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2013 bytes of data
    read 0, requested 1
error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data
resetting board
trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    serialport_receive_C0: 8C instead of C0
trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2013 bytes of data
    read 0, requested 1
error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data
trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2013 bytes of data
    read 0, requested 1
error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed

 

Edited by BiT00LJuice
Link to post
Share on other sites

Yop @BiT00LJuice

 

De base le firmware présent sur l'ESP est un firmware à commande AT, c'est pourquoi tu peux faire ça. L'idée est de remplacer le firmware AT par le notre.

Visiblement tu arrives à communiquer avec lui avec ESPlorer donc il est bien connecté.
 

Sous Arduino IDE, tu arrives bien à envoyer des commandes AT avec le moniteur série de la même façon ? (pour infos il faut que l'option de retour chariot soit à "Les deux, NL et CR" :image.png.0924b536c6e8782c4cc09b12c9247581.png)

 

Quand tu flash le programme, le port COM5 est bien libre ? Si il est utilisé par ESPlorer, il ne peut être utiliser par Arduino IDE en même temps.

Dans "Type de carte" sélectionné, tu as bien "NodeMCU 1.0 (ESP12-E Module)" ?

 

A+

Link to post
Share on other sites

Yes Raphiki, j'ai réussit à communiquer avec le NodeMCU (il y avait un faux-contact qui  chauffait mon DHT22 aussi)

Révélation

    writing flash
................................................................................ [ 29% ]
................................................................................ [ 58% ]
................................................................................ [ 87% ]
.................................                                                [ 100% ]
starting app without reboot
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2 bytes of data
closing bootloader
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete

Je pense que ça va fonctionner mais je ne reçois toujours pas de données sur ThingSpeak.

 

A voir

  • Like 1
Link to post
Share on other sites

Bonsoir,

Excusez moi si je dis des inepties, mais je connais que dalle dans le domaine.
Mais si je comprends bien, je ne peux brancher qu'un seul capteur d'humidité de substrat sur ce contrôleur car il n'y a qu'une seule entrée analogique ?
Existe-t-il est contrôleurs avec émetteur wifi sur lequel je pourrais en brancher 3 ?

A+

Link to post
Share on other sites

Hello, c’est facile tu prends deux NodeMCU et une tonne de câbles.

Perso je n’ai utilisé qu’un seul module NodeMCU, sur lequel j’ai connecté quatre sondes, afin de faire les tests: (température/hygrométrie, lumière, CO2, et un capteur d’humidité du sol).

Maintenant que ça marche du tonnerre, je pense placer plusieurs modules.

- Un module pour la température/hygrométrie, lumière, CO2.

Et les autres modules dédiés pour mesurer humidité des pots (1 NodeMCU pour quatre pots).

Après je pense qu’il faut bien  configurer de temps d’envoi des requêtes sur le réseau WIFI. Une requête toute les heures seulement pour l’humidité des sols semble largement suffisante.

Après sur Thingspeak, tu peux renommer tes capteurs aux noms de tes variétés.

 

Vivement que je puisse faire la même chose mais avec un module 3G .

 

 

A+

 

Edited by BiT00LJuice
Link to post
Share on other sites
Révélation
Le 27/09/2018 à 18:29, Kevazingo a dit :

Bonsoir,

Excusez moi si je dis des inepties, mais je connais que dalle dans le domaine.
Mais si je comprends bien, je ne peux brancher qu'un seul capteur d'humidité de substrat sur ce contrôleur car il n'y a qu'une seule entrée analogique ?
Existe-t-il est contrôleurs avec émetteur wifi sur lequel je pourrais en brancher 3 ?

A+

 

 

Salut :)

 

Tu es tout à fait juste. L'ESP8266 12E comme tout les ESP8266 n'ont qu'une seule entrée analogique.

Si tu veux y connecter plusieurs capteurs analogique à l'ESP il existe toutefois des solutions :

 

https://www.instructables.com/id/ESP8266-with-Multiple-Analog-Sensors/

Picture of Connect Your Sensors.

 

Voici un schéma de simple multi-plexage. Ainsi tu allumes un capteur en l'alimentant par une PIN digital, tu le lit, tu l'éteint puis tu passes à l'autre à 1 à 1.

Mais cela nécessite donc l'achat de diodes, de petites resistances (ça coute un rien)  et réaliser un peu de soudure.

 

Sinon il existe la solution des expanders comme dit plus haut, pilotable en I2C par l'esp8266 :

https://fr.aliexpress.com/item/a/32830799627.html

image.png.9235fa6adc50a31426f6157a35eb35ab.png

https://www.instructables.com/id/Adding-an-MCP23017-IO-Extender-to-Arduino-or-ESP82/

 

L'un comme l'autre fonctionne.

 

Sinon plus proprement mais plus cher, tu peux voir du côté des shield ESP8266 pour Arduino UNO / MEGA. Mais à ce moment là c'est l'Arduino qui sera codé, l'ESP8266 sera piloté.

Sans parler de shield même, n'importe quel µc peut piloter l'ESP8266 en UART par commande AT, c'est ce que fais le shield behind the hood. Normalement les fonctions et librairies utilisé par le firmware Arduino for ESP8266 sont les mêmes que pour le firmware Arduino, donc il ne devrait pas y avoir masse d'adaptation à faire. Ne pas oublier de sélectionner la bonne carte dans "Gestion des cartes" toutefois.

 

Révélation
Le 27/09/2018 à 19:16, BiT00LJuice a dit :

Hello, c’est facile tu prends deux NodeMCU et une tonne de câbles.

Perso je n’ai utilisé qu’un seul module NodeMCU, sur lequel j’ai connecté quatre sondes, afin de faire les tests: (température/hygrométrie, lumière, CO2, et un capteur d’humidité du sol).

Maintenant que ça marche du tonnerre, je pense placer plusieurs modules.

- Un module pour la température/hygrométrie, lumière, CO2.

Et les autres modules dédiés pour mesurer humidité des pots (1 NodeMCU pour quatre pots).

Après je pense qu’il faut bien  configurer de temps d’envoi des requêtes sur le réseau WIFI. Une requête toute les heures seulement pour l’humidité des sols semble largement suffisante.

Après sur Thingspeak, tu peux renommer tes capteurs aux noms de tes variétés.

 

Vivement que je puisse faire la même chose mais avec un module 3G .

 

 

A+

 

 

 

Yop Bitool,

Kevanzigo parlait de sondes d'humidité au sol et pas de DHT22 ;)

Si tu souhaites faire en sorte que plusieurs ESP émettent sur le même channel, n'oubli pas qu'avec un compte gratuit tu es limité à 1 insertion toutes les 15 secondes. Si donc un premier ESP émet ses données et qu'un 2e émet ses données directement après, ThingSpeak va lui renvoyer "0" signifiant qu'aucune donnée n'a été insérée. C'est pourquoi il faut gérer ça dans son code, pour éviter que la donnée soit perdu, surtout si tu émet une fois par heure. 

Je ferais une petite update de mon code pour gérer ce cas.

 

J'ai pu piloter un module 2G avec un ESP8266 dans le passé, un SIM808 de chez simcomm 

https://fr.aliexpress.com/item/GSM-GPS-SIM808-Breakout-Board-SIM808-core-board-2-in-1-Quad-band-GSM-GPRS-Module/32435607442.html

image.png.eba201c3d93db30baa5076c1c79d5126.png

 

Il s'agit d'un petit module à 9€ qui fait module GSM (2G+), GPS  et bluetooth, c'est assez fort.

Toute fois il faut garder en tête qu'il lui faut une carte SIM et donc un abonnement pour pouvoir utiliser les réseaux antennaires.

Perso j'avais utilisé une offre à +2€ de mon forfait pour avoir une carte SIM supplémentaire pour seulement la data.

Je pourra rajouter ça dans ce tuto si y'a de la demande ;)

 

Tcho!

Link to post
Share on other sites

Salut,

Ok Raph, merci pour les différentes solutions, c'est cool.
Je m'attaque a tout ça dans 1 à 2 mois, je verrais si j'ai les moyens de partir direct sur un arduino, sinon je partirais sur un expander si ça fait tout aussi bien le taf.

Merci, bon dimanche.
 

  • Like 1
Link to post
Share on other sites

Salut à tous,

 

Je viens posté mes petites photos du projet afin de remercier l'auteur. Tout fonctionne niquel, mis à part que j'étais parti sur 4 capteurs d'humidité au sol et c'est que quand je l'ai reçu que j'ai pu m'apercevoir qu'il n'avait qu'une seule entrée analogique. Bon tu me diras, c'est pas si problématique pour un système hydro, si la pompe fonctionne, les 4 bacs sont alimenté de la même quantité d'eau. 

 

Par contre l'idée du graph qui a été mentionné plus haut de la quantité d'eau dans le bac m'intéresse. Peut être avec une sonde de niveau est il plus simple à mettre en oeuvre ? 

 

De plus, cette idée que l'on avait eu de faire remonté une alarme si la lumière est allumé alors qu'elle devrait être éteinte m'intéresse toujours, maintenant que j'ai le système j'aimerai bien la développer. 

 

Voilà les photos. :) 

20181003_201335.jpg

20181003_201341.jpg

20181003_201329.jpg

20181003_201321.jpg

20181003_202506.jpg

20181003_202511.jpg

20181003_202543.jpg

  • Like 2
Link to post
Share on other sites

Yop @amtarow merci pour le retour :xD: 

 

Pour l'hydro je vais pouvoir y consacrer un peu de temps, j'ai reçu le ph mètre et une sonde pour mesurer la température de l'eau, je ferais apparaître ça dans le tuto en bonus. 

L'idée de mesurer l'écoulement d'un réservoir avec un capteur à ultrason SRF05 me paraît un peu bancale comme dis plus haut, toute fois j'essaierai malgré tout, y'a peut-être moyen

 

Pour le déclencheur de seuil pour le niveau de lumière selon le temps je viens de rajouter ça dans la partie Mise en place d'alertes

 

Tcho ;) 

Edited by Raphiki
  • Like 1
  • Thanks 1
Link to post
Share on other sites