Un semplice controller di temperatura On-Off con Raspberry Pi HAT

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 I2 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

 

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend