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.
Sommaire
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.
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