Oggi vedremo come creare un server dedicato alla domotica con Blynk Legacy .
Blynk è la piattaforma software IoT( Internet of Things) che tramite la sua app per Android e IOS permette di controllare da remoto più di 400 moduli hardware come: ESP8266, ESP32, NodeMCU, tutti i modelli di Arduino, di Raspberry PI.
Blynk è gratuito per hobbisti e sviluppatori, dopo la registrazione ad ogni utente vengono assegnati gratuitamente 2000 punti energia.
Ogni tipo di componente ( pulsanti, display, interfacce grafiche, sensori) necessita di una quantità diversa energia,
più complessi saranno i progetti e più crediti saranno utilizzati.
E’ possibile acquistare credito aggiuntivo nel loro negozio, per poter incrementare la quantità di componenti da inserire nei propri progetti.
Ogni volta che un widget viene cancellato si recupera il credito. Blynk utilizza i suoi server in cloud per far funzionare il servizio.
Si ha la possibilità di creare un Blynk Server proprio, dato che il progetto è open source.
Oggi vi spiegherò come installare il Blynk Server sul nostro server virtuale.
Questa soluzione porta molti vantaggi:
- Non bisogna comprare hardware dedicato.
- Non abbiamo costi di gestione/spazio dell’hardware dedicato.
- Si evita di tenere un pc acceso 24/24h.
- I nostri progetti sono disponibili da qualsiasi punto del pianeta.
- Abbiamo energia infinita e gratuita per tutti i progetti che usano la libreria di Blynk.

Installazione del software necessario per Blynk
Ho visitato la pagina del progetto github (https://github.com/blynkkk/blynk-server) che contiene tutte le informazioni utili ma un po’ confuse. Seguendo la guida riuscite a creare il vostro server Blynk privato. Partiamo quindi nel riprendere l’articolo https://www.lutritech.it/come-avere-un-server-gratis-con-google-cloud/ e seguite tutti i passi, alla fine avrete la vostra virtual machine con Ubuntu 20.04 LTS.
Aprite il terminale SSH della console di Google Cloud e aggiorniamo i pacchetti presenti con il comando:
sudo apt-get update
Dato che, Blynk Server è un applicazione Java Open Source, occorre installare anche JAVA
(per la versione fork 0.41.17 occorre Java13)
Nel caso chieda di continuare, mettete Yes e aspettate finché non ha terminato di scaricare e di installare; occorrono due minuti circa.
sudo apt install openjdk-13-jdk openjdk-13-jre
Se usi Ubuntu 22.04, Java13 non è disponibile quindi devi usare la Java21
sudo apt install openjdk-21-jdk openjdk-21-jre
Puoi sempre sapere quali versioni si possono installare usando il comando: apt-cache search openjdk
Successivamente si dovrà installare il pacchetto di Blynk:
sudo wget "https://github.com/blynkkk/blynk-server/releases/download/v0.41.15/server-0.41.15-java8.jar"
Dal 24 Luglio 2021, il progetto principale non è più disponibile ma possiamo trovare un fork a questo nuovo indirizzo:
https://github.com/Peterkn2001/blynk-server/
Per sicurezza potete trovare il pacchetto anche qui sotto nel caso non sia più disponibile:
La versione più aggiornata è la 0.41.17, risolve i problemi di sicurezza della libreria log4j2 quindi usate questa e non le vecchie!
Vi consiglio di creare una cartella appositamente per Blynk
sudo mkdir -p /home/pi/Blynk
cd /home/pi/Blynk
sudo wget https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.17/server-0.41.17.jar

La prima volta avviate manualmente il Blynk Server digitando:
sudo java -jar /home/pi/Blynk/server-0.41.17.jar -dataFolder /home/pi/Blynk
Se tutto è andato bene dovreste vedere una cosa simile all’immagine qui sotto.

Segnatevi la password dell’utente Admin perchè verrà mostrata solo questa volta!
Il link della console di amministrazione del Blynk server è suggerito “male”, nel mio caso indicava https://10.128.0.8:9443/admin quell’indirizzo è l’ip interno alla rete di google, quello da usare lo trovate nella console di Google Cloud che è un ip accessibile dall’esterno:

Nell’esempio, quindi, l’ip da usare sarà 35.222.36.71
Se provate ora non vedrete ancora nulla…perchè? Occorre creare una regola sul firewall, bisogna aprire in ingresso la porta 9433 e la porta 8080.


NB: nel campo Destinazioni scegliete “Tutte le istanze nella rete”, in questo modo la regola sul firewall varrà per tutte le vostre VM e negli intervalli di origine impostate
0.0.0.0/0 cioè tutti gli indirizzi possibili IPv4.
Una volta creata la regola, vi ritroverete in una situazione analoga all’immagine qui sotto.

Configurazione del nostro Blynk privato
Ora possiamo entrare nella pagina di gestione del nostro server privato di Blynk con il link https://35.222.36.71:9443/admin
Mettiamo i dati che ci eravamo copiati prima per l’utente [email protected] e la sua password

Possiamo andare a cambiare la password dell’utente admin, questa verrà poi usata per fare il log in sull’applicazione.


Prendiamo il nostro smartphone e installiamo l’applicazione da qui: https://play.google.com/store/apps/details?id=cc.blynk e avviamola.





Nel bilancio energetico potete vedere la bellezza di 100.000 crediti!!!
Verifica del server privato
Per verificare che sia tutto in ordine proviamo a fare un progetto semplice, accendere il led sulla scheda di sviluppo Wemos d1 mini lite attraverso un semplice bottone. Aggiungiamo il bottone e configuriamolo per usare il pin “virtuale” V0 in questo modo:

Apriamo l’ide e incollate lo sketch qui di seguito:
#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp8266.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "jV-M0p5nBQoYLkvooiAuJwbVeHLdHQM5"; //dovete inserire il vostro token
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "VostraReteWifi"; //nome rete wifi
char pass[] = "VostraPassword"; //password rete wifi
int led = 1;
BLYNK_WRITE(V0)
{
led = param.asInt(); // assigning incoming value from pin V0 to a variable
if (led == 0) {
digitalWrite(LED_BUILTIN,HIGH );// spegne il LED
}
else if (led == 1) {
digitalWrite(LED_BUILTIN, LOW); // accende il LED
}
}
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass, IPAddress(35,222,36,71), 8080); //inserite l'ip pubblico del vostro server
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
Blynk.run();
}
Dovrete personalizzarlo inserendo:
- il token del vostro progetto, si ottiene andando in Project Settings->Copy all ( in basso a destra )

- Il nome della vostra rete wifi.
- La password della rete wifi.
- L’ip pubblico del vostro server.
Per poterlo compilare dovrete installare prima la libreria di Blynk sull’ide di Arduino.
Occorre andare nel menù Strumenti ->Gestione librerie e cercare Blynk e premere il pulsante Installa.


Per chi volesse scaricare manualmente il file può trovare l’ultima versione a questo link
https://github.com/blynkkk/blynk-library/releases/latest
Nel dubbio lo metto qui a disposizione
Una volta caricato lo sketch sulla scheda di sviluppo aprite il terminale dell’ide, nel monitor seriale vedrete una cosa simile se la scheda si è collegata correttamente al vostro server:

Ora premiamo il tasto sull’applicazione ed ecco che il led sulla scheda si è acceso!

Premendo nuovamente il tasto il led si spegne!

Ottimo, funziona tutto alla perfezione!
Vi consiglio di impostare l’avvio automatico del Blynk Server al riavvio della VM, in questo modo non dovete eseguirlo manualmente tutte le volte.
Crontab è l’altrer ego in versione Linux di Operazioni Schedulate di Windows.
sudo crontab -e
Vi chiederà quale editor volete usare per modificare il file, usate nano, premete 1.

In fondo, incollate questa stringa:
@reboot java -jar /home/pi/Blynk/server-0.41.17.jar -dataFolder /home/pi/Blynk

Per salvare le modifiche digitate il tasto della tastiera “Ctrl” + “O”, per uscire digitate insieme i due tasti “Ctrl”+”X”.
Nel caso vogliate cambiare i parametri del server potete creare un file server.properties in /home/pi, la stringa da inserire diventerà:
@reboot java -jar /home/pi/Blynk/server-0.41.17.jar -dataFolder /home/pi/Blynk -serverConfig /home/pi/Blynk/server.properties
Per avere un esempio di quali parametri si possono modificare, visitate il file di esempio.
Riavviate con:
sudo reboot
Perfetto! Avete visto come si ottiene energia gratuita per Blynk per tutti i progetti domotici che avete intenzione di fare.
E’ anche possibile creare un secondo account per condividere il vostro server con una persona fidata, potete trovare una guida su come procedere in questo tutorial.
Aggiornamento:
Da Settembre 2024 non funzionano più le notifiche push sull’applicazione di Bynk Legacy.
Non è colpa ne’ del vostro server privato ne’del vostro smartphone.
Google ha deprecato e rimosso il Firebase Cloud Messaging (FCM) tecnologia usata proprio da Blynk.
Visitando https://firebase.google.com/docs/cloud-messaging/migrate-v1?hl=it vedrete questo messaggio:

Su come veniva usato FCM (prima GCM) potete vedere questo https://github.com/Peterkn2001/blynk-server/blob/master/server/notifications/push/src/main/resources/gcm.properties