
La scheda Raspberry Pi Sense HAT è normalmente collegata al connettore a 40 vie del Raspberry Pi. Per interfacciare i componenti esterni al Raspberry Pi, oltre alla scheda Sense HAT, dobbiamo collegare la board Sense HAT al Raspberry Pi utilizzando un cavo ribbon o cavi jumper in modo che sia possibile accedere agli altri pin del Raspberry Pi. Pertanto, dobbiamo sapere quali pin della scheda Sense HAT sono utilizzati da Raspberry Pi e quali pin di Raspberry Pi sono liberi.
La scheda Sense HAT comprende sette componenti principali e una matrice LED. I componenti sulla scheda sono controllati tramite l'interfaccia bus I2C. I componenti principali sulla scheda sono:
Componente | Indirizzo bus I2C | Funzione |
HTS221 | 0x5F | Sensore di umidità |
LPS254H | 0x5C | Sensore di pressione/temperatura |
LSM9DS1 | 0x1C,0x6A | Accelerometro+magnetometro |
SKRHABE010 | – | Joystick |
LED2472G | 0x46 | Controller matrice LED |
LED matrix | – | – |
ATTINY88 | – | Microcontrollore Atmel |
Oltre alle linee di controllo I2C, il microcontrollore ATTINY88 sulla scheda può essere programmato tramite le linee di controllo del bus SPI (MOSI, MISO, SCK, CE0) previste sulla scheda. La scheda Sense HAT può essere collegata al Raspberry Pi utilizzando solo i seguenti 9 pin dei connettori a 40 vie:
Pin della scheda Sense HAT | Pin del Raspberry Pi | Funzione |
3 | 3 (GPIO2) | SDA (I2C) |
5 | 5 (GPIO3) | SCL (I2C) |
1 | 1 (+3.3V) | power |
9 | 9 (GND) | power ground |
2 | 2 (+5V) | power |
16 | 16 (GPIO23) | joystick |
18 | 18 (GPIO24) | joystick |
27 | 27 (ID_SD) | EEPROM |
28 | 28 (ID_SC) | EEPROM |
Come si può facilmente comprendere, questo lascia un gran numero di pin Raspberry Pi liberi di poter essere utilizzati con dispositivi esterni. Il nostro "progetto" di partenza è un controller di temperatura on-off che coinvolge la scheda Sense HAT collegata a Raspberry Pi Zero W per la misurazione della temperatura ambiente. Inoltre, un piccolo buzzer viene collegato a una delle porte del Raspberry Pi. Il valore impostato della temperatura è codificato nel programma. Se la temperatura ambiente è inferiore alla temperatura impostata, il buzzer si attiva e la matrice LED visualizza la temperatura ambiente in rosso. Se, d'altra parte, la temperatura ambiente è superiore al valore di temperatura impostato, il buzzer viene disattivato e la temperatura ambiente viene visualizzata in blu. Il buzzer in questo progetto può essere facilmente sostituito con un relè che può essere collegato per controllare un riscaldatore. Il riscaldatore si accenderà, quindi, se la temperatura ambiente è inferiore al valore impostato. La Figura 1 mostra lo schema funzionale del progetto, mentre la Figura 2 mostra lo schema circuitale. Il buzzer è collegato al pin della porta GPIO4 del Raspberry Pi. Sia il buzzer sia la scheda Sense HAT sono collegati al Raspberry Pi tramite cavi jumper.

Figura 1

Figura 2
Il codice da utilizzare per il programma di controllo tempcont.py è fornito nel Listato 1. È anche scaricabile gratuitamente da [1]. All'inizio del programma vengono importati i moduli richiesti. Il buzzer è assegnato al numero 4 che corrisponderà a GPIO4. Il valore impostato della temperatura è memorizzato nella variabile SetTemperature ed è codificato come 24 nell'esempio.
Il buzzer viene disattivato all'inizio del programma. Il resto del programma viene eseguito in un ciclo infinito. All'interno di questo loop la temperatura ambiente viene letta dalla scheda Sense HAT e questa temperatura viene confrontata con il valore del set point. Se la temperatura ambiente è inferiore al valore impostato, il buzzer viene attivato e la temperatura ambiente viene visualizzata in rosso come senza scorrimento. Se, invece, la temperatura ambiente supera il valore impostato, il buzzer viene spento e la temperatura ambiente viene visualizzata in blu. Il buzzer utilizzato in questo progetto può essere facilmente sostituito con un relè e un riscaldatore per i contatti del relè. Questo deve essere fatto in modo elettricamente sicuro e responsabile in quanto potrebbe coinvolgere la tensione di linea AC. La temperatura ambiente sarà quindi controllata dal programma.
Listato 1: tempcontr.py
#-------------------------------------------------------------- ON-OFF TEMPERATURE CONTROLLER # ----------------------------- # # This is an ON-OFF temperature control project. In this project # a buzzer is connected to port pin GPIO4 of the Raspberry Pi in # addition to the Sense HAT. The Sense HAT is connected using # jumper wires. The buzzer is turned ON if the ambient temperature # is below the setpoint temperature. At the same time, the ambient # temperature is displayed in red colour. If on the other hand the # ambient temperature is higher than the setpoint value then the # buzzer is turned OFF and the display is in blue colour. # # The buzzer in this program can be replaced with a relay for # example to control a heater # # Author: Dogan Ibrahim # Date : March 2020 # File : tempcont.py #-------------------------------------------------------------- from display import Disp # import Disp from sense_hat import SenseHat # import Sense HAT sense=SenseHat() import time # import time import RPi.GPIO as GPIO # import GPIO GPIO.setwarnings(False) # disable warnings GPIO.setmode(GPIO.BCM) # set GPIO mode Buzzer = 4 # Buzzer at GPIO4 SetTemperature = 24 # setpoint temp red = (255, 0 ,0) # red colour blue = (0, 0, 255) # blue colour GPIO.setup(Buzzer, GPIO.OUT) # Buzzer is output GPIO.output(Buzzer, 0) # Buzzer OFF while True: T = int(sense.get_temperature_from_humidity()) # get temperature if(T < SetTemperature): # T < setpoint? Disp(T, red, 0) # display in red GPIO.output(Buzzer, 1) # Buzzer ON else: Disp(T, blue, 0) # display in blue GPIO.output(Buzzer, 0) # Buzzer OFF time.sleep(5) # wait 5 secs
Web link
[1] tempcontrol.py download: www.elektormagazine.com/200191-01
ARTICOLO ORIGINALE IN INGLESE AL LINK: Simple On-Off Temperature Controller with Raspberry Pi HAT | Elektor Magazine
