Blynk : installer un serveur local privé sur Raspberry Pi 3 (énergie illimitée, test Wemos DHT22) • Domotique et objets connectés à faire soi-même

x9vulwjrpmcisppjzmqm-3797194
7xcxsntmshiavkoy7yla-7056476

Blynk est un projet Open Source très populaire. Le développement de Blynk a été soutenu par une campagne de financement participative Kickstarter en 2015. Blynk se compose de librairies (Arduino, ESP8266, Nodejs pour Raspberry Pi…) et d’une application mobile sur iOS et Android. Il est très facile de créer des objets connectés ou de piloter des objets à distance (éclairage, servo-moteur…) depuis internet en quelques lignes de code. Nous allons commencer cette nouvelle série d’article en installant un serveur privé sur un ordinateur local.

Le serveur Blynk a été développé en Java. Il est donc possible de l’installer sur toutes les plateformes. Dans le cadre d’une utilisation privée, Blynk s’accommodera très bien d’un Raspberry Pi 3. Dans un prochain tutoriel, nous testerons Blynk sur Orange Pi+ 2e, plus puissant et moins cher que le Raspberry Pi 3.

Installer un serveur local Blynk sur Raspberry Pi 3

Le schéma ci-dessous montre comment fonctionne le système Blynk. Une serveur permet de relier un objet connecté développé à l’aide d’un Arduino ou d’un ordinateur (Raspberry Pi, Orange Pi…) à l’application mobile Blynk fonctionnant sur un smartphone ou une tablette (iOS ou Android). Nous allons ici installer notre propre serveur à la place du serveur officiel sur un Raspberry Pi 3.

uysb3ufy5lfqrmhanddt-6831221

L’installation est très bien détaillée sur la page officielle du dépôt sur GitHub.

La première chose à faire est de vérifier que Java 8 est installé sur votre distribution

pi@raspberrypi:~ $ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)

Si ce n’est pas le cas, exécutez la commande suivante pour installer Java 8

sudo apt-get install oracle-java8-jdk

Placez vous dans le répertoire ou vous voulez installer Blynk puis téléchargez le serveur

wget "https://github.com/blynkkk/blynk-server/releases/download/v0.23.0/server-0.23.0.jar"

C’est terminé !

Configuration du serveur local

Avant de démarrer le serveur, voici quelques réglages utiles à faire. Le serveur est prêt à fonctionner out of the box, dès la fin de l’installation. Voici quelques réglages que je vous conseille de faire car vous en aurez rapidement besoin, vous allez comprendre pourquoi. La configuration est faite à l’aide de fichiers. Les deux suivants sont particulièrement importants

  • server.properties : permet de configurer tous les paramètres du serveur
  • mail.properties : permet de configurer le serveur d’envoi des emails

Dans un prochaine tutoriel, nous verrons comment ajouter un certificat pour sécuriser la communication avec le serveur Blynk.

Configuration du serveur (fichier server.properties)

Le premier fichier de configuration à créer est server.properties. Vous pouvez récupérez un fichier de base sur GitHub ici. Outre les dossiers de destination des fichiers, vous allez pouvoir modifier les ports de communication. C’est particulièrement important si vous avez installé un serveur domotique (ou un autre logiciel) qui utilise les mêmes ports que le serveur local Blynk. Par exemple, par défaut le port http (et web socket) est le 8080. Si vous utilisez Domoticz, ça va coincer. Vous pouvez utiliser le port 8082 à la place.

#hardware mqtt port
hardware.mqtt.port=8440

#hardware ssl port
hardware.ssl.port=8441

#hardware plain tcp/ip port
hardware.default.port=8442

#http and web sockets port
http.port=8080

#https and web sockets port
https.port=9443

#application ssl port
app.ssl.port=8443

Blynk dispose d’une interface de gestion accessible depuis un navigateur internet. Par défaut cette interface n’est accessible que depuis l’ordinateur le raspberry Pi sur lequel est installé le serveur. Si vous voulez pouvoir y accéder depuis n’importe quel ordinateur du réseau local, modifiez le paramètre allowed.administrator.ips  qui se trouve en fin de fichier comme ceci

allowed.administrator.ips=0.0.0.0/0

Enregistrez le fichier server.properties dans le même dossier que le serveur.

Configuration du compte email (fichier mail.properties)

Vous aurez besoin d’un token pour votre code Arduino. C’est un (long) identifiant composé de chiffres et de lettres. Plutôt que de le recopier, ce qui est fastidieux et source d’erreur, Blynk envoi un email contenant le token dès qu’un nouveau Projet (une nouvelle carte Arduino / ESP8266) est créé. Il est également possible de renvoyer à tout moment un Token par email depuis l’application mobile. Créez un nouveau fichier de configuration nommé mail.properties et enregistrez dans le même dossier que le serveur. Voici un exemple de fichier de configuration pour gmail.

mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.host=smtp.gmail.com
mail.smtp.port=587
mail.smtp.username=EMAIL
mail.smtp.password=PWD

Démarrage du serveur

Pour démarrer le serveur, exécutez la commande suivante

java -jar server-0.23.0.jar -dataFolder /home/pi/Blynk

On passe en paramètre le chemin du répertoire des données (-dataFolder). Le serveur démarre en une dizaine de secondes.

Blynk Server successfully started.
All server output is stored in current folder in 'logs/blynk.log' file.

Démarrer le serveur Blynk au démarrage du système

Pour démarrer le serveur automatiquement au démarrage, il suffit d’exécuter la commande de lancement en lui ajoutant & à la fin de la commande. Cela donne

java -jar server-0.23.0.jar -dataFolder /home/pi/Blynk &

Si ça ne fonctionne pas, éditez le crontab

pi@raspberrypi:~ $ crontab -e
no crontab for pi - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano