UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO...

26
UNIVERSIT ` A DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA ”IA Training Camp 2019” MANUALE ESERCITAZIONI Costruiamo una smart-home con Raspberry Pi Autore Paolo Capellacci DOCENTE: Emanuele Lattanzi

Transcript of UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO...

Page 1: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

UNIVERSITA DEGLI STUDI DIURBINO CARLO BO

CORSO DI INFORMATICA APPLICATA

”IA Training Camp 2019”

MANUALE ESERCITAZIONI

Costruiamo una smart-home con Raspberry Pi

Autore

Paolo Capellacci

DOCENTE: Emanuele Lattanzi

Page 2: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Indice

1 Introduzione 1

1.1 Raspberry pi 3 ModelB+ . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Installazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Modalita GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Setup e Configurazioni 6

2.1 Moduli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Connessione SSH e VNC Viewer . . . . . . . . . . . . . . . . . . . . . 6

2.3 Configurazione di rete . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4 Configurazione Video . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Ambienti di sviluppo 12

3.1 Python3 (IDLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2 Thonny Python IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3 Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Applicazioni 15

4.1 Accensione di un LED . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.2 Pulsante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.3 Pulsante e Led . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

INDICE I

Page 3: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

INDICE

4.4 Segnali analogici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.4.1 Sensore di luminosita - fotoresistenza 5516 . . . . . . . . . . . 20

4.4.2 LM35 Sensore di Temperatura . . . . . . . . . . . . . . . . . . 21

Elenco delle figure 21

Bibliografia 22

INDICE II

Page 4: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Capitolo 1

Introduzione

Il Raspberry Pi e un single-board computer sviluppato nel Regno Unito dalla Ra-

spberry Pi Foundation. La scheda e stata progettata per ospitare sistemi operativi

basati sul kernel Linux o RISC OS. E stato sviluppato anche un sistema operativo

appositamente dedicato, chiamato Raspbian.

Il progetto ruota attorno a un system-on-a-chip di fabbricazione Broadcom che

incorpora un processore ARM, una GPU VideoCore IV, e 1 Gigabyte di memoria. Il

progetto non prevede ne hard disk ne una unita a stato solido, affidandosi invece a

una scheda SD per il boot e per la memoria non volatile.

1.1 Raspberry pi 3 ModelB+

Il modello di riferimento e Raspberry Pi 3 Model B+ rappresentato in Figura 1.1

• SoC: Broadcom BCM2837B0 Quad Core Cortex-A53 a 1.4 GHz, 32 kB L1 e 512

kB L2.

• GPU: Broadcom VideoCore IV Dual Core a 400 MHz.

• RAM: 1GB LPDDR2 a 900 MHz.

1

Page 5: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 1 Introduzione §1.2 Installazione

Figura 1.1: Raspberry pi 3 Model B+

• Rete: wireless dual-band a 2,4 GHz e 5 GHz e quello per Bluetooth 4.2 e

Bluetooth Low Energy, Gigabit Ethernet

• Porte: microSD, HDMI 1.4, CEC Jack 3.5 mm, 4xUSB 2.0.

• GPU: Interfacce: CSI Camera Connector, DSI Display Connector, GPIO header

40-pin.

• Dimensioni: 85 x 56 x 17 mm.

1.2 Installazione

Prima di procedere assicurarsi di avere a disposizione sia una scheda sd micro da al-

meno 16GB e possibilmente con buone prestazioni per l’accesso dati, un alimentatore

2

Page 6: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 1 Introduzione §1.3 Modalita GPIO

appropriato da 5V e 3A, un monitor e il relativo cavo HDMI, mouse e tastiera. La

procedura di installazione e reperibile all’url:

https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up/1.

Una volta preparata la scheda con la versione del sistema operativo selezionato, la

si inserisce nell’apposito alloggiamento e si collegano tutti i cavi. Quando appare la

schermata tipica di Raspberry, selezionare un’eventuale rete wifi o utilizzare un colle-

gamento LAN per reperire gli aggiornamenti da internet. Selezionare la distribuzione

consigliata e attendere il completamento del download e il riavvio del dispositivo. Se

siete arrivati sin qui, il dispositivo e pronto.

1.3 Modalita GPIO

Il dispositivo mette a disposizione 40 pin ed essi si possono utilizzare con diverse

configurazioni. La Figura 1.2 mostra lo schema dei pin.

Il GPIO e l’aspetto piu semplice, ma accessibile del Raspberry Pi. I pin GPIO

sono digitali, vuol dire che possono avere solo due stati, spento o acceso. Possono

avere una direzione per ricevere o inviare corrente (input, output rispettivamente)

e questo e tutto completamente controllabile tramite linguaggi di programmazione

come Python, JavaScript, node-RED ed altri. I pin funzionano con una tensione di

3, 3 V e con un assorbimento massimo di corrente di 16 mA. Questo significa che

possiamo alimentare in modo sicuro, da un singolo pin GPIO, tramite un resistore,

uno o due LED.

Per alimentare qualsiasi altra cosa richieda piu corrente, ad esempio un motore

DC, e decisamente necessario usare componenti esterni (come transistor) in modo da

evitare di danneggiare il GPIO. Per controllare il GPIO con Python va, per prima

cosa, importata una libreria di codice scritto in precedenza. La piu comune e diffusa

3

Page 7: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 1 Introduzione §1.3 Modalita GPIO

Figura 1.2: Raspberry-GPIO

e Rpi.GPIO, usata per creare migliaia di progetti sin dagli albori del Raspberry Pi.

In tempi piu recenti e stata introdotta un’altra libreria, denominata GPIO Zero, che

offre un’esperienza piu semplice per chi e nuovo a Python e all’elettronica di base.

Entrambe le librerie sono preinstallate nel sistema operativo Raspbian. Per quanto

riguarda la nomenclatura dei pin GPIO, vi sono vari modi per identificarli; il metodo

piu semplice ed ovvio e sicuramente quello che fa riferimento alla loro posizione fisica.

C’e un altro metodo usato, ed e la numerazione dei pin di Broadcom (BCM)

(GPIO pin numbering) che pero puo sembrare essere caotica, con GPIO17, 22 e 27

che si susseguono con quella che parrebbe una poca riflessione sulla numerazione

logica. In realta la mappatura dei pin BCM si riferisce ai pin GPIO che sono stati

direttamente collegati SoC del Raspberry Pi.

4

Page 8: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 1 Introduzione §1.3 Modalita GPIO

Infine, alcuni pin GPIO hanno anche funzioni secondarie che permettono loro di

interfacciarsi con diversi tipi di dispositivi che usano i protocolli I2C, SPI o UART.

Ad esempio, GPIO3 e GPIO4 sono anche pin SDA e SCL I2C usati per collegare

i dispositivi tramite il protocollo I2C. Per usare questi pin con questi protocolli, e

necessario abilitare le interfacce usando l’applicazione Raspberry Pi Configuration

disponibile nel sistema operativo Raspbian, nel menu Preferenze.

5

Page 9: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Capitolo 2

Setup e Configurazioni

2.1 Moduli

Per configurare l’ambiente in modo da poter eseguire gli esempi utilizzati in questo

corso sara necessario aggiungere il modulo spidev utile alla gestione dell’interfaccia

SPI di comunicazione digitale. Per semplificare la procedura e possibile utilizzare il

gestore dei pacchetti pip. Lanciando il seguente comando pip3 install spidev si

ottiene l’installazione del modulo.

2.2 Connessione SSH e VNC Viewer

Per utilizzare Raspberry da un’altra postazione o eventualmente da remoto si puo fare

uso del protocollo SSH o dell’app VNC Viewer. Prima di effettuare una connessione

ssh e necessario abilitare il servizio dal menu/configuration/interfaces ed abiltare il

servizio SSH. Figura 2.1.

Per quanto riguarda SSH, nel caso si utilizzi una macchina Linux o Mac, e suf-

ficiente un comando da terminale ssh [email protected] dove 192.168.xxx.xxx

rappresenta l’indirizzo di rete di Raspberry. Alla prima connessione viene inviato un

messaggio che chiede se vogliamo condividere le chiavi per la connessione, digitan-

6

Page 10: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 2 Setup e Configurazioni §2.2 Connessione SSH e VNC Viewer

Figura 2.1: Pannello per abilitare le connessioni ssh in entrata

do yes si conferma ed il prompt dei comandi mette a disposizione le risorse della

macchina Raspberry. Figura 2.2.

Figura 2.2: Connessione da terminale per la connessione in ssh

7

Page 11: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 2 Setup e Configurazioni §2.3 Configurazione di rete

Volendo utilizzare una macchina Windows sara necessario usare un’applicazione

per la comunicazione secondo il protocollo ssh, come, ad esempio, PuTTY che non

necessita di una installazione. Dopo aver inserito l’indirizzo della macchina e cliccato

su connetti, viene chiesto il nome utente e la password, come al solito alla prima

connessione la conferma delle chiavi. La Figura 2.3 mostra la configurazione per la

connessione.

Figura 2.3: App PuTTY

Per una connessione con desktop remoto si puo far uso di VNC Viewer dato che,

su Raspberry, l’applicazione server e gia istallata di default.

Per il download usare l’url: https://www.realvnc.com/en/connect/download/viewer/

La Figura 2.5 mostra la videata per la connessione, mentre la Figura 2.6 mostra il

desktop remoto connesso.

2.3 Configurazione di rete

Di default Raspberry e configurato per accettare un indirizzo dal DHCP del router.

Nel caso volessimo assegnare alla scheda un indirizzo statico, con il comando sudo

nano /boot/cmdline.txt si puo modificare il file ed aggiungere il nuovo indirizzo, per

esempio ip=192.168.1.10, alla fine del file. Affinche la modifica possa avere effetto

sara necessario riavviare la scheda Raspberry. Nota: Assicurarsi che L’indirizzo sia

libero nella maschera di rete in cui ci colleghiamo per non dare luogo a conflitti.

8

Page 12: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 2 Setup e Configurazioni §2.4 Configurazione Video

Figura 2.4: Videata per la configurazione della connessione

2.4 Configurazione Video

Per modificare la risoluzione del monitor, con il comando sudo nano /boot/config.txt

aprire il file e decommentare le righe

framebuffer width=1024

framebuffer height=768

all’occorrenza modificare i valori della risoluzione orizzontale e verticale a piacere. Poi

salvare e riavviare.

9

Page 13: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 2 Setup e Configurazioni §2.4 Configurazione Video

Figura 2.5: Videata dell’app VNC Viewer

10

Page 14: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 2 Setup e Configurazioni §2.4 Configurazione Video

Figura 2.6: Desktop remoto connesso con VNC Viewer

11

Page 15: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Capitolo 3

Ambienti di sviluppo

3.1 Python3 (IDLE)

Tramite questa applicazione e possibile editare un file python3 e, lanciando il comando

Run/Run Module, eseguire l’applicazione. All’avvio si aprira una seconda finestra che

gestira l’input/output dell’applicazione. Figura 3.1

Figura 3.1: IDE per programmare in python3

12

Page 16: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 3 Ambienti di sviluppo §3.2 Thonny Python IDE

3.2 Thonny Python IDE

Un’alternativa e Thonny Python IDE che mette a disposizione un’interfaccia piu ricca

poiche comprende il prompt dei comandi ed un riquadro per l’ispezione delle variabili

e delle funzioni che vengono richiamate durante l’esecuzione del programma. Figu-

ra 3.2

Figura 3.2: Thonny Python IDE

13

Page 17: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 3 Ambienti di sviluppo §3.3 Bash

3.3 Bash

Per una programmazione piu a basso livello si puo optare per un utilizzo tramite

terminale usando comandi bash. Prima di iniziare assicurarsi che l’utente appartenga

al gruppo gpio e per farlo servirsi del comando

groups

il comando fornisce un output simile:

pi adm dialout cdrom sudo audio video plugdev games users input netdev

gpio i2c spi

per attivare il pin 22

echo 22 > /sys/class/gpio/export

per definire la modalita input o output

echo out > /sys/class/gpio/gpio22/direction

1 per assegnare il valore di un’uscita a 5v, 0 per assegnare 0V

echo 1 > /sys/class/gpio/gpio22/value

Figura 3.3: Thonny Python IDE

14

Page 18: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Capitolo 4

Applicazioni

Per le esercitazioni si e fatto uso delle guide reperibile all url:

https://projects.raspberrypi.org/en/projects/physical-computing

dove si utilizza la libreria gpiozero reperibile all’url:

https://gpiozero.readthedocs.io/en/stable/

4.1 Accensione di un LED

Un qualsiasi led deve essere collegato, con una resistenza in serie, tra la massa (pin n.6

GND) ed una qualsiasi porta GPIO. In questa esercitazione e stato scelto il GPIO4 che

corrisponde al pin n. 7. La resistenza, nell’ordine delle centinaia di Ohm, serve a limi-

tare la corrente che attraversa il led evitandone il surriscaldamento ed eventualmente

la fusione.

# d i c h i a r a r e i modul i da impor tarefrom gpiozero import LEDfrom time import sleep

#d i c h i a r a r e una v a r i a b i l e con i l p in d i r i f e r imen t o per i l l e dled = LED(4)

# d e f i n i r e un c i c l o wh i l e per accendere e spegnere i l l e dwhile True:

# accendere i l l e d

15

Page 19: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 4 Applicazioni §4.1 Accensione di un LED

Figura 4.1: Configurazione per il collegamento del led, con un resistore da 220 Ω

led.on()

# i n s e r i r e una pausa d i mezzo secondosleep(0.5)

# spegnere i l l e dled.off()

# i n s e r i r e una pausa d i mezzo secondosleep(0.5)

16

Page 20: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 4 Applicazioni §4.2 Pulsante

4.2 Pulsante

Un qualsiasi pulsante normalmente aperto puo essere collegato tra la massa (in questo

caso pin n. 14 GND) ed una qualsiasi porta GPIO. In questo esercizio e stata scelta la

porta GPIO21 corrispondente al pin n. 40. I pin GPIO sono configurati di default con

resistenza di pull-up attivata. Per generare un interrupt quindi sara necessario portare

il pin al valore zero connettendolo alla massa. La funzione wait for press() della

classe Button blocchera il programma in attesa dell’interrupt sul pin designato. Alla

pressione del pulsante l’interrupt sblocchera l’esecuzione e verra finalmente eseguita

l’istruzione print("You pushed me").

Figura 4.2: Configurazione per il collegamento di un pulsante

# d i c h i a r a r e i modul i da impor tarefrom gpiozero import Button

# d i c h i a r a r e una v a r i a b i l e per i l p u l s an t e ed i l p in a s s o c i a t obutton = Button(21)

# met tere i l programma in a t t e s a che i l p u l s an t e venga premutobutton.wait for press()

# i n s e r i r e un messagg io a l l a p r e s s i on e d e l p u l s an t eprint(’You pushed me’)

17

Page 21: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 4 Applicazioni §4.3 Pulsante e Led

4.3 Pulsante e Led

Figura 4.3: Configurazione per il collegamento di un led e di un pulsante

# d i c h i a r a r e i modul i da impor tarefrom gpiozero import LEDfrom gpiozero import Buttonfrom time import sleep

# d i c h i a r a r e d e l l e v a r i a b i l i per i l l e d ed i l p u l s an t eled = LED(17)button = Button(21)

while True:

button.wait for press()# accendere i l l e dled.on()# at t endo 2 second isleep(2)# spegnere i l l e dled.off()

18

Page 22: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 4 Applicazioni §4.4 Segnali analogici

4.4 Segnali analogici

Raspberry non possiede un convertitore analogico digitale (ADC) pertanto, per ac-

quisire segnali analogici sara necessario utilizzare sistemi ADC esterni. In questa

esercitazione utilizziamo una ADC del tipo MCP3008 che converte i segnali analogici

in segnali digitali campionando a 200.000 campioni al secondo e con una risoluzione di

10 bit per campione. I valori digitalizzati vengono trasmessi al Raspberry tramite la

porta digitale SPI. I valori analogici vengono convertiti nell’intervallo [0.0, 1.0] dove

1 corrisponde alla tensione di alimentazione (nel nostro caso 3.3V). Il chip MCP3008

e stato collegato alle porte GPIO8, GPIO9, GPIO10 e GPIO11 che implementano la

comunicazione SPI.

Figura 4.4: Integrato MCP3008, per convertire un segnale analogico in digitale

19

Page 23: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 4 Applicazioni §4.4 Segnali analogici

4.4.1 Sensore di luminosita - fotoresistenza 5516

Una fotoresistenza e una resistenza con la particolarita di essere sensibile alla luce. Il

suo valore in Ohm e inversamente proporzionale alla quantita di luce che lo colpisce,

cioe diminuisce man mano che aumenta la luminosita, e la corrente elettrica che

l’attraversa e proporzionale all’intensita luminosa, cioe aumenta all’aumentare della

quantita di luce alla quale viene esposta. In genere tale tipo di resistore viene utilizzato

per creare interruttori crepuscolari, cioe attivabili con il calare della luce solare, e

disattivabili al sorgere del sole, naturalmente possono essere utilizzati in migliaia di

applicazioni diverse.

La fotoresistenza e stata collegata tra la massa (pin n. 6 GND) e 5V (pin n. 2,

5V) tramite una resistenza da 100 KΩ ed il suo valore misurato tramite il canale n.

2 dell’ADC (MCP3008)

# Sensore l um ino s i t \ ‘ a# importo i modul ifrom gpiozero import MCP3008from time import sleep

#de f i n i s c o una v a r i a b i l e per i l p in d e l s ensoreluminisita = MCP3008(2)

# de f i n i s c o un c i c l o wh i l e per i l l oopwhile True:

valore = luminosita.value

print("Luninosita: ", valore)

sleep(1)print(" ")

20

Page 24: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Cap. 4 Applicazioni §4.4 Segnali analogici

4.4.2 LM35 Sensore di Temperatura

L’LM35 permette di misurare temperature comprese nell’intervallo [-55C; 150C]

restituendo valori in tensione, dove ogni 10mV di tensione corrispondono ad un grado

centigrado. Quindi, con la temperatura di 20 gradi si avranno 200mV = 0.2V. Poiche

l’MCP3008 restituisce valori nell’intervallo [0,1], moltiplicando il valore campionato

per 3.3, la tensione di alimentazione di MCP3008, avremo la tensione espressa in Volt.

Moltiplicando ancora per 100 avremo la temperatura in gradi centigradi. tempC

= (valore * 3.3 * 100)

Moltiplicando la temperatura in gradi centigradi per 1.8 e aggiungendo 32 si ha

temperatura gradi in Fahrenheit. tempF = (tempC * 3.3 * 100)

# Sensore temperatura# importo i modul ifrom gpiozero import MCP3008from time import sleep

#de f i n i s c o una v a r i a b i l e per i l p in d e l s ensoresensore = MCP3008(0)

# de f i n i s c o un c i c l o wh i l e per i l l oopwhile True:

valore = sensore.valueprint("Valore: ", valore)

votls = valore ∗ 3.3print("Volts: ", volts)

tempC = (volts ∗ 100)tempF = tempC ∗ 1.8 + 32)print("Temperatura: ", tempC, " C ", tempF, " F")

sleep(1)print(" ")

21

Page 25: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Elenco delle figure

1.1 Raspberry pi 3 Model B+ . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Raspberry-GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1 Pannello per abilitare le connessioni ssh in entrata . . . . . . . . . . . 7

2.2 Connessione da terminale per la connessione in ssh . . . . . . . . . . 7

2.3 App PuTTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4 Videata per la configurazione della connessione . . . . . . . . . . . . . 9

2.5 Videata dell’app VNC Viewer . . . . . . . . . . . . . . . . . . . . . . 10

2.6 Desktop remoto connesso con VNC Viewer . . . . . . . . . . . . . . 11

3.1 IDE per programmare in python3 . . . . . . . . . . . . . . . . . . . . 12

3.2 Thonny Python IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3 Thonny Python IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.1 Configurazione per il collegamento del led, con un resistore da 220 Ω 16

4.2 Configurazione per il collegamento di un pulsante . . . . . . . . . . . 17

4.3 Configurazione per il collegamento di un led e di un pulsante . . . . . 18

4.4 Integrato MCP3008, per convertire un segnale analogico in digitale . 19

22

Page 26: UNIVERSITA DEGLI STUDI DI URBINO CARLO BO · 2019. 9. 11. · UNIVERSITA DEGLI STUDI DI URBINO CARLO BO CORSO DI INFORMATICA APPLICATA "IA Training Camp 2019" MANUALE ESERCITAZIONI

Bibliografia

[1] Paolo Capellacci, “Esercitazioni Raspberry”, Universita di Urbino, 2019.

23