Accueil / Objets Connectés / Linux : Armbian, Raspbian, Ubuntu... / Installer Thingspeak sur Ubuntu 16.04 LTS

Installer Thingspeak sur Ubuntu 16.04 LTS

Vous connaissez très certainement le service en ligne ThingSpeak qui permet de collecter des données en provenance d’objets connectés et de créer des Dashboards. ThingSpeak est un projet Open Source dont les sources sont disponibles sur GitHub (page du projet). Rien ne nous interdit de l’installer sur une machine locale pour créer un Dashboard sans passer par un service en ligne. ThingSpeak a été développé avec le langage Ruby (page française du projet). Pour écrire ce tutoriel, j’ai utilisé un mini PC équipé d’un microprocesseur Intel Atom fonctionnant sous Ubuntu 16.04 LTS.

Préparer le serveur Ubuntu 16.04 LTS

Avant de nous lancer dans l’installation de ThingSpeak, le mieux de de s’assurer qu’Ubuntu est à jour. Exécutez les commandes suivantes. Vous avez le temps d’aller vous faire chauffer un café…

Installation de l’environnement Ruby

Ruby est le langage de programmation, ou disons plutôt l’environnement de développement utilisé pour développer ThingSpeak. Pour faire fonctionner ThingSpeak, nous allons avoir besoin de RVM (Ruby Version Control) qui est l’outil en ligne de commande (CLI pour Command-Line Tool) de Ruby qui permet d’installer, gérer les librairies (gems dont le jargon Ruby). Avant de pouvoir installer RVM, exécutez ces trois commandes :

On peut maintenant installer la version 2.1.0 nécessaire pour faire fonctionner ThingSpeak.

Installer la base de données MySQL

ThingSpeak utilise la base de données MySQL pour fonctionner et stocker les données en provenance des objets connectés. C’est une base de données bien plus robuste qui va permettre de stocker une plus grande quantité de données que la base sqllite utilisée habituellement dans les projets Ruby.

Durant l’installation, vous devriez avoir une fenêtre vous demandant de saisir votre mot de passe utilisateur (root). Si ce n’est pas le cas, à la fin de l’installation, lancez le CLI de MySQL. Au démarrage, MySQL va vous demander de créer un mot de passe root. Saisissez le puis quittez le CLI avec la commande exit.

Installer ThingSpeak

L’installation est assez simple puisqu’il suffit de récupérer les sources depuis GitHub. Avant de commencer, vérifiez que la commande git est installée sur votre système

Maintenant on peut télécharger les sources

Entrez dans le répertoire du projet et exécutez les commandes suivantes pour installer les dépendances (gem) nécessaires au projet.

Configurer la base de données

C’est à cette étape que les problèmes peuvent se poser. Heureusement, le blog cnx-software a travaillé sur le sujet et trouvé comment faire.

Pour commencer, faisons une copie des scripts par défaut qui vont servir à configurer les tables de la base de données.

Il est préférable de changer les mots de passe. ThingSpeak va créer trois tables : test, development et production. Vous pouvez définir un utilisateur et un mot de passe pour chaque mode de fonctionnement.

On lance maintenant la configuration de la base de données

Le premier qui vous devriez rencontrer concerne le connecteur mysql2

Editez le fichier Gemfile qui se trouve à la racine du projet en indiquant la version minimale à utiliser

Enregistrez avec CTRL+X puis O.

Il faut actualiser les dépendances

Vérifions que tout est bon

Tout est bon, on peut recommencer la création de la base de données.

Nouveau problème, la base existe déjà mais on ne possède pas les droits adéquats ! Ouvrons le shell de MySQL avec la commande mysql -u root -p . Une fois connecté, nous allons créer une table thingspeak_test et lui attribuer les droits nécessaires.

On peut relancer la configuration des tables

Cette fois, tout est bon !

Passons au schémas

Nouveau problème. Encore une fois, on peut remercier notre amis de cnx-software qui a passé du temps pour identifier et trouver la solution. Il semble que le problème vienne de la version MySQL 5.7 utilisée par Ubuntu 16.04 qui n’autorise pas les clés nulles (NULL key). La solution consiste à créer un fichier de configuration  config/initializers/abstract_mysql2_adapter.rb contenant la classe suivante :

Ensuite, il faut ajouter cette ligne dans le fichier de configuration config/environment.db

On peut relancer la création des schémas

L’installation est terminée !

Démarrer ThingSpeak

Il ne reste plus qu’à démarrer le serveur. Pour arrêter le serveur, utilisez la combinaison CTRL+C.

On accède à l’interface web depuis un navigateur à l’adresse http://localhost:3000 .

 installation thingspeak ubuntu 16 04 lts

Mettre à jour ThingSpeak

Pour mettre ThingSpeak à jour, placez vous dans le répertoire du projet et exécutez les commandes suivantes

Dans le prochain tutoriel, nous découvrirons les possibilités offertes par cette plateforme.

  • gandolfi

    Salut, tu penses qu’il vaut mieux partir sur ce type de plateforme pour réuperer des infos de ESPeasy ou rester sur du Node-RED (exploitation de graphique à partir d’une page web commande d’appareil selon les indications des sondes…) ?

    • Bonjour Gandolfi. Thingspeak est destiné uniquement à créer des Dashboard et tracer des courbes. Si on veut avoir des interactions et ajouter de l’automatisation, Node-RED est beaucoup mieux adapté. Je suis en train de préparer une série d’articles qui sortira en février. Elle sera consacrée à la création d’interface Web directement sur l’ESP8266 basée le thème Bootstrap, le stockage dans la zone SPIFFS, tracé de courbes avec Google Chart…J’espère que ca vous plaira !

      • gandolfi

        Bonjour. Merci pour votre réponse. Je vais donc rester sur mon apprentissage de Mosquitto MQTT, node red et de ces dashboards. Je ne manquerai pas de vous faire remonter mon experience quand cela fonctionnera.