DFRobot SEN0644 è un sensore di luce ambiente completamente impermeabile (IP68) che comunica con TapHome tramite RS485 con il protocollo Modbus RTU. Misura l’illuminamento da 0 a 200.000 lux con una risoluzione di 0,01 lux e una precisione di ±5 %, funziona con un’ampia alimentazione da 5 a 32 V DC e opera da −40 a +80 °C, quindi può essere installato all’aperto, nelle serre o nelle officine.
Il template fornisce un unico dispositivo Illuminance di sola lettura in lux, interrogato ogni 15 secondi, con la versione firmware del sensore come attributo di servizio e azioni di servizio per la velocità di acquisizione e la calibrazione. Gli usi tipici sono il rilevamento del crepuscolo per l’illuminazione esterna e la gestione di ombreggiamento o illuminazione in base alla luce diurna. La mappa dei registri e la descrizione del protocollo provengono dalla wiki DFRobot SEN0644.
Collegamento hardware
Montaggio

La testa del sensore si fissa con la filettatura del pressacavo M25×1,5:
| Parametro | Valore |
|---|---|
| Lunghezza filettatura | 10 mm |
| Dimensione del foro | 25 mm |
| Apertura chiave | 33 mm |
| Diametro del cavo | 4–10 mm |
| Lunghezza del cavo | 1 m |
| Grado di protezione | IP68 |
| Temperatura di esercizio | da −40 a +80 °C |
Orienta la finestra trasparente verso la sorgente di luce da misurare e tienila libera da ostacoli. Rimuovi la copertura protettiva dal sensore prima dell’uso. Il sensore è un dispositivo di precisione — non smontarlo.
Cablaggio
Il sensore ha un cavo a quattro fili:
| Colore del filo | Segnale | Descrizione |
|---|---|---|
| Rosso | VCC | Positivo di alimentazione, 5–32 V DC |
| Blu | GND | Massa di alimentazione |
| Giallo | 485-A | Linea dati A RS485 |
| Verde | 485-B | Linea dati B RS485 |
- Collega il filo giallo (485-A) al morsetto A e il filo verde (485-B) al morsetto B del bus RS485 sul TapHome Core (o su una porta del Bus Extender).
- Collega il filo rosso (VCC) e il filo blu (GND) a un alimentatore da 5–32 V DC. Il sensore assorbe meno di 10 mA.
- Il cavo fornito con il sensore è lungo 1 m. Prolungalo in una scatola di derivazione con un cavo a coppia intrecciata.
- Termina il bus a entrambe le estremità della linea. La guida al cablaggio TapHome usa una resistenza da 100 Ω tra A e B; il Core ce l’ha integrata su ogni bus, il Bus Extender su nessuna delle sue porte (vedi Bus Extender — cablaggio e terminazione del bus).
Per il montaggio all’aperto fuori dalla zona di protezione contro i fulmini, o ogni volta che il cavo del bus esce dall’edificio, isola il bus — usa una porta galvanicamente isolata del Bus Extender (Bus 3 o Bus 4) o un isolatore ottico RS485, e alimenta il sensore da un alimentatore separato.
Configurazione
Comunicazione Modbus
Modbus RTU è l’unica interfaccia del sensore e non richiede alcuna attivazione. Le impostazioni di fabbrica corrispondono al template:
| Parametro | Predefinito | Valori ammessi |
|---|---|---|
| Indirizzo slave | 1 | 1–254 (255 è l’indirizzo di comando generale) |
| Baud rate | 9600 bps | 1200, 2400, 4800, 9600, 19200, 38400, 57600 |
| Bit di dati | 8 | 8 |
| Parità | Nessuna | Nessuna, dispari, pari |
| Bit di stop | 1 | 1 |
Il sensore legge i registri con il codice funzione 0x03 e li scrive con il codice funzione 0x06; nei valori a 16 bit il byte alto viene per primo.
In TapHome aggiungi il template su un bus Modbus RTU impostato a 9600 bps, 8 bit di dati, nessuna parità e 1 bit di stop, e inserisci l’indirizzo del sensore nel parametro di importazione Modbus Slave ID (predefinito 1).
Modifica dell’indirizzo o dei parametri seriali
Con più dispositivi sul bus, ognuno deve avere il proprio indirizzo. Indirizzo, baud rate e parità sono gli holding register 0x0064, 0x0065 e 0x0066 ed è meglio impostarli con uno strumento di messa in servizio Modbus durante la prima installazione:
| Registro | Contenuto | Valori |
|---|---|---|
| 0x0064 | Indirizzo del dispositivo | 1–254 |
| 0x0065 | Baud rate | 0 = 1200, 1 = 2400, 2 = 4800, 3 = 9600, 4 = 19200, 5 = 38400, 6 = 57600 |
| 0x0066 | Parità | 0 = nessuna, 1 = dispari, 2 = pari |
Dopo aver modificato l’indirizzo o il baud rate, spegni e riaccendi il sensore. Se l’indirizzo attuale non è noto, leggi i registri 0x0064 e 0x0065 all’indirizzo di comando generale 0xFF — la risposta contiene l’indirizzo reale e il baud rate.
Il sensore dispone anche di un comando di riavvio software (registro 0x00E0) e di un comando di ripristino delle impostazioni di fabbrica (registro 0x00F0; l’esempio del produttore vi scrive 0 all’indirizzo 0xFF). Il ripristino delle impostazioni di fabbrica può modificare anche l’indirizzo e il baud rate, quindi verificali in seguito.
Dopo aver modificato indirizzo, baud rate o parità, adegua di conseguenza le impostazioni del bus in TapHome e il parametro di importazione Modbus Slave ID — altrimenti la comunicazione si interrompe dopo lo spegnimento e la riaccensione.
Funzionalità del dispositivo
Illuminance
Illuminance mostra il livello di luce ambiente misurato in lux. Il valore è un intero a 32 bit senza segno in due holding register consecutivi — 0x0002 (16 bit alti) e 0x0003 (16 bit bassi). Il template li legge entrambi in un’unica richiesta con codice funzione 03 (MODBUSR(H, 2, UInt32), word alta per prima) e divide il valore grezzo per 1000. TapHome lo interroga ogni 15 secondi; il dispositivo è di sola lettura.
Valori tipici indicati dal produttore:
| Situazione | Illuminamento |
|---|---|
| Notte | 0,001–0,02 lx |
| Notte di luna | 0,02–0,3 lx |
| Nuvoloso, al chiuso | 5–50 lx |
| Lettura di un libro | 50–60 lx |
| Nuvoloso, all’aperto | 50–500 lx |
| Soleggiato, al chiuso | 100–1.000 lx |
Il campo di misura del sensore termina a 200.000 lx.
Versione firmware
La versione firmware del sensore è un attributo di servizio di sola lettura del dispositivo Illuminance (registro 0x0067).
Velocità di acquisizione e calibrazione
Il dispositivo Illuminance ha tre azioni di servizio:
- Set acquisition rate — scrive la velocità di acquisizione dell’illuminamento (registro 0x0046), livello 1–20. Valori più bassi aumentano la frequenza di misura.
- Set calibration enable — attiva o disattiva la funzione di calibrazione del sensore (registro 0x0047: 1 = attivata, 0 = disattivata).
- Set calibration compensation — scrive il valore di compensazione della calibrazione (registro 0x0048). Il valore si inserisce moltiplicato per 100: una compensazione di 1,4 si scrive come 140. Il produttore lo calcola come (illuminamento rilevato ÷ illuminamento ambiente reale) × 100 — ad esempio, un valore rilevato di 221 lx con 260 lx reali dà (221 ÷ 260) × 100 = 85.
Risoluzione dei problemi
Nessuna lettura in TapHome
- Controlla il cablaggio A/B: il giallo è A, il verde è B. Le linee A e B invertite sono un errore di installazione frequente sui bus RS485.
- Controlla che il bus non sia scollegato e che la tensione di alimentazione sia compresa tra 5 e 32 V DC.
- Controlla che il parametro di importazione Modbus Slave ID corrisponda all’indirizzo del sensore (predefinito 1) e che il bus usi le impostazioni seriali del sensore (predefinite 9600 8N1).
Lettura pari a zero o troppo bassa
- Controlla che ci sia una sorgente di luce e che la copertura protettiva del sensore sia stata rimossa.
- Controlla che la finestra trasparente sia rivolta verso la luce e non sia ostruita o coperta.
Comunicazione persa dopo lo spegnimento e la riaccensione
Se l’indirizzo o il baud rate sono stati modificati nei registri 0x0064–0x0066, dopo lo spegnimento e la riaccensione il sensore si avvia con i nuovi valori. Adegua di conseguenza il bus in TapHome e il Modbus Slave ID. Se l’indirizzo non è noto, interrogalo all’indirizzo di comando generale 0xFF (registro 0x0064) con uno strumento di messa in servizio Modbus.
