Go Down

Topic: Re: Capteur pour plantes vertes - WIP - Les codes et pb d'alim (Read 6667 times) previous topic - next topic

pixelgarden

May 21, 2014, 01:13 pm Last Edit: Aug 31, 2014, 12:16 pm by pixelgarden Reason: 1
Bonjour à tous,

Je suis en ce moment sur un projet de multi capteurs pour plantes vertes dans la veine du parrot flower.
Il detecte l'humidité du sol, la temperature et l'humidité hambiante, la luminosité et allume une led si il faut arroser tout de suite.
Pour le moment mon capteur communique avec mon ordinateur via bluetooth mais je vais evoluer vers des modules 2.4ghz et un arduino recepteur avec un shiel ethernet pour correspondre avec la BDD Mysql pour le suivi et les stats (en fait derriere il y a un projet plus global avec http://encausse.wordpress.com/s-a-r-a-h/ )
Jusqu'a présent ça se passe pas mal et voici par exemple ce que ça donne :

et ce que ça affiche :


Comme je veux miniaturiser et placer le tout dans un bambou, qui sera visuellement plus sympa qu'un tas informe de cable, je tente l'arduino mini pro... mais il ne se laisse pas faire... le mechant ! J'ai la fatidique erreur : avrdude: stk500_getsync(): not in sync: resp=0×00
Vas falloir tester plein de trucs du coups (drivers, bootloader, cable, position des planetes, etc).

Bref, voila mon petit projet.
Si vous voulez en voir plus vous pouvez aller sur mon blog (on peut faire un lien de ce genre ici ?) ou je présente toute les étapes (et bientot le code et les plans)
http://plantesvertes.net/2014/05/08/capteur-maison-arduino/

Je vais de ce pas dans la section présentation.

A bientôt

David



Artouste

bonjour
projet sympa
mais tu aurais du le poster dans la section generale
là comme tu l'indique toi meme , ce n'est pas fini  :smiley-mr-green:

pixelgarden

ha ben j'ai pas vu la section generale .... serait ce a la racine de la section france ??
Désolé !!

Artouste


ha ben j'ai pas vu la section generale .... serait ce a la racine de la section france ??
Désolé !!

c'est pas un soucis , tu ne sera surement pas le dernier  :smiley-mr-green:
oui c'est là où tu a directement la possibilité d'ouvrir un nouveau topic
c'est le meilleur endroit pour avoir de la visibilté pour un soucis.

sauf si un modo fait le transfere rapidement
le mieux est que tu supprime ton topic et que tu le recrée  dans la bonne section

john_lenfr


Bonjour à tous,

Je suis en ce moment sur un projet de multi capteurs pour plantes vertes dans la veine du parrot flower.
Il detecte l'humidité du sol, la temperature et l'humidité hambiante, la luminosité et allume une led si il faut arroser tout de suite.
Pour le moment mon capteur communique avec mon ordinateur via bluetooth mais je vais evoluer vers des modules 2.4ghz et un arduino recepteur avec un shiel ethernet pour correspondre avec la BDD Mysql pour le suivi et les stats (en fait derriere il y a un projet plus global avec http://encausse.wordpress.com/s-a-r-a-h/ )
Jusqu'a présent ça se passe pas mal et voici par exemple ce que ça donne :
et ce que ça affiche :
Comme je veux miniaturiser et placer le tout dans un bambou, qui sera visuellement plus sympa qu'un tas informe de cable, je tente l'arduino mini pro... mais il ne se laisse pas faire... le mechant ! J'ai la fatidique erreur : avrdude: stk500_getsync(): not in sync: resp=0×00
Vas falloir tester plein de trucs du coups (drivers, bootloader, cable, position des planetes, etc).

Bref, voila mon petit projet.
Si vous voulez en voir plus vous pouvez aller sur mon blog (on peut faire un lien de ce genre ici ?) ou je présente toute les étapes (et bientot le code et les plans)
http://plantesvertes.net/2014/05/08/capteur-maison-arduino/

Je vais de ce pas dans la section présentation.

A bientôt

David


Hello, projet sympatique ;)
Sur ton site tu devrais corriger l'année dans " MAJ 21 Mai 2015"

Par ailleurs, as-tu résolu ton problème d'upload dans la MiniPro? Quel adaptateur utilises tu?
Car pour en utiliser les connections sont très simples...

pixelgarden

Si un admin pouvait deplacer mon post, ce serait fort sympathique... encore désolé.

Oui je vais modifier la date de la maj du blog, comme quoi ecrire quand on est eclaté de fatigue a certains effets de bords...

Non je n ai pas resolu mon soucis avec le mini, j utilise ce truc http://letmeknow.fr/shop/accessoires/102-convertisseur-uart-usb.html et j ai eu de gros soucis de reconnaissance sous windows sur deux ordis w7.

Je vais tenter de voir sous linux si ca le fait aussi. La perspective de s occuper du bootloader ne me plait pas vraiment. Je vais aussi souder des fils, la broche etant un peu lache peut etre que des micro  coupures font foirer l upload.

Le mini pro clignote en bleu,  je ne sais pas vraiment ce que cela veux dire... je vais chercher la doc de ce clone.

Je n ai pas encore poussé mes recherches la dessus pour le moment. mais je ne desespere pas, ca fait partie du jeu.

David

Artouste

#6
May 21, 2014, 10:26 pm Last Edit: May 21, 2014, 10:36 pm by Artouste Reason: 1

...
Non je n ai pas resolu mon soucis avec le mini, j utilise ce truc http://letmeknow.fr/shop/accessoires/102-convertisseur-uart-usb.html et j ai eu de gros soucis de reconnaissance sous windows sur deux ordis w7.
...

Peu de risques que ce soit un probleme de bootloader.
c'est tres surement plus un probleme de reconnaissance du driver qui genere le port comx utilisable
ton adaptatateur simplement connecté sur un USB , il est vu dans le panneau de config de tes W7 sous un COMx ?
tu a fait l'install en temps qu'administrateur ?
pour s'en servir en tant que programmateur externe avec un arduino , il faut utiliser la ligne RTS
tu le cable comment exactement ton adaptateur sur  ta mini pro ?
de plus im semble qu'il y a deux versions de minipro une en 3.3V l'autre en 5V
et en 2 version d'horloge (8 et 16)
tu a quelle version ?




koala

#7
May 22, 2014, 10:50 pm Last Edit: May 22, 2014, 10:53 pm by koala Reason: 1
Il faut être sûr que ton programmateur est bien reconnu.

Au premier lancement, il y avait le programme blink dans sa mémoire qui fait clignoter la led pin 13

Sur le miens je suis obligé de mette rx sur rx et tx sur tx contrairement  à tous les schémas que j'ai trouvé sur le net et il faut que j'appuis sur le bouton reset dès que l'ide à terminé la compilation, au moment ou il affiche le poid du programme.

pixelgarden

Pour le moment je ne cherche pas du côté bootloader effectivement.
Sous mes windows 7, j ai installé les drivers de l uart usb, l ordi monte le port, mais je ne vois pas le mini pro. Avec le uno c est bien marqué uno. Bon comme l usb est avant le mini, je pense que windows verra plus l interface d echange que le mini derriere.
Je cable en 5v, tx sur rx et vice versa, plus le gnd bien sur. C est un 16 au fait.
Je posterai des photos demain justement.
Je pensais bien que c etait un blink de base. Je vais tenter le reset, j avais vu ça mais je ne savais pas quand le faire. Je tenterai aussi rx sur rx, sait on jamais. 
Je dois aussi tester sous linux ou la facon de voir les usb est differente. Mais j ai un peu peur des drivers plus ou moins foireux.
C est dommage que je bloque la dessus, j aurai aimé me concentrer sur le shiel Ethernet et la connexion mysql. C est le jeu...

fdufnews


Je dois aussi tester sous linux ou la facon de voir les usb est differente. Mais j ai un peu peur des drivers plus ou moins foireux.

Jamais eu de problème sous Linux aussi bien avec des adaptateurs utilisant le chip FTDI qu'avec ceux utilisant le chip Prolific.


Je cable en 5v, tx sur rx et vice versa, plus le gnd bien sur. C est un 16 au fait.

Si tu ne câbles pas le le DTR sur le Reset il faut en plus jongler avec le Reset manuel.

pixelgarden

bon ben j'ai tenté le reset manuel au moment de l 'affichage du poids... un clic, douze clic, clic maintenu.. rien !!
Voila le montage initial :

et la board et le connecteur usb :


Donc au final je n'ai pas de reset a partir de l'usb ou alors je vois pas comment faire.

Voici comment ça se passe dans le panneau de config :


Comme je le disais, le uno se voit dans le panneau de config mais le mini pro non !!

J'ai tenté sur deux ordis différents, avec des cables usb différents... ben ça marche pas ! ou alors c'est le truc bete que je vois pas du tout...

pour me simplifier la vie, je vais commander un mini avec usb incorporé, parceque la ça tendance a me tendre un poil.

Je crois que j'ai lu quelque part un truc sur un upload via bluetooth... faudrait que je tente.



pixelgarden

Je viens a l'instant de reussir a uploader un prog... pfioo... je suis passé en 3v et arduino mini pro correspondant. ET CA MARCHE !!

Ensuite je repasse en 5V et hop c'est good !!

Foireux quand meme !

Artouste


...

Voici comment ça se passe dans le panneau de config :


Comme je le disais, le uno se voit dans le panneau de config mais le mini pro non !!

J'ai tenté sur deux ordis différents, avec des cables usb différents... ben ça marche pas ! ou alors c'est le truc bete que je vois pas du tout...


Bonsoir
je crois tu te melange un peu
on va proceder "tranquille"
le uno se voit dans l'enumeration des port com , parce que son controleur usb genere l'info "uno"
la ton adaptateur est le prolific (com8) , lorsque tu le retire du port usb , il disparait du panneau de config et lorsque tu le remet il reapparait  ?

Bon edit : il semble que tu ai solutionner ton probleme  :smiley-mr-green:

pixelgarden

Pfiooo ! Et ben il semble qu'un nouveau né a certaines conséquences sur le temps libre !!! :smiley-mr-green:

Je profite de temps de dodos un poil plus long pour continuer mon projet.

Dernieres news :

J'ai passé le projet sur nRF24L01+ avec d'un coté le capteur humidité du sol, humidité de l'air, temperature, lumiere et de l'autre coté un "serveur" avec un shield ethernet et une led d'alerte secheresse.

(les codes arrivent et les schemas aussi)

le coté capteurs balance correctement les données, le serveur les reçoient sans soucis et il cré un xml avec les données. OUF !

Je me base sur ça http://geeklaboratories.com/408-comment-monitorer-le-climat-de-son-domicile-avec-arduino
et la... j'ai un soucis sur le coté Base de donnée.
LA base ne se remplit pas, alors que la connection vers elle est bonne.
Je pense que je ne l'ai pas structuré correctement, y a pas de doc sur l'article pour cette partie .
Si y a des pro de SQL/php dans le coin je suis super preneur et soulagera mes cheveux d'un arrachage malvenue.

En vous remerciant.

PS : Comment montrer le code sur le forum ? Insert quote ou y a un truc special code ?
Vous me conseillez quoi  pour illustrer le montage et ainsi partager ?

pixelgarden

Comme promis voici mes codes :

en premier le code du capteur avec :un  nRF24L01+,  un dht11 (humidité air + temperature, sonde humidité sol, luminosité et une tentative de sleep mais j'en reparle a la fin.

Code: [Select]

//***********************************************************************************************************/
// Programme du capteur BambooProbe Humidité du sol, humidité de l'air, température de l'air et Luminosité
//
// Code nRF24L01+ inspiré de http://geeklaboratories.com/408-comment-monitorer-le-climat-de-son-domicile-avec-arduino
//
// David M - plantesvertes.net
//***********************************************************************************************************/
// La library sleep mode
#include <Sleep_n0m1.h>
Sleep sleep;
unsigned long sleepTime; //how long you want the arduino to sleep


//Inclure la librairie de pilotage du capteur DHT11
    #include <dht11.h>
    dht11 DHT;        //Instancier un capteur de type dht11
    #define DHT11PIN 2  //Branché sur pin2 digital
//***********************************************
 
   
    #include <SPI.h> //Bibliothèque gérant les connexions SPI
   
    //Bibliothèques gérant les nRF24L01+
    #include <Mirf.h>
    #include <nRF24L01.h>
    #include <MirfHardwareSpiDriver.h>
//***********************************************
    //La dernière fois que l'on a envoyé des données via le nRF (en ms)
    long lastSend = 0;
     
    //Le delai entre chaque envois (en ms)
    int sendDelay = 5*1000;//Ici 5sec
   
    //L'identifiant de chaque sonde. Cette identifiant doit être propre à une sonde.
    int probeId = 0;
     
     
    // on declare le capteur sol
    int PinAnalogiqueHumidite=0;       //Broche Analogique de mesure d'humidité A0
    int PinNumeriqueHumidite=6;        //Broche Numérique mesure de l'humidité
    int hsol;  //Humidite su sol, mesure analogique
    int secheresse;  //0 ou 1 si seuil atteint
   
    //**************************
   
   // on declare le capteur lumière sur A1
   const int sensorLightPin = A1;
   int sensorLightValue = 0;
   int lightValue = 0;
     
     
   
   // on setup 
   
   void setup() {
        Serial.begin(9600); //on ouvre un port pour tout le monde
         sleepTime = 20000; //set sleep time in ms, max sleep time is 49.7 days
       
       
       
       
         //On inialise MIRF pour pouvoir gérer nos nRFs
        Mirf.spi = &MirfHardwareSpi;
        Mirf.init();
        Mirf.setRADDR((byte *)"prob1");//Le nom du capteur de la sonde
        Mirf.payload = 12;//La longueur des paquets qui transiteront
        Mirf.config();
        Mirf.setTADDR((byte*)"serv0");//Le nom du serveur à qui on transmet nos données

        Serial.println( "nRF24L01+ initialise!" );
       
        //********************
       
        pinMode(PinAnalogiqueHumidite, INPUT);       //pin A0 en entrée analogique
        pinMode(PinNumeriqueHumidite, INPUT);  //pin 6 en entrée numérique
    } 
   
   
    void loop() { //boucle principale
   
    //Si on a atteint le délai entre deux envois de données
  if(lastSend+sendDelay <= millis())
  {
    Serial.println("Sending...");
     
    //Si on est en train d'envoyer, on attend que ce soit fini
    while(Mirf.isSending()){
    }
     // on lit les données du capteur lumiere et on stock dans lightValue
     lightValue = analogRead(sensorLightPin);
     
     hsol = analogRead(PinAnalogiqueHumidite); // Lit la tension analogique du capteur sol
        secheresse = digitalRead(PinNumeriqueHumidite);

    //On actualise les valeurs du DHT11
    DHT.read(DHT11PIN); 

    //On crée le paquet d'une longueur de 12 octets
    byte packet[6];
     
    //L'identifiant du capteur
    packet[0] = probeId;
     
    //La température
    packet[1] = DHT.temperature;
     
    //L'humidité
    packet[2] = DHT.humidity;
   
    //Le sol
    packet[3] = (hsol/4);
   
    //la lumiere
    packet[4] = lightValue;
   
    // la secherresse
    packet[5] = secheresse;
     
    //On envoit le paquet
    Mirf.send(packet);
     
    //On affiche les données du paquet pour le debug
    Serial.print("Temp:");
    Serial.println(packet[1]);
    Serial.print("Humi:");
    Serial.println(packet[2]);
    Serial.print("hsol:");
    Serial.println(packet[3]);
    Serial.print((float)hsol);
    Serial.print("lumiere:");
    Serial.println(packet[4]);
    Serial.print("secheresse:");
    Serial.println(packet[5]);
   
     
    //On actualise la "date" du dernier envoi de données
    lastSend = millis();
  }
  delay(2000);
    sleep.pwrDownMode(); //set sleep mode
  sleep.sleepDelay(sleepTime); //sleep for: sleepTime
}


Go Up