Archivi categoria: elettronica

Puntata 1/3 : Invio dati da micro:bit alla piattaforma IoT ThingSpeak mediante modulo WiFi esp01

In occasione del corso gratuito STEAM: Inclusione e personalizzazione nell’insegnamento delle STEAM a cui è possibile iscriversi seguendo il link, mostrerò una serie di attività laboratoriali, tra cui anche quelle che richiedono la registrazione in tempo reale dei dati di sensori utilizzando diverse schede elettroniche, tra questi BBC miro:bit, in questo modo sarà possibile ad esempio visualizzare su grafico l’andamento dell’inquinamento atmosferico, l’umidità del terreno di una serra, l’indice UV e molto altro. L’idea è quella di mostrare, in diretta costruendo il tutto durante il corso, come realizzare un cruscotto, all’interno di una pagina web, su cui visualizzare in tempo reale il grafico delle grandezze fisiche in analisi. Questa attività specifica sarà mostrata con diverse tecnologie e in modalità diverse anche in funzione dell’ordine di scuola.

In questo tutorial suddiviso in 3 puntate che verranno pubblicate nei prossimi tre giorni, mostrerò come usare ThingSpeak, software cloud che permette di aggregare, visualizzare e analizzare flussi di dati in tempo reale nel cloud di ThingSpeak provenienti da dispositivi IoT. ThingSpeak è un servizio di MathWorks nota azienda produttrice del software matematico MATLAB.

Il servizio online può essere utilizzata in modalità gratuita e a pagamento, la versione gratuita è limitata solamente nel numero di apparati hardware che possono essere connessi e nella quantità di dati che possono essere visualizzati nel tempo sulla piattaforma, ma per un uso didattico è più che sufficiente.

In questo tutorial ne mostrerò un primo utilizzo con micro:bit, approfondendo poi durante il corso ulteriori utilizzi e sperimentazioni, applicato anche ad altre schede elettroniche.

Le 3 lezioni sono così suddivise:

  1. Registrazione al servizio
  2. Creazione del programma nel MakeCode Editor
  3. Collegare il modulo ESP01 e visualizzare i dati dei sensori

Registrazione al servizio

La registrazione richiede pochi passaggi.

Connettersi al sito
Fate clic su “Get Started For Free”

Continua a leggere

BBC micro:bit – uso del sensore di umidità e temperatura DHT11

Il sensore digitale digitale DHT11 consente di rilevare la temperatura e l’umidità relativa dell’ambiente. E’ un sensore economico molto utilizzato a livello didattico, viene impiegato con diversi tipi di microcontrollori e su questo sito trovate informazioni di utilizzo con Arduino. In questo post vedremo un primo utilizzo del sensore con BBC micro:bit e durante le lezioni del mio prossimo corso sui laboratori Green, ne approfondiremo l’utilizzo implementando specifiche funzioni: lettura remota della temperatura e dell’umidità da parte di un secondo micro:bit, avviare una ventola di raffreddamento in funzione della temperatura e umidità presente in una serra e molto altro. Continua a leggere

Arduino: water sensor

Per le attività in programma per il corso sui laboratori green, spiegherò come controllare il livello d’acqua in una cisterna utilizzata per l’irrigazione. A livello prototipale svolgerò prima sperimentazioni su singola pianta utilizzando il “water sensor” che potete acquistare per pochi centesimi online. In una fase successiva impiegherò dei sensori di livello che vengono comunemente impiegati in cisterne e controlleremo il riempimento e lo svuotamento della cisterna.

Il “water sensor” misura il livello di conduttività elettrica del liquido, conduttività che sarà funzione della quantità di superficie del sensore immerso.
Nell’acqua ed in generale nei liquidi, il passaggio di corrente è dovuto alla presenza di sali, infatti l’acqua pura non risulta conduttiva.
Le piste parallele di rame presenti sul sensore sono connesse al potenziale positivo e al GND, quando il sensore viene immerso nel liquido viene misurata una differenza di potenziale tra i due poli, d.d.p. che dipenderà dalla quantità di superficie immersa, pertanto al variare della quantità d’acqua varierà il valore di resistenza tra i due potenziali.

Sottolineo che il sensore non è preciso e richiede una taratura iniziale che dipende prevalentemente dall’acqua, inoltre sensori diversi potrebbero fornirvi misure diverse.

Il segnale di uscita del sensore (pin S) verrà inviato su un pin analogico di Arduino e da esso convertito in un valore numerico che oscillerà tra ~ 0 e ~500, pertanto se il sensore non è immerso il valore misurato sarà di circa 0, mentre se sarà totalmente immerso raggiungerà il valore massimo rilevato.

Sul sensore sono presenti 10 piste di rame parallele, connesse in modo alternato, in modo che vi siano 5 piste connesse ad un potenziale alto e 5 piste connesse a GND. E’ presente inoltre un LED che indica quando il sensore viene alimentato.

  • S (Signal): uscita analogica da connettere ad un ingresso analogico di Arduino
  • +Vcc: potenziale positivo dell’alimentazione. Si consiglia di alimentare il sensore con una tensione compresa tra 3,3 V e 5V. Si ricorda che l’uscita analogica del sensore varierà in funzione della tensione di alimentazione del sensore.
  • – : da connettere al GND

Attenzione che il sensore non è progettato per essere completamente immerso, fate in modo che solo le tracce ramate parallele esposte sul PCB vengano a contatto con l’acqua.

Continua a leggere

Raspberry Pi Pico – Blink di un LED esterno

Nel primo post pubblicato sull’uso di Raspberry Pi Pico, avevo concluso il tutorial mostrando come controllare l’accensione del LED sulla scheda, quello connesso alla pin 25. Il passo successivo, molto semplice, in quanto riprende i medesimi passaggi dell’ultimo esempio mostrato, sarà quello di controllare un LED esterno alla scheda.
Ovviamente sappiamo già che in serie al LED dovrà essere inserita una resistenza per controllare la corrente che fluisce nel LED (per approfondimenti consultare il link). Poiché in questo caso la tensione di alimentazione del LED sarà quella disponibile sulla scheda, 3,3 Volt, considerando un LED rosso, con una corrente di funzionamento di 15 mA ed una tensione di soglia di 1,8V, usando la legge do Ohm il valore della resistenza serie dovrà essere di 100 Ohm. Nel caso non abbiate questo valore potrete utilizzare anche i classici valori, 220 Ohm o 330 Ohm, che trovate in un qualsiasi kit di sperimentazione, valori più grandi di resistenza ovviamente faranno emettere a parità di tensione, una luminosità inferiore.

Colleghiamo un reoforo del resistore al pin digitale 15 (GPIO 15), il restante reoforo all’anodo del LED ed il catodo del LED al GND. Di seguito le immagini del Pin Out del PiPico e schema di collegamento:

Prendendo a riferimento il programma in MicroPython del precedente tutorial, andiamo a variare alcune linee di codice. Bisognerà modificare solamente il numero del pin digitale utilizzato:

# Prof. Maffucci Michele
# Blink LED connesso al pin 15
# 10.09.2021

# libreria che permette di utilizzare MicroPython con il RaspyMicro
import machine

# per la gestione del tempo
import utime

#pin 15 dichiarato come OUTPUT
ledEsterno = machine.Pin(15, machine.Pin.OUT)

# loop infinito, while sempre vero, che scrive, ad intervalli di 1 secondo
# sul pin 15 il valore 1 e 0 
while True:
    ledEsterno.value(1)    # imposta il livello logico 1 sul pin 15
    utime.sleep(1)         # lo stato logico 1 viene mantenuto per 1 secondo
    ledEsterno.value(0)    # imposta il livello logico 0 sul pin 15
    utime.sleep(1)         # lo stato logico 0 viene mantenuto per 1 secondo

Buon coding a tutti 🙂

Supporto per PIR HC-SR501

Per la realizzazione della lezione sull’uso del PIR HC-SR501 pubblicato alcuni giorni fa, per lavorare agevolmente con il sensore ho creato un semplice supporto che poi ho stampato in più copie per le sperimentazioni di laboratorio di Sistemi a scuola. Non appena ho pubblicato il post ho ricevuto alcune mail da parte di colleghi e studenti che mi hanno chiesto i sorgenti grafici del supporto.
Potete prelevare i file per la stampa 3D direttamente dalla mia pagina su Thingiverse: PIR HC-SR501 support

Buon makimg a tutti. 🙂