Raspberry Pi Pico: salvataggio dati sulla memoria

Nei precedenti articoli abbiamo visto che cos'è Raspberry Pi Pico e come sfruttare Micropython. In questo nuovo articolo scopriremo come sfruttare la memoria flash di Raspberry Pi Pico ed effettuare il salvataggio dati.

Raspberry Pi Pico l'abbiamo capito: è una scheda a microcontrollore molto interessante, soprattutto se accompagnata all'uso di Micropython. Abbiamo scoperto assieme che si può programmare non solo tramite riga di comando, ma anche tramite Thonny oppure per chi lo desidera tramite Visual Studio Code.

Non solo!

Come esposto nel primo articolo, ma anche nel primo video su Raspberry Pi Pico, esso supporta memorie flash fino a 16 MB! Questo significa che, oltre al codice in Micropython, possiamo sfruttarla per salvare in maniera persistente dei dati.

Il codice

Come esempio utilizzeremo la lettura delle temperature. Raspberry Pi Pico monta un sensore di temperature "built-in". Questo significa che non abbiamo bisogno di hardware esterno per effettuare la rilevazione della temperatura. Come abbiamo visto nell'articolo in cui viene introdotto l'uso di Visual Studio Code, utilizzeremo due librerie fatte apposta da casa Raspberry per rilevare la temperatura e temporizzare il ciclo con cui ripetere la rilevazione.

Manca un pezzo: il salvataggio dei dati.

Per questo, ci è sufficiente usare la libreria Python dei file e crearne uno di tipo "txt".

Il codice da usare è il seguente:

# librerie necessarie

import machine
import utime

# usiamo l'ADC della scheda per prendere la temperatura

sensor_temp = machine.ADC(4)

# fattore di conversione necessario 

conversion_factor = 3.3 / (65535)

# cicliamo all'infinito

while True:

   # leggiamo la temperatura

   lettura = sensor_temp.read_u16() * conversion_factor

   # correggiamo assieme al fattore di conversione

   temperatura = 27 - (lettura - 0.706)/0.001721

   # stampiamo a video

   print(temperatura)

   # apriamo il nostro file in modalità "append"

   file_dati = open("temperature.txt","a")

   # scriviamo nel file

   file_dati.write(str(temperatura)+" - ")

   # chiudiamo il file in modalità "flush"

   file_dati.flush()

   # attendiamo due secondi

   utime.sleep(2)

Siccome Python, lo abbiamo visto, è puntiglioso con l'indentazione, lascio un link per scaricare il codice: Clicca qui per scaricare il codice.

Esecuzione

Per far avvenire l'esecuzione è sufficiente collegare la scheda a una sorgente di alimentazione: il ciclo è "infinito" poiché stiamo usando la condizione "True" per farlo. Il codice si occuperà sia di rilevare una temperatura ogni due secondi, sia di aprire il file. Il file viene aperto in modalità "append": questo significa che la prima volta il file verrà creato, dalla seconda in poi i nuovi contenuti vengono aggiunti in coda a quelli esistenti. Viene usato, per leggere meglio le temperature, il carattere separatore "-": per questo viene aggiunto all'interno della stringa da salvare sul file.

Oltre a ciò, viene mostrata sulla console la temperatura letta ad ogni ciclata del ciclo:

Figura 1. Le temperature rilevate da Raspberry Pi Pico

Lettura del file

Il file non è lì solo per essere riempito. Al contrario.

Per farlo, è sufficiente scollegare e collegare nuovamente la scheda alla porta USB.

Tramite l'utilizzo della CLI, o tramite i terminali messi a disposizione da Thonny o Visual Studio Code, una volta stabilita la connessione con Raspberry Pi Pico, ci salviamo in una variabile il file:

fileDaLeggere = open("temperature.txt")

In questo caso non impostiamo il secondo argomento nella funzione "open": questo perché non dobbiamo scrivere ma leggere soltanto:

Figura 2. Ri-connettiamo Raspberry Pi Pico e mettiamo in una variabile il file di testo con le temperature

Arrivati a questo punto, usiamo il metodo "read()" per leggere il contenuto del file:

Figura 3. Le temperature salvate sulla scheda

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend