vendredi 30 août 2013

Data logging avec Carriots (Arduino et shield Ethernet)

Dans ma précédente rubrique, j'avais exploré les possibilités de Carriots pour la mise au point d'une alerte: Carriots vous envoyait un email , un texto ou un tweet lorsque votre Arduino mesurait un paramètre dont la valeur indiquait une situation anormale.

Je vais maintenant utiliser Carriots pour faire du data logging:  l'Arduino, muni de son shield ethernet, va envoyer des mesures au serveur de Carriots à intervalles réguliers, de façon à ce qu'elles y soient enregistrées.  Ces données seront ensuite accessibles à partir de n'importe quel ordinateur branché à internet (à condition d'avoir les autorisations d'accès nécessaires, bien entendu).

Marche à suivre:

1)  Ouvrir un compte gratuit chez Carriots.

2)  Accéder au "control panel" de Carriots et prendre en note votre "Full Privileges APIkey" (en passant par My Settings / My Account).  Vous aurez besoin de cet identifiant dans le sketch de l'Arduino.

3)  Noter également le nom de l'appareil (device developer ID).  Vous avez droit de brancher jusqu'à 10 appareils gratuitement sur Carriots.  Si vous utilisez l'appareil qui a été créé par défaut lors de votre inscription,  cet ID sera de la forme  "defaultDevice@votre_nom_d'utilisateur".

4)  Le montage est constitué d'un Arduino muni de son shield Ethernet, auquel j'ai ajouté trois potentiomètres branchés aux entrées A0, A1 et A2, afin de simuler des capteurs analogiques.  Le shield ethernet est évidemment branché à internet, par l'entremise d'un câble ethernet.

5)  Le sketch ci-dessous envoie à Carriots trois mesures (prises par des capteurs analogiques branchés aux entrées A0, A1 et A2) toutes les 30 secondes.  Je crois qu'il sera facile de modifier ce sketch pour qu'il réponde à vos besoins spécifiques (en modifiant, par exemple, le délai entre les différentes prises de mesures).




Le moniteur série vous permettra de vérifier si le transfert de données s'effectue correctement (30 secondes après le démarrage du sketch, si vous n'y avez rien changé).  Vous pouvez également consulter les données envoyées en allant dans la section "Data Streams" du control panel de Carriots (il faut rafraîchir la page pour voir les données s'ajouter).


Pour afficher les données sous forme de graphique, Carriots met à notre disposition un Wizard Widget Graphs (dans la section Publish Data).  Cet outil construit pour vous un bout de script que vous pouvez ensuite coller dans une page web (j'ai utilisé le logiciel KompoZer).  Voici le résultat obtenu avec mes données:


Ça fonctionne très bien.  Par contre il serait utile de pouvoir visionner les graphique en cliquant un simple bouton directement sur le control panel de Carriots, sans qu'il nous soit nécessaire de créer une page web.

Qu'arrive-t-il si vous voulez récupérer vos données brutes afin, par exemple, de les traiter dans Excel?  Ici ça se complique un peu.  Comme je l'ai déjà mentionné, vous pouvez toujours aller les lire dans la section "Data Streams" du control panel de Carriots, mais ce n'est pas très pratique (surtout si vous avez une grande quantité de données à traiter).

Une autre option consiste à utiliser la commande "LIST" de l'API de Carriots.  Pour ce faire, je suis allé sur la page "hurl.it" et j'y ai entré les informations suivantes:


J'ai obtenu en retour la totalité de mes données enregistrée sous la forme suivante:

    {
      "_id": "5218a0467c5d75dd148b5478",
      "_t": "str",
      "at": 1377345608,
      "device": "DataLogger@xyz",
      "protocol": "v2",
      "data": {
        "valeur2": "271",
        "valeur3": "1023",
        "valeur1": "0"
      },
      "id_developer": "blablabla",
      "created_at": 1377345607,
      "owner": "xyz"
    },

À première vue, ça ne semble pas trop compliqué de faire un script en Python qui extraira les données pertinentes, mais ce serait quand même pratique d'avoir un bouton dans le control panel qui nous permettrait d'extraire les données rapidement sous la forme d'un fichier Excel.

Même difficulté pour effacer nos données:  on peut les effacer une par une avec hurl.it. mais je n'ai pas trouvé de bouton dans le control panel de Carriots qui nous permettrait d'effacer facilement des données indésirables ou de tout effacer pour repartir à zéro.  Ce serait bien utile!

Addendum:

Les gens de chez Carriots m'informent qu'un outil permettant d'exporter les données vers Excel sera bientôt disponible. :-)

Yves Pelletier (Twitter: @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire