Remonter des mouvements dans Google Analytics via Arduino

Publié le 15 décembre 2016 Webanalytics
Ronan Chardonneau

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.

Ronan Chardonneau

Maitre de conférences associé à l'université d'Angers. Consultant et formateur Piwik

11 Commentaires

Valérie Le 15 décembre 2016 à 9h01
Ça sert pas un peu à rien de faire tout ça... ?
    Daniel Roch Le 15 décembre 2016 à 9h04
    Oui et non : pour une partie des gens oui, mais dans certains cas cela peut répondre à des besoins précis. Par exemple, on peut mesurer la fréquentation d'un magasin, ou voir l'impact d'une opération marketing d'une boutique par rapport à un flux de visiteur traditionnel.
Ronan Chardonneau Le 15 décembre 2016 à 9h21
Oui, comme indiqué : "Je le dis tout de suite, le but de cet article est simplement de montrer que les objets connectés c’est cool". A partir de cet exemple, si vous arrivez à le refaire chez vous, vous êtes déjà en mesure de faire remonter tout ce que vous voulez dans Google Analytics. Exemple : faire remonter le nombre de personne dans une salle via caméra, la couleur des yeux, des cheveux... bref c'est la porte à tout. Ici j'ai pris l'exemple d'un simple capteur, celui sur les mouvements car c'est un des plus faciles à appréhender.
Daniel Roch Le 15 décembre 2016 à 9h35
D'ailleurs, cet article donne des pistes. J'imagine très bien pouvoir créer une "vue" supplémentaire pour mon client où on pourrait faire remonter :
- le nombre de visiteurs avec le détecteur de mouvement ;
- le nombre de ventes ;
- le nombre de ventes avec des coupons/réductions trouvés sur le web ;
- Etc.
Benjamin Lupu Le 15 décembre 2016 à 9h57
Mais mais, il est génial cet article. Très bonne découverte du matin ! Merci :-)
Nicodesh Le 15 décembre 2016 à 10h01
Génial ! J'aurais juste abordé en quelques mots dans l'article la notion de Measurement Protocol, pour introduire le fait qu'on peut s'affranchir de la librairie analytics.js et expliquer la requête http qui est réalisée dans ce tuto. Puisque finalement, c'est le Measurement Protocol qui rend possible le tracking des objets connectés n'embarquant pas de moteurs JS et qui rend les possibilités infinies :)
Tony Le 15 décembre 2016 à 11h27
Génial cet article. En effet ça peut donner énormément d'idées. Je pense notamment à coupler le nombre d'individus dans un restaurant, un autre capteur pour des données météo, et ainsi voir s'il y a une corrélation pour mieux gérer les stocks.
Dans un restaurant ou une boutique placer les stocks dans un bac spécifique qui possède un capteur et ainsi voir s'il y a une corrélation entre les jours de la semaine ou les heures vis-à-vis de consommation de stocks spécifiques.
Dans un magasin mesurer les visiteurs et utiliser d'autres capteurs pour chaque rayon et ainsi voir ceux qui drainent le plus de trafic.
Dans un musée gratuit mesurer le trafic total et le nombre de personnes qui s'arrête à la boutique.
...
Idéal pour faire de l'a/b testing !
J'adore !
Olivier Démotnant Le 15 décembre 2016 à 11h51
Trop bien !
Comme je viens de recevoir mon arduino, c'est un bon exercice pour commencer à l'utiliser :D
Quentin Le 15 décembre 2016 à 13h00
Super article ! Est ce qu'on pourrait imaginer l'inverse, c'est à dire d'analyser le trafic d'analytics et activer des leds lors d'une conversion ou d'un pic de trafic ?
Thomas Huber Le 15 décembre 2016 à 13h43
Super article, merci beaucoup !
Ronan Chardonneau Le 15 décembre 2016 à 16h40
@Quentin oui tu peux et oui c'est une bonne idée. Pour la partie restante il faudrait surtout regarder ce que l'on peut faire avec l'API en temps réel de Google Analytics car dans ton cas de figure cela sera basé sur les événements ou les conversions. Sinon quelque chose de plus simple, comme prototype tu peux prendre App Inventor 2 qui va requêter toutes les X minutes Google Analytics si il a la valeur que tu veux alors il envoi via Bluetooth à Arduino de s'allumer. Mais bon je pense qu'il y a techniquement beaucoup plus simple via l'api.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *