Innholdsfortegnelse:

RPi Weatherstation med responsivt nettsted: 5 trinn
RPi Weatherstation med responsivt nettsted: 5 trinn

Video: RPi Weatherstation med responsivt nettsted: 5 trinn

Video: RPi Weatherstation med responsivt nettsted: 5 trinn
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, November
Anonim
RPi Weatherstation med responsivt nettsted
RPi Weatherstation med responsivt nettsted
RPi Weatherstation med responsivt nettsted
RPi Weatherstation med responsivt nettsted

For et skoleprosjekt måtte vi lage en IoT -enhet med et nettsted for å visualisere innsamlet informasjon på en fin måte. og et python -skript for å samle informasjon med alle sensorene mine. Det tok meg omtrent 2 uker fra start til slutt å fullføre.

Vi ble oppfordret til å gjøre en instruks om å dele fremgangen vår med resten av DIY -fellesskapet, så her er det!

Trinn 1: Delvalg, verktøy og materialer

Først trengte jeg å finne ut hva slags sensorer som var viktige for en værstasjon. Jeg bestemte meg for at jeg ville måle alle følgende data:

  • Temperatur
  • Lufttrykk
  • Luftfuktighet
  • Vindfart
  • UV -indeks

Her er alle verktøyene, materialene og delene jeg brukte

Deler:

  • DHT22/AM2302 for temperatur- og fuktighetsavlesninger. (15 EUR)
  • Adafruit BMP280 for barometrisk trykk og temperatur. (12 EUR)
  • Adafruit SI1145 for måling av UV -indeks. (10 EUR)
  • Adafruit Analog vindmåler for måling av vindhastighet (50 EUR)
  • En MCP3008 for å konvertere analoge signaler til digitale.
  • 10kOhm motstand som pull-up for min AM2302.
  • En 9V adapter for å "drive" vindmåleren
  • En 5V adapter for Raspberry Pi
  • Raspberry Pi 3 (Enhver Pi burde være tilstrekkelig)

Materialer:

En plastbeholder for å lagre alt og gjøre det regntett

Verktøy:

  • Loddejern og tinn
  • Multimeter
  • Silikon
  • Noe tape

Så totalt kostet alle sensorer meg omtrent 85 euro, noe som er ganske bratt, men jeg ønsket virkelig å inkludere en skikkelig vindhastighetsmåler, så jeg tror det er verdt det.

Du finner en mer detaljert liste med butikker du kan kjøpe alt i, i pdf -filen nedenfor:)

Trinn 2: Koble til maskinvaren vår

Koble til maskinvaren vår
Koble til maskinvaren vår
Koble til maskinvaren vår
Koble til maskinvaren vår

Selvfølgelig må vi koble sensorene våre til Raspberry Pi. Over kan du se fritzingskjemaet du kan følge for å koble alt riktig.

På skjemaet kan du se at et 9V batteri brukes som strømkilde for vindmåleren vår. Dette brukes best best for testing bare siden det ikke varer for lenge. Du kan bytte ut 9V batteri for en hvilken som helst 7-12V strømkilde du velge.

Våre SI1145- og BMP280 -sensorer vil begge bli styrt ved hjelp av I2C -protokollen siden dette er det enkleste å jobbe med og trenger mindre ledninger.

Vindmåleren på skjematikken er vist som en LDR her siden den har ganske identiske ledninger som vindmåleren, og jeg kunne ikke finne et ekte vindmålere for å sette på min fritzingskjema:)

Trinn 3: Koble til alt: Sette opp Pi

Koble til alt: Sette opp Pi
Koble til alt: Sette opp Pi

Først av alt må vi sørge for at vi er koblet til internett.

For å gjøre dette i terminalen kan du gå til filen wpa_supplicant ved å kjøre følgende kommando: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

I filen kan du legge til dette:

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

}

Du kan også velge å sette IP-adressen din til statisk for lettere tilgang i fremtiden. For å gjøre dette må du gå til dhcpcd.conf-filen ved å kjøre denne kommandoen: sudo nano /etc/dhcpcd.conf

Legg til dette i filen:

grensesnitt wlan0static ip_address = 192.168.0.100/24

Deretter skal vi sørge for at pakkene som allerede er installert på Pi -en vår er fullt oppdatert:

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

Dette kan ta litt tid, så ikke bekymre deg

Du må aktivere I2C- og SPI -protokollen inne i raspi config. Du kan dette ved å kjøre denne kommandoen:

sudo raspi-config

Deretter går du til grensesnittalternativer og aktiverer både I2C og SPI

Først må du lage en katalog du vil sette prosjektet i (vi vil kalle det 'værstasjon'):

cd ~ mkdir weatherstation cd weatherstation

Deretter konfigurerte vi vårt virtuelle python3 -miljø:

python3 -m pip install-oppgrader pip setuptools hjul virtualenvpython3 -m venv-system-site-pakker envsource env/bin/activatepython -m pip installer mysql-connector-python kolbe-mysql mysql-connector-python passlib mysql-kontakt -python-rf

Da må vi installere noen andre pakker som er nødvendige for at alt skal fungere riktig:

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

Nå skal vi lage vår database:

Vi trenger fortsatt å sette opp databasen din. Du kan gjøre dette ved å kjøre koden/sql -filen som ligger i 'sql' -mappen slik:

sudo mariadb <sql/db_init.sql

SQL -spørringen vil gjøre tabellene vi trenger og også gjøre noen få brukere til å gjøre databasen vår litt mer sikker.

Dette vil også sette noen eksempler på historikkdata i databasen vår for å sikre at nettstedet vårt viser alt riktig når det ikke er noen reelle data samlet ennå.

For å installere Adafruit_GPIO og MyPyDHT må du gjøre noen flere ting. Først går du tilbake til brukermappen og deretter:

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

cd..git klon -rekursiv https://github.com/freedom27/MyPyDHTsudo python3 setup.py installasjon

Trinn 4: Programvare / kode

Programvare / kode
Programvare / kode
Programvare / kode
Programvare / kode
Programvare / kode
Programvare / kode

Vi må sette opp back-end for værstasjonen, som inkluderer:

- En mariadb-database for lagring av sensoravlesninger og noen andre mindre ting.- En kolbe-tjeneste for å kjøre nettstedet.- En annen tjeneste som kjører Python-filen som leser opp alle sensorer. Over kan du se mitt veldig enkle databaseoppsett. Brukerbordet er unødvendig, men siden jeg ønsket et påloggingssystem fordi jeg (selv om alle dataene er like for alle brukere) bestemte jeg meg for å inkludere det i databasen min.

Du kan fortsette og klone prosjektets kode fra Github til prosjektmappen din. Gå til brukermappen din og kjør: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Naviger deretter til conf -mappen i weatherstation og alle filene i mappen.

Endre alle forekomster av 'USERNAME' til brukernavnet ditt

Du må også kopiere begge.service -filene til systemd og teste dem slik:

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-*

Vi må deretter redigere nginx -konfigurasjonen.

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 start nginx.servicesudo systemctl status nginx.service på nytt

Hvis noe gikk bra, bør du kunne kjøre dette og få skrevet ut html i terminalen:

wget -qO - lokal vert

Alt burde fungere bra nå. Du kan surfe til din bringebær Pi-IP-adresse vi satte i begynnelsen og bli møtt med en påloggingsskjerm.

Trinn 5: Vedlegget

Vedlegget
Vedlegget
Vedlegget
Vedlegget
Vedlegget
Vedlegget

Nå som alt fungerer, må vi sette det hele i noe.

Jeg valgte en enkel plastboks med et gjennomsiktig lokk. Vindmåleren er montert på toppen av den, og det er en sekundær liten beholder som inneholder sensorene DHT22 og BMP280.

Disse sensorene er montert inne i en separat beholder fordi de må være i friluft (uten å bli regnet på), men bringebær -pi trenger ikke å være det.

Som du kan se, la jeg til silikon rundt kantene for å gjøre den vanntett. Jeg boret også noen hull i den øvre beholderen for å få frisk luft i den.

Jeg håper du likte guiden min om hvordan du bygger en værstasjon, det kan være litt grovt rundt kantene siden det er første gang jeg skriver en guide som denne, men jeg håper du likte den likevel:)

Anbefalt: