Applicazione IOT con WeMos D1 Mini e App Blynk

In questo articolo vedremo come realizzare un’applicazione IOT tramite l’app BLYNK e un modulo Wemos D1 mini collegato al modulo KY-001 su cui è presente il sensore  18B20 .

iot blynk wemos 18b20

Ormai sempre più spesso si sente parlare di applicazioni IOT (acronimo dell’inglese Internet of things).
Nel corso dell’articolo utilizzeremo alcuni semplici dispositivi di basso costo che permettono tramite un App chiamata Blynk di misurare la temperatura ambiente e mostrare il valore sul display del proprio smartphone.

Materiale necessario

Modulo Wemos D1 mini

Il Modulo WeMos D1 mini è basato sul microcontrollore Wi-Fi ESP8266 ESP-12F che può essere programmato utilizzando l’IDE di Arduino oppure NodeMCU. La semplicità della programmazione che può essere effettuata anche in modalità wireless e l’ampia disponibilità di shield aggiuntivi permettono di sviluppare il proprio progetto IOT “Internet delle cose” in tempi estremamente rapidi.
Per maggiori informazioni vedere l’articolo Modulo WeMos – LOLIN D1 mini

Modulo KY-001 Temperature sensor module

Il modulo KY-001 Temperature sensor module, è composto dal sensore di temperatura DS18B20, un LED ed un resistore.
Il sensore è compatibile con le piattaforme di elettronica popolari popolari come Arduino (sensore alimentato a 5V) e Raspberry Pi (sensore alimentato a 3,3V).
il led si accenderà ogni volta che sarà letto il sensore.

wemos d1 mini ky-001 DS18b20

Caratteristiche del modulo

  • Tensione di funzionamento:  da 3.0 V a 5.5 V
  • Gamma di misurazione della temperatura: da  -55 ° C a 125 °C
  • Precisione di misura ± 0,5 ° C
  • Dimensioni 18,5 x 15 mm

Per maggiori informazioni vedere l’articolo KY-001 DS18B20 – Wemos D1 mini multi test shield

Wemos Dual Base

La Wemos Dual Base si adatta a tutti i moduli Wemos D1 Mini, permette inoltre di duplicare i pin di I/O l’alimentazione e consente di montare un qualunque shield affiancato alla Wemos D1 Mini.

Impostazione dell’IDE per la gestione del Wemos D1 mini

Per utilizzare  il modulo Wemos D1 mini dovrete fare in modo che lo stesso venga riconosciuto dall’IDE, per sapere come fare vi consiglio la lettura dell’articolo Modulo WeMos – LOLIN D1 mini

Librerie per la gestione del sensore

Il sensore 18B20 utilizza, per il proprio funzionamento, il protocollo onewire, per questo motivo occorrerà caricare nell’IDE le relative librerie, una denominata  onewire accoppiata con la libreria Dallas Temperature.
Questo consentirà di indirizzare correttamente il sensore di temperatura e leggere la temperatura in gradi Celsius. Per sapere come caricarle vedere l’articolo KY-001 DS18B20 – Wemos D1 mini multi test shield

Schema di collegamento

Segue lo schema della nostra applicazione IOT che sarà gestita dall’APP Blynk. Il modulo principale è il Wemos D1 mini che gestirà il sensore 18B20.
Per l’alimentazione è stata utilizzata una batteria LiPo da 3,7V 980 mAh collegata ad un modulo WeMos D1 Mini Battery shield

iot blynk wemos 18b20

iot blynk wemos 18b20

Dove trovare i componenti necessari

Il modulo Wemos D1 mini e i suoi shield possono essere acquistati presso il sito Homotix, la versione testata ha un costo di 4,99 €, mentre l’ultima versione del modulo la V 3,10 ha un costo, al momento della pubblicazione di questo articolo di 6,91€.
La differenza  è principalmente dovuta al fatto che il modulo testato non è un prodotto Wemos ma un prodotto Wemos compatibile.

Il modulo KY-001 Temperature sensor module oltre che nella confezione “37 In 1 Sensor Module Board Set Kit For Arduino“, può essere acquistato separatamente,  sul sito Homotix al costo di circa 2€.

La Wemos Dual Base può essere acquistato sul sito Homotix al costo di circa 2,45€.

NOTA: Se al momento dell’ordine inserirete il codice sconto  “ADRIROBOT_20” avrete diritto ad uno sconto.

L’applicazione Blynk

Per questa applicazione con il Wemos D1 mini, utilizzeremo Blynk che è un’applicazione o meglio un freamework che consente mediante dispositivi mobili (Android o iOS) e utilizzando un sistema completamente grafico la realizzazione dei propri widget permettendo ad esempio l’azionamento via Wi-Fi di dispositivi di domotica o di automazione industriale, è possibile anche rilevare grandezze fisiche esterne (temperatura, umidità, luminosità, ecc) e visualizzarle direttamente sul vostro dispositivo mobile.
Blynk può interagire con molte piattaforme Arduino o Raspberry Pi se connessi ad una Wi-Fi o a moltissimi dispositivi basati su ESP8266, modulo Wi-Fi dotato di Input/Output General Purpose e processore ARM. Attualmente sono disponibili una grande quantità di board basate su ESP identificate tutte da un ID, la differenza tra una scheda sono date dalla quantità di memoria disponibile, il numero di GPIO e il tipo di antenna WiFi.

Blynk può controllare direttamente i pin I/O digitali e analogici senza la necessità di scrivere una linea di codice.
Blynk permette inoltre di inviare qualsiasi dato dal microcontrollore all’applicazione Blynk e viceversa, per questo sono utilizzati dei pin virtuali (Virtual Pins), in questo modo tutto ciò che viene connesso al microcontrollore sarà in grado di comunicare con Blynk.
Con i Virtual Pins sarà possibile inviare dati all’App, l’elaborazione sarà fatta dal microcontrollore e poi inviata allo smartphone, dovete immaginare i Virtual Pins come a canali di trasmissione che non hanno nessuna rappresentazione fisica.
Nel caso che analizzeremo, andremo a creare una semplice App che permette di visualizzare su smartphone del valore di temperatura con relativo grafico misurato dal sensore DS18B20.

L’uso dell’applicazione prevede due parti:

  • Istallazione dell’APP nel proprio smartphone
  • Scaricamento e installazione della libreria da inserire nell’ IDE di Arduino per la programmazione del modulo

Per cui collegatevi al sito blynk oppure ai relativi store e scaricate l’App per il vostro dispositivo

Per poter creare le proprie applicazioni occorre effettuare una registrazione che vi permetterà di ottenere  un Token di autenticazione, che potrete ottenere al momento della creazione della vostra applicazione.

Libreria Blynk per Arduino

Occorre poi installare la libreria Blynk, pere fare questo sarà sufficiente accedere alla gestione Librerie, ricercare e successivamente caricare.

Se tutto è andata a buon fine si potrà trovare la nuova libreria sotto File -> Esempi -> Blink .
Per la nostra applicazione utilizzeremo lo sketch che potete prendere come copia da:

File > Examples > Blynk > Boards_WiFi > ESP8266_Standalone

All’interno dello sketch andremo ad aggiungere alcune linee di codice che permetteranno di visualizzare ad intervalli fissati il valore di temperatura.
Nello sketch è stata utilizzata la libreria SimpleTimer.h che permette di eseguire ad intervalli fissati la funzione Misura_temperatura() che invia il valore della temperatura al vostro smartphone.
All’interno della funzione Misura_temperatura()  sono stati definiti 2 Virtual Pins: uno per l’invio della misura di temperatura e uno la sua rappresentazione nel grafico .
Ecco lo sketch da utilizzare:

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_PIN D3
OneWire oneWire(ONE_WIRE_PIN);
DallasTemperature sensors(&oneWire);

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "inserite il vostro Token";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Inserite il nome del vostro router";
char pass[] = "Inserite la vostra Password";

// definiamo un oggetto timer di tipo SimpleTimer
SimpleTimer timer;

void setup()
{
  // Debug console
  Blynk.begin(auth, ssid, pass);
  timer.setInterval(2000L, Misura_temperatura);
  // ogni 2 secondi viene eseguita la funzione in
  }

void Misura_temperatura()
{
  sensors.requestTemperatures();
  Blynk.virtualWrite(1, sensors.getTempCByIndex(0));
  // invia al pin virtuale 1 il valore della temperatura
  Blynk.virtualWrite(2, sensors.getTempCByIndex(0));
  // invia al pin virtuale 2 il valore per il grafico della temperatura
}

void loop()
{
  Blynk.run();
  timer.run(); // esegue timer
}

Creiamo la nostra applicazione

Per creare la nostra applicazione con Blynk, create un “New Project“, assegnategli un nome come Termometro 18B20 .
Impostate il tipo di device utilizzato e la tipologia di connessione, nel nostro caso “WeMos D1” e Wi-Fi

iot blynk wemos 18b20 iot blynk wemos 18b20

premete il tasto Create, a questo punto vi sarà Inviata via e-mail l’Auth Token, che dovrete poi copiare all’interno dello sketch.

iot blynk wemos 18b20 iot blynk wemos 18b20

passere quindi alla creazione della vostra interfaccia, dovrete selezionare due oggetti: “Value Display” e “SuperChart”

iot blynk wemos 18b20 iot blynk wemos 18b20

Configurate così come indicato, assegnando al primo il pin virtuale V1 , con un tempo di lettura di 1 secondo e un range di temperatura da 0 a 45

iot blynk wemos 18b20

Per i grafico utilizzate il pin virtuale V2 e impostate la forma del grafico, il colore ed altri parametri secondo i vostri gusti, questi potranno anche essere modificati in futuro.

iot blynk wemos 18b20 iot blynk wemos 18b20

Tornate all’app dove vedrete i vostri due oggetti raffigurati e fate click sul tasto play:

iot blynk wemos 18b20

Il risultato dovrebbe essere  simili al seguente.

iot blynk wemos 18b20

iot blynk wemos 18b20