Data Logger Barometrico

Data Logger Barometrico

 

Lallouhmi Omar - Sardi Emanuele - Evangelisti Massimo - Classe 5A-IPAI -  Esame di Stato: 2017-2018 UK
DTH22
UK
photovoltaic panel
UK
p

        
Data Logger Barometrico
Applicazione IoT con Arduino

Descrizione generale
Il Datalogger Barometrico è un sistema IoT (Internet of Things), basato su Arduino MKR1000 e abbinato a sensori e moduli, che rileva, elabora, visualizza ed invia ad un cloud dati relativi alle seguenti grandezze:
• Data, ora, pressione atmosferica, altitudine, tensione pannello fotovoltaico, luminosità, temperatura, umidità, temperatura di rugiada, indice di calore.
 In fig. 1 è riportato lo schema a blocchi mentre in fig. 2 lo schema elettrico.

Schema DataLogger Barometrico 2a2

Arduino MKR100 tramite software memorizzato al suo interno gestisce le funzioni dei moduli/sensori collegati:

BMP280pressione atmosferica, temperatura ambiente ed altitudune  DHT22temperatura ambiente ed umidità   Pannello: tensione prodotta RTC: Data e Ora
LDR: luminosità Display: visualizzazione dati  WiFi: collegamento Intenet  

Un algoritmo determina la temperatura media dell'ambiente (media tra BMP280 e DHT22), la temperatura di rugiada e l'indice di calore.
I dati trattati in locale vengono inviati, con un intervallo di 15 secondi, ad un access point locale e tramite la rete internet al cloud thinkspeak dove è stato creato un account pubblico per una successiva rielaborazione (grafici, statistiche, diffusione online).
Tramite il seguente link è possibile consultate i dati: https://thingspeak.com/channels/403507
Per la consultazione tramite cellulare oppure tablet si deve scaricare un App ThingSpeak Viewer, ad esempio ThingView e configurarla con il canale 403507.

 

Il progetto è suddiviso in una parte Hardware ed in una parte Software.
1) Arduino MKR1000 (Sistema di sviluppo programmabile)
2) Modulo Pressione Atmosferica- Temperatura BMP 280
2a) Trimmer per Off Set Altitudine

3) Modulo Temperatura-Umidità DHT22
4Modulo Luce LDR

5) Pannello solare Fotovoltaico
6Modulo Orologio RTC DS 1307

7) Display LCD I2C 20x4
8) LED IoT
software1b

1) Arduino MKR1000 (Sistema di sviluppo programmabile)

Il mondo dell’IoT (Internet of Things) sta prendendo sempre più piede nel mondo che ci circonda. Rimaniamo sempre più affascinati da questo mondo fatto di sensori e microprocessori che si interfacciano sempre di più nel nostro vivere quotidiano. 

Arduino MKR1000 è una  scheda basata sull'Atmel ATSAMW25 SoC della serie SmartConnect; dispone di un modulo WiFi WINC1500 e di un chip per la Crypto-Autenticazione; ideale per gestire i progetti IoT.

Il chip ATSAMW25 è composto da un'antenna PCB stream 1x1 e da tre blocchi principali:

  • microcontrollore a bassa potenza ARM SAMD21 Cortex-M0+ a 32bit;
  • controller di rete a bassa potenza WINC1500 da 2.4GHz, con protocollo WiFi IEEE® 802.11 b/g/n;
  • dispositivo di crypto-autenticazione ECC508.

La scheda Arduino MKR1000 WiFi è caratterizzata da dimensioni molto compatte e da caratteristiche che la rendono la scelta preferita per la creazione di progetti IoT alimentati da batteria. Dispone infatti dei seguenti elementi:

  • una MCU simile a quello della Arduino Zero;
  • la tipica ampia serie di interfacce di I/O delle schede Arduino;
  • un modulo WiFi che supporta il protocollo SHA-256, con chip di Crypto-autenticazione per la comunicazione protetta.

Alimentazione Arduino MKR1000 WiFi
La Arduino MKR1000 WiFi integra un circuito di carica per batterie Li-Po che permette alla scheda di essere alimentata sia da una fonte esterna con tensione di alimentazione di 5V tramite porta USB, che da una batteria; il passaggio da un tipo di alimentazione piuttosto che l'altro avviene automaticamente.

Le batterie Li-Po vengono caricate con una tensione fino a 4.2V e con una corrente che normalmente corrisponde alla metà della capacità nominale. La scheda Arduino MKR1000 WiFi dispone di un particolare chip che fornisce una corrente di ricarica preimpostata di 350mAh; ciò significa che la capacità MINIMA della batteria da utilizzare con la MKR1000 WiFi deve essere di 700mAh. Batterie con capacità inferiore potrebbero venire danneggiate e subire surriscaldamenti o esplosioni; al contrario, una batteria con capacità superiore necessita di un tempo di ricarica maggiore, ma non è soggetta ad alcuno dei suddetti rischi. E' pertanto strettamente consigliato l'uso di una batteria Li-Po con ALMENO 700mAh di capacità.

ATTENZIONE
NON COLLEGARE al connettore JST presente sulla scheda alcun dispositivo diverso dal tipo di batteria indicato.
NON alimentare il pin VIN con una tensione maggiore di 5V.

La batteria Li-Po da utilizzare deve disporre di connettore JST PHR2 2-pin femmina. I pin di riferimento sulla Arduino MKR1000 WiFi sono il pin Left (polarità Positiva) e il pin GND (Polarità Negativa). Il circuito di ricarica è impostato per un ciclo di ricarica di circa 4 ore, dopo il quale entra automaticamente in modalità Sleep; questo fa sì che la capacità di ricarica sia al massimo di 1400mAh per ogni ciclo.

N.B.: a differenza della maggior parte delle schede Arduino, la MKR1000 WiFi opera con una tensione di alimentazione pari a 3.3V; se si applicano tensioni maggiori su uno qualsiasi dei pin di I/O, si potrebbe danneggiare la scheda. Mentre è possibile fornire la tensione di 5V ai dispositivi digitali, la comunicazione bidirezionale con dispositivi a 5V necessita di un'appropriata variazione di tensione.

Specifiche tecniche  
Microcontrollore:  SAMD21 Cortex-M0+ 32bit low power ARM MCU 
Tensione di alimentazione:  5V  
Alimentazione:  porta USB/pin VIN
Batteria supportata:   Li-Po 3.7V, minimo 700mAh
Tensione operativa:  3.3V
Pin digitali di I/O: 8
Pin PWM:  12 ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 {o 18}, A4 {o 19} )
Porta UART: 1
Porta SPI:  1
Porta I2C: 1
Pin analogici di input:  7 (ADC a 8/10/12bit)
Pin analogici di output:  1 (DAC a 10bit)
Corrente DC (per singolo pin di I/O): 7 mA
Memoria flash:  256KB
SRAM:  32KB
EEPROM:  NON presente
Velocità di clock:  32.768 kHz (RTC), 48 Mhz
USB:  Full Speed, Host integrato
Dimensioni:  63 x 25 x 7mm
Peso 30g (intera confezione )

Specifica dei pin

  • VIN (pin di input): tensione di ingresso della scheda Arduino MKR1000 WiFi; la tensione fornita tramite questo pin deve essere di 5V regolata. Se l'alimentazione è fornita tramite questo pin, la porta USB è disconnessa. La tensione di alimentazione fornita alla scheda Arduino MKR1000 WiFi deve essere compresa in un range 5V~6V; l'utilizzo di questo pin è il solo modo di fornire una tensione di 5V, in alternativa all'utilizzo della porta USB.
  • 5V (pin di output): tensione di alimentazione utilizzata per il funzionamento del microcontrollore e degli altri componenti della scheda; la tensione disponibile su questo pin NON viene regolata ma proviene direttamente dal pin VIN o dalla porta USB. Quando la scheda è alimentata da una batteria, il pin fornisce circa 3.7V. Questo è un pin di uscita e non deve essere utilizzato come un pin di input.
  • VCC: questo pin fornisce una tensione pari a 3.3V generata dal regolatore incorporato sulla scheda a partire da una qualsiasi delle tre fonti di alimentazione utilizzata (porta USB, pin VIN o batteria).
  • LED ON: indicatore LED per lo stato di accensione della scheda; il LED è collegato al pin 5V solo se la scheda viene alimentata dalla porta USB o dal pin VIN; ciò significa che il LED indica lo stato di accensione della scheda quando la stessa viene alimentata tramite porta USB o pin VIN, al contrario non si accende se l'alimentazione proviene dalla batteria. Questo permette di massimizzare l'uso della batteria; è pertanto normale che il LED rimanga spento se la scheda viene alimentata tramite batteria.
  • CHARGE LED: indicatore LED per lo stato di ricarica; il LED è collegato al circuito di ricarica presente sulla Arduino MKR1000 WiFi e monitorizza l'assorbimento di corrente durante il ciclo di carica. Normalmente il LED si accende quando la scheda riceve la tensione di alimentazione di 5V dal pin VIN o dalla porta USB e il chip inizia a caricare la batteria Li-Po collegata al connettore JST presente sulla scheda. In alcuni casi, il LED inizia al lampeggiare con una frequenza di circa 2Hz e ciò accade se le condizioni elencate di seguito perdurano per un periodo di tempo che va dai 20 ai 70 minuti:
       a) il connettore JST non è collegato ad alcuna batteria;
       b) la batteria collegata al connettore è in sottoscarica o danneggiata e non è possibile effettuare la ricarica;
       c) ad una batteria a piena carica viene applicato un ciclo di ricarica non necessario; questo accade disconnettendo e riconnettendo il pin VIN o la batteria        stessa se la scheda è alimentata tramite pin VIN.
  • Onboard LED: a differenza delle altre schede, sulla Arduino MKR1000 WiFi il LED Onboard è connesso al pin D6 e non al D13; il codice di esempio va pertanto modificato per funzionare correttamente.

2) Modulo Pressione Atmosferica- Temperatura BMP 280
Il modulo, basato sul sensore BMP280 prodotto dalla Bosch (in allegato il datasheet) permette di rilevare la pressione atmosferica e la temperatura, quest'ultima, tramite software viene mediata con il valore acquisito dal modulo DHT22.
Il modulo comunica tramite I2C e SPI. In questo progetto è stata utilizzata la comunicazione I2C (SDI=SDA e SCK=SCL)
È in grado di effettuare misurazioni con un’accuratezza assoluta di ±1 hPa per la pressione e di ±1.0°C per la temperatura.
Può essere utilizzato come altimetro con un’accuratezza di 1m.
La scheda presenta un regolatore a 3.3V e un convertitore di livello e può funzionare con logica sia a 3V che a 5V.
 
Il modulo viene gestito tramite le librerie Adafruit_Sensor.h e Adafruit_BMP280.h.  

 



2a) Trimmer per Off Set Altitudine

L'altitudine viene determinata via software in base alla pressione atmosferica, questa risente pesantemente della situazione meteorologica del momento, il dispositivo e’ dotato di un trimmer collegato sul pin A3, con il quale è possibile impostare l'altidudine di partenza o di riferimento.
Nel nostro Istituto (IPSIA - Antonio Gustaferro di San Benedetto del Tronto) sono stati individuati 3 punti di riferimento:
1) Piano      terra: altitudine 2 m s.l.m.
2) Primo     piano: altitudine 4 m s.l.m.
3) Secondo piano: altitudine 8 m s.l.m.

 

3) Modulo Temperatura-Umidità DHT22

Risultati immagini per am2302

Il sensore DHT22 permette di rilevare l’umidità relativa e la temperatura di un ambiente e di trasmetterla digitalmente attraverso un solo filo (oltre ai 2 necessari all’alimentazione) ad un microcontrollore. Il sensore di umidità è di tipo capacitivo, utilizza al massimo 2.5mA in fase di conversione e permette di acquisire al massimo un campione ogni 2 secondi. La misurazione dell’umidità varia da 0 a 100% con un’accuratezza tipica pari al ±2%. Per quanto riguarda la temperatura invece il DHT22 ha un range di misurazione tra -40 e +80°C con un accuratezza di ±0.5°C grazie al sensore DS18B20 integrato al suo interno. L’alimentazione può variare da 3.3 a 6V quindi può essere usato sia con microcontrollori che lavorano a 5v sia con quelli a 3.3v. VCC e GND servono rispettivamente per portare l’alimentazione al sensore, mentre il pin DATA serve per la comunicazione bidirezionale tra sensore e processore. Una nota molto interessante è che il filo DATA che collega il sensore alla MCU (microcontrollore) può essere lungo fino a 20 metri. (si riduce a 1m se alimentato a 3.3V) Il DHT22 non necessita di ulteriore componentistica esterna però, specialmente se si utilizzano fili lunghi, potrebbe essere consigliato l’utilizzo di un condensatore da 100nF tra i pin VCC e GND in prossimità del sensore per filtrare eventuali disturbi all’alimentazione. In alcuni schemi è presente una resistenza detta “di Pull-up” connessa tra la VCC e il pin DATA. Questo per tenere alto lo stato del canale quando non è in corso una trasmissione dati. Il valore della resistenza tipicamente è di 4.7-5.1KΩ a seconda dell’applicazione. Il DHT22 è molto versatile, infatti può essere impiegato ad esempio in sistemi di deumidificazione, automotive, domotica, monitoraggio ambientale e molti altri ambiti in cui è necessario un controllo elettronico di temperatura e umidità.
Caratteristiche tecniche:
• Tensione di alimentazione: da 3 a 5 V e I / O 
• Corrente massima: 2,5 mA durante la conversione (durante la richiesta di dati) 
• Velocità di campionamento non superiore a 0,5 Hz (una volta ogni 2 secondi) 
• Intervallo di temperatura: -40-80 °C risoluzione 0,1 °C errore <± 0,5 °C 
• Intervallo di umidità: 0-100% di risoluzione RH0,1% di errore di UR ± 2% di umidità relativa
Comunicazione
La comunicazione avviene attraverso un solo filo ed è bidirezionale (pin2:Data)
Questo sensore, su sollecitazione di Arduino, trasmette sul pin Data (Uscita digitale) un treno di quaranta bit:
▪ 8 bit per indicare la parte intera del valore di umidità
▪ 8 bit per indicare la parte decimale dell’umidità (.00 nel modello DHT11)
▪ 8 bit per indicare la parte intera della temperatura
▪ 8 bit per indicare la parte decimale della temperatura (.00 nel modello DHT11)
▪ 8 bit per indicare il numero di controllo (per validare il valore dei precedenti 32 bit) I dati di umidità e temperatura sono formati da 16bit ciascuno, quindi 32 bit di informazione.
Es:
Umidità = 65.8%RH in binario 00000010 10010010 Temperatura= 26.9%RH in binario 00000001 00001101 La trasmissione avviene a gruppi di 8 bit, quindi ci saranno 4 gruppi di 8 bit (32 bit) Vengono aggiunti ulteriori 8 bit per verificare che la trasmissione sia avvenuta correttamente. Questo numero viene calcolato sommando i 4 blocchi:
Verifica = 00000010 + 10010010 + 00000001 + 00001101 = 10100010
Quindi in totale 5 blocchi da 8 bit per un totale di 40 bit.
Sincronizzazione:
Processore porta a 0 lo stato del bus DATA per 800μs che significa “sensore, preparami i dati”. Il sensore di risposta porta lo stato del bus a 0 per 80μs per dire “inizio trasmissione” Poi il sensore inizia a trasmettere i dati di temperatura e umidità:
• Blocco 1: primi 8 bit riguardanti l’umidità, Es. 00000010
• Blocco 2: gli ultimi 8 bit riguardanti l’umidità Es. 10010010
• Blocco 3: primi 8 bit riguardanti la temperatura Es. 00000001
• Blocco 4: ultimi 8 bit riguardanti la temperatura Es. 00001101
• Blocco 5:8bit di checksum/verifica Es. 10100010
La gestione del modulo avviene tramite la libreria (DHT.h) che deve essere scaricata ed installata prima della compilazione del programma.

UKThe sensor DHT22 allows to detect the relative humidity and the temperature of an environment and to transmit it digitally through a single wire to a microcontroller.
The humidity sensor is of the capacitive type,it uses at most 2.5mA during conversion and allows to acquire up to one sample every two seconds. The power supply can vary from 3.3 to 6V, so can be used it both with microcontrollers working at 5V and with 3.3V. To bring power to the sensor we use Vcc and Gnd. The Dht22 it is very versatile ,can be used in home automation systems , enviromental monitoring and in many other system that require an electronic control of temperature and humidity.

4Modulo Luce LDR

modulo luce 250

Il modulo abbinato al software permette di rilevare l'intensità luminosa (lux).
La parte hardware è composta da un partitore di tensione formato da un LDR (modello NORP 12 della Silonex, in allegato il datasheet) e da un resistore fisso (R1=4643Ω). 
Tramite software si legge il valore di tensione VL e con la formula del partitore si determina il valore ohmico del LDR. 

Il costruttore fornisce il grafico in scala logaritmica della caratteristica di trasferimento e due punti noti.

(lux=10, LDR=9000Ω) ; ( lux=1000, LDR=400Ω)   tramite questi dati si ricava l'espressione matematica Lux=f(LDR)

    (Valida tra 1 Lux e 1000 Lux)

Esempio:LDR=3000Ω  Illuminamento=50,78 Lux - Parte del software che permette di determinare i lux tramite la lettura di VL.
VL=3.3*analogRead(A2)/4096.0;float I=VL/4643.0;LDR=(3.3-VL)/I; float lux=pow(10,((+1.630334-log10(LDR/1000.0))/0.67609));

5) Pannello solare Fotovoltaico
pannello ab250
Il modulo abbinato al software permette di rilevare la tensione fornita dal pannello fotovoltaico.
In figura è riportata la parte hardware, si nota la presenza di un partitore di tensione(R2=4575Ω, R3=1473Ω). Il circuito riduce la tensione fornita dal pannello, questo per non danneggiare l'ingresso analogico della scheda Arduino MKR1000.
Il pannello, in presenza di un forte illuminamento, è in grado di fornire una tensione superiore a 7V mentre la tensione d'ingresso della scheda non deve superare 3,3V.
Tramite software e le formule del partitore si legge la tensione VP e si determina la tensione VPA.
Formule:       
Parte del software che che permette di determinare la tensione VPA. VPA=(1.473+4.575/(1.473))*3.3*analogRead(A1)/4096.0;

UKThe module combined with the software allows the detection of the voltage supplied by the photovoltaic panel.
In the figure the hardware part is shown, we note the presence of a voltage divider (R2 = 4575Ω, R3 = 1473Ω). The circuit reduces the voltage supplied by the panel, in order not to damage the analogue input of the Arduino MKR1000 board.
The panel, in the presence of a strong illumination, is able to supply a voltage higher than 7V, while the input voltage of the board must not exceed 3.3V.
The VP voltage is read out via software and the divider formulas and the voltage is determined.

6) Modulo orologio RTC DS1307
Il modulo si basa sull'integrato DS1307 I2C RTC è dotato di EEPROM (AT24C32 - Erasable and Programmable Read Only Memory) con 32kbyte memoria. Il modello in esame integra il circuito per l’istallazione del sensore di temperatura DS18B20.

Tabella degli indirizzi dei registri interni dell’RTC

È presente una batteria tampone ricaricabile LIR2032 al litio che consente di alimentare il dispositivo e garantisce un funzionamento a lungo termine anche quando è disconnesso da Arduino. Il circuito risulta essere così totalmente indipendente: incrementa l’ora senza aver bisogno di un microcontrollore e con la batteria completamente carica è in grado di funzionare per 1 anno intero quando il sensore di temperatura risulta spento oppure non presente.
In Fig 7 è riportato lo schema elettrico del modulo.
L'orario e il calendario sono salvati nei registri in formato BCD. In questo formato ogni cifra di un numero è rappresentata con un codice binario a quattro bit, il cui valore è compreso tra 0000 (0) e 1001 (9). Ad esempio il numero 127 in formato BCD viene registrato in questo modo: 0001 0010 0111.
Sebbene il BCD comporti un notevole spreco di bit (circa 1/6 di memoria inutilizzata in packed BCD), in alcuni casi è preferibile perché ha una diretta corrispondenza con il codice ASCII.

È sufficiente infatti sostituire i primi quattro bit inutilizzati con 0011 per ottenere il corrispondente ASCII (0011 + BCD => 0011 + 0000 => '0').
Il codice BCD è molto usato in elettronica, specialmente in circuiti digitali privi di microprocessore, perché facilita la visualizzazione di lunghe cifre su display a sette segmenti dove ad ogni display fisico corrisponde esattamente una cifra. Esistono appositi circuiti integrati che effettuano la conversione da BCD nella corrispondente sequenza di accensione dei segmenti. Anche l'esecuzione di semplici calcoli aritmetici è più semplice da effettuarsi su cifre BCD per circuiti logici combinatori.

I registri dell'RTC vanno dall'indirizzo 00h a 07h.
I registri utilizzabili come RAM vanno da 08h a 3Fh.
- Il Bit 7 del registro dei secondi (00h) è il bit di halt (CH) dell'orologio. Quando questo bit è posto a 1 l'oscillatore è spento mentre se posto a 0 l'oscillatore viene riattivato.
- I valori che corrispondono al giorno della settimana vengono definiti dall'utente (solitamente 1 = domenica, 2 Lunedì etc.). Allo scadere della mezzanotte questi vengono incrementati di uno (se vale 7 viene riportato a 1).
- Il Bit 6 del registro delle ore (02h) indica se l'orario è definito con modalità 12-ore (quando vale 1) oppure 24-ore (se vale 0). Nel caso si utilizzi la modalità a 12 ore il bit 5 (bit AM/PM) viene posto a 1 se è PM, 0 se è AM. Nel caso sia abilitata la modalità 24-ore il 5 bit è usato per la codifica delle decine delle ore. Se si cambia da 12 a 24 ore l'orario deve essere resettato.
- il registro di controllo (08h) è utilizzato per pilotare l'uscita SQ (che è un'onda quadra). Infatti il nostro modulo RTC ha la possibilità di generare un onda quadra di 1Hz, 4096KHz, 8192KHz, 32768KHz. Tramite software viene programmato il registro per generare un’onda quadra ad 1 Hz. Sul Datasheet sono riportati tutti i dettagli per la configurazione dei registri.
Il modulo utilizza i pin 12 (SCL) e 11 (SDA) per la comunicazione seriale "I2C" . Il DS1307 supporta il protocollo I2C. Un dispositivo che invia i dati sul bus è definito trasmettitore mentre quella che li legge ricevitore. Il dispositivo che controlla gli altri, detti slave, è detto master e deve generare il segnale di clock, controllare l'accesso al bus e generare le condizioni di START e STOP.
Il DS1307 opera come slave sul bus I2C ed è allocato all’indirizzo 0x68 (Nel linguaccia C si usa il suffisso 0x per indicare un numero esadecimale).

7) Display LCD I2C 20x4

lcd1a11

Il display, come evidenziato nello zoom della figura, permette la visualizzazione dei seguenti dati:
1) Data e Ora
2) Pressione atmosferica, Altitudine
3) Temperatura, Umidità, Temperatura di rugiada
4) Tensione pannello fotovoltaico, Intesità luminosa, Indice di calore
Il Modulo LCD 20x4 dispone di 4 righe e 20 colonne è basato sul controller HD44780; dotato di retroilluminazione blu, caratteri bianchi, regolazione del contrasto e di un'interfaccia di comunicazione I2C.

Lo schermo a cristalli liquidi (LCD) è un display a schermo piatto, una visualizzazione elettronica o un video che utilizza le proprietà modulanti della luce dei cristalli liquidi. I cristalli liquidi non emettono direttamente la luce. 
Come mostrato nell'immagine, un'importante caratteristica di questo modulo LCD è l'interfaccia di comunicazione I2C integrata posta sul retro che ne rende estremamente semplice l'utilizzo con Arduino.
Il modulo è dotato di 4 pin (Alimentazione: Vcc, Gnd) e (Dati: SDA, SCL)
Questo modulo permette di comunicare con un display LCD mediante il protocollo I2C che impegna quindi due sole porte. (Dati: SDA, SCL) oltre ai due terminali di alimentazione (VCC, GND).

Sul modulo è presente un potenziometro per la regolazione del contrasto ed un jumper rimovibile per l'attivazione della retroilluminazione. Se il jumper viene rimosso e tra i due pin viene inserita una resistenza, si può modificare l'intensità di retroilluminazione (ad esempio con una resistenza da 470 ohm 1/4w l'intensità si dimezza).

Settaggio dell'indirizzo del modulo
Sono inoltre presenti tre connessioni denominate A1, A2 e A3 per il settaggio (a 3-bit) dell'indirizzo I2C tra 0x20 e 0x27. L'indirizzo di default è 0x27 (A0, A1 e A2 lasciati aperti). La chiusura di una coppia si effettua collegando tra loro le due rispettive piazzole. E’ ovvio che tale indirizzo hardware deve coincidere con l’indirizzo I2C nel software/libreria di gestione del Modulo. Il display viene gestito tramite la libreria LiquidCrystal_I2C.h.

8) LED  IoT
Il LED verde segnala la trasmissione dei dati al Cloud ThingSpeak.
LED ON : inizio trasmissione
LED OFF: fine trasmissione

 

 

 

 

 

 

 

 

 

 

 

Software
Di seguito è riportato un estratto del software (Sketch) di gestione

/* ----------------------------------------------------------------------------------------

- Lallouhmi Omar - Sardi Emanuele - Evangelisti Massimo - Classe 5A-IPAI -  Esame di Stato: 2017-2018
-----------------------------------------------------------------------------------------
*/
software1aa

 

 

Bibliografia:
1) Appunti scolastici
2) www.arduino.cc 
3) www.adafruit.com 

Allegati:
Scarica questo file (BST-BMP280-DS001-11.pdf)Datasheet BMP280[Datasheet BMP280]1450 kB
Scarica questo file (norp12.pdf)Datasheet NORP12[Datasheet NORP12]78 kB