Tartalomjegyzék:

RPi időjárás -reagáló weboldal: 5 lépés
RPi időjárás -reagáló weboldal: 5 lépés

Videó: RPi időjárás -reagáló weboldal: 5 lépés

Videó: RPi időjárás -reagáló weboldal: 5 lépés
Videó: 5 lépés a Vesék regenerálásához 2024, Július
Anonim
RPi időjárás -reagáló weboldal
RPi időjárás -reagáló weboldal
RPi időjárás -reagáló weboldal
RPi időjárás -reagáló weboldal

Egy iskolai projekthez IoT -eszközt kellett készítenünk egy weboldallal, hogy szép módon megjelenítsük az összegyűjtött információkat. Úgy döntöttem, hogy Raspberry Pi 3 -as Flask által működtetett időjárás -állomást készítek a reszponzív webhelyhez, MySQL (MariaDB) az adatbázisomhoz és egy python -szkriptet az összes érzékelőmmel történő információgyűjtéshez. Körülbelül 2 hétbe telt az elejétől a végéig.

Arra buzdítottunk, hogy tegyünk egy tanulságosat, hogy osszuk meg előrehaladásunkat a barkácsközösség többi tagjával, így itt van!

1. lépés: Alkatrészválasztás, eszközök és anyagok

Először ki kellett találnom, hogy milyen érzékelők nélkülözhetetlenek egy időjárás -állomáshoz. Úgy döntöttem, hogy meg akarom mérni a következő adatokat:

  • Hőfok
  • Levegő nyomás
  • páratartalom
  • Szélsebesség
  • UV mutató

Itt található az összes használt eszköz, anyag és alkatrész

Alkatrészek:

  • DHT22/AM2302 a hőmérséklet és a nedvesség leolvasásához. (15 EUR)
  • Adafruit BMP280 barometrikus nyomáshoz és hőmérséklethez. (12 EUR)
  • Adafruit SI1145 az UV -index mérésére. (10 EUR)
  • Adafruit analóg szélmérő szélsebesség mérésére (50 EUR)
  • MCP3008 analóg jelek digitálisra konvertálására.
  • 10 kOhm ellenállás, mint felhúzó az AM2302-hez.
  • 9V -os adapter az anemométer „táplálására”
  • 5V -os adapter a Raspberry Pi -hez
  • Raspberry Pi 3 (bármilyen Pi elegendő lehet)

Anyagok:

Műanyag tartály minden tárolására és esőállóvá tételére

Eszközök:

  • Forrasztópáka és ón
  • Multiméter
  • Szilikon
  • Valami szalag

Összességében tehát minden érzékelő körülbelül 85 euróba került, ami elég meredek, de nagyon szerettem volna egy megfelelő szélsebességmérőt beépíteni, úgyhogy szerintem megéri.

Részletesebb listát talál az üzletekben, ahol mindent megvásárolhat, az alábbi pdf -ben:)

2. lépés: A hardver csatlakoztatása

Hardverünk csatlakoztatása
Hardverünk csatlakoztatása
Hardverünk csatlakoztatása
Hardverünk csatlakoztatása

Természetesen csatlakoztatnunk kell az érzékelőinket a Raspberry Pi -hez. Fentebb láthatja a frizuráló sematikát, amelyet követhet, hogy mindent megfelelően csatlakoztasson.

A sematikus ábrán látható, hogy egy 9 V-os elemet használnak áramforrásunkként a szélsebességmérőnkhöz, ezt a legjobban csak tesztelésre használják, mivel nem tart túl sokáig, cserélheti ki a 9 V-os elemet bármely 7-12 V-os áramforráshoz. választ.

Mind az SI1145, mind a BMP280 érzékelőinket az I2C protokoll vezérli, mivel ezzel a legkönnyebb dolgozni, és kevesebb vezetékre van szükség.

A vázlatos anemométer itt LDR -ként jelenik meg, mivel nagyjából azonos kábelezéssel rendelkezik, mint az anemométer, és nem találtam valódi szélmérőt, amire fel tudnám rakni a frizurás vázlatomat:)

3. lépés: Minden csatlakoztatása: A Pi beállítása

Minden csatlakoztatása: A Pi beállítása
Minden csatlakoztatása: A Pi beállítása

Először is meg kell győződnünk arról, hogy kapcsolódunk az internethez.

A terminálban a következő parancs futtatásával léphet a wpa_supplicant fájlba: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

A fájlban ezt hozzáadhatja:

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

}

Azt is választhatja, hogy az IP-címét statikusra állítja a könnyebb hozzáférés érdekében. Ehhez a parancs futtatásával lépjen a dhcpcd.conf fájlba: sudo nano /etc/dhcpcd.conf

Add hozzá ezt a fájlhoz:

interfész wlan0static ip_address = 192.168.0.100/24

Ezután meggyőződünk arról, hogy a Pi -re már telepített csomagok teljesen frissítve vannak:

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

Ez eltarthat egy ideig, ezért ne aggódjon

Engedélyeznie kell az I2C és SPI protokollt a raspi configon belül. Ezt a következő parancs futtatásával teheti meg:

sudo raspi-config

Ezután lépjen az interfész lehetőségekhez, és engedélyezze mind az I2C, mind az SPI szolgáltatást

Először létre kell hoznia egy könyvtárat, amelybe a projektet be kívánja helyezni (ezt nevezzük „időjárás -állomásnak”):

cd ~ mkdir időjárás -állomás cd időjárás -állomás

Ezután beállítottuk a python3 virtuális környezetünket:

python3 -m pip install-upgrade pip setuptools wheel virtualenv python3 -m venv-rendszer-site-csomagok envsource env/bin/activepython -m pip install mysql-connector-python Lombik lombik-mysql mysql-csatlakozó-python passlib mysql-csatlakozó -python-rf

Ezután telepítenünk kell néhány más csomagot, amelyek szükségesek ahhoz, hogy minden megfelelően működjön:

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

Most elkészítjük az adatbázisunkat:

Még mindig be kell állítanunk az adatbázisunkat. Ezt az „sql” mappában található code/sql fájl futtatásával teheti meg, például:

sudo mariadb <sql/db_init.sql

Az sql lekérdezés elkészíti a szükséges táblázatokat, és néhány felhasználót is, hogy egy kicsit biztonságosabb legyen az adatbázisunk.

Ez néhány mintaelőzmény -adatot is beilleszt az adatbázisunkba annak érdekében, hogy webhelyünk mindent megfelelően jelenítsen meg, ha még nincsenek valódi adatok.

Az Adafruit_GPIO és a MyPyDHT telepítéséhez további dolgokat kell tennie. Először térjen vissza a használati mappába, majd:

git klón https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install

cd..git klón -rekursív https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

4. lépés: Szoftver / kód

Szoftver / kód
Szoftver / kód
Szoftver / kód
Szoftver / kód
Szoftver / kód
Szoftver / kód

Be kell állítanunk az időjárás-állomás háttérképét, amely a következőket tartalmazza:

- Egy mariadb adatbázis az érzékelői leolvasásainak és néhány egyéb apró dolognak a tárolására.- Egy lombikszolgáltatás a weboldal futtatásához.- Egy másik szolgáltatás, amely futtatja a Python fájlt, amely kiolvassa az összes érzékelőt. Fent láthatja az nagyon egyszerű adatbázis-beállításomat. A felhasználók táblája szükségtelen, de mivel bejelentkezési rendszert akartam, mert én (annak ellenére, hogy minden adat azonos minden felhasználó számára) úgy döntöttem, hogy felveszem az adatbázisomba.

Mehet tovább, és klónozhatja projektem kódját a Githubból a projektmappájába. Menjen a felhasználói mappába, és futtassa: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Ezután navigáljon a conf mappahoz időjárás -állomáson és a mappában található összes fájlhoz.

Módosítsa a „USERNAME” összes előfordulását a felhasználónevére

Ezenkívül mindkét.service fájlt át kell másolnia a systemd rendszerbe, és így kell tesztelnie:

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

sudo systemctl állapot időjárás-*

Ezután szerkesztenünk kell az nginx konfigurációját.

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 indítsa újra az nginx.servicesudo systemctl állapotát nginx.service

Ha minden jól ment, akkor ezt futtatnia kell, és ki kell nyomtatnia néhány html -t a terminálon:

wget -qO - localhost

Mindennek jól kell működnie. Böngészhet a málna Pi IP-címén, amelyet az elején beállítottunk, és bejelentkezési képernyőn üdvözlik.

5. lépés: A ház

A Melléklet
A Melléklet
A Melléklet
A Melléklet
A Melléklet
A Melléklet

Most, hogy minden működik, az egészet bele kell helyeznünk valamibe.

Egy egyszerű műanyag dobozt választottam, átlátszó fedéllel. A szélmérő rá van szerelve, és egy másodlagos apró tartály is, amely a DHT22 és a BMP280 érzékelőket tartalmazza.

Ezek az érzékelők külön tartályba vannak szerelve, mert a szabadban kell lenniük (eső nélkül), de a málna pi -nek nem kell.

Amint láthatja, a szélek körül némi szilikont tettem hozzá, hogy vízálló legyen. Néhány lyukat is fúrtam a felső tartályba, hogy friss levegőt kapjak.

Remélem, tetszett az időjárásállomás építéséről szóló útmutatóm, lehet, hogy kissé durva lesz a szélek körül, mivel most írok először ilyen útmutatót, de remélem, hogy tetszett:)

Ajánlott: