Luce notturna per le scale con ESP32-S3
Un sensore di movimento e un sensore di luce alle scale: quando qualcuno passa al buio, una striscia LED a 12 V si accende e resta accesa due minuti dopo l'ultimo movimento. Di giorno non succede niente. La striscia va con il suo alimentatore a 12 V attraverso un interruttore MOSFET, mai dalla scheda.
Il programma
Chip BASIC: ogni riga è un'istruzione che leggi e puoi cambiare. Il compilatore lo verifica a ogni rilascio del sito.
REM Luce delle scale
REM @part scale = motion
REM @part luce = bh1750
REM @part interruttore = mosfet
REM @part striscia = ledstrip on=interruttore
10 LET buio = 10 : REM @cfg buio 1..100 Buio sotto (lux)
20 LET minuti = 2 : REM @cfg minuti 1..10 Resta accesa (minuti)
30 IF scale AND (luce.LUX < buio OR acceso = 1) THEN striscia ON : LET acceso = 1 : LET t = TIME()
40 IF acceso = 1 AND TIME() - t > minuti * 60000 THEN striscia OFF : LET acceso = 0
50 WAIT 200
60 GOTO 30Cosa devi vedere: con la luce del giorno la striscia resta spenta anche se qualcuno passa; al buio un movimento la accende, e si spegne due minuti dopo l'ultimo. Nel simulatore abbassa il cursore della luce e clicca il sensore di movimento.
▶ Aprilo nell'IDENel simulatore vedi la logica girare subito, senza hardware. Il simulatore non verifica i cavi: quelli li controlli sulla scheda, e la verifica collegamenti dell'IDE ti guida.
I pezzi
Il compilatore ricava i pezzi dal programma. Per ognuno, la sua pagina ha il programma di prova da usare prima di montare tutto.
- Sensore di movimentoUn sensore PIR: vale 1 quando vede qualcuno muoversi.
- Sensore di luce BH1750Misura quanta luce c'è, in lux: capisce quando fa buio o giorno.
- Driver MOSFETUn interruttore che un pin della scheda accende e spegne, per una pompa, una ventola o una valvola a 12 V.
- Striscia LED 12 VUna striscia di LED bianchi, tutta accesa o spenta: per un armadio, una mensola, una lampada da scrivania.
Collegamenti con ESP32-S3
- SIG → ESP32-S3: GPIO2Il pin dice all'interruttore quando chiudersi: la corrente del carico passa dall'interruttore, mai dalla scheda.
- GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
- OUT → ESP32-S3: GPIO1
- VCC → ESP32-S3: 5V
- GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
- SDA → ESP32-S3: GPIO38Il bus dei sensori: ogni modulo I2C condivide questi due pin
- SCL → ESP32-S3: GPIO39
- VCC → ESP32-S3: 3V3
- GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
- striscia: + → interruttore: V+
- striscia: − → interruttore: OUT−
- Alimentatore 12 V: − → interruttore: GNDMassa comune: questo collegamento è obbligatorio.
- Alimentatore 12 V: + → interruttore: V+Collega l'alimentatore per ultimo, dopo aver controllato ogni filo.
Se non funziona
Cosa puoi cambiare
Quanto è buio lo dice `buio` (riga 10, in lux) e quanto resta accesa `minuti` (riga 20), entrambi cursori nell'IDE. Orienta il sensore di luce lontano dalla striscia. Chiedi all'assistente un secondo sensore di movimento in cima alle scale.
Su quali schede funziona
- ESP32-S3 Freenove: sì
- Nordic nRF54LM20 DK: no: uno dei suoi pezzi non funziona ancora su questa scheda
- Arduino UNO R4 WiFi: sì