Molto spesso, parlando di Arduino ed altri “aggeggi programmabili”, sento persone che necessitano di uno sviluppatore che metta in pratica ciò che per ora e’ solo un’idea! A volte invece si ha un progetto già funzionante…che pero’ sarebbe strafigo se gestibile dal tuo smartphone! A volte….non si conoscono le potenzialità di determinati apparati…e le idee muoiono sul nascere!
Bene….date un’occhiata a Blynk….e poi mi dite 🙂
L’ho scoperto per caso…e non appena ho capito le potenzialità non vedevo l’ora di tornare a casa per capire se effettivamente funziona in maniera così semplice.
In soldoni si tratta di una piattaforma basata su un server (loro), da un programmino che si carica sul nostro Arduino (o altre schede simili) e da un App che si installa sul nostro smartphone Android o iOS.
Due click e connettiamo il nostro telefono al nostro arduino….
Attenzione…non sono i primi a parlare di IoT (Internet of Things)….ne avevamo già parlato tempo fa anche su questo blog. Loro sono i primi ad averlo messo in pratica con estrema facilità.
Non vi e’ necessità di competenze in ambito di programmazione o di networking. Serve un’idea…e un dito per creare la nostra App.
Ho voluto mettere alla prova la piattaforma e partire da un progettino semplicissimo….accendere un led presente sul mio Arduino (connesso a internet)…dal mio iPad (connesso a internet).
Di seguito vi illustrerò i passi….ma vi posso assicurare che perderete più tempo a leggere che ha mettere in pratica il tutto! Questi di Blynk sono stati geniali!
Non contento, ho scelto di utilizzare hardware un po datato….un Arduino 2009 con la propria Ethernet Shield.
Ma andiamo per gradi…lista della spesa:
- Arduino (qualsiasi tipo)
- Ethernet shield
- un led
- una resistenza (330 ohm)
Do per scontato che sappiate cosa sia Arduino e come si programma…quindi evito passi del tipo “…collegate la scheda alla porta usb e premete il tasto carica il file” 🙂
Pronti??? Via! Iniziamo!
Andiamo sul sito Blynk.cc ed entriamo sulla pagina “Getting started”
ci ritroveremo qualcosa del genere…
Ecco….questi sono gli unici 2 passi “complicati” da fare 🙂
- Scaricare l’app per il vostro smartphone (iOS o Android)
- Scaricare una libreria da posizionare nella sezione libraries della vostra installazione di Arduino
F-I-N-E!
Fatto ciò colleghiamo il nostro Arduino al computer, apriamo il programma…andiamo nella sezione esempi e troveremo Blynk. Quindi proseguiamo in Board And Shield e selezioniamo la scheda in nostro possesso.
Ci verrà proposto il codice da caricare sul nostro Arduino…..ehhh…Alt!
Non abbiate fretta! Non lo caricate…c’e’ ancora da editare un campo….la sezione Token
Apriamo la nostra App e nell’ordine :
- Creiamo un account
- Creiamo un progetto selezionando l’ hardware in possesso
- Copiamo o inviamo via email il token assegnato
- Inseriamo il token nel codice di Arduino al posto di YourAuthToken
- Carichiamo il programma
- Creiamo la nostra App
Magari con un po di snapshot vi fate un idea…
Ci si presenta uno spazio vuoto….premiamo con il dito e ci compare un elenco di pulsanti, fader, display…che possiamo posizionare dove vogliamo.
Io ho iniziato con un pulsante per il mio led….
Posizioniamo il pulsante….tap sopra e scegliamo Nome, piedino di Arduino a cui e’ collegato il led e se deve essere un pulsante o un interruttore.
Premiamo il tasto Play in alto e proviamo a toccare il pulsante sullo schermo.
Tah daaahh!!! Se avete eseguito tutto correttamente … si accenderà il vostro led sull’Arduino!
Magari con un video …. si capisce meglio! 🙂
Il video dura 56 secondi….e l’App e’ stata creata nei primi 30 e modificata nei rimanenti 20!!! Spettacolare!
Naturalmente il led e’ solo l’inizio….basta spaziare con l’immaginazione per capire che avete infinite possibilità davanti!
Infinito e’ anche l’hardware utilizzabile….io mi sono basato su un vecchio Arduino…ma si possono usare RaspberryPi e anche il piccolissimo ESP8266!
E non finisce qui….
Visto che ancora non avevo sonno….mi sono fatto prendere la mano…e avendo a portata di mano un sensore di Temperatura/Umidità DHT11….ho voluto provare anche a ricevere dati dalla scheda allo smartphone.
Ho dovuto semplicemente aggiungere una libreria per abilitare il sensore e due righe di codice per poter creare 2 pin virtuali da poter poi interrogare dalla mia App!
5 minuti di lavoro e guardate quello che e’ uscito…
Carino no? Provate ad immaginare cosa potete farci…..
Notteeeee
E se volessi farlo con una Yun?
Selezioni arduino yun tnella lista di hardware supportato 🙂
Complimenti per la chiarezza.
Grazie 🙂
scusa io ho una board w5100 cosa devo ipostare ??ho messo ethernet ma non va
mi da sempre anche che arduino non è connesso al server
Ciao claudio ma nella tua rete c’é un dhcp che assegna un indirizzo ip all’arduino??
Ciao. Complimenti per l’articolo. E’ possibile l’inversione dell’invio dei dati? Mi spiego meglio: è possibile fare in modo che sia Arduino ad inviare una notifica al dispositivo mobile (Android o equivalenti)? Questa sarebbe un’ottima possibilità per rendere bidirezionale il flusso dei dati. Pensa per esempio ad un progetto in cui con Android devo effettuare un controllo accessi con notifica su telefono mobile Android 😉 Sarebbe una gran bella cosa 😉
Certo….blynk e’ bidirezionale….da android ad arduino e viceversa!
Ciao Danilo,
ho eseguito passo passo quello che hai detto ma la app sul mio iphone mi dice sempre
che Arduino non è connesso al server…
Devo creare una rete apposita?
Ciao marco, devi vedere se nella tua rete il router riesce a dare automaticamente l’indirizzo ip all’arduino. Se hai una rete con gli ip fissi ne devi assegnare uno ad arduino.
Ciao Danilo, sto effettuando delle prove con l’APP Blynk è funziona , ma c’è un problema, non ho la certezza dello stato delle uscite, per fare questo dovrei fare un polling ce mi darebbe lo stato reale di quella o quelle uscite.Sai come si possa fare?
Diciamo che blynk per quello che ho visto se arduino non gli risponde non cambia stati delle uscite. Al massimo per avere la certezza totale al massimo se hai un relé aggiungi uno scambio e chiudi a massa un ingresso….ma vorrebbe dire dimezzare il tutto.
buonasera
ottima spiegazione e dettagliata.
ma ho un problema, come invio lo sketch mi da messaggio di errore.
Dopo svariati tentativi sono arrivato al punto di pensare che sia difettosa la ethernet shield.
inviando lo scketch solo ad arduino va tutto a buon fine
Mi può aiutare qualcuno grazie anticipato.
questo e l’errore:
Arduino:1.6.12 (Windows 7), Scheda:”Arduino/Genuino Uno”
Lo sketch usa 17.852 byte (55%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 647 byte (31%) di memoria dinamica, lasciando altri 1.401 byte liberi per le variabili locali. Il massimo è 2.048 byte.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1f
Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti
Questo report potrebbe essere più ricco di informazioni abilitando l’opzione
“Mostra un output dettagliato durante la compilazione”
in “File -> Impostazioni”
salve buonasera
ottima spiegazione dettagliata
ho seguito il tutorial filo per filo ma ho dei problemi
chiedo gentilmente un aiuto in quanto all’invio dello dello Sketch mi da messaggio di errore
possiedo arduino uno r3 con ethernet shield
dopo svariati tentativi penso che sia difettosa la scheda di rete
perché inviando i dati solo su arduino va tutto a buon fine
qualcuno mi può aiutare?
Probabilmente c’e’ qualche problema sulla ethernet shield.
Prima di provare blynk prova qualche esempio che trovi sul programma di arduino per capire se la scheda funziona.
Se non ricordo male c’e’ qualche esempio che ti visualizza l’indirizzo ip ricevuto dal dhcp.
Ho approfondito ultimamente blynk,facendo le prime esperienze base ,sempre funzionanti.
Purtroppo ho alcune difficolta’ con i virtual pin.
Ho modificato gli esempi del sito per fare accendere nello stesso momento un pin reale e un pin widget,ma non funziona e il debugger non mi da errore.
Ti mando il code:
#define BLYNK_PRINT Serial // Enables Serial Monitor
#include
#include
#include // This part is for Ethernet stuff
char auth[] = “xxxxxxxxxxxxxxxxx”;
#define W5100_CS 10
#define SDCARD_CS 4
int led1=3;
int led2=4;
// Attach virtual serial terminal to Virtual Pin V0
WidgetLED vled1(V2);
WidgetLED vled2(V3);
BLYNK_WRITE(V1) {
switch (param.asInt())
{
case 1: // Item 1
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
vled2.off();
vled1.on();
break;
case 2: // Item 2
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
vled1.off();
vled2.on();
break;
default:
break;
}
}
void setup()
{
Serial.begin(9600); // See the connection status in Serial Monitor
Blynk.begin(auth);
pinMode (led1,OUTPUT);
pinMode (led2,OUTPUT);
pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH); // Deselect the SD card
}
void loop()
{
Blynk.run(); // All the Blynk Magic happens here…
}
Le librerie incluse che il copia incolla precedente mi ha cancellato:
SPI.h,
Ethernet.h,
BlynkSimpleEthernet.h
Giancarlo buongionro,
Non ho capito cosa intendi per pin virtuale e pin widget.
Io ho utilizzato i pin virtuali intesi come due valori da leggere sullo stesso pin….
Dacci piu informazioni
Vorrei accendere il riscaldamento da remoto.
Ciao
se scrivete su ebay:
arduino 5 minuti
esce fuori una Shield già pronta al uso con librerie.
Ciao, Ho un problema nella verifica del programma. Premetto che sono nuovo in questo ‘campo’ . Nella verifica mi da l’errore : ‘Blynk’ was not declared for this scope’ e mi si illumina la stringa con scritto Blynk.begin (auth);
Cosa ho sbagliato? Grazie Mille
Ciao Carmine, mi sa che c’e’ qualche problemino con le librerie di blynk…hai messo tutto nelle directory giuste?
Innanzitutto grazie per la chiarezza..
volevo cortesemente chiedere se, una volta messo in piedi il setup, è necessario che gli oggetti rimangano connessi ad internet per funzionare o basta che rimangano nella stessa rete?
Grazie
Devono restare necessariamente su internet….blynk fa da server!
Ciao, il pezzo è interessantissimo, grazie! Volevo però farti due domande, sul sito ho letto che si può usare anche senza shield via USB, che configurazione devo usare sul programma? Inoltre la mia schermata sul cell non è come la tua nel video, quando programmo D2 a me non da automaticamente LOW ma mi scrive 0 e posso solo scrivere delle cifre, come mai?
grazie mlle
Ciao Enrico,
purtroppo l’articolo e’ di quasi un anno fa….nel tempo di modifiche e aggiornamenti ne hanno fatti molti quindi e’ normale che le schermate siano diverse (anche perche io lo usavo su un iPad). Mi dispiace non poterti aiutare ma seguendo altri progetti non mi sono addentrato di più nell’argomento.
Ciao Danilo
Ho la necessità di comandare un relay a tempo pensavo di usare Time input che permette di selezionare i giorni
Non capisco come modificare lo script per duplicare un pin virtuale su un pin reale
Grazie
Ciao vincenzo, posto che non uso blynk da un bel po di tempo, ricordo che i pin virtuali sono da utilizzare quando hai due dati su un solo pin ( es temperatura e umiditá su un unico ingresso) e non come uscite. Controlla bene il tutto
anche io ho il problema della libreria “BlynkSimpleEthernet.h”…come posso risorverlo?
Controllate che le librerie siano installate correttamente…
qui una guida dettagliata
http://www.maffucci.it/2017/03/28/aggiungere-librerie-nellide-arduino/
come hai fatto a collegare i sensori?
non ho capito bene cosa bisogna scrivere nel codice:)
Mattia….forse é meglio partire da qualcosa di piu semplice??
Inizia a sperimentare il solo sensore senza blynk e visualizzane il risultato….poi passa a blynk
Ciao,
complimenti per la spiegazione semplice e chiara.
L’esempio che hai fatto mi funziona correttamente.
Quando entro nell’applicativo Blynk sul il mio iPhone, mi trovo anche a video una vecchia prova, dove ho cancellato tutti i widget che avevo inseriti ma non riesco a cancellare anche la pagina vuota che mi si presenta sempre.
Sai come fare?
Saluti
Ciao Lello, purtroppo l’applicazione e’ sempre in aggiornamento e seguirla mi viene difficile. Più che cercare online non so che dirti.. mi dispiace
salve a me funziona tutto. ma chiedo su quanti smartphone si può istallare ? io la uso per la porta del garage ed in casa siamo 3. grazie
Blynk da quell’articolo è cambiato molto. Ultimamente aveva delle funzionalitá operative in base alla condivisione del progetto.