Primo progetto: Pannello Informazioni sensori di casa

Ciao!
Attualmente in casa ho 2 sensori, appesi al muro, che misurano temperatura e umidità. Questi sensori sono collegati in bluetooth al loro hub il quale a sua volta è collegato in wifi al router, e tramite l'App proprietaria è possibile visualizzare i dati rilevati anche mentre si è in giro.
Certo, tutto comodo e bello... ma sono comunque "legato" ad usare quella determinata App e non ho modo di personalizzare nulla o quasi.

La mia idea era quella di poter avere un Pannello Informazioni, che poi sarebbe una banale pagina web, raggiungibile quindi da qualunque dispositivo, pc tablet smartphone, la quale posso inoltre personalizzare anche come font, colori, ecc...

Cercando un po' su internet pare che con Arduino e tutti i suoi sensori posso realizzare una cosa di questo tipo, mi confermate?

Ora, non voglio la pappa pronta, per la questione programmazione sia di Arduino che di Php-Html me la dovrei vedere io, al limite torno qui a chiedere aiuto, ma visto che non ho mai nemmeno visto dal vero una scheda Arduino, prima di fare acquisti volevo chiedere a voi di COSA ho bisogno, e quindi spiego nel dettaglio cosa voglio fare:

  • Misurare temperatura, umidità, CO2 della stanza

Ovviamente vorrei riuscire a farlo per ogni stanza della casa, e quindi chiedo anche:

  • Devo dotarmi di un Arduino + sensori per ogni stanza? Oppure basta UN SOLO Arduino e poi banalmente mi basta tirare un cavo per collegare i/il sensori/sensore nelle altre stanza?
    Eventualmente è possibile collegare in bluetooth il sensore con Arduino?

Se tutto va come immagino vorrei alla fine riuscire ad avere una pagina web, opportunamente formattata, di questo tipo:

Data e Ora

INTERNO

 |- Sala
         |- temperatura:    21.8 °
         |- umidità:        45.6 %
         |- CO2:           500.0

 |- Cucina
         |- temperatura:    20.3 °
         |- umidità:        42.9 %
         |- CO2:           546.0 

 |- Camera 
         |- temperatura: ...

Inoltre visto che il tutto è modulare, perché no in futuro magari aggiungere altri sensori, magari per l'Esterno, e magari per visualizzare il Consumo Energetico in tempo reale, la Pressione dell'Acqua dell'impianto

Scusate per la lunghezza, spero di essermi spiegato nel modo migliore.
Grazie in anticipo!!

Ci sono molteplici soluzioni per fare una cosa del genere, dipende dalle tue preferenze.

Come primo consiglio mi sento però di dire, non perdere tempo (e pazienza) con il classico Arduino Uno ed adattatori di rete vari e prendi una scheda che sia già dotata di connettività WiFi oppure Ethernet.

Se prendi una scheda con risorse sufficienti, il webserver puoi integrarlo direttamente nel firmware, ma ovviamente sarà accessibile solo nella LAN locale a meno di non configurare porte sul router e affidarsi ad un servizio di DNS dinamico (soluzione che a me non piace proprio).

Altre opzioni per accedere da remoto devono passare necessariamente da una risorsa esterna, che sia un web server hostato da qualche parte online, un broker MQTT o uno dei diversi servizi IoT disponibili come ad esempio Blynk.

intanto grazie cotestatnt
si nemmeno a me piace il des dinamico... ma infatti pensavo a un qualunque spazio web free, anche da pochissimi MB, che includa un database e php e sono a posto.

quindi cosa dovrei acquistare, per il momento?
intento proprio fisicamente cosa mi serve?

  • Arduino con wifi integrato... modello?
  • Sensore temperatura... modello?
  • Sensore umidità... modello?
  • Sensore CO2... modello?

EDIT:
nn so se qui se ne può parlare, nel caso eliminate pure l'EDIT
ho visto che esistono dei "cloni", ritenuti molto validi, e del tutto compatibili con il programmatore per Arduino e anche con gli stessi sensori-attuatori, consigliati appunti a chi è alle prime armi per un prezzo molto più contenuto.

eventualmente se volete/potete consigliarmi quei prodotti va benissimo, mi affido a voi più esperti.

C'è solo l'imbarazzo della scelta...

Se vuoi stare sui prodotti "originali" Arduino prendi una delle schede IoT disponibili nello store online. Ottimi prodotti, ma dal costo un po' superiore alla media.

Se il budget ha la sua importanza, ci sono millemila dev-board basate sulle MCU della Espressif ESP32 e ESP8266 (Wemos, NodeMCU giusto per citare un paio di nomi dei prodotti che vanno per la maggiore).

Ci sono sensori digitali molto affidabili che sono in grado di misurare queste variabili ambientali (ed altre) in un unica soluzione come ad esempio il Bosch Sensortec BME280.
Anche per questo trovi molte dev-board disponibili online, devi solo stare attento a non prendere l'analogo BMP280 che manca della lettura di umidità.

Soluzione più economica è il DHT22 (che però non legge pressione barometrica), ma molti lamentano inaffidabilità e poca precisione.

Non ho molta esperienza con questo tipo di sensori, ma da una rapida ricerca una possibile opzione molto diffusa potrebbe essere il Sensirion SGP30.

NodeMCU WiFi con CP2102... su un noto sito di eCommerce che inizia per A e finisce con mazon si trova a 9,99€ in effetti
non so se si possono mettere link diretti a quella pagina

e sempre sul noto sito di eCommerce c'è anche il sensore da te citato, BME280, marchiato AZDelivery, che già solo lui costa il doppio della scheda NodeMCU

Comprando quei due singoli prodotti potrei già riuscire a fare qualcosa?

Oppure ho bisogno di altro? Non so, cavi.. adattatori... alimentatori.. ?

Ovviamente ti servira' un'alimentatore per Arduino, e se prevedi di collegarci in futuro altre cose, meglio abbondare con la corrente (se decidi di avere l'alimentazione centralizzata) oppure prevedi alcuni piccoli alimentatori (se vuoi che ogni punto remoto abbia il suo, nel caso ad esempio non potessi tirare cavi per tutta la casa) ... ma soprattutto alimentatori ben filtrati e stabilizzati.

Nel caso volessi optare per le connessioni via cavo e le distanza fossero abbondanti (piu di un metro o due, per capirci), potresti optare per le connessioni in "current-loop", che consentono di trasferire valori analogici (e con i recenti prodotti, anche dati digitali) ed alimentare l'oggetto remoto con soli due fili, anche per tratti molto lunghi di cavo.

Se invece vorrai optare per la connessione dei remoti al master via wifi o ble, dovrai prima testare gli ambienti per essere sicuro che le connessioni possano avvenire senza problemi (non sarebbe il massimo perdere giorni a fare test finche' tutto funziona, solo per accorgersi alla fine che il segnale wifi non arriva pulito o sufficente nel punto in cui poi andra' posizionato il remoto :wink: )

Comunque, personalmente ti suggerirei di procurarti una di quelle schede, un remoto (ESP o qualsiasi altra cosa tu voglia usare) e fare un po di test su un tavolo, finche' non riesci a fargli fare tutto quello che vuoi come vuoi tu, e solo dopo pensare a quanta roba aggiungere extra.

Certo, hai perfettamente ragione, il mio "Progetto" è ovviamente molto piu ampio ma è una cosa che vedevo già per il futuro.
Adesso la mia idea è proprio quella di acquistare la scheda + alimentatore + sensori, mettermi ad un tavolo e fare delle prove e imparare.
In seguito poter aggiungere di volta in volta altri sensori per le varie stanze e eventualmente anche dei moduli per accendere/spegnere/programmare l'avvio della caldaia ad esempio.

Diciamo che poter creare una rete, in tutta la casa, in modo cablato e forse la soluzione ideale (ma correggetemi se sbaglio)
Ovviamente esiste un problema di natura "tecnica", cioè non tutte le stanze hanno la predisposizione per fare passare altri cavi nelle canaline, e un problema di natura "non-tecnica" e cioè IO non ho voglia di mettermi a spaccare e tirare cavi :smiley: (almeno al momento)

Quindi se è possibile, in bluetooth, far comunicare i sensori delle varie stanze alla scheda principale sarebbe la soluzione ideale.

Ora vedo un po' di capire QUALE scheda acquistare, perchè come mi avevate già detto poco prima, ne esistono nMILA...

Ho visto un video su Youtube di un tizio che ha acquistato sul noto sito di eCommerce un kit già "pronto" per una stazione meteo, comprendente l'ESP8266 + BME280 + display OLED (che potrei anche farne a meno), ma non lo trovo piu... quindi dovrò acquistare tutti i pezzi singolarmente.

EDIT:
dopo una ricerca dovrei aver trovato "i pezzi"
non sapendo se posso inserire i link direttamente qui, scrivo il titolo esatto degli oggetti

  • AZDelivery Scheda di sviluppo ESP32 NodeMCU WiFi con CP2102 (modello successivo a ESP8266) compatibile con Arduino
  • ARCELI GY-BME-3.3 Modulo sensore di pressione atmosferica BME280 per Arduino SPI IIC
  • AZDelivery 3 x MQ-135 Modulo Sensore Gas e Qualità dell'Aria compatibile con Arduino

per la scheda ESP32 vedendo che ha solo una microUSB suppongo sia sufficiente un qualunque alimentatore da smartphone/tablet di almeno 1-2 A

con quei 3 pezzi riesco già a fare quello che voglio, almeno per una stanza?
o ci vogliono delle resistenze o altre cose "nel mezzo" ?

Intendi questo? LINK Avresti bisogno solo del sensore di gas mq-135

... ahi, ahi, ahi ... recidivo ... siamo nella sezione ITALIANA !!! :grin:

Guglielmo

Si senza problemi.
L'unica cosa che mi lascia un po' dubbioso è la scelta del sensore GAS perché analogico e lavora a 5V mentre l'ESP32 è una MCU che funziona a 3.3V. Dovrai stare attento a non superare questo limite di tensione per non danneggiare l'ESP32.

Se riesci a trovarlo a prezzi decenti, potresti valutare il BME680 oppure il BME688 che possono leggere oltre a pressione, temperatura e umidità anche la concentrazione di gas e componenti volatili per fare valutazioni sulla qualità dell'aria (etanolo, alcool, monossido di carbonio). Certo non è proprio a buon mercato... sullo store online di Mr. Bezos ne hanno uno disponibile a circa 19€

Io ricordo ancora alcuni anni fa, quando un set di 5 sensori per la qualita' dell'aria (che misuravano ognuno uno dei gas rilevati dal BME688, anche se con precisione un po maggiore) li facevano pagare sui 150 Euro cadauno ... rispetto a quei tempi, si puo dire che quel prezzo puo valerlo :wink:

Adafruit, ad esempio, vende il 688 piu o meno allo stesso prezzo.

Senza dubbio!
Se fosse un progetto mio infatti mi orienterei proprio su quel tipo di sensori senza ripensamenti.

Anche se spendi quei 10/15€ in più per il progetto, sei sicuro del funzionamento e non devi penare con i modulini cinesi da pochi euro.

ah... interessante il BME688...
sul sito di Bezos però trovo solo il 680...

in effetti se si riesce a fare tutto con un solo sensore è tanto di guadagnato, immagino poi che essendo fatto da Bosh nn sia proprio malaccio anzi

ma si, anche 20-30€ solo per il sensore li posso "buttare via", anche se è il primo progetto, da qualche parte devo ben iniziare.
e poi tra il BME280 e l'MQ-135 andavo comunque a spendere 27€ (10+17) quindi...

Su quello di Adafruit trovi il 688 allo stesso prezzo.

si è vero
e da quello che ho capito sono anche buonissime come schede le Adafruit
però... c'è solo quel sito?
perchè quel prezzo non include ovviamente la spedizione ed eventualmente altre tasse doganali

a quel punto altrimenti ordinerei quindi:

  • Adafruit BME688
  • Adafruit Metro ESP32-S2

direttamente da loro

I prodotti Adafruit sono anche distribuiti da Mouser che ha un sito anche per l'Italia.

Guglielmo

Grazie!
Ho visto...

Se ordinassi questi 2:

  • Espressif ESP32-S2-DevKitM-1 (codice Mouser: 356-ESP32-S2DEVKITM1)
  • Adafruit BME688 (codice Mouser: 485-5046)

EDIT:
chiedo scusa se ho già cambiato 3-4 volte i pezzi che voglio prendere... ma essendo un esordiente e non volendo trovarmi con della roba che poi "non funziona" perchè manca qualcosa preferisco essere sicuro prima di comprare

Mi sono arrivati oggi i componenti
Ho voluto provare a vedere se ci capivo qualcosa e ho usato il file di esempio per vedere l'orario via internet, e sono riuscito, anche perchè è a prova di stupido.

Ma adesso sono GIA bloccato...
ho cercato veramente ovunque ma non riesco a capire a quali pin della mia scheda, una Espressif ESP32-S2-DevKitM-1 devo connettere i pin della BME688 di Adafruit...

Dal sito ufficiale Espressif c'è questo schema https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/_images/esp32-s2-devkitm-1-v1-pin-layout.png ma non trovo nessun SCK - SDO - SDI ...

Allora... la dev board ESP32-S2 ha queste definizioni di default (i pin possono essere riassegnati).

static const uint8_t SDA = 8;
static const uint8_t SCL = 9;

static const uint8_t SS    = 34;
static const uint8_t MOSI  = 35;
static const uint8_t MISO  = 37;
static const uint8_t SCK   = 36;

Il BME688 può funzionare sia su bus i2c che su bus SPI.
Generalmente SPI è più veloce, ma richiede un paio di pin in più. Nel tuo caso la velocità non credo faccia alcuna differenza, a te la scelta (anche in funzione della libreria che sceglierai di usare, se sceglierai una libreria).

grazie intanto!!

dove hai trovato quelle informazioni?
così magari per i prossimi progetti evito di chiedere cose così banali...

si ho collegato con i2c, usando i pin 8 e 9 come hai detto tu, poi ho caricato lo sketch base del BME688 e mi mostra correttamente le informazioni sul monitor seriale!!