Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS






 




Pagina principale per Raspberry



Informazioni di base




La basetta sperimentale (BDS)


Applicazioni



Librerie e programmi
  • La gestione delle librerie

  • Programmi applicativi
    • Protocollo_I2C
    • I2C_BME280
    • I2C_BME680
    • I2C_ Display_LCD_1602
    • I2C_Display_SSD1306
    • I2C_SGP30-SGP40
    • SPI_RFID_RC522
    • One-wire_18B20
    • DHT11/DHT22
    • Motore_elettrico
    • Servomotore
    • Motore a passo
    • Encoder_Joystick
    • Pulsanti/piccoli_sensori
    • Led
    • Telecamera_OpenCV
    • Gestione_immagini
    • Ingressi_Analogici
    • Display: LCD1602
    • Display: SSD1306 Oled
    • Display: ST7735
    • Ingressi analogici
    • Programmi vari














 








 
















Raspberry PI 3/4/5
Programmi per BME680 e SSD1306

Perm ulteriori informazioni sul sensore BME680, andare alla pagina dedicata.



Come inserire il display SSD1306  e il semsore BME680 sulla BDS

Sia il sensore BME680 che il dispoaly SSD1306 seguono il protocollo I2C, perciò avendo indirizzi interni diversi, possno essere connessi agli stessi GPIO.
BME680 va collegato sul connettore I2C2;
Il display su I2C1.

a6
Il sensore BME680 deve essere collegato sul
connettore I2C2. I jumpers J17 e J18  invece
devono essere scollegati!

s3
La connessione del
display sulla BDS


La creazione dell'ambiente virtuale e l'inserimento delle librerie necessarie

Ipotizziamo che sul desktop del proprio Raspberry si crei una cartella "Projects" e all'interno una sottocartella "ssd680" in cui creeremo l'ambiente virtuale (che chiameremo "680"), le librerie necessarie e i programmi.
Nota: naturalmente i nomi dati alle sottocartelle possono essere variati a piacere. Postulando che si siano create le cartelle indicate, si può iniziare con la programmazione.
Aprire un terminale (la quarta icona in alto a destra) term e digitare quanto segue:
cd Desktop/Projects/ssd680  per spostarsi nella cartella "ssd680 ";
python3 -m venv 680            per creare l'ambiente virtuale "680 ";
source  680/bin/activate         per attivare l'ambiente virtuale: apparirà (680) all'inizio della nuova riga;
s1
s2

Iniziamo a installare le librerie necessarie:
per il display ssd1306: "pip3 install adafruit_circuitpython_ssd1306"
s4
s6
Installazione di Pillow (per la gestione dei font Truetype:
"pip3 install pillow"
s7

Installazione di RPi.GPIO:
"pip3 install RPi.GPIO"
s9

Ed infine, installare la libreria per il sensore BME680: "pip3 install Adafruit_CircuitPython_BME680"
s8
s3

A questo punto, potremo lanciare il primo programma.

Per il secondo programma, sarà necessario installare una ulteriore libreria, gpiozero: "pip3 install gpiozero"
s11
s12
Ora si può lanciare il secondo programma








Altri programmi che usano il sensore BME680:

E ' possibile trovare anche altri programmi per BME680 in altre pagine, perchè abbinati ad altri moduli, come per esempio un display.

Clicca qui per programmi relativi a BME680 presenti nella pagina del sensore BME680

Clicca qui per programmi relativi a BME680 presenti nella pagina di Thingspeak.












Il primo programma: visualizzazione dei dati sul sensore

Questo primo programma visualizza i dati del sensore BME680 (temperatura, umidità, pressione, qualità dell'aria)

Nota:  si ritiene che l'aria in ambiente internoa bbia una buona qualità se il valore è superiore a 50.000 - 100.000 Ohm

s1
Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma in formato testo.

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/ssd280"
e lanciarlo con il seguente comando: "python bme280ssd.py"

Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie.







Il secondo programma: controllo di un condizionatore e di un purificatore d'aria

Questo programma può essere piuttosto interessante: infatti permette di controllare, in modo del tutto automatico, un condizionatore e un purificatore d'aria.
Immaginiamo di possedere un condizionatore con tre funzioni: condizionatore, deumidificatore, pompa di calore.


s1

E' necessario inserire nel programma cinque variabili:
- tmin: temperatura minima. Nel programma è stata impostata a 18°.
- tmax:
temperatura massima. Nel programma è stata impostata a 28°.
- hmax:
umidità massima. Nel programma è stata impostata al 65%.
- gqual: qualità dell'aria. Nel programma è stata impostata a 80.000 Ohm.
- pmin: pressione atmosferica.
Nel programma è stata impostata a 1005 millibar.

5v

Per attuare le informazioni rilevate dal sensore, sono stati inseriti nel programma anche sei  variabili relative  all'accensione di sei led, e all'attivazione di quattro relè, per gestire il condizionatore e il purificatore d'aria:
ledg = LED(12) #led verde. Temperatura e umidità OK.
ledr = LED(19) #led rosso. Temperatura alta. Accendere il condizionatore.
ledb = LED(18) #led blu. Temperatura bassa. Accendere la pompa di calore
ledy = LED(21) #led giallo. Umidità troppo alta. Accedere il deumidificatore.
ledp = LED(5)  #led bianco. Pressione atmosferica bassa.
leda = LED(16) #led arancio. Cattiva qualità dell'aria. Accende il purificatore

6v

Se tutti i parametri sono buoni, si accende un led verde (Led4), ma non si attiva alcun relè.

Nel caso di pressione atmosferica bassa, si accende il led bianco (Led5), ma non si intraprende alcuna attività.
Perciò si possono attivare quattro relè:
- Condizionatore (DG1, GPIO19 - Led1, rosso). Si attiva se la temperauta è troppo alta.
- Pompa di calore (DG2, GPIO18 - Led2, blu).
Si attiva se la temperauta è troppo bassa.
- Deumidificatore (DG3, GPIO21 - Led3, giallo). Il deumidificatore si attiva solamente se non è attivo nè il condizionatore, nè la pompa di calore.
- Purificatore d'aria (AD1A, GPIO16 - led su AD1B, arancio). Si attiva se la qualità dell'aria è scarsa.

Nota 1: quando si utilizzano dei relè, per evitare danni al Raspberry, è necessario utilizzare l'alimentazione esterna, poccegando un alimentatore e cambiando la posizione dei ponticelli (jumper)V3_SEL e V5_SEL da "INT." a "EXT."
Nota 2: al posto di relè singoli, è possibile utilizzare dei relè in batteria, come questi (solo per illustrazione). In questo caso "VCC" andrà collegato a +3v; "GND" a "GND; "R1" a "GPIO19"; "R2" a "GPIO18"; R3 a "GPIO21". "R4" in questo programma non verrà utilizzato.


Attenzione: quando ai relè si collegano degli apparecchi da allacciare alla rete elettrica a 220v, si corrono gravi pericoli, anche mortali! In questi casi rivolgersi sempre a personale esperto e qualificato!


Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma in formato testo.

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/ssd280"
e lanciarlo con il seguente comando: "python bme280ssd.py"

Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie.







Per contatti: etdiy@centroanahata.it