Installation Serveur Blynk Local
Installation Serveur Blynk Local
Installation Serveur Blynk Local
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.
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.
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).
1
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)
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"
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
2
Configuration du serveur (fichier server.properties)
Le premier fichier de configuration à créer est server.properties. Vous pouvez récupérer un fichier
de base sur GitHub à l’adresse :
https://github.com/blynkkk/blynk-server/blob/master/server/core/src/main/resources/server.properties
. 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
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
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
3
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
pi@raspberrypi:~ $ crontab -e
no crontab for pi - using an empty one
Allez à la fin du fichier et ajoutez la commande suivante. N’oubliez pas de modifier le chemin pour
qu’il corresponde à votre répertoire d’installation.
4
Journaux (logs)
Allez sur l’App Store ou le Google Play sur votre smartphone et installez l’application Blynk.
Lancez l’application.
Vous arrivez sur un écran de connexion. Cliquez sur Create New account
Sur l’écran qui s’affiche, cliquez sur le bouton de sélection du serveur (encadré en rouge sur la copie
d’écran ci-dessous). Cliquez sur le bouton pour activer le mode Custom. Indiquez l’adresse IP du
serveur Blynk local et le port. Par défaut, c’est le 8443 (sauf si vous avez modifié ce dernier dans le
5
fichier de paramètres server.properties). Validez avec OK. Saisissez un identifiant et un mot de
passe. Vous êtes maintenant connecté à votre serveur Blynk local avec un compte utilisateur valide.
Une fois que vous avez créé un compte, choisissez Login pour vous reconnecter. Vous trouverez le
même bouton pour changer de serveur.
6
Indiquez comme précédemment l’adresse IP du serveur local puis vos identifiant. Si vous avez
configuré le serveur d’email, vous pourrez réinitialiser votre mot de passe en cas de perte.
Blynk fonctionne avec un système d’énergie. Chaque Widget (gauge, afficheur, notification, email,
bouton…) consomme de l’énergie. On part avec un capital de 2000 points.On recharge l’énergie en
l’achetant via un achat in-app. Cela permet à Blynk de financer les serveurs, les salaires et les futurs
développement. Comme Blynk est aussi un projet Open Source, les concepteurs nous permettent de
modifier la quantité d’énergie lorsqu’on dispose de son propre serveur Blynk privé. Voici comment
faire.
Ouvrez l’interface d’administration depuis un navigateur internet. Si vous avez autorisé l’accès
depuis n’importe quel autre poste, modifiez l’adresse par l’adresse IP du Raspberry Pi/
https://IP_BLINK_SERVER:7443/admin
Sinon directement depuis le Raspberry Pi, saisissez l’adresse suivante (localhost n’est pas déclaré)
7
https://127.0.0.1:7443/admin
Le certificat installé par défaut est auto-signé. Il sera donc considéré comme non fiable. Vous devrez
accepter le message d’alerte affiché par votre navigateur internet.
Saisissez les points d’énergie dans le champ Energy (par exemple 200000).
8
Descendez en bas de la page et enregistrez la modification en appuyant sur Save Changes. Vous
pouvez maintenant profiter de l’application mobile sans aucun limitation d’énergie.
Pour pouvoir accéder à votre serveur privé Blynk, vous devez configurer votre box internet pour
rendre accessible le Raspberry Pi depuis internet. Vous pouvez par exemple utiliser un service en
ligne comme noip.com. Certains fournisseurs d’accès internet proposent un service gratuit
DynDNS. Vous pouvez également tout simplement utiliser votre adresse IP si celle-ci est fixe (ce
qui est généralement le cas). Il faudra ajouter une règle dans les réglages NAT de votre box pour
renvoyer les appels du port externe 8443 vers le port 8443 du Raspberry Pi.
9
Créer son premier objet connecté avec Blynk
Maintenant que tout est prêt, nous allons réaliser une petite sonde de température à l’aide d’un
ESP8266. Dans ce tutoriel, nous allons créer rapidement un projet.
Projet Blynk
Après vous être connecté, vous allez arriver sur un projet vierge. Cliquez sur Create New Project.
Donnez un nom au projet. Ce qu’il faut retenir, c’est qu’on créé un projet pour chaque carte. Il est
ensuite possible de créer des ponts (bridge) entre les projets (cartes). Ici, j’ai donné le nom de
Wemos DHT22. Cherchez dans la liste ESP8266 ou Wemos d1 mini. Les deux fonctionnent. Je n’ai
pas encore vu de différence au niveau du code. Il y a certainement des optimisations coté serveur.
10
Terminez avec Create Project.
Vous avez du recevoir un email avec le token (jeton) à coller dans le code Arduino. Si ce n’est pas
le cas, vérifiez les logs pour vous assurer que les paramètres du serveur mail sont corrects. Vous
pouvez renvoyer le token à n’importe quel moment en appuyant sur le losange
11
Maintenant, faites glisser le bord de l’écran depuis la droite pour faire apparaitre la liste des Widgets.
Descendez dans la liste et choisissez Gauge. La jauge vient se placer sur la grille.
Chaque Widget prend donc un nombre de ligne et de colonnes. Il n’est pas possible de se déplacer
sur la page (haut/bas, droite/gauche) mais il existe un système d’onglets si on a beaucoup d’éléments
à insérer.
12
Cliquez sur la jauge pour la modifier :
Donnez lui un nom. Ici Température
Vous pouvez changer la couleur d’affichage en appuyant sur le cercle de couleur (vert par
défaut). On peut choisir entre 6 couleurs : vert, mauve, bleu clair, orange, violet, blanc
Cliquer sur PIN pour faire apparaître la liste de choix. Choisissez un PIN de type Virtual (virtuel)
puis V0 dans la liste de droite
Indiquez la plage. Par exemple de -10 (°C) à 50 (°C)
Terminez en appuyant sur OK
Ajoutez une seconde jauge pour l’humidité. C’est exactement la même chose mais en choisissant
V1
Ajoutez enfin un History Graph :
Il est possible de tracer jusqu’à 4 mesures sur un graphique. Cliquez sur PIN et choisissez Virtual
puis V0 pour la température. Faites de même sur la seconde ligne en choisissant V1 pour
l’humidité
L’intitulé est automatiquement ajouté (copié depuis la jauge), mais il est possible de le modifier.
On pourra par exemple ajouter l’unité
On peut laisser l’application gérer l’échelle de l’axe Y ou le gérer manuellement
On peut afficher la légende
13
Voilà, tout est prêt du coté de l’application Blynk.
14
Code Arduino
Récupérer le token dans vos emails et collez le dans le code Arduino ci-dessous. Modifier également
les paramètres de connexion à votre réseau WiFi. Téléversez le code et ouvrez le moniteur série.
//#define BLYNK_DEBUG // Optional, this enables lots of prints
#define BLYNK_PRINT Serial // Comment this out to disable prints and save
space
#include <SPI.h>
#include <Wire.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <DHT.h>
#define DHTPIN D4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
//SHT3X sht30(0x45);
SimpleTimer timer;
void sendSensor(){
float t = dht.readTemperature();
float h = dht.readHumidity();
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
}
void setup() {
Serial.begin(115200);
// Authentification auprès du serveur local Blynk
//- Authenticate to Blynk Private Server
Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,24), 8442);
15
Comment fonctionne un programme Blynk ?
SimpleTimer timer;
Et dans le setup(), on définit la fréquence d’exécution d’une fonction. Ici, la fonction sendSensor
chargée d’envoyer les mesures au serveur Blynk sera exécutée chaque seconde.
timer.setInterval(1000L, sendSensor);
La fonction sendSensor lit la température et l’humidité. On publie la température sur le PIN virtuel
V0 la température avec la fonction virtualWrite
Blynk.virtualWrite(V0, t);
16
Test de fonctionnement avec l’application Blynk
Une fois le programme Arduino téléversé, si la librairie n’a renvoyé aucune erreur sur le moniteur
série, vous pouvez retourner sur l’appli iOS ou Android
[1757] Connected to WiFi
[1757] IP: 192.168.1.21
[1757]
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ \/ '_/
/____/_/\_, /_//_/_/\_\
/___/ v0.4.3 on Arduino
Voilà, vous venez de connecter votre premier objet connecté à votre smartphone. Si vous avez rendu
accessible votre Raspberry Pi depuis internet, vous pouvez même accéder à vos sondes et
actionneurs hors de chez vous.
17