====== LED ====== ==== Collegare LED RGB a Raspberry Pi ==== Il pin più lungo del LED è il **common**, che sarà un anodo o un catodo a seconda della tipologia del LED. === Verificare la tipologia del LED === * Mettere il multimetro in modalità contatto * Collegare il multimetro al common e a un altro pin qualsiasi * Se il LED si illumina quando il pin common è collegato al cavo di ground, allora il common è un **catodo**. * Se il LED si illumina quando il pin common è collegato al cavo positivo, allora il common è un **anodo** === Forward voltage === Il forward voltage è la quantità di volt che il led assorbe e determina quindi, a parità di resistenza, una corrente maggiore. **Metodo rapido**: Calcolare la resistenza basandosi sul forward voltage minimo fornito dalle specifiche del led **Metodo esaustivo**: Determinare manualmente il forward voltage * Mettere il multimetro in modalità diodo * Collegare il multimetro al common e a uno dei restanti pin RGB * Il valore misurato è il forward voltage per quello specifico colore Esempio\\ Red Vf = 1.8V\\ Green Vf = 2.8V\\ Blue Vf = 2.8V\\ Il voltaggio di alimentazione che dobbiamo fornire al LED deve essere maggiore di ogni forward voltage di un singolo colore.\\ Esempio: VCC = 3.3V (maggiore di 2.8V) Verificare la corrente tipica sulle specifiche del LED.\\ Esempio: I = 25mA = 0.025A (per singolo colore) === Nota === Il raspberry pi 4 supporta ufficialmente massimo 16mA per pin e 50mA in totale.\\ Occorre quindi abbassare la corrente in modo che I < 16mA e 3xI < 50mA\\ Esempio: I = 10mA = 0.01A Notare che dimezzando la corrente la differenza luminosa percepita è in realtà molto piccola === Calcolo della resistenza === Dividere la differenza tra VCC e Vf per l'amperaggio stabilito, ottenendo la minima resistenza necessaria. \\ \\ **Formula**: R = (VCC - Vf) / I Calcolo: * Red R = (3.3V - 1.8V) / 0.01A = 150ohm * Green R = (3.3V - 2.8V) / 0.01A = 50ohm * Blue R = (3.3V - 2.8V) / 0.01A = 50ohm === Collegamento al Raspberry === Collegare a ognuno dei tre pin RGB la relativa resistenza calcolata\\ Attaccare ogni resistenza a un pin GPIO\\ Se il common del LED è un anodo, collegarlo a 3v3\\ Se è un catodo, collegarlo a GND === Installazione software di controllo === Scaricate sul raspberry tutti gli script per led presenti sul git iotaiuto cd $HOME mkdir led_scripts cd led_scripts # posizionare qui i seguenti file: # led_init.sh, led_lib.py, led.py, led_server.py chmod +x led_init.sh cd /etc/systemd/system # posizionare qui i seguenti file: # led.service, led-server.service sudo systemctl daemon-reload sudo systemctl enable led.service sudo systemctl enable led-server.service # riavviare il sistema Spiegazione dei file:\\ led_lib.py è il controllore dei led\\ led_server.py è un listener di rischieste di controllo dei led\\ led.py è un handler per eseguire una richiesta di controllo del led manualmente o tramite home assistant\\ led_init.sh è uno script che monitora lo stato della vpn (e eventualmente di altri servizi) e regola il led di conseguenza\\ === Home assistant script === Modificare il file ~/homeassistant/configuration.yaml aggiungendo: shell_command: led_ok: python ~/led_scripts/led.py ok led_error: python ~/led_scripts/led.py error Vedere il file led.py per ulteriori comandi Restartare home assistant\\ Ora dalla GUI è possibile aggiungere due script che chiamano i servizi appena creati