Termoigrometro WiFi

Un sistema che permette la misurazione della temperatura, della CO2 e dell'umidità dell'ambiente in cui viene installato. I dati ottenuti verranno poi inviati ad un foglio Google così da poter poi essere visualizzati e analizzati.

Open source e documentazione

Questo progetto è open source, chiunque può scaricare i file necessari, ricreare il progetto e contribuire al suo miglioramento. Non ci sono restrizioni di licenza d'uso, ma si invita a citare che è stato realizzato dagli studenti ASIRID.

Tutto il materiale necessario si trova su Gitlab.

Specifiche del progetto

Il progetto è nato dall'esigenza di misurare la concentrazione di CO2, la temperatura e l'umidità nell'aria. L'applicazione dei termocarboigrometri all'interno di un determinato ambiente garantisce il controllo delle condizioni ambientali così da mantenerle ottimali per il comfort e la salute. I dati registrati vengono inviati ad un foglio google in modo da monitorare i valori ottenuti. Per il progetto sono state disegnate e successivamente realizzate delle scatole (grazie all'utilizzo di uno stampante 3D) che potessero contenere tutti i circuiti.

A causa di problemi di surriscaldamento della scatola, sono stati realizzati dei fori affinchè questo fenomeno non compromettesse il rilevamento dei dati.

Requisiti HW

Real_Circuit

  • PCB: Printed Circuit Board (per creare il tuo circuito cliccare qui)
  • DHT22 AM2302: Sensore di temperatura e umidità compatibile con Arduino e Raspberry Pi
  • Dallas: sensore di temperatura compatibile con Arduino e Raspberry Pi.

N.B. Bisogna utilizzare solo uno dei due sensori citati sopra.

Topologia

Topology

Vocabulary

  • PCB (printed circuit board): supporto utilizzato per connetteretra loro i vari componenti di un circuito;
  • ESP8266: chip che fornisce connettività ad internet completa;
  • Alimentatore HLK-PM01: alimentatore da 5V, il cui cavo con polarità positiva è collegato al pin Vin dell’ESP8266 mentre il cavo con polarità negativa è collegato al pin GND dell’ESP8266;
  • watchdog: sistema di temporizzazione hardware che permette alla CPU la rilevazione di un loop infinito di programma o di una situazione di deadlock, collegato al pin GPIO2 dell’ESP8266;
  • display: collegato ai pin GPIO5 e GPIO4 dell’ESP8266;
  • sensore di CO2: collegato ai pin GPIO14 e GPIO12 dell’ESP8266;
  • DHT22: sensore di rilevamento di umidità e temperatura relativa, collegato ad una resistenza e al pin GND dell’ESP8266.

Requisiti SW

Passi da seguire per l'implementazione

Il tutto è stato progettato affinchè funzionasse non solo con il sensore DHT ma anche con il sensore Dallas.

  • Scarica ed installa la versione Legacy Arduino IDE (in particolare la 1.8.X) dal seguente link.
  • Avviare Arduino IDE e andare su Library Manager
    • Cercare e installare “DHT sensor library” by Adafruit;
    • Cercare e installare “Arduinojson” by Benoit Blanchon;
    • Cercare e installare “PubSubClient” by Nick O’leary;
    • Cercare e installare "DallasTemperature" by Miles.
  • Installare una board aggiuntiva:
    • File > Preferences > Additional board managers URL > Inserire il seguente link.
  • Per programmare esp8266:
    • Selezionare la board: Tools > Board > esp8266 > NodeMCU 1.0 (ESP 12-E Module)
    • Se l'esp8266 è collegato alla porta seriale, selezionare la porta: Tools > Port > COM(X) (Controllare quale porta(COM4, COM5 ecc.))
    • Quantità di dati che si possono inviare al monitor seriale al secondo: Tools > Upload Speed > 115200
    • Scaricare e installare i driver dal seguente link
    • Cliccare il pulsante upload.

Pagina Web

La pagina web è presente nel file system del dispositivo. Per fare l'upload della pagina web bisogna seguire la seguente procedura:

  • Scaricare il file zip dal seguente link.
  • Nella cartella sketchbook di Arduino, crea la cartella "tools" se ancora non presente;
    • Per trovare questa cartella andare in File > Impostazioni:

Folder_Sketch

  • Decomprimere il file scaricato in precedenza nella cartella "tools";

Il percorso deve essere strutturato in questo modo: <home_dir>/Arduino>/tools/ESP8266LittleFS/tool/esp8266littlefs.jar

  • riavviare Arduino IDE.

Come caricare la pagina Web all'interno del file system?

  • Nella repository deve essere presente una cartella "data" con all'interno i file necessari per la pagina web;
  • Assicurarsi di aver selezionato una board e una porta;
  • selezionare "Tools" > ESP8266 LittleFS Data Upload.

Questo dovrebbe far partire l'upload dei file all'interno del file system di ESP8266. Al termine l'IDE mostrerà l'esito dell'operazione.

Creazione del foglio Google

Per creare un foglio Google seguire la seguente procedura:

  • Creare un foglio Google dove registrare tutti gli Id e i codici dei fogli Google associati.

Google_Sheet

  • Per ogni sensore inserito, creare un nuovo foglio Google sul quale verranno inviati i dati rilevati dal sensore (rinominare la tabella interna da Foglio1 a DataLogger)

Sensor_Register

  • Copiare l’ID del foglio Google: è la parte della URL dopo /d/ come nell’esempio:

https://docs.google.com/spreadsheets/d/1h7zzIc9ryjm5tWCPh5aGSr8_WOio-JH6YVQSFYcgxhE/edit#gid=0

  • Inviare via mail l'ID del sensore e l’ID del foglio copiato

Quando arriverà la risposta, il foglio comincerà a ricevere dati

N.B.: Tutti i fogli Google creati devono essere accessibile e modificali da chiunque.

Collegamento del dispositivo alla rete Wi-Fi
  1. Una volta collegato il sensore alla rete elettrica, sul display compare la scritta “Config Mode” e il nome della rete WiFi generata da esso (es. ESP_XXYY).

  2. Collegarsi alla WiFi generata dal sensore tramite PC o smartphone (non richiede password).

  3. Andare sul Browser e digitare 192.168.1.4 dove comparirà la pagina di configurazione di WiFi Manager in cui inserire l’SSID (Identificativo della rete) e la password della rete WiFi alla quale il sensore devrà collegarsi.

  4. Verrà poi effettuato un reset automatico del sensore e successivamente verrà mostrato sul display il valore di temperatura, umidità, CO2 e l’indirizzo IP del dispositivo.

N.B.: quando il dispositivo non trova la rete a cui è collegato abitualmente, esso dovrà essere di nuovo configurato ad una rete Wi-Fi.

Configurazione dispositivo attraverso la pagina web

Device_configuration_1 Device_Configuration_2

Questa pagina Web ti permette di scegliere:

  • Tipo di sensore di temperatura : inserire 1 se si vuole scegliere il >Sensore Dallas; inserire 0 se si vuole scegliere il Sensore DHT.
  • Presenza sensore CO2 : inserire 1 se il sensore di C02 è presente, in caso contrario inserire 0.
  • Identificativo dispositivo : inserire l'ID del dispositivo.
  • ID Script Google : inserire l'ID del foglio di Google.
  • Prefisso Hostname : inserire il prefisso Hostname mDNS.
  • Frequenza Aggiornamento Google Drive : inserire la frequenza (in secondi) dopo la quale il dispositivo invia i dati al foglio Google.
  • Password di Accesso : password per accedere a questa pagina web.
  • Server MQTT : inserire l'indirizzo IP Broker MQTT.
  • Client ID MQTT : inserire client ID per connessione MQTT.
  • Username MQTT : inserire l'username per accedere al broker MQTT.
  • Password MQTT : inserire la password per acceder al broker MQTT.
  • Topic MQTT : inserire il topic del broker MQTT per la pubblicazione dei dati.
  • Porta MQTT : inserire il numero di porta del broker MQTT.
  • Abilitazione MQTT : inserire 1 se si vuole abilitare l'invio dei dati al broker MQTT; in caso contrario inserire 0.
  • Correzione temperatura : a causa del surriscaldamento del dispositivo, inserire in questo campo il valore di correzione della temperatura.

Stato attuale del progetto

Il progetto è stato pubblicato a Dicembre 2023 ed è attualmente funzionante.

Autori

  • Software: Francesco Sparascio, Giuseppe Tataranni e Giuseppe Guanti.
  • Hardware: Sergio Muccilli, Vito Ciola, Emanuele Vita, Samuele Tordone, Alessandro Pio Sgobio, Domenico Germinara, Federico Draisci, Marco Ricciardelli, Francesco Amoroso e Francesco Rinaldi.
  • Design scatole: Lorenzo Catamo.