Subtotale: €14,50 (IVA incl.)
Articolo riservato agli utenti registrati
Utilizziamo il nuovo Arduino UNO R4 Minima per misurare il pH di liquidi e visualizzare il valore rilevato su un display OLED.
In questo articolo, vi presentiamo un pH-metro in grado di misurare accuratamente il pH di una soluzione utilizzando un sensore dedicato, la board Arduino UNO R4 Minima e un piccolo display OLED da 0,96โ.
La versatilitร di questo sistema permette di applicarlo in diversi ambiti, fornendo risultati affidabili e di facile consultazione.
Per comprendere appieno lโimportanza di questo progetto, รจ fondamentale considerare lโacqua come fattore cruciale in molti contesti lavorativi.
Ad esempio, nel settore dellโagricoltura idroponica, in cui le piante vengono coltivate senza lโutilizzo del terreno, il pH dellโacqua gioca un ruolo fondamentale nel garantire lโottimale assorbimento dei nutrienti da parte delle piante.
Monitorare costantemente il pH dellโacqua consente agli agricoltori e agli operatori di regolare i livelli di aciditร o alcalinitร , creando cosรฌ un ambiente ideale per la crescita e lo sviluppo delle piante.
Ma non รจ solo lโagricoltura idroponica che potrebbe beneficiare di questa progetto. Pensiamo anche al settore delle piscine, in cui la corretta misurazione del pH dellโacqua รจ essenziale per garantire un ambiente salubre e sicuro per i nuotatori. Un pH sbilanciato puรฒ causare irritazione agli occhi e alla pelle dei bagnanti, oltre a favorire la proliferazione di batteri e alghe.
Grazie al nostro progetto, sarร possibile monitorare costantemente il pH dellโacqua e intervenire tempestivamente per mantenere condizioni ottimali di balneabilitร .
Inoltre, il nostro sistema di misurazione del pH puรฒ trovare applicazione anche negli acquari, dove la qualitร dellโacqua รจ di vitale importanza per la salute dei pesci e degli organismi marini presenti. Un pH scorretto puรฒ compromettere lโequilibrio dellโecosistema acquatico, causando stress e malattie ai suoi abitanti.
Con il nostro pH-metro, gli appassionati di acquari potranno monitorare in tempo reale il pH dellโacqua e apportare eventuali correzioni per garantire un ambiente ideale per la vita marina.
Cosโรจ il pH
Prima di procedere con il progetto vediamo cosโรจ il pH.
Il pH (potential of Hydrogen) รจ una scala di misura utilizzata per indicare il livello di aciditร o alcalinitร di una soluzione. Questa scala va da 0 a 14, dove il valore 7 rappresenta la neutralitร , mentre i valori inferiori a 7 indicano unโaciditร e quelli superiori a 7 indicano una basicitร (Fig. 1).
Fig. 1 La scala utilizzata per indicare il livello di aciditร o alcalinitร di una soluzione.
Il pH viene determinato dalla concentrazione di ioni idrogeno (H+) presenti nella soluzione. Quando una sostanza si scioglie in acqua, puรฒ liberare ioni idrogeno che determinano lโaciditร della soluzione. Se la concentrazione di ioni idrogeno รจ alta, il pH sarร basso, indicando unโaciditร elevata. Al contrario, se la concentrazione di ioni idrogeno รจ bassa, il pH sarร alto, indicando una basicitร maggiore.
Coma giร accennato, il pH รจ un parametro importante in molti campi scientifici e industriali. Ma รจ anche fondamentale per la salute umana, poichรฉ diversi sistemi biologici richiedono un ambiente con un pH specifico per funzionare correttamente.
La misurazione del pH puรฒ essere effettuata utilizzando indicatori chimici o strumenti elettronici chiamati pH-metri. I pH-metri forniscono una lettura precisa del pH della soluzione e sono comunemente impiegati nei laboratori di chimica e nelle analisi ambientali.
Sonda per la misurazione del PH
Nel nostro progetto utilizzeremo una sonda elettronica per misurare il pH (Fig. 2).
Fig. 2 Sonda elettronica per misurare il pH.
Il funzionamento della sonda di un pH-metro elettronico si basa su principi elettronici e chimici.
Eโ composta da un elettrodo di vetro sensibile al pH e un elettro di riferimento. Il primo contiene un vetro speciale che reagisce con gli ioni idrogeno presenti nella soluzione.
Quando lโelettrodo di vetro viene immerso nella soluzione, si crea una differenza di potenziale elettrico in base al pH della soluzione. Lโelettrodo di riferimento fornisce un punto di riferimento stabile per la misurazione del pH.
Solitamente, viene utilizzato un elettrodo di riferimento a gel o a soluzione salina.
La sonda per pH รจ in grado di rilevare la differenza di potenziale elettrico tra lโelettrodo di vetro e lโelettrodo di riferimento. Questo potenziale viene convertito in un valore di pH tramite un circuito elettronico.
Prima dellโuso, รจ necessario calibrare lo strumento utilizzando soluzioni di pH noto (solitamente pH 4 e pH 7) per garantire accuratezza nelle misurazioni.
Particolare attenzione deve essere posta per la cura dellโelettrodo in vetro che deve essere conservato in una soluzione specifica e periodicamente pulito per rimuovere depositi che potrebbero influenzare le misurazioni.
La sonda non puรฒ essere collegata direttamente alla nostra scheda Arduino UNO R4, ma il segnale deve essere elevato e reso leggibile dal microcontrollore tramite una scheda di condizionamento del segnale (Fig. 3).
Fig. 3 La scheda che permette ad Arduino UNO R4 di interfacciarsi alla sonda per pH.
La sonda pH viene collegata al modulo di condizionamento attraverso un connettore BNC, che assicura una connessione stabile e affidabile.
Il modulo รจ dotato di unโuscita di tensione proporzionale al livello di pH misurato. Questo pin puรฒ essere collegato allโingresso analogico di una scheda, come, nel nostro caso, Arduino UNO. Per il corretto funzionamento il modulo deve essere alimentato con una tensione di 5 Vdc e dato il basso consumo (tra i 5 e 10 mA) possiamo alimentarlo direttamente dal pin 5V della nostra UNO R4.
Per il corretto funzionamento รจ necessario attendere almeno 60 secondi per avere delle letture accurate.
Arduino UNO R4 Minima
La quarta versione dellโArduino UNO, lโArduino UNO R4 Minima, rappresenta un importante passo avanti nel campo del fai-da-te e dellโelettronica (Fig. 4).
Fig. 4 La board Arduino UNO R4 Minima.
Questa nuova versione monta un processore Arm Cortex-M4 a 32 bit, che garantisce una maggiore potenza di calcolo, e una quantitร di memoria 16 volte superiore rispetto alle versioni precedenti.
Nonostante questi miglioramenti, le dimensioni e la compatibilitร dei pin con i 5V rimangono invariate.
Ciรฒ garantisce una transizione senza soluzione di continuitร per gli shield e i progetti esistenti, sfruttando lโecosistema esteso e unico giร creato per lโArduino UNO (Fig. 5).
Fig. 5 La pinout del nuovo Arduino รจ identica a quella della versione precedente.
La nuova versione offre anche un clock piรน veloce, consentendo di eseguire calcoli piรน precisi e gestire progetti complessi e sofisticati. Inoltre, รจ dotata di un connettore USB-C, che rappresenta uno standard piรน piccolo, potente e resistente rispetto ai connettori precedenti.
Per utilizzare la scheda Arduino UNO R4 Minima, รจ necessario installare il pacchetto della scheda UNO R4 Minima, che fa parte del core di Arduino per i dispositivi Renesas.
Per installarlo, sarร necessario disporre di una versione dellโIDE di Arduino, che รจ possibile scaricare dalla pagina del software di Arduino (https://docs.arduino.cc/software/ide-v2).
In questo articolo utilizzeremo lโultima versione dellโIDE 2 (Fig. 6).
Fig.6 Lโultima versione dellโIDE disponibile รจ la 2.1.0.
Per installare il pacchetto della scheda, aprire il โGestore Schedeโ dal menu a sinistra, cercare UNO R4 Minima e installare lโultima versione (o la versione desiderata) (Fig. 7).
Fig. 7 Il pacchetto Arduino UNO R4 Boards da installare.
A questo punto collegando la board al computer verrร creata una porta seriale virtuale che potrete utilizzare per la programmazione dellโArduino.
Il collegamento del micuratore di PH con Arduino R4
In questo progetto abbiamo utilizzato diversi componenti per creare un sistema di rilevazione del pH. Il componente principale, ovvero la sonda in grado di rilevare il pH, รจ stato collegato al suo circuito di condizionamento tramite connettore BNC. Come giร accennato il circuito di condizionamento prende lโalimentazione direttamente dai pin 5V e GND della scheda Arduino UNO R4.
Il pin P0 del modulo di rilevazione pH รจ stato collegato al pin analogico A0 della scheda Arduino. Questa connessione consentirร alla main board di leggere i valori di pH rilevati dal sensore.
Il display OLED utilizzato prevede una connessione I2C che permette, con soli due fili, oltre allโalimentazione, di controllare il display.
I pin SDA e SCL del display sono stati quindi collegati ai pin SDA e SCL della scheda Arduino UNO R4, mentre lโalimentazione รจ stata presa dai pin 3,3V e GND.
Questa configurazione ci permetterร di rilevare il pH utilizzando la sonda e visualizzare i risultati sul display OLED. ร importante seguire attentamente le istruzioni e i collegamenti riportati nello schema di cablaggio per garantire un corretto funzionamento del sistema.
schema di CABLAGGIO
Il firmware
Il codice scritto per Arduino UNO R4 permette di leggere i valori del sensore di pH e visualizzarli sul display OLED.
Vediamo il codice nel dettaglio.
Le prime righe di codice includono le librerie necessarie per il funzionamento del programma, in particolare viene inclusa la libreria Wire per lโI2C e le librerie di Adafruit Adafruit_GFX e Adafruit_SSD1306 per la gestione del display OLED.
Successivamente, sono definite alcune costanti e variabili utilizzate nel programma (Listato 1).
Listato 1
#define SensorPin 0 // il pin analogico di output del sensore di pH รจ collegato allโingresso analogico 0 dellโArduino unsigned long int avgValue; // memorizza il valore medio dei feedback del sensore float b; int buf[10],temp; #define SCREEN_WIDTH 128 // larghezza dello schermo OLED in pixel #define SCREEN_HEIGHT 64 // altezza dello schermo OLED in pixel #define OLED_RESET -1 // pin di reset (o -1 se la gestione del reset รจ condivisa) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
La funzione setup() viene eseguita allโavvio e svolge un ruolo cruciale nellโinizializzazione del programma (Listato 2).
Listato 2
void setup() { pinMode(13, OUTPUT); Serial.begin(9600); Serial.println(โReadyโ); if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F(โSSD1306 allocation failedโ)); for (;;); } display.display(); delay(2); display.clearDisplay(); display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(2); display.setCursor(10, 5); display.print(โPH Sensorโ); display.display(); delay(3000); }
Prima di tutto, viene impostato il pin digitale 13 come output per controllare un LED. Successivamente, viene inizializzata la comunicazione seriale attraverso il monitor seriale a una velocitร di trasmissione di 9600 baud.
Successivamente, il programma verifica se รจ possibile allocare correttamente la memoria per il display OLED SSD1306. Se la memoria non puรฒ essere allocata, viene visualizzato un messaggio di errore e il programma si interrompe.
Se invece il display puรฒ essere inizializzato correttamente, vengono eseguite una serie di comandi per configurarlo.
Viene effettuata una breve pausa, quindi il display viene cancellato e viene impostata la dimensione del testo su 2 e il cursore viene posizionato alla coordinate (10,5) del display.
Successivamente, viene visualizzato il testo โPH Sensorโ chiamando la funzione display.display(). Viene inserita una pausa di 3 secondi per consentire allโutente di leggere il messaggio sul display prima che il programma passi alla funzione loop().
La funzione loop() รจ il cuore del programma Arduino e viene eseguita continuamente dopo la fase di setup (Listato 3).
Listato 3
void loop() { for (int i = 0; i & lt; 10; i++) //Ottenere 10 valori campione dal sensore per ottenere una misura piรน precisa { buf[i] = analogRead(SensorPin); delay(10); } for (int i = 0; i & lt; 9; i++) //Ordinare i valori analogici dal piรน piccolo al piรน grande { for (int j = i + 1; j & lt; 10; j++) { if (buf[i] & gt; buf[j]) { temp = buf[i]; buf[i] = buf[j]; buf[j] = temp; } } } avgValue = 0; for (int i = 2; i & lt; 8; i++) //take the average value of 6 center sample avgValue += buf[i]; float phValue = (float) avgValue * 5.0 / 1024 / 6; //convert the analog into millivolt phValue = 3.5 * phValue; //convert the millivolt into pH value Serial.print(โpH: โ); Serial.print(phValue, 2); Serial.println(โโ); display.clearDisplay(); display.setTextSize(2); display.setCursor(20, 5); display.println(โPh Valueโ); display.setTextSize(3); display.setCursor(30, 35); display.print(phValue); display.display(); digitalWrite(13, HIGH); delay(800); digitalWrite(13, LOW);
Allโinterno del loop, vengono acquisiti 10 valori campione dal sensore di pH tramite il pin analogico 0. Questi valori vengono successivamente ordinati in ordine crescente per poter calcolare il valore medio dei 6 campioni centrali al fine di ridurre il rumore.
Questo valore viene quindi convertito in millivolt e successivamente questi vengono trasformati nel valore di pH corrispondente.
Il valore di pH viene quindi stampato sul monitor seriale con due cifre decimali di precisione e visualizzato sul display OLED.
Infine, viene accesa e spenta una luce collegata al pin digitale 13 per fornire un feedback visivo. Il programma poi si mette in pausa per 800 millisecondi prima di iniziare un nuovo ciclo di loop, eseguendo le stesse operazioni di acquisizione e calcolo dei valori di pH. Questo ciclo si ripete indefinitamente finchรฉ lโArduino rimane alimentato.
Conclusioni
In questo articolo รจ stato presentato un sistema di misurazione del pH utilizzando un sensore dedicato, la board Arduino UNO R4 Minima e un display OLED.
Il sistema offre una soluzione versatile per misurare accuratamente il pH di una soluzione in diversi contesti, come lโagricoltura idroponica, le piscine e gli acquari.
Si tratta di unโottima base di partenza da adattare alla vostra specifica applicazione.
2 Commenti