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 30

Cosa 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'IDE

Nel 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

  1. SIG → ESP32-S3: GPIO2Il pin dice all'interruttore quando chiudersi: la corrente del carico passa dall'interruttore, mai dalla scheda.
  2. GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
  3. OUT → ESP32-S3: GPIO1
  4. VCC → ESP32-S3: 5V
  5. GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
  6. SDA → ESP32-S3: GPIO38Il bus dei sensori: ogni modulo I2C condivide questi due pin
  7. SCL → ESP32-S3: GPIO39
  8. VCC → ESP32-S3: 3V3
  9. GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
  10. striscia: + → interruttore: V+
  11. striscia: − → interruttore: OUT−
  12. Alimentatore 12 V: − → interruttore: GNDMassa comune: questo collegamento è obbligatorio.
  13. 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ì