# Mi prendo cura di te

In questa esercitazione si descrive come realizzare un piccolo sistema domotico composto da un interruttore crepuscolare (una luce che si accende solo in caso sia buio) e un sensore di temperatura che attiva il riscaldamento in caso di necessità.

## Descrizione del progetto

Il progetto utilizza una fotoresistenza che – collegata in serie a una resistenza da $10~{\text{k}}\Omega$ (partitore di tensione) genera una differenza di potenziale che Arduino legge da un ingresso analogico. Se la fotoresistenza fosse collegata da sola, a prescindere dal suo valore, (che varia in base alla luce che la colpisce) su di lei cadrebbe tutta la tensione. Quando Arduino legge un valore sotto un soglia di luminosità prestabilita ($5~{\text{lx}}$) il led si accende, diversamente rimane spento.
Per la temperatura – invece – si utilizza il sensore LM35, che restituisce un valore analogico pari a $10~{\text{mV/°C}}$, pertanto – leggendo il voltaggio – è possibile ricavare la temperatura.
Per ricevere il valore in gradi Celsius si moltiplica la tensione rilevata per $0,0048875$ ovvero $5/1024$ (tensione massima diviso la risoluzione di Arduino).

## Sensori e attuatori

Il progetto utilizza:
* un fotoresistore che varia la sua resistenza a seconda della quantità di luce che lo colpisce;
* un sensore di temperatura, il quale restituisce una tensione che aumenta all'aumentare della temperatura;
* un potenziometro per poter regolare la luminosità dello schermo LCD.

## Schema di montaggio

La luce che si accende quando la luminosità scende al di sotto dei $5~{\text{lx}}$ viene controllata dal pin 8.
La lampada viene emulata attraverso un diodo led con opportuno resistore da $220~\Omega$ per limitare la corrente. Il fotoresistore funziona grazie a un partitore di tensione con un resistore da $10~{\text{k}}\Omega$; viene alimentato dalla tensione di Arduino di $5~{\text{V}}$ di Arduino e poi collegato al massa.
Attraverso il pin A5, Arduino misura la caduta di tensione che c'è sulla fotoresistenza e – di conseguenza – accende o meno il led. Inoltre troviamo il sensore di temperatura LM35 che modifica la tensione ai suoi capi in base alla temperatura esterna.
A esso corrisponde un led che rappresenta il riscaldamento che si accende al di sotto della soglia di temperatura prefissata. Per concludere, attraverso il display LCD 16x2 collegato ad Arduino si visualizza la temperatura.
Componenti utilizzati :
| Componenti | Q.tà | Tipologia |
| Led | 2 | 1 verde, 1 blù |
| Fotoresitore | 1 | |
| Resistori | 4 | $220~\Omega \times 3$, $10~{\text{k}}\Omega \times 1$ |
| Potenziometro | 1 | $100~{\text{k}}\Omega$ |
| Sensore di temperatura | 1 | LM 35 |
| Schermo LCD | 1 | $16\times 2$ |

## Codice
### Variabili globali e librerie

In questa sezione si includono le librerie e impostano le variabili globali che verranno utilizzate in tutte le funzioni del progetto.

### Inizializzazione del programma

Di seguito il setup che viene eseguito una sola volta, all'avvio del programma (e alla pressione del tasto di reset).

### Ciclo di lavoro

Di seguito il codice che verrà eseguito per gestire il sistema di controllo

## Espansioni suggerite

Per migliorare il progetto attraverso un relè collegato ad Arduino si potrebbe comandare il riscaldamento della propria abitazione.
Inoltre si possono modificare i parametri di soglia secondo le proprie esigenze.