Sommario:

Stazione meteorologica RPi con sito Web reattivo: 5 passaggi
Stazione meteorologica RPi con sito Web reattivo: 5 passaggi

Video: Stazione meteorologica RPi con sito Web reattivo: 5 passaggi

Video: Stazione meteorologica RPi con sito Web reattivo: 5 passaggi
Video: Raspberry Pi per servizi di hosting di siti web: ha senso? 2024, Novembre
Anonim
Stazione meteorologica RPi con sito Web reattivo
Stazione meteorologica RPi con sito Web reattivo
Stazione meteorologica RPi con sito Web reattivo
Stazione meteorologica RPi con sito Web reattivo

Per un progetto scolastico abbiamo dovuto realizzare un dispositivo IoT con un sito Web per visualizzare le informazioni raccolte in modo piacevole. Ho scelto di realizzare una stazione meteorologica alimentata da un Raspberry Pi 3 con Flask per il sito Web reattivo, MySQL (MariaDB) per il mio database e uno script Python per raccogliere informazioni con tutti i miei sensori. Mi ci sono volute circa 2 settimane dall'inizio alla fine per il completamento.

Siamo stati incoraggiati a creare un'istruzione per condividere i nostri progressi con il resto della comunità fai-da-te, quindi eccolo qui!

Passaggio 1: selezione delle parti, strumenti e materiali

Per prima cosa avevo bisogno di capire che tipo di sensori erano essenziali per una stazione meteorologica. Ho deciso che volevo misurare tutti i seguenti dati:

  • Temperatura
  • Pressione dell'aria
  • Umidità
  • Velocità del vento
  • Indice UV

Ecco tutti gli strumenti, i materiali e le parti che ho usato

Parti:

  • DHT22/AM2302 per letture di temperatura e umidità. (15 euro)
  • Adafruit BMP280 per pressione barometrica e temperatura. (12 euro)
  • Adafruit SI1145 per la misurazione dell'Indice UV. (10 euro)
  • Anemometro analogico Adafruit per misurare la velocità del vento (50 EUR)
  • Un MCP3008 per convertire segnali analogici in digitali.
  • Resistenza da 10kOhm come pull-up per il mio AM2302.
  • Un adattatore da 9V per "alimentare" l'anemometro
  • Un adattatore 5V per il Raspberry Pi
  • Raspberry Pi 3 (qualsiasi Pi dovrebbe essere sufficiente)

Materiali:

Un contenitore di plastica per riporre tutto e renderlo resistente alla pioggia

Utensili:

  • Saldatore e stagno
  • Multimetro
  • Silicone
  • un po' di nastro

Quindi, in totale, tutti i sensori mi sono costati circa 85 euro, che è piuttosto ripido, ma volevo davvero includere un misuratore di velocità del vento adeguato, quindi penso che ne valga la pena.

Puoi trovare un elenco più dettagliato con i negozi in cui puoi acquistare tutto, nel pdf qui sotto:)

Passaggio 2: collegamento del nostro hardware

Collegamento del nostro hardware
Collegamento del nostro hardware
Collegamento del nostro hardware
Collegamento del nostro hardware

Ovviamente dovremo collegare i nostri sensori al nostro Raspberry Pi. Sopra puoi vedere lo schema fritzing che puoi seguire per collegare tutto correttamente.

Sullo schema puoi vedere che una batteria da 9 V viene utilizzata come fonte di alimentazione per il nostro anemometro, questo è correttamente utilizzato solo per i test poiché non durerà troppo a lungo, puoi sostituire la batteria da 9 V per qualsiasi fonte di alimentazione da 7-12 V scegliere.

I nostri sensori SI1145 e BMP280 saranno entrambi controllati utilizzando il protocollo I2C poiché è il più semplice da utilizzare e richiede meno cavi.

L'anemometro sullo schema è mostrato come un LDR qui poiché ha un cablaggio praticamente identico all'anemometro e non sono riuscito a trovare un vero anemometro da mettere sul mio schema fritzing:)

Passaggio 3: collegare tutto: configurare il Pi

Collegare tutto: configurare il Pi
Collegare tutto: configurare il Pi

Prima di tutto, dobbiamo assicurarci di essere connessi a Internet.

Per fare ciò nel terminale puoi andare al tuo file wpa_supplicant eseguendo il seguente comando:sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Nel file puoi aggiungere questo:

network={ssid= "Your_Wifi_SSID" psk="Your_Wifi_Password" key_mgmt=WPA-PSK

}

Puoi anche scegliere di impostare il tuo indirizzo IP su statico per un accesso più facile in futuro. Per farlo devi andare al file dhcpcd.conf eseguendo questo comando:sudo nano /etc/dhcpcd.conf

Aggiungi questo nel file:

interfaccia wlan0static ip_address=192.168.0.100/24

Quindi ci assicureremo che i pacchetti già installati sul nostro Pi siano completamente aggiornati:

sudo apt-get update && sudo apt-get upgrade

Potrebbe volerci un po' di tempo, quindi non preoccuparti

Dovrai abilitare il protocollo I2C e SPI all'interno di raspi config.puoi farlo eseguendo questo comando:

sudo raspi-config

Quindi vai alle opzioni di interfaccia e abilita entrambi, I2C e SPI

Per prima cosa devi creare una directory in cui vuoi inserire il tuo progetto (lo chiameremo "stazione meteorologica"):

cd ~mkdir weatherstationcd weatherstation

Quindi impostiamo il nostro ambiente virtuale python3:

python3 -m pip install --upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env/bin/activatepython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-connector -python-rf

Quindi dovremo installare alcuni altri pacchetti necessari per far funzionare tutto correttamente:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Ora creeremo il nostro database:

Tuttavia, dobbiamo ancora configurare il nostro database. Puoi farlo eseguendo il file code/sql che si trova nella cartella "sql" in questo modo:

sudo mariadb < sql/db_init.sql

La query sql creerà le tabelle di cui abbiamo bisogno e anche alcuni utenti per rendere il nostro database un po' più sicuro.

Questo inserirà anche alcuni dati della cronologia di esempio nel nostro database per assicurarci che il nostro sito Web visualizzi tutto correttamente quando non sono ancora stati raccolti dati reali.

Per installare Adafruit_GPIO e MyPyDHT dovrai fare alcune altre cose. Prima torna alla tua cartella di utilizzo e poi:

git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install

cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

Passaggio 4: software/codice

Software/Codice
Software/Codice
Software/Codice
Software/Codice
Software/Codice
Software/Codice

Dobbiamo impostare il back-end per la stazione meteorologica, che include:

- Un database mariadb per memorizzare le letture dei miei sensori e alcune altre cose minori- Un servizio flask per l'esecuzione del sito Web.- Un altro servizio che esegue il file Python che legge tutti i sensori. Sopra puoi vedere la mia configurazione del database molto semplice. La tabella degli utenti è inutile, ma siccome volevo un sistema di login perchè io (anche se tutti i dati sono uguali per tutti gli utenti) ho deciso di includerlo nel mio database.

Puoi andare avanti e clonare il codice del mio progetto da Github nella cartella del tuo progetto. Vai alla cartella dell'utente ed esegui: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Quindi vai alla cartella conf in weatherstation e tutti i file nella cartella.

Cambia tutte le occorrenze di "USERNAME" con il tuo nome utente

Dovrai anche copiare entrambi i file.service su systemd e testarli in questo modo:

sudo cp conf/weatherstation-*.service /etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service

sudo systemctl status weatherstation-*

Dobbiamo quindi modificare la configurazione di nginx.

sudo cp conf/nginx /etc/nginx/sites-available/weatherstationsudo rm /etc/nginx/sites-enabled/defaultsudo ln -s /etc/nginx/sites-available/weatherstation /etc/nginx/sites-enabled/weatherstationsudo systemctl riavviare nginx.servicesudo systemctl stato nginx.service

Se tutto è andato bene dovresti essere in grado di eseguire questo e ottenere un po' di html stampato nel terminale:

wget -qO - localhost

Tutto dovrebbe funzionare bene ora. Puoi navigare fino all'indirizzo IP del tuo Raspberry Pi che abbiamo impostato all'inizio ed essere accolto con una schermata di accesso.

Passaggio 5: il recinto

Il recinto
Il recinto
Il recinto
Il recinto
Il recinto
Il recinto

Ora che tutto funziona, dobbiamo mettere tutto in qualcosa.

Ho scelto una semplice scatola di plastica con un coperchio trasparente. L'anemometro è montato sopra di essa, così come un minuscolo contenitore secondario che contiene i sensori DHT22 e BMP280.

Questi sensori sono montati all'interno di un contenitore separato perché devono essere all'aria aperta (senza essere piovuti addosso), ma il lampone pi non ha bisogno di esserlo.

Come puoi vedere ho aggiunto del silicone intorno ai bordi per renderlo impermeabile. Ho anche praticato dei fori nel contenitore superiore per far entrare aria fresca.

Spero che la mia guida su come costruire una stazione meteorologica ti sia piaciuta, potrebbe essere un po' ruvida dato che è la prima volta che scrivo una guida come questa, ma spero che ti sia piaciuta comunque:)

Consigliato: