Sisällysluettelo:

RPi -sääasema reagoivalla verkkosivustolla: 5 vaihetta
RPi -sääasema reagoivalla verkkosivustolla: 5 vaihetta

Video: RPi -sääasema reagoivalla verkkosivustolla: 5 vaihetta

Video: RPi -sääasema reagoivalla verkkosivustolla: 5 vaihetta
Video: How To Make DIY Music Reactive RGB LED Strip (WS2812B) 2024, Heinäkuu
Anonim
RPi Weatherstation Responsiivisella verkkosivustolla
RPi Weatherstation Responsiivisella verkkosivustolla
RPi Weatherstation Responsiivisella verkkosivustolla
RPi Weatherstation Responsiivisella verkkosivustolla

Kouluprojektia varten meidän piti tehdä IoT -laite, jossa oli verkkosivusto, jolla visualisoitiin kerätyt tiedot kauniilla tavalla. ja python -skripti tietojen keräämiseen kaikkien antureideni kanssa. Kesti noin 2 viikkoa alusta loppuun.

Meitä kannustettiin tekemään opettavainen tapa jakaa edistymisemme muun DIY -yhteisön kanssa, joten tässä se on!

Vaihe 1: Osien valinta, työkalut ja materiaalit

Ensin minun oli selvitettävä, millaiset anturit ovat välttämättömiä sääasemalle, ja päätin haluta mitata kaikki seuraavat tiedot:

  • Lämpötila
  • Ilmanpaine
  • Kosteus
  • Tuulen nopeus
  • UV-indeksi

Tässä ovat kaikki käyttämäni työkalut, materiaalit ja osat

Osat:

  • DHT22/AM2302 lämpötila- ja kosteuslukemille. (15 EUR)
  • Adafruit BMP280 barometriseen paineeseen ja lämpötilaan. (12 EUR)
  • Adafruit SI1145 UV -indeksin mittaamiseen. (10 EUR)
  • Adafruitin analoginen tuulimittari tuulen nopeuden mittaamiseen (50 EUR)
  • MCP3008 analogisten signaalien muuntamiseen digitaaliseksi.
  • 10 kOhm vastus vetonaulana AM2302: lle.
  • 9V -sovitin tuulimittarin "virransyöttöön"
  • 5V -sovitin Raspberry Pi: lle
  • Raspberry Pi 3 (mikä tahansa Pi riittää)

Materiaalit:

Muovisäiliö kaiken säilytykseen ja sateen kestävyyteen

Työkalut:

  • Juotin ja tina
  • Yleismittari
  • Silikoni
  • Jotain nauhaa

Joten yhteensä kaikki anturit maksoivat minulle noin 85 euroa, mikä on melko jyrkkä, mutta halusin todella sisällyttää oikean tuulen nopeusmittarin, joten mielestäni se on sen arvoista.

Löydät tarkemman luettelon kaupoista, joista voit ostaa kaiken, alla olevasta pdf -tiedostosta:)

Vaihe 2: Laitteistomme yhdistäminen

Laitteistomme yhdistäminen
Laitteistomme yhdistäminen
Laitteistomme yhdistäminen
Laitteistomme yhdistäminen

Tietenkin meidän on kytkettävä anturit Raspberry Pi -laitteeseemme. Yllä näet fritzing -kaavion, jonka avulla voit liittää kaiken oikein.

Kaaviossa voit nähdä, että 9V-paristoa käytetään tuulimittarimme virtalähteenä. valita.

SI1145- ja BMP280 -antureitamme ohjataan I2C -protokollalla, koska tämä on helpoin työskennellä ja vaatii vähemmän johtoja.

Kaavion tuulimittari näytetään tässä LDR: nä, koska sillä on melko samanlaiset johdot kuin tuulimittarilla, enkä löytänyt todellista tuulimittaria, jonka päälle laittaisin fritzing -kaavioni:)

Vaihe 3: Kaikkien yhdistäminen: Pi: n asettaminen

Kaiken yhdistäminen: Pi: n asettaminen
Kaiken yhdistäminen: Pi: n asettaminen

Ensinnäkin meidän on varmistettava, että olemme yhteydessä Internetiin.

Voit tehdä tämän päätelaitteessa siirtymällä wpa_supplicant -tiedostoon suorittamalla seuraavan komennon: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Tiedostoon voit lisätä tämän:

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

}

Voit myös halutessasi asettaa IP-osoitteesi staattiseksi helpottaaksesi käyttöä tulevaisuudessa. Tätä varten sinun on siirryttävä dhcpcd.conf-tiedostoon suorittamalla tämä komento: sudo nano /etc/dhcpcd.conf

Lisää tämä tiedostoon:

käyttöliittymä wlan0static ip_address = 192.168.0.100/24

Sitten aiomme varmistaa, että Pi: hen jo asennetut paketit on päivitetty täysin:

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

Tämä voi kestää jonkin aikaa, joten älä huoli

Sinun on otettava I2C- ja SPI -protokolla käyttöön raspi -asetuksissa. Voit tehdä tämän suorittamalla tämän komennon:

sudo raspi-config

Siirry sitten liitäntävaihtoehtoihin ja ota käyttöön sekä I2C että SPI

Ensin sinun on tehtävä hakemisto, johon haluat sijoittaa projektisi (nimeämme sen "säätilaksi"):

cd ~ mkdir sääasema cd säätila

Sitten perustimme python3 -virtuaalisen ympäristön:

python3 -m pip install-päivitä pip setuptools -pyörä virtualenvpython3 -m venv --järjestelmä-sivusto-paketit envsource env/bin/activepython -m pip install mysql-connector-python Pullo-pullo-mysql mysql-liitin-python passlib mysql-liitin -python-rf

Sitten meidän on asennettava joitain muita paketteja, joita tarvitaan, jotta kaikki toimivat oikein:

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

Teemme nyt tietokantamme:

Meidän on kuitenkin vielä luotava tietokanta, mutta voit tehdä tämän suorittamalla koodin/sql -tiedoston, joka sijaitsee 'sql' -kansiossa seuraavasti:

sudo mariadb <sql/db_init.sql

SQL -kysely tekee tarvitsemamme taulukot ja myös muutamia käyttäjiä, jotka tekevät tietokannastamme hieman turvallisemman.

Tämä tuo myös joitakin näytteen historiatietoja tietokantaamme varmistaaksemme, että verkkosivustomme näyttää kaiken oikein, kun todellisia tietoja ei ole vielä kerätty.

Asentaaksesi Adafruit_GPIO: n ja MyPyDHT: n sinun on tehtävä muutamia asioita. Palaa ensin käyttökansioon ja sitten:

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

cd..git -klooni -toistuva https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

Vaihe 4: Ohjelmisto / koodi

Ohjelmisto / koodi
Ohjelmisto / koodi
Ohjelmisto / koodi
Ohjelmisto / koodi
Ohjelmisto / koodi
Ohjelmisto / koodi

Meidän on määritettävä sääaseman tausta, joka sisältää:

- Mariadb-tietokanta anturilukemieni ja joidenkin muiden vähäisten asioiden tallentamiseen- Pullo-palvelu verkkosivuston ajamiseen.- Toinen palvelu, joka käyttää Python-tiedostoa, joka lukee kaikki anturit. Yllä näet hyvin yksinkertaisen tietokanta-asennuksen. tarpeetonta, mutta koska halusin kirjautumisjärjestelmän, koska minä (vaikka kaikki tiedot ovat samat kaikille käyttäjille) päätin sisällyttää tietokantaani.

Voit kloonata projektini koodin Githubista projektikansioosi. Mene käyttäjäkansioon ja suorita: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Siirry sitten sääaseman conf -kansioon ja kaikkiin kansion tiedostoihin.

Vaihda kaikki USERNAME -esiintymät käyttäjänimeksi

Sinun on myös kopioitava molemmat.service -tiedostot systemd -järjestelmään ja testattava ne seuraavasti:

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

sudo systemctl status sääasema-*

Sitten meidän on muokattava nginx -asetuksia.

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 {100} {101} Käynnistä nginx.servicesudo systemctl tila nginx.service

Jos kaikki meni hyvin, sinun pitäisi pystyä suorittamaan tämä ja tulostamaan html -tiedosto päätelaitteeseen:

wget -qO - paikallinen isäntä

Kaikkien pitäisi toimia nyt hyvin, voit surffata vadelma Pi: n IP-osoitteeseen, jonka asetimme alussa, ja sinut tervehditään kirjautumisnäytöllä.

Vaihe 5: Kotelo

Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo

Nyt kun kaikki toimii, meidän täytyy laittaa koko asia johonkin.

Valitsin yksinkertaisen muovilaatikon, jossa oli läpinäkyvä kansi. Tuulimittari on asennettu sen päälle, samoin kuin pieni toissijainen säiliö, joka sisältää DHT22- ja BMP280 -anturit.

Nämä anturit on asennettu erilliseen säiliöön, koska niiden on oltava ulkona (ilman sadetta), mutta vadelmapi ei tarvitse olla.

Kuten näet, lisäsin reunojen ympärille silikonia vedenpitäväksi ja porasin myös joitakin reikiä yläastiaan raikkaan ilman saamiseksi.

Toivottavasti pidit oppaastani sääaseman rakentamisesta, se saattaa olla hieman karkea reunojen ympärillä, koska olen ensimmäistä kertaa kirjoittamassa tällaista opasta, mutta toivon, että pidit siitä silti:)

Suositeltava: