Introduction: Serveur Blynk Sur Raspberry Pi
Blynk est un service génial permettant de contrôler les entrées/sorties de beaucoup de matériels (Arduino, raspberryPi, Teensy…) via une appli smartphone ou du code arduino.
Blynk peut aussi utiliser les capteurs du smartphones pour son projet. La création d’un compte octroi un cloud permettant la liaison via Internet mais du coup, une latence qui peut être gênante parfois. Heureusement, on peut facilement installer son propre serveur Blynk, en Java, sur un raspberry Pi (une version 2 avec Raspbian Lite dans mon exemple). L’avantage aussi est de s’affranchir de la limite « d’energy balance » du projet Blynk car sur son propre serveur, on peut monter cette valeur.
Step 1: Installer Java
sudo apt-get update
sudo apt-get install oracle-java8-jdk
Faire : java -version pour afficher le numéro de version
Step 2: Télécharger Et Installer Blynk
Allez chercher l’adresse sur le site : https://github.com/blynkkk/blynk-server/
(ex: wget « https://github.com/blynkkk/blynk-server/releases/... ») Démarrer Blynk (modifier le numéro de java selon) java -jar server-0.28.9-java8.jar -dataFolder /home/pi/Blynk
Un Ctrl+C ferme le serveur, pour redémarrer faire
java -jar server-0.28.9-java8.jar -dataFolder /home/pi/Blynk
Allez sur : https://ip_du_raspi:9443/admin Utiliser au départ admin@blynk.cc et admin pour rentrer dans l’interface, ajouter ensuite un utilisateur avec login et password et supprimer ensuite le compte admin.
Pour mettre à jour Blynk
Tuer le processus, via son numéro PID
ps -aux | grep java
sudo kill ***
Télécharger et installer la nouvelle version (Penser à modifier le crontab)
Step 3: Blynk Au Démarrage Du Raspberry
Editer le crontab :
sudo crontab -e (sudo si le dossier Blynk est root:root, sinon crontab -e)
ajouter :
@reboot java -jar /home/pi/server-0.28.9-java8.jar -dataFolder /home/pi/Blynk &
Step 4: Paramétrer Le FireWall
Au besoin, ajouter des règles de redirection à sa box :
Blynk server has ports open for different security levels.
8441 – SSL/TLS connection for hardware
8442 – plain TCP connection for hardware (no security)
9443 – Webhook SSL
8080 – Webhook (Modification des ports en début 2018)
443 – mutual authentication (mutual SSL) connection for Mobile Apps
A partir de la, il suffit de créer un projet dans l’appli Blynk et de choisir « custom » pour le serveur, avec l’adresse IP de son Raspberry ou l’adresse IP externe de sa box, si l’on souhaite un accès via une connexion 4G.
L’appli envoie le token du projet par mail mais on peut le récupérer via la rubrique « users » du serveur Blynk.
Step 5: Configuration De Blynk
On peut aussi créer et personnaliser un fichier server.properties selon des besoins particuliers mais ce n’est pas indispensable.
En cas de réinstallation du serveur, il suffira de sauvegarder ces fichiers.
sudo nano server.properties (dans le même dossier que le *.jar)
https://github.com/blynkkk/blynk-server/blob/mast...
remplacer #server.host=test.blynk.cc par server.host=192.168.0.30
si une appli utilise le port 8080 (apache…) on peut le changer http.port=8181 en cas de blocage via webhook webhooks.frequency.user.quota.limit=-1 to server properties. Erreur de flow (trop de requètes) If sending hundreds of requests is what you need for your product you may increase flood limit on local server and within Blynk library. For local server you need to change user.message.quota.limit property within server.properties file : #100 Req/sec rate limit per user. user.message.quota.limit=100 sudo nano mail.properties
On peut recevoir le token via Gmail…
créer un fichier mail.properties dans le même dossier que je ***.jar sudo nano mail.properties
ATTENTION : ne fonctionne pas si la « validation en 2 étapes » est activé sur le compte Google
Ajouter dedans :
mail.smtp.auth=true mail.smtp.starttls.enable=true mail.smtp.host=smtp.gmail.com mail.smtp.port=587 mail.smtp.username=YOUR_EMAIL_HERE mail.smtp.password=YOUR_EMAIL_PASS_HERE
Step 6: Webhook
Une des fonctions les plus puissante de Blynk est l’utilisation de webhook, des URL qui permettent de déclencher des actions sur Blynk.
Par exemple, via le WebHook de IFTTT :
https://son_ip_publique:9443/le_token_du_projet/update/d10?value=1
enverra la valeur 1 sur la pin virtuel numéro 10 de Blynk.