
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48


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


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

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



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



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:
Weboldal által vezérelt karácsonyfa (bárki irányíthatja): 19 lépés (képekkel)

Weboldal által vezérelt karácsonyfa (bárki irányíthatja): Tudni szeretné, hogyan néz ki egy webhely által vezérelt karácsonyfa? Itt van a videó, amely bemutatja a karácsonyfám projektjét. Az élő közvetítés mára véget ért, de készítettem egy videót, rögzítve a történteket: Idén, Decembe közepén
A Led fényerejének szabályozása a Raspberry Pi és az egyéni weboldal segítségével: 5 lépés

A Led fényerejének szabályozása a Raspberry Pi és az egyéni weboldal segítségével: Apache szervert használva a pi -n php -vel, megtaláltam a módot a led fényerejének szabályozására egy csúszkával, egy testreszabott weblappal, amely elérhető bármely olyan eszközön, amely ugyanahhoz a hálózathoz csatlakozik, mint a pi .Sokféleképpen lehet ezt elérni
Egyszerű weboldal létrehozása kezdő zárójelek használatával: 14 lépés

Egyszerű weboldal létrehozása kezdő zárójelek használatával: Bevezetés Az alábbi utasítások lépésről lépésre nyújtanak útmutatást a weblapok zárójelek használatával történő elkészítéséhez. A Brackets egy forráskód -szerkesztő, amelynek elsődleges célja a webfejlesztés. Az Adobe Systems által készített ingyenes és nyílt forráskódú szoftver licenc
Saját weboldal készítése kezdőknek: 5 lépés

Saját weboldal készítése kezdőknek: Akár álmodtál arról, hogy számítógépes programozó vagy, akár valaha is használtál weboldalt, valljuk be, szinte mindannyian az vagyunk, az információs technológia az üzlet gerincévé vált. Bár a programozás elsőre kissé ijesztőnek tűnhet, a célom
Weboldal készítés (lépésről lépésre): 4 lépés

Hogyan hozzunk létre egy webhelyet (lépésről lépésre): Ebben az útmutatóban megmutatom, hogy a legtöbb webfejlesztő hogyan építi fel webhelyét, és hogyan kerülheti el a drága webhely-készítőket, amelyek gyakran túl korlátozottak egy nagyobb webhelyhez. segít elkerülni azokat a hibákat, amelyeket az induláskor elkövettem