Introduzione

Costruisci il tuo sensore airRohr fai da te e diventa parte della rete globale che produce dati aperti con tecnologie civiche.

Con airRohr puoi misurare l'inquinamento in autonomia. Con software libero licenza GNU GPL 3.0, caricando i dati con licenza Database Contents License (DbCL) v1.0 su sensor.community.


Per l'installazione, oltre ad i componenti sono necessari:

  • un PC
  • un saldatore a stagno, opzionale (serve solo se si compra un sensore BME280 senza pin saldati)

La prima volta l'installazione di norma si completa in un'oretta.


Per il funzionamento quotidiano sono necessari:

  • una connessione wireless ad internet sempre attiva (ti consigliamo di creare una rete apposita per il dispositivo se il tuo access point lo permette)
  • una presa di corrente elettrica a 220 V
I principali componenti del kit

Lista della spesa

Componenti in kit

Il kit completo è venduto in Europa solo da un e-commerce polacco:

Componenti singoli

I singoli componenti sono ordinabili da vari e-commerce, di norma in lingua inglese: per una lista con riferimenti aggiornati consulta la versione inglese di questa guida. Di norma servono:


  • 1 x scheda NodeMCU ESP8266 V3 (o V2)
  • 1 x sensore SDS011 di particolato (polveri sottili) PM2.5 e PM10
  • 1 x sensore BME280 temperatura, umidità e pressione atmosferica
  • 8 x cavi Dupont femmina-femmina 40cm (per collegamento scheda e sensori)
  • 1 x cavo micro-USB (da meno di 1m, per installazione software)
  • 1 x cavo micro-USB (possibilmente piatto, da 2m o più, per alimentazione)
  • 1 x caricabatterie USB 5V 2 A (per alimentazione)
  • 2 x fascette piccole (per collegare scheda e sensori)
  • 1 x tubicino flessibile, possibilmente non trasparente, diametro 6 mm, lunghezza circa 20 cm, per aspirare l'aria da misurare (si trova in negozi per il fai da te)
  • 2 x giunzioni tubo a 90 gradi (meglio con guarnizione), diametro interno 75 mm, per il riparo dalle intemperie (si trovano nei negozi di materiale per edilizia)
  • 2 x fascette grandi, opzionali (per esempio per collegare tubi ad un palo di sostegno)
  • 1 x rete anti-zanzare, opzionale (per proteggere le estremità dall'ingresso di insetti)

Se decidi di comprare i pezzi online, la spedizione potrebbe richiedere diversi giorni o settimane.

Chiedi ai laboratori locali

Puoi anche provare a contattare un laboratorio locale (local lab) vicino a dove vivi, che potrebbe avere dei kit disponibili o darti indicazioni aggiornate. Cerca nella mappa centrata sull'Italia.

Driver e Firmware

Il firmware è preparato dal nostro progetto, ed è rilasciato con una licenza di software libero: GNU GPL 3.0.

Per avere un sensore funzionante devi solo installare i driver sul tuo PC, e poi installare il firmware sulla scheda NodeMCU.

È probabile che il tuo sistema operativo richieda dei driver per la comunicazione seriale su USB per interagire con la scheda NodeMCU.

Il circuito sulla scheda NodeMCU per la versione V3 è chiamato CH341, per la versione V2 è chiamato CP2102. Guarda con attenzione la tua scheda per trovare la versione esatta.

Poi scarica i driver corrispondenti, seguendo le istruzioni qui sotto.

Windows

Driver NodeMCU V3-CH341

  • Scarica per Windows - Windows 10 dovrebbe scaricarli automaticamente

Apri la directory CH341SER e clicca due volte sul setup dell'applicazione.

Driver NodeMCU V2-CP2102

Apri la directory CP210x e clicca due volte sull'applicazione CP210xVCPInstaller_x64 (o x86).

MacOS

Driver NodeMCU V3 (CH340/CH341)

  • Scarica NodeMCU V3.
  • Scompatta CH341SER e clicca due volte sul setup dell'applicazione.
  • Riavvia il tuo computer.

Driver NodeMCU V2 (CP2102)

  • Scarica NodeMCU V2.
  • Scompatta CP210x e clicca due volte sull'applicazione CP210xVCPInstaller_x64 (o x86).

Linux

Non servono driver da installare. La scheda NodeMCU è riconosciuta automaticamente. Per conferma, dando il comando:

sudo dmesg

dovresti vedere qualcosa di simile a:

usb 3-1: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-1: Product: FT232R USB UART
usb 3-1: Manufacturer: FTDI
usb 3-1: SerialNumber: XXXXXXXX
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
ftdi_sio 3-1:1.0: FTDI USB Serial Device converter detected
usb 3-1: Detected FT232RL
usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB0

Installazione Firmware

Con interfaccia grafica

airRohr Flashing Tool supporta diversi sistemi operativi: Windows, MacOS e Linux.

Connetti la scheda NodeMCU al tuo computer con un cavo micro-USB (meglio se più corto di un metro, altrimenti l'installazione potrebbe fallire).

Seleziona il file del firmware chiamato latest_it.bin (it sta per italiano), e clicca "Carica" (Upload).

Attendi fino alla fine del processo.

Alternativa da linea di comando

Per le persone esperte, è possibile evitare di scaricare decine di MB di software con interfaccia grafica, ed installare il tutto in poche decine di secondi con i seguenti comandi da terminale:

# get esp firmware in home
cd
wget http://firmware.sensor.community/airrohr/update/latest_en.bin
wget http://firmware.sensor.community/airrohr/update/latest_en.bin.md5
wget http://firmware.sensor.community/airrohr/update/latest_it.bin
wget http://firmware.sensor.community/airrohr/update/latest_it.bin.md5

# check the firmware (unfortunately the md5sum is not in the standard, easy to --check format)
md5sum latest_it.bin | cut -d ' ' -f 1 | xargs -I X egrep -q '^X$' latest_it.bin.md5 && echo OK || echo KO

# unsecure shortcut to write to the esp* device
sudo chmod 777 /dev/ttyUSB0

# install esptool with pip
mkdir -p .virtualenvs
python3 -m venv .virtualenvs/esptool
.virtualenvs/esptool/bin/pip install esptool
# show the help page
.virtualenvs/esptool/bin/esptool.py --help

# flash the esp* device
.virtualenvs/esptool/bin/esptool.py --port /dev/ttyUSB0 erase_flash
.virtualenvs/esptool/bin/esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect -fm dio 0 latest_it.bin

Il risultato dovrebbe essere qualcosa di simile a:

$ .virtualenvs/esptool/bin/esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: XX:XX:XX:XX:XX:XX
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 7.5s
Hard resetting via RTS pin...

$ .virtualenvs/esptool/bin/esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect -fm dio 0 latest_it.bin
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: XX:XX:XX:XX:XX:XX
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 522784 bytes to 365381...
Wrote 522784 bytes (365381 compressed) at 0x00000000 in 8.2 seconds (effective 510.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Controllo installazione firmware

È consigliabile controllare subito che il firmware sia installato correttamente.

  • Fare una scansione delle reti wireless
  • Si dovrebbe trovare una rete wireless dal nome airRohr-XXYYZZ, dove XXYYZZ è il codice ChipID della scheda
  • Collegarsi alla rete wireless dal nome airRohr-XXYYZZ
  • Aprire un browser all'indirizzo: http://192.168.4.1/
  • Si dovrebbe vedere un modulo di configurazione da completare in un successivo momento
  • Chiudere il browser, staccare il cavo micro-USB e proseguire oltre

Questo controllo conferma che la scheda NodeMCU è funzionante. Se nei passi successivi la scheda non si dovesse accendere o la rete non risultasse visibile sarà chiaro che la causa del problema è da ricercare nel collegamento dei sensori.

Controllo da linea di comando

$  .virtualenvs/esptool/bin/esptool.py --port /dev/ttyUSB0 --after hard_reset chip_id
# [output removed]
# [Note that "Chip ID" is the hex version of the decimal ID: XXYYZZ]
$ picocom --quiet --baud 9600 /dev/ttyUSB0
...
output debug text to displays...
Starting WiFiManager
AP ID: airRohr-XXYYZZ
Password:
scan for wifi networks...
AP Password is:
Starting Webserver... (IP unset)

Premi C-a C-x per uscire da picocom.

Assemblaggio

âš  Nota importante

Prima di procedere con l'assemblaggio installa il firmware!

NodeMCU V3

Questa parte delle istruzioni si riferisce alla scheda NodeMCU V3. Questa versione si riconosce facilmente nel disegno dai connettori VU e GND:

Copyright: roman-minyaylov, MIT License

A lavoro finito dovresti avere una cosa del genere:

Cablaggio dell'SDS011

I pin del sensore SDS011 sono più piccoli del normale. Puoi rendere più stabile l'incastro facendo un po' di pressione sulla parte metallica del connettore Dupont con la punta di un cacciavite prima di connetterlo.

Assicurati che i cavi si inseriscano bene nei pin, perché lo spazio fra i pin è troppo ampio ed i cavi potrebbero inavvertitamente inserirsi nel mezzo.

I pin sono numerati da destra a sinistra.

SDS011 Pin 1 -> Pin D1 / GPIO5
SDS011 Pin 2 -> Pin D2 / GPIO4
SDS011 Pin 3 -> GND
SDS011 Pin 4 -> non usato
SDS011 Pin 5 -> VU (NodeMCU v3) / VIN (NodeMCU v1,v2)
SDS011 Pin 6 -> non usato
SDS011 Pin 7 -> non usato

Saldatura dei pin per BME280

Se il BME280 non ha i pin già saldati, occorre saldarli con un saldatore a stagno.

Metti i pin sulla scheda BME280. Salda i pin dal rovescio della scheda. Gli spazi fra i pin sono piccoli, sii paziente e presta attenzione.

Un trucco per saldare a stagno. Appoggia la punta del saldatore sul pin, scaldarlo un po' e poi applica lo stagno sul pin, senza toccare il saldatore direttamente.

Cablaggio per BME280

I pin sono numerati da sinistra a destra.

VIN -> Pin 3V3 (3.3V)
GND->  GND/G
SDA -> PIN D3
SCL -> Pin D4

Mettere tutto assieme

Lega NodeMCU e SDS011

Usa una fascetta per legare la scheda NodeMCU ed il sensore SDS011 in modo che l'antenna wireless sia dal lato opposto al sensore.

Connetti il tubicino flessibile

  • Connetti il tubicino flessibile al sensore SDS011
  • Usa la fascetta per legare (senza stringerla del tutto) il sensore BME280 al tubicino
  • Collega il cavo micro-USB per l'alimentazione
  • Tieni il sensore SDS011 con la ventola in basso e la scheda NodeMCU in alto

Inserisci il sensore nel tubo

  • Metti il sensore in un tubo, dovrebbe incastrarsi facilmente
  • Il cavo micro-USB ed il tubo flessibile dovrebbero sporgere dall'altra estremità del tubo

Chiusura finale

  • Chiudi assieme i due tubi
  • Prendi la misura e taglia il tubicino flessibile in modo che non sporga dal tubo una volta in posizione definitiva
  • Posiziona il sensore BME280 sul tubicino flessibile al limite del bordo del tubo
  • Stringi la fascetta posizionata al punto precedente per legare il BME280 al tubicino
  • Opzionale: copri le estremità dei tubi con un telo da zanzariera

Configurazione

Trova il ChipID della scheda NodeMCU

  1. Connetti la scheda al cavo micro-USB di alimentazione.

  2. La scheda NodeMCU, non avendo ancora una configurazione definitiva, creerà una rete wireless dal nome airRohr-XXYYZZ dove XXYYZZ rappresenta il ChipID in formato decimale.

    Annota questo numero, sarà necessario per la registrazione successiva

  3. Connetti il tuo PC alla rete wireless airRohr-XXYYZZ.

    âš  Nota Se stai usando un dispositivo Android che presenta problemi, prova a disattivare nel menu Connessioni -> WiFi -> Avanzate l'opzione Network switch intelligente

  4. Apri il tuo browser all'indirizzo IP http://192.168.4.1/

    ⚠ Nota La scheda non sarà più raggiungibile all'indirizzo IP 192.168.4.1 dopo il salvataggio di una configurazione di rete funzionante. Se la configurazione caricata non è corretta (per esempio a causa di password sbagliata) dopo alcuni minuti la scheda ripristinerà questa configurazione iniziale e sarà disponibile per un nuovo tentativo.

Configurazione della scheda NodeMCU

  1. Nella pagina di "Configurazione" inserisci il SSID (nome della rete wireless) e la chiave (password) della rete.

  2. Se stai usando i sensori con la configurazione suggerita in questa guida, non sono necessarie ulteriori configurazioni.

  3. Clicca il pulsante "Salva configurazione e riavvia". La scheda disattiverà la rete airRohr-XXYYZZ e non sarà più disponibile all'IP 192.168.4.1.

    ⚠ Nota Puoi trovare l'indirizzo della scheda all'interno della tua rete consultando la lista dei dispositivi connessi al tuo access point o facendo uno scansione dei dispositivi nella rete o con la funzionalità "Discovery" di airrohr-firmware-flasher (vedi oltre nella sezione "Risoluzione dei Problemi").

Verifica della configurazione

Se hai seguito correttamente i passi al punto precedente la scheda NodeMCU inizierà a registrare dati e a caricarli.

Puoi verificare che tutto sia configurato correttamente dopo circa una decina di minuti.

Connettiti alle seguenti pagine e cerca il tuo ChipID.

Registrazione

Creazione di un account utente

Vai a devices.sensor.community e crea un account e diventa parte della rete di raccolta di dati aperti.

Registrazione del dispositivo

Una volta creato l'account ed effettuato l'accesso potrai registrare il tuo dispositivo.

Completa il modulo per registrare il tuo dispositivo.

Vai a Home -> (Login) - Sensors -> Register new sensor e ti saranno chiesti:

  • il sensor ID ovvero il ChipID della scheda NodeMCU precedentemente annotato
  • il tuo indirizzo email (che non verrà reso pubblico)
  • posizione del sensore: strada con numero civico, codice postale e città; clicca su "Lookup entered address" per vederlo sulla mappa, controlla la posizione dello spillo e riposizionalo se necessario per approssimare la posizione reale
  • un nome personalizzato per il dispositivo, in modo da renderti facile il riconoscimento se prevedi di averne più di uno
  • notizie sui dintorni del sensore, per esempio: altezza dal suolo, lato della strada, tipo di strada, vicinanze a fonti di inquinamento locali (incrocio, fabbrica, depositi, stazioni)

Risoluzione dei problemi

Problemi di trasmissione dati?

Problemi di cavo micro-USB?

  • Controlla l'alimentatore ed il cavo (per esempio caricando un telefono cellulare)
  • Riavvia la scheda NodeMCU, disconnettendo e riconnettendo il cavo
  • Se il sensore è raggiungibile nella tua rete wireless, controlla la configurazione collegandoti al suo IP
  • Se non conosci l'IP, cerca il dispositivo nella tua rete con la funzionalità "Discovery" di airrohr-firmware-flasher
  • Se il dispositivo non è raggiungibile nella tua rete wireless, cerca la rete airrohr-XXYYZZ dopo 2/3 minuti dal riavvio e ripeti la configurazione
  • Se il dispositivo non è collegato alla tua rete wireless ed il tuo PC non vede la rete airrohr-XXYYZZ probabilmente l'alimentatore USB non fornisce energia sufficiente o ci sono problemi di cablaggio o di corruzione del software (in questo caso prova a reinstallare il firmware).
  • (Avanzato) connetti il cavo micro-USB ad un computer e controlla i messaggi di log.
    • Devi aver installato i driver (come da punti precedenti per installare il firmware) ed usare un emulatore di terminale (baud 9600, 8N1), per esempio:
      • Windows: Tera Term
      • MacOS: screen, minicom, ...
      • Linux: picocom, screen, minicom, cutecom, ...
    • L'emulatore di terminale ti mostrerà cosa sta facendo il dispositivo dopo circa 2/3 minuti.
    • Vedi anche la sezione "Controllo da linea di comando".

Problemi elettronici?

  • Rimuovi l'elettronica dai tubi e controlla i cavi.
  • Controlla o cambia il trasformatore USB.
  • Sulla scheda NodeMCU:
    • si deve illuminare brevemente un led al riavvio
  • Sul sensore SDS011:
    • si deve illuminare un led rosso al riavvio
    • si deve accendere la ventolina al riavvio
  • Controlla o cambia i cavi una seconda volta.

Nota: traduzione ed integrazioni a cura di CambiamoLaStrada

Sensor.Community

Making the world a better place through community driven, open environmental data.

Made with 💕 in Stuttgart, Germany