[Gate .5] - EtherShield / Exemple d'utilisation avec Pachube

Un shield Ethernet à souder soit-même - A DIY Ethernet Shield

[Gate .5] - EtherShield / Exemple d'utilisation avec Pachube

Message non lude Lionel » Jeu 28 Avr 2011 14:36

[MAJ 28.01.2016] Tutoriel obsolète ! (voir FAQ pour plus d'infos)

Bonjour,

nous avons vu précédemment comment publier des datas à l'aide du shield Ethernet officiel

nous allons voir ici comment faire la même chose avec le shield ethernet DIY Gate 0.5 (à base de Microchip ENC28J60)

Image

Publication de données sur Pachube depuis Arduino + Gate 0.5 (Ethershield)

    1. Commencer par récupérer la librairie Ethershield en pièce jointe a ce post (Version 1.6).
    EtherShield.zip
    Librairie EtherShield ENC28J60 - Version 1.6
    (48.55 Kio) Téléchargé 258 fois

    Si ce n'est pas déjà fait, créer un répertoire \libraries\ dans le répertoire qui contient vos sketches Arduino.
    Décompresser la librairie dans ce le répertoire

    2. Il faut se rendre sur Pachube et créer un compte.
    Une clé API est créée et associée au compte, elle servira dans le code

    3. Ensuite, il faut créer un flux de données (manual feeds), et noter le FEED_ID qui servira dans le code (on est pas obligé de remplir tous les champs)

    4. Le code à uploader dans l'arduino (SnooChube) se récupère en pièce jointe a ce post.
    SnooChube.zip
    Sketch Arduino de démo.
    (2.86 Kio) Téléchargé 215 fois

    Quelques modifications sont à apporter au code (testé avec Arduino 21) :

    Dans le bout de code suivant :
    // LES ADRESSES MAC ET IP DOIVENT ETRE UNIQUES DANS VOTRE RESEAU LOCAL

    //Adresse MAC - exemple : {0x22,0x34,0x65,0x87,0x90,0xab}
    static uint8_t mymac[6] = {0x22,0x34,0x65,0x87,0x90,0xab};

    //Adresse IP - exemple  : {192,168,0,35}
    static uint8_t myip[4] = {192,168,10,240};

    // ADRESSE IP DE VOTRE PASSERELLE* (*box)
    static uint8_t gwip[4] = {192,168,10,1}; // ex : {192,168,0,1}

    //
    // PARAMETRES PACHUBE
    //

    #define PACHUBE_API_KEY "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    #define FEED_ID "xxxx"
    #define SEND_INTERVAL 6000 //ms entre les mesures (pas moins de 5000, sinon avertissement de Pachube)


      * Optionnel : Renseigner une adresse mac (qui identifie votre équipement, on peux laisser celle par défaut, mais si on a deux équipements, il faut une adresse mac unique par équipement)

      * Renseigner votre IP

      * Renseigner l'adresse IP de votre passerelle (box internet)

      * Renseigner le FEED_ID avec le feed ID attribué lors de la création du compte

      * Renseigner la clé PACHUBE_API_KEY avec la clé API attribuée lors de la création du compte

      * Optionnel : Renseigner l'intervalle de prise de données, ne pas descendre en dessous de 5s (interval = 5000) sous peine de bannissement temporaire de Pachube, j'ai testé pour vous ;)

    5. Ensuite, on peux constater à l'intérieur de la fonction sendData() que le code fait une acquisition des valeurs analogiques sur les entrées 0 à 5 et les publie sur Pachube.
    // this method makes a HTTP connection to the server:
    void sendData() {

      // =================================================
      //
      // AFFECTATION DE LA VALEUR DE MESURE ICI
      //
      // Valeurs séparées par une virgule
      //
      // =================================================
      
      sprintf(postvalue,"%d,%d,%d,%d,%d,%d",analogRead(0),analogRead(1),analogRead(2),analogRead(3),analogRead(4),analogRead(5));

      es.ES_client_http_post(PSTR(HTTP_PATH),PSTR(WEBSERVER_VHOST),NULL,NULL,postvalue,&browserresult_callback);

      Serial.print("path ");
      Serial.println(HTTP_PATH);
      Serial.print("vhost ");
      Serial.println(WEBSERVER_VHOST);
      Serial.println(postvalue);
      Serial.println("Post done");
    }




    6. On peux connecter ses capteurs, vérifier que l'équipement est relié au réseau et uploader le code dans l'arduino.

    On peux aller voir ses flux sur sa page Pachube, votre statut va passer de frozen à live. Et ça pourra ressembler à quelque chose comme ça : http://www.pachube.com/feeds/9555

    snap_pach_2.png
    snap_pach_2.png (44.75 Kio) Vu 4232 fois


    Les six données seront les entrées Analog-in 0 à 5 (dans la capture d'écran ci-dessus, les datas entrées analogiques 4 et 5 on étées remplacées par une mesure de température & humidité)

    On peux éditer les noms des tags à l'envi et indiquer à ses amis que l'on est maintenant en train de poster sur Pachube et ils pourront ainsi accéder à vos données publiées.
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: [Gate .5] - EtherShield / Exemple d'utilisation avec Pac

Message non lude oli44 » Sam 14 Avr 2012 22:42

Salut Liodel,

je viens de tester sous Linux 64 bits avec Arduino 0023 (j'ai très vite laissé tomber la version 1.0), j'ai du commenter la ligne 79 de arduino-0023/hardware/arduino/cores/arduino/wiring.h

Code: Tout sélectionner
//#define round(x)     ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))


cf http://vpicot.fr/tutoriels/86-netbeans-pour-arduino-022--erreur-de-compilation-sur-mathh
oli44
 
Messages: 1
Inscription: Sam 14 Avr 2012 20:21

Re: [Gate .5] - EtherShield / Exemple d'utilisation avec Pac

Message non lude Lionel » Dim 15 Avr 2012 19:01

Arf, le gars il m'appelle liodel...

Merci pour cette info Olivier ;)
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse


Retourner vers Gate

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité