C’était par un petit lundi de libre comme j’en ai très peu et qui me servent à traiter entre autres : les devis des clients, les copies à corriger des étudiants, les livres à finir d’écrire, les formations à préparer… que Daniel Roch est venu me challenger avec un blog post sur les objets connectés et l’analyse de données.

Au début je me suis dit que je n’avais pas de temps à y consacrer, les secondes avançant, les idées ont commencé à se bousculer dans ma tête pour me faire réaliser que :

  1. il me manquait un exemple dans mon livre à paraître sur comment envoyer des données depuis Arduino vers App Inventor 2 :
  2. un étudiant m’avait posé la semaine dernière la question suivante « Est-ce que Google Analytics peut recevoir de la data par une connexion autre qu’internet ? » :
  3. j’avais essayé il y a peu de me mettre à Arduino Yun mais sans succès (en gros c’est Arduino mais avec de l’internet intégré).

Objets connectés et Analytics

Du coup j’ai mixé un peu toutes ces idées pour vous faire un exemple concret. L’idée de ce qui va suivre est de vous expliquer comment on peut remonter dans Google Analytics via un objet connecté qu’il y a eu du mouvement dans une pièce. Je le dis tout de suite, le but de cet article est simplement de montrer que les objets connectés c’est cool mais en aucun cas de vous apprendre comment devenir riche et célèbre.

A la fin de votre lecture vous devriez réaliser :

  • que c’est assez simple
  • qu’on peut remonter presque tout ce que l’on veut dans Google Analytics (probablement ma prochaine conférence sera de montrer comment faire remonter ma femme dans Google Analytics, mais bon je n’y suis pas encore)

Allez hop c’est parti.

L’exemple des mouvements dans Analytics

Pour faire remonter des mouvements dans Google Analytics, il vous faudra une carte Arduino avec un détecteur de mouvement et un composant Bluetooth. En tout vous en aurez pour une trentaine d’euros si vous achetez une carte non officielle.

Le câblage Arduino

Pour mettre en place la configuration Arduino (câblage, etc), il vous suffit tout simplement de suivre le tutoriel suivant pour y brancher un capteur de mouvement : http://mycoolpizza.blogspot.fr/2013/05/arduino-utiliser-un-capteur-de.html. Rien de bien méchant, juste un petit câblage :

Pir Sensor Arduino
Le branchement du capteur de mouvement sur la carte Arduino

Utilisez ensuite le code suivant :

/*
* PIR sensor tester
*/
int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
void setup() {
 pinMode(ledPin, OUTPUT);      // declare LED as output
 pinMode(inputPin, INPUT);     // declare sensor as input
 Serial.begin(9600);
}

void loop(){
 val = digitalRead(inputPin);  // read input value
 if (val == HIGH) {            // check if the input is HIGH
   digitalWrite(ledPin, HIGH);  // turn LED ON
   if (pirState == LOW) {
     // we have just turned on
     Serial.println("1");
     // We only want to print on the output change, not state
     pirState = HIGH;
   }
} else {
   digitalWrite(ledPin, LOW); // turn LED OFF
   if (pirState == HIGH){
     // we have just turned of
     Serial.println("0");
     // We only want to print on the output change, not state
     pirState = LOW;
   }
 }
}

Une fois ce code injecté, si on fait des mouvements autour de notre carte Arduino, celle-ci renverra des 0 et des 1 dans le moniteur. Nous allons rajouter à notre câblage un composant Bluetooth afin que celui-ci puisse communiquer avec notre application.

Le câblage est également assez simple. En voici un exemple pour votre composant Bluetooth :

Le câblage Arduino
Le câblage Arduino pour le BlueTooth

Source de l’image : http://www.allaboutcircuits.com/uploads/articles/HC05_bb.png

Une fois cela fait, vous n’allez plus avoir à toucher au montage Arduino. En fait le programme affiche les 0 et les 1 dans le moniteur, le composant Bluetooth les émets. Il ne nous reste plus qu’à produire le code de notre application dans App Inventor 2 pour envoyer le tout à Google Analytics.

App Inventor 2 c’est quoi?

App Inventor 2 est une plateforme OpenSource permettant de créer des appli Android en 2 secondes pour des non développeurs. Notre application ressemblera à ceci :

Notre application Android =
Notre application Android

Côté code, nous aurons le code suivant :

Le code Analytics et Arduino
Le code Analytics et Arduino

Pas grand chose comme vous pouvez le constater. On sélectionne le device de notre choix, la connexion se fait une fois l’élément sélectionné. Votre smartphone lit ensuite les infos de la carte Arduino. Si jamais il rencontre un 1, il envoi une requête HTTP aux serveurs de Google Analytics. Naturellement, si vous n’avez pas de smartphone connecté en Bluetooth, cela ne peut pas sélectionner, mais il va de soi que l’idée est d’avoir chez soi un Raspberry Pi qui tourne en continue qui est là pour rassembler l’ensemble des objets connectés de la maison.

Voili voilou, j’espère que cela vous a plu. Comme vous avez pu le constater ce n’est pas super compliqué. La partie la plus délicate est liée à Arduino si vous venez tout juste d’acheter votre kit. Pour ce faire, je vous recommande l’excellent cours d’Openclassroom sur le sujet.