CawiBox – Suite… et fin ???

Rappel des épisodes précédents : Marek, étudiant Polonais, a passé quelques mois chez Gide au 2ème semestre 2014, entre ses deux années de Master « Optimisation en Recherche Opérationnelle » (ORO) à l’Université de Nantes. Sa principale mission était d’expérimenter l’utilisation du Raspberry Pi comme serveur d’enquêtes CAWI et CAPI : une solution qui pourrait s’avérer pratique pour les terrains d’enquêtes en face-à-face où la connexion à l’Internet n’est pas possible ou suffisamment fiable (showrooms, sorties d’enseignes, etc.).

cawibox_cluster

Avant de partir, Marek nous avait laissé différents commentaires et photos que nous n’avions pas pris le temps de poster et que nous avons compilés (dans leur version originale !) en fin de cet article. Ils portent sur des points techniques particuliers, susceptibles d’intéresser, à des degrés divers, nos lecteurs les plus technophiles, et sont autant de preuves que, chez Gide, la techno et l’innovation, on aime ça :-)
Pour rappel, vous pouvez retrouver les précédents articles concernant la CawiBox ici (“Nginx vs Lighttpd vs Apache“) et (“Cassandra Cluster (just for fun)“).

Au final, que reste-t-il de cette CawiBox ? Les derniers tests sur des questionnaires un peu lourds ont montré que le Raspberry Pi était un peu “léger” pour supporter tout seul les tâches qu’on lui demandait d’assurer (serveur Web, serveur d’application, serveur de stockage, point d’accès Wifi, etc.), le tout dans une petite (85x56x21mm, 45g) boite autonome à €30… Dans sa version de base (et à moins de monter un cluster Pi !), le Raspberry Pi n’offre donc pas des temps de réponse satisfaisants pour être utilisable en conditions réelles sur le terrain :-/

cassandra

Mais alors… la CawiBox ne verra-t-elle jamais le jour ?! L’espoir est permis car il existe aujourd’hui de nombreuses alternatives au Raspberry Pi…

D’abord, le Raspberry Pi, premier du nom, a récemment eu un petit frère… petit mais costaud ! Le Raspberry Pi 2 offre notamment un processeur six fois plus puissant et deux fois plus de mémoire que son prédécesseur. La forme est similaire et la communauté “Pi” reste toujours aussi dynamique et productive : nous essaierons de procéder à quelques tests au plus vite.

De plus, les solutions “mini-PC” commencent à fleurir. Plus chères (entre €100 et €200) et un poil plus encombrantes, elles sont aussi plus puissantes et moins orientées “bidouille”. Nous avons récemment fait l’acquisition d’un Zotac ZBox PI320 Pico (petite pub au passage pour l’excellent site MiniMachines.net) avec lequel nous avons commencé à nous battre. Premier écueil : ces machines sont prévues pour fonctionner avec des versions spécialement packagées (“Bing”) de Windows 8.1 et leur BIOS ne permet pas de faire fonctionner (facilement) un autre OS tel que Linux… gggrrrrr… mais Gide n’a pas dit son dernier mot ;-)

Finalement, c’est peut-être Intel qui a produit le Graal : l’Intel® Education Content Access Point. La bête intègre dans un même boitier (190x190x30mm) un point d’accès Wifi, un serveur Ubuntu (Linux, donc), 2 Go de RAM, 8 Go de stockage et une batterie, soit tous les composants que l’on retrouve dans la recette de la CawiBox ! Mais, dans la mesure où il est normalement prévu pour les pays en voie de développement, le plus compliqué, dans l’immédiat, va être de se procurer un exemplaire : affaire à suivre, donc :-)

Intel Education Content Access Point

 
Les articles oubliés de Marek :

1) Votre propre point d’accès WiFi

Maintenant, les réseaux WiFi se trouvent partout : au travail, à l’école, à l’université et chez nous, à domicile.
De plus en plus, des appareils sont capables de se connecter au réseaux sans fil. Pour certains de ces appareils, se connecter à un réseau n’est pas une tâche facile à faire : il faut installer les pilotes et les logiciels qui gèrent la connexion et l’authentification.

Ici, nous allons encore un pas plus loin. Notre CawiBox utilise WiFi, mais pas en mode “client” : il est bien un serveur qui crée un réseaux WiFi auquel d’autres appareils peuvent se connecter.

cawibox_wifi

La création du réseaux et l’authentification est gérée par “Hostapd” (http://en.wikipedia.org/wiki/Hostapd).
Et la gestion du DNS (“Domain Name System”) est gérée avec un serveur léger “dnsmasq” (http://fr.wikipedia.org/wiki/Dnsmasq), comme ça, après s’être connecté à notre réseau WiFi “CawiBox”, il suffit de taper “cawibox” dans le navigateur et ça fonctionne, pas besoin de retenir l’adresse IP :-)

2) Gestion des enquêtes plus facilement sur CawiBox

Le but du projet CawiBox, c’est pas seulement la mobilité et l’économie d’énergie. C’est aussi le confort de l’utilisateur : nous développons le panneau d’administration qui permettra d’installer les enquêtes et récupérer les résultats en cliquant sur un bouton… sans taper les commandes dans le Terminal ;-)

Notre première version d’interface de l’administration (oui, on est d’accord, pour l’instant pas très jolie) est fonctionnelle et a réussi à faire face à ce problème.

Pour le réussir, nous avons développé un simple gestionnaire de paquets, qui permet de stocker les enquêtes dans l’archive et de les installer sur CawiBox en les sélectionnant dans le panneau d’administration.

Pour récupérer les résultats, notre script génère une archive contenant tous les fichiers créés pour l’enquête sélectionnée. En plus, tout ça est fait sans écrire de fichier temporaire sur la carte SD : le flux est passe directement vers le navigateur web d’administration !

Continuez à suivre notre blog pour avoir des nouvelles sur le projet CawiBox !

3) Mettre à jour le temps système sans RTC, sans NTP

À force d’utiliser des ordinateurs et autres appareils électroniques équipés d’une fonctionnalité donnant l’heure et la date, nous sommes habitués à pouvoir les vérifier à n’importe quel moment et nous devons être sûrs qu’elles restent à jour. Malheureusement, cela n’est pas toujours le cas ;-)

Tout ces appareils électroniques sont équipes d’un RTC (“Real Time Clock”) appelé aussi “Hardware Clock”. C’est un circuit électronique qui a son alimentation séparée des autres pièces de la machine (mais qui, de temps en temps, est intégré a l’intérieur du circuit), et son but est simplement de maintenir le temps quand la machine est éteinte.

Raspberry Pi n’a pas de circuit RTC intégré. Nous en avons branché un mais, finalement, nous avons décidé de l’enlever et d’utiliser quelque chose encore plus simple comme solution. À chaque fois que notre CawiBox démarre, elle ne sait pas quelle heure il est, mais il suffit d’entrer dans le panneau d’administration et l’heure de la CawiBox sera mis à jour en utilisant une requête asynchrone avec JavaScript et qui sera complètement transparente pour l’utilisateur.

4) Tester l’autonomie de la batterie externe

Un des principes de la CawiBox est la mobilité de l’appareil. Nous avons décidé de la tester avec une batterie externe de 12000mAh.

Le test a été simple : un iPad accède à notre page de questionnaire de test et il a réfléchi tout les 10 secondes. Ensuite, dans notre CawiBox, nous avons lancé un script “bash” qui a écrit dans un fichier l’heure et la date de départ du test et puis il a écrit aussi l’heure du fin toutes les quelques secondes.

cawibox_battery

Apres, nous l’avons laissé travailler comme ça. Le jour d’après, nous l’avons retrouvé éteint, ce qui est normal parce qu’il a déchargé la batterie. Nous avons calculé la durée à partir de l’heure et de la date de début du test et de la fin : le résultat était 0 jour, 15 heures, 39 minutes et 49 secondes :)

5) Retirer un périphérique USB avec un bouton

Dans un premier temps, nous avons voulu permettre à l’utilisateur de retirer une clé USB par le panneau d’administration.
Finalement, on l’a fait avec un bouton physique parce que la fonction qui retire le système de fichier n’est pas “thread-safe” et que notre serveur marche en mode “multi-thread” pour des raisons d’optimisation.

Pour tester le concept, j’ai fait un petit circuit sur mon “breadboard”. Au lieu de mettre un vrai bouton, j’ai fermé avec les câbles.
Tout était géré par un petit pilote en Python que j’ai écrit et qui marche en mode “Unix system daemon”, comme tous les services systèmes qui sont sensés fonctionner en permanence.

cawibox_button

Laisser un commentaire

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