Vediamo in questo articolo come leggere i valori letti dal sensore BMP180 utilizzando la Demo board XIAO METER su qui è istallato un XIAO SAMD21 della SEEED STUDIO.
Indice
La demo board XIAO METER
La Demo board XIAO METER utilizzata in questo articolo è una scheda autoprodotta che permette di testare facilmente un elevato numero di sensori tramite l’utilizzo di un XIAO SAMD21 della SEEED STUDIO che è il membro più piccolo della famiglia Seeeduino.
Il modulo misura solamente 20×17.5×3.5mm e dispone di un microprocessore Cortex-M0, 11 porte di I/O, connessioni seriali UART, I2C ed SPI. Compatibile con l’IDE di Arduino.
Sotto le caratteristiche della Demo board XIAO METER.
Descrizione | Valore | |||
---|---|---|---|---|
Tensione di esercizio | Batteria al litio da 5 V / 3,7 V | |||
Corrente di carica | 1A (massimo) | |||
Display | OLED da 0,96" 128×64 pixel - driver SSD1306 | |||
Porte I2C | 2 | |||
Porte digitali | 1 | |||
Porte analogiche | 1 | |||
Altre apparecchiature esterne | pulsante utente | |||
Modulo alimentatore /caricabatteria | LX-LCBS | |||
Dimensioni | 48.96 x 49.53 mm |
Il modulo Seeed Studio XIAO SAMD21
Il modulo Seeed Studio XIAO SAMD21 è perfettamente compatibile con Arduino IDE, in che permette di sviluppare facilmente piccoli progetti con l’aiuto della vasta e completa libreria Arduino.
Ecco le sue principali caratteristiche:
Descrizione | Valore |
---|---|
Processore | CPU ARM Cortex-M0+ (SAMD21G18) fino a 48 MHz |
Memoria flash | 256KB |
Sram | 32KB |
Pin I/O | 11 PIN analogici (10 o 12 bit), 11 PIN digitali, 1 pin di uscita DAC |
Interfaccia I2C | 1 |
Interfaccia SPI | 1 |
Interfaccia UART | 1 |
LED | 1 LED utente, 1 LED di alimentazione, due LED per il download della porta seriale |
Porta alimentazione e interfaccia di download | Tipo-C |
Alimentazione | 3,3 V/5 V CC |
Dimensioni | 20 × 17,5 × 3,5 mm |
Compatibilità software | Compatibile con Arduino IDE |
Maggiori informazioni nell’articolo Seeed Studio XIAO SAMD21 – Presentazione
Realizzazione del PCB con PCBWay
Il PCB è stato disegnato con il programma online EasyEDA, mentre è stato realizzato tramite il servizio offerto dal sito PCBWay
Sito online per creazioni schemi e PCB | Sito produzione PCB |
Dove trovare il progetto
Il progetto completo può essere scaricato dal mio account presso OSHWLab, utilizzando questo link.
Per realizzare il PCB si può anche utilizzare il mio progetto presente sulla piattaforma di condivisione offerta dalla PCBWay, ecco in link.
Per maggiori informazioni relative alla costruzione della Demo Board vedere l’articolo Demo board XIAO METER per XIAO SAMD21 – Progetto completo
Il sensore BMP180
Il sensore BMP180 permette di misurare pressioni da 300 a 1100hPa (da -500m a +9000m relativi al livello del mare).
La tensione di alimentazione è compresa tra 1.8-3,6 (VDD) e 1.62-3.6V (VDDIO), mentre il consumo è di soli 5uA con una lettura al secondo. Il sensore è contenuto in un package tipo LGA con una dimensione di 3,6×3,8 mm.
Oltre al valore di pressione, il sensore fornisce anche la misurazione della temperatura; i dati sono trasmessi tramite un’interfaccia I2C, con un indirizzo fisso 0x77.
La calibrazione è fatta durante la produzione e i valori sono salvati nella memoria del sensore.
Per facilitare l’uso del sensore, questo si trova di solito già montato su una piccola basetta con il codice BMP180 (GY 68, HW-596), le sue dimensioni sono più ridotte: 10×13 mm per un peso di 1,18 grammi.
Lo schema e il relativo PCB può essere scaricato dal mio account presso OSHWLab, utilizzando questo link.
Video dimostrativo
Dove trovare il modulo BMB180
Il sensore BMP180 potrà essere acquistato presso il sito Homotix, codice HMTBMP180
Ricordo che inserendo il codice di sconto dedicato agli utenti del sito adrirobot questi usufruiranno di uno sconto del 3%.
Il sensore BMP180 può essere acquistato anche presso il sito FUTURA ELETTRONICA, il codice prodotto è 2846-BMP180.
Per maggiori informazioni relativi al sensore vedere l’articolo Sensore BMP180 Pressione/temperatura/altitudine
Test BMP180 su Demo board XIAO SAMD21
I primi passi saranno quelli di configurare il sistema, per cui dovremo aggiungere, se non l’abbiamo già fatto, all’IDE la possibilità di gestire il modulo XIAO SAMD1 e il display OLED. Vediamo come.
Come aggiungere Seeed Studio XIAO SAMD21 all’Arduino IDE
Il modulo Seeed Studio XIAO SAMD21 può essere programmato attraverso l’IDE di Arduino, basta aggiungere la scheda tra quelle riconosciute.
Cominceremo accedendo alla voce di menù File > Impostazioni, e aggiungeremo alla sezione URL aggiuntive per il Gestore schede, la seguente URL :
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
Ora cliccheremo su Strumenti-> Scheda-> Gestore di schede…, e inseriremo la keyword “Seeeduino xiao” nella casella di ricerca. Comparirà la voce “Seeed SAMD Boards“, che dovrà essere installata.
Per maggiori informazioni vedere l’articolo Seeed Studio XIAO SAMD21 – Presentazione
Libreria di gestione del display
Per utilizzare il display OLED è necessario installare l’apposita libreria. Può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo di ricerca “Adafruit_SSD1306“.
Sarà anche mostrata una finestra che segnala che la libreria ha una dipendenza con la libreria grafica “Adafruit GFX Library“. Procedete premendo su “Install all”.
Per altre informazioni su come installare le librerie vedete l’articolo Arduino – Tutorial, come installare una libreria
Per altre informazioni vedere l’articolo Display bicolore OLED 0.96″ 128×64 – SSD1306
Libreria di gestione del sensore BMP180
Per facilitare l’uso del sensore è disponibile un’apposita libreria; questa funzione in unione alla libreria Wire.h è già presente come libreria standard dell’IDE di Arduino che permette l’utilizzo del protocollo I2C.
Per il caricamento occorre aprire sotto il menù Sketch, #include libreria, “Gestione Librerie..”
Nel campo ricerca si inserirà “bmp180” trovata la libreria “Adafruit BMP085 Libray“, premendo su “More info..” apparirà il tasto “Installa” cliccare il tasto
Per altre informazioni vedere anche l’articolo Arduino – Tutorial, come installare una libreria
Collegamento del sensore BMP180 alla Demo board XIAO SAMD21
Se avremo realizzato la Demo Board XIAO METER per SAMD21 basterà posizionare il modulo sensore BMP180 in uno dei due connettori I2C disponibili controllando l’orientamento.
Nel caso non aveste realizzato la Demo Board è sempre possibile realizzare il circuito utilizzando una bread board. In questo caso vi occorreranno:
Bread Board | |
Display bicolore OLED 0.96″ 128×64 – SSD1306 | |
cavi colorati di collegamento |
Il modulo Caricabatteria e la batteria potranno essere omessi in quanto il modulo XIAO SAMD21 può essere alimentato direttamente tramite il connettore USB
Sketch utilizzati
Possono essere utilizzati due diversi Sketch, il primo permette la lettura del solo valore di temperatura, mentre il secondo mostra sia il valore della temperatura che quello della pressione atmosferica.
Modificando opportunamente il programma è possibile mostrare eventualmente il valore dell’umidità.
Lettura della sola temperatura
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
//Impostazione sensore BMP180 #include <Adafruit_BMP085.h> Adafruit_BMP085 bmp; // Impostazione OLED #include <Wire.h> #include <Adafruit_SSD1306.h> #define OLED_ADDR 0x3C #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { Serial.begin(9600); // inizializza display display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); delay(1000); // Verifica collegamento con sensore if (!bmp.begin()) { Serial.println("Non trovo il sensore BMP180 all'indirizzo 0x77"); while (1) {} } } void loop() { display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(2); display.setCursor(5, 0); display.print("XIAO METER"); display.setCursor(30, 30); display.print(bmp.readTemperature(), 1); display.print((char)247); display.println("C"); display.setTextSize(1); display.setCursor(15, 55); display.println("WWW.ADRIROBOT.IT"); display.display(); delay(2000); } |
Lettura Temperatura e pressione atmosferica
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
//Impostazione sensore BMP180 #include <Adafruit_BMP085.h> Adafruit_BMP085 bmp; // Impostazione OLED #include <Wire.h> #include <Adafruit_SSD1306.h> #define OLED_ADDR 0x3C #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { Serial.begin(9600); // initializza il display display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); delay(1000); // Verifica collegamento con sensore if (!bmp.begin()) { Serial.println("Non trovo il sensore BMP180 all'indirizzo 0x77"); while (1) {} } } void loop() { display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(2); display.setCursor(5, 0); display.println("XIAO METER"); display.setTextSize(1); display.setCursor(0, 20); display.print("Temperatura = "); display.print(bmp.readTemperature(), 1); display.print((char)247); display.println("C"); display.setCursor(0, 40); display.print("Pressione = "); display.print(bmp.readPressure()); display.print(" Pa"); display.display(); delay(2000); } |
Con questo articolo abbiamo montato e testato la Demo board XIAO METER. Vediamo altri esempi
Valore della luminosità ambiente letto tramite sensore BMH1750
Vari dati: temperatura, pressione barometrica, umidità, VOC letti tramite sensore BME680
Prossimamente
Seguiranno specifici articoli dove saranno mostrati test con vari dispositivi che possono essere collegati. Sotto alcuni esempi.
Gestione ingressi/uscita digitali, gestione led tramite pulsante
Lettura valore tensione tramite ingresso analogico