Blynk…una App per Arduino in 1 minuto

 

Logo

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…

Blynk : Iniziamo ... download librerie e App

Ecco….questi sono gli unici 2 passi “complicati” da fare 🙂

  1. Scaricare l’app per il vostro smartphone (iOS o Android)
  2. Scaricare una libreria da posizionare nella sezione libraries della vostra installazione di Arduino
Arduino : Installazione librerie (OS X)

Arduino : Installazione librerie (OS X)

 

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.

Arduino : Hardware supportato da Blynk

Arduino : Hardware supportato da Blynk

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

Arduino : Inserimento token

 

Apriamo la nostra App e nell’ordine :

  1. Creiamo un account
  2. Creiamo un progetto selezionando l’ hardware in possesso
  3. Copiamo o inviamo via email il token assegnato
  4. Inseriamo il token nel codice di Arduino al posto di YourAuthToken
  5. Carichiamo il programma
  6. 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.

Ardunio + Ethernet Shield + DHT11

Ardunio + Ethernet Shield + DHT11

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…

App monitor Temperatura e Umidità

App monitor Temperatura e Umidità

Carino no? Provate ad immaginare cosa potete farci…..

Notteeeee

33 thoughts on “Blynk…una App per Arduino in 1 minuto

  1. Ciao claudio ma nella tua rete c’é un dhcp che assegna un indirizzo ip all’arduino??

  2. 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 😉

  3. 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?

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

  5. 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?

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

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

  8. 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?

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

  10. 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…

    }

  11. Le librerie incluse che il copia incolla precedente mi ha cancellato:
    SPI.h,
    Ethernet.h,
    BlynkSimpleEthernet.h

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

  13. Ciao

    se scrivete su ebay:

    arduino 5 minuti

    esce fuori una Shield già pronta al uso con librerie.

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

  15. Ciao Carmine, mi sa che c’e’ qualche problemino con le librerie di blynk…hai messo tutto nelle directory giuste?

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

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

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

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

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

  21. anche io ho il problema della libreria “BlynkSimpleEthernet.h”…come posso risorverlo?

  22. come hai fatto a collegare i sensori?
    non ho capito bene cosa bisogna scrivere nel codice:)

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *