Sensori

Quali sensori si possono usare

Meshtastic e MeshCore supportano diversi sensori, il primo li può anche inviare secondo un timer, mentre il secondo li trasmette solamente quando vengono richiesti in modo da ridurre l’utilizzo del canale radio.

Sensori supportati da Meshtastic

Si consiglia di visitare la pagina ufficiale aggiornata. I sensori in grassetto sono quelli consigliati da noi.

SensoreIndirizzo I2CDati misurati
AHT10, AHT200x38Temperatura e umidità
BMP0850x76, 0x77Temperatura e pressione barometrica
BMP1800x76, 0x77Temperatura e pressione barometrica
BMP2800x76, 0x77Temperatura e pressione barometrica
BME280 (infoacquisto)0x76, 0x77Temperatura, pressione barometrica e umidità
BMP388 (info)0x76, 0x77Temperatura e pressione barometrica
BMP3900x76, 0x77Temperatura e pressione barometrica
BME680 (infoacquisto)0x76, 0x77Temperatura, pressione barometrica, umidità e resistenza dell’aria
DPS3100x76, 0x77Temperatura e pressione barometrica
MCP98080x18Temperatura
INA219 (infoacquisto)0x40, 0x41, 0x43Tensione e corrente
INA2260x40, 0x41, 0x43Tensione e corrente
INA2600x40, 0x41, 0x43Tensione e corrente
INA32210x42Tensione e corrente (3 canali)
LPS220x5D, 0x5CPressione barometrica
SHTC30x70Temperatura e umidità
SHT310x44, 0x45Temperatura e umidità
SHT4X0x44, 0x45Temperatura e umidità
OPT30010x44, 0x45Intensità luminosa
VEML77000x10Intensità luminosa
TSL25910x29Intensità luminosa
LTR390UV0x53Intensità luminosa luce UV
RCWL96200x57Sensore di distanza a ultrasuoni
PMSA003I0x12Unità di concentrazione per dimensione e conteggio delle particelle per dimensione
DFROBOT_LARK0x42Temperatura, pressione barometrica, umidità, direzione del vento, velocità del vento
DFROBOT_RAIN0x1dMisuratore precipitazioni di pioggia
RadSens0x66Radio Dosimeter
MAX301020x57Battito cardiaco, saturazione di ossigeno e temperatura corporea
MLX906140x5ATemperatura corporea
MLX906320x3ATemperatura corporea
NAU78020x2A24-Bit differential ADC for Wheatstone bridge
Sensori supportati da MeshCore

I sensori in grassetto sono quelli consigliati da noi.

SensoreIndirizzo I2CDati misurati
BME280 (infoacquisto)0x76, 0x77Temperatura, pressione barometrica e umidità
INA219 (infoacquisto)0x40, 0x41, 0x43Tensione e corrente
AHTX0Temperatura e umidità
INA3221Tensione e corrente (3 canali + alert)

Come comunicano con la scheda

I sensori comunicano con la scheda tramite il bus I²C (Inter-Integrated Circuit): è una comunicazione seriale molto comune nei microcontrollori, utile per collegare più dispositivi (chiamati slave) a un singolo microcontrollore (il master), usando solo due fili:

  • SCL (clock)
  • SDA (dati)

Questi fili sono condivisi da tutti i dispositivi: quindi si dice che l’I²C è un bus.

Ogni dispositivo I²C ha un indirizzo univoco. Quando il master vuole comunicare con un dispositivo specifico, lo fa indicando il suo indirizzo.

Il problema:
Molti sensori uguali (es. due sensori BME280) hanno lo stesso indirizzo I²C di fabbrica. Quindi se vengono collegati entrambi il microcontrollore non sa a quale dei due sta parlando → si crea un conflitto.

Per evitare problemi si evita di collegare sensori che usano lo stesso indirizzo, oppure si cambia: alcuni sensori permettono di modificare l’indirizzo tramite un jumper o via software. In alternativa sarebbe possibile usare un multiplexer I²C (come il TCA9548A) per separare i canali, ma questa soluzione non è documentata né testata.

Lo schermo OLED, anche se usa l’I²C, in genere ha un indirizzo diverso (es. 0x3C), quindi può coesistere con uno o due sensori, purché tutti abbiano indirizzi unici.

Ma per semplicità, si consiglia di restare entro 1 sensore per tipo (ad esempio un sensore ambientale e uno di potenza).

Come collegarli

Seleziona il tuo modello di scheda per sapere a quali pin collegare i tuoi sensori.

Heltec T114

Il pin SCL del sensore va collegato al GPIO13 (indicato come 0.13 sulla serigrafia), mentre l’SDA va collegato al GPIO16 (indicato 0.16 sulla serigrafia).

LilyGo T3-S3

Il pin SCL del sensore va collegato al GPIO44 (indicato come RXD sulla serigrafia), mentre l’SDA va collegato al GPIO43 (indicato TXD sulla serigrafia).

LilyGo v2.1_1.6

Il pin SCL del sensore va collegato al GPIO22 (indicato come IO22 sulla serigrafia), mentre l’SDA va collegato al GPIO21 (indicato IO21 sulla serigrafia).

Configurazione

Meshtastic

Una volta collegati i sensori, usiamo l’app per abilitare l’invio della telemetria via radio: Impostazioni dispositivo > Telemetry e qui mettiamo la spunta ai diversi tipi di moduli da attivare come Environment (temperatura, ecc) e Power (tensione e corrente). Infine inseriamo gli intervalli relativi all’invio di questi dati via radio (consigliamo non meno di 3600s ovvero un’ora, per evitare di occupare troppo il canale radio).

MeshCore

Una volta collegati i sensori, possiamo usare un secondo nodo per richiedere i dati dal primo.