Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Pro školní projekt jsme museli vytvořit zařízení IoT s webem pro příjemnou vizualizaci shromážděných informací. Rozhodl jsem se vytvořit meteorologickou stanici poháněnou baňkou Raspberry Pi 3 pro responzivní web MySQL (MariaDB) pro moji databázi a skript pythonu pro shromažďování informací všemi mými senzory. Trvalo mi asi 2 týdny od začátku do konce.
Byli jsme povzbuzeni, abychom vytvořili instruktáž, abychom mohli sdílet náš pokrok se zbytkem komunity DIY, takže tady to je!
Krok 1: Výběr součásti, nástroje a materiály
Nejprve jsem potřeboval zjistit, jaké senzory jsou pro meteorologickou stanici zásadní. Rozhodl jsem se, že chci změřit všechna následující data:
- Teplota
- Tlak vzduchu
- Vlhkost vzduchu
- Rychlost větru
- Uv index
Zde jsou všechny nástroje, materiály a součásti, které jsem použil
Díly:
- DHT22/AM2302 pro měření teploty a vlhkosti. (15 EUR)
- Adafruit BMP280 pro barometrický tlak a teplotu. (12 EUR)
- Adafruit SI1145 pro měření UV indexu. (10 EUR)
- Analogový anemometr Adafruit pro měření rychlosti větru (50 EUR)
- MCP3008 pro převod analogových signálů na digitální.
- Rezistor 10 kOhm jako pull-up pro můj AM2302.
- 9V adaptér pro „napájení“anemometru
- 5V adaptér pro Raspberry Pi
- Raspberry Pi 3 (mělo by stačit jakékoli Pi)
Materiály:
Plastový kontejner pro uložení čehokoli a jeho odolnost proti dešti
Nástroje:
- Páječka a cín
- Multimetr
- Silikon
- Nějaká páska
Celkově mě tedy všechny senzory stály asi 85 euro, což je docela strmé, ale opravdu jsem chtěl zahrnout pořádný měřič rychlosti, takže si myslím, že to stojí za to.
Podrobnější seznam s obchody, kde si můžete koupit všechno, najdete v pdf níže:)
Krok 2: Připojení našeho hardwaru
Samozřejmě budeme muset připojit naše senzory k našemu Raspberry Pi. Výše vidíte schematické schéma, podle kterého můžete vše správně připojit.
Na schématu můžete vidět, že jako zdroj energie pro náš anemometr je použita 9V baterie, která je správně nejlépe použita pouze pro testování, protože nebude trvat příliš dlouho, 9V baterii můžete vyměnit za jakýkoli zdroj napájení 7-12 V Vybrat.
Naše senzory SI1145 a BMP280 budou ovládány pomocí protokolu I2C, protože s nimi je nejjednodušší pracovat a vyžadují méně vodičů.
Anemometr na schématu je zde zobrazen jako LDR, protože má do značné míry identické zapojení jako anemometr a nemohl jsem najít skutečný anemometr, který bych nasadil na své schoulené schéma:)
Krok 3: Připojení všeho: Nastavení Pi
Nejprve se musíme ujistit, že jsme připojeni k internetu.
Chcete -li to provést v terminálu, přejděte do souboru wpa_supplicant spuštěním následujícího příkazu: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Do souboru můžete přidat toto:
network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
Můžete se také rozhodnout nastavit statickou IP adresu pro snadnější přístup v budoucnosti. Chcete-li to provést, přejděte do souboru dhcpcd.conf spuštěním tohoto příkazu: sudo nano /etc/dhcpcd.conf
Přidejte do souboru toto:
rozhraní wlan0static ip_address = 192.168.0.100/24
Poté se ujistíme, že balíčky, které jsou již nainstalovány na našem Pi, jsou plně aktualizovány:
sudo apt-get update && sudo apt-get upgrade
Může to chvíli trvat, takže si nedělejte starosti
V raspi config budete muset povolit protokol I2C a SPI. Můžete to provést spuštěním tohoto příkazu:
sudo raspi-config
Poté přejděte na možnosti rozhraní a povolte I2C i SPI
Nejprve musíte vytvořit adresář, do kterého chcete vložit svůj projekt (pojmenujeme jej „meteorologická stanice“):
předpověď počasí cd ~ mkdir
Poté jsme nastavili naše virtuální prostředí python3:
python3 -m pip install --upgrade pip setuptools kolečko virtuální -python-rf
Poté budeme muset nainstalovat další balíčky, které jsou nutné pro správnou funkci všeho:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Nyní vytvoříme naši databázi:
Stále však musíme nastavit naši databázi. Můžete to provést spuštěním souboru code/sql umístěného ve složce 'sql' takto:
sudo mariadb <sql/db_init.sql
Sql dotaz udělá tabulky, které potřebujeme, a také udělá několik uživatelů, aby byla naše databáze o něco bezpečnější.
Tím se také do naší databáze vloží několik ukázkových údajů o historii, aby se zajistilo, že naše webové stránky zobrazí vše správně, pokud ještě nejsou shromážděna žádná skutečná data.
Chcete -li nainstalovat Adafruit_GPIO a MyPyDHT, budete muset udělat ještě několik věcí. Nejprve se vraťte do složky použití a poté:
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
Krok 4: Software / kód
Musíme nastavit back-end pro meteorologickou stanici, která zahrnuje:
- Databáze mariadb pro ukládání naměřených hodnot senzorů a některých dalších drobností- Služba baňky pro provoz webových stránek.- Další služba se spuštěním souboru Python, který čte všechny senzory. Výše vidíte moje velmi jednoduché nastavení databáze. Tabulka uživatelů je zbytečné, ale protože jsem chtěl přihlašovací systém, protože jsem (i když jsou všechna data pro všechny uživatele stejná) rozhodl jsem se zahrnout do své databáze.
Můžete pokračovat a naklonovat kód mého projektu z Githubu do složky projektu. Přejděte do uživatelské složky a spusťte: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/
Poté přejděte do složky conf v meteorologické stanici a všech souborů ve složce.
Změňte všechny výskyty „USERNAME“na vaše uživatelské jméno
Budete také muset zkopírovat oba soubory.service do systemd a otestovat je takto:
sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service
meteorologická stanice sudo systemctl status-*
Poté musíme upravit konfiguraci 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 restartujte nginx.servicesudo systemctl status nginx.service
Pokud vše proběhlo dobře, měli byste to spustit a nechat vytisknout nějaký html v terminálu:
wget -qO - localhost
Všechno by nyní mělo fungovat dobře. Můžete surfovat na IP adresu vašeho Raspberry Pi, kterou jsme nastavili na začátku, a uvítat vás bude přihlašovací obrazovka.
Krok 5: Příloha
Nyní, když vše funguje, musíme celou věc do něčeho vložit.
Vybral jsem jednoduchý plastový box s průhledným víkem. Na něj je připevněn anemometr a také sekundární malý kontejner, který obsahuje senzory DHT22 a BMP280.
Tyto senzory jsou namontovány uvnitř samostatného kontejneru, protože musí být na čerstvém vzduchu (aniž by na ně pršelo), ale malinový pi nemusí být.
Jak vidíte, přidal jsem trochu silikonu kolem okrajů, aby byl vodotěsný. Také jsem vyvrtal několik otvorů v horním kontejneru, abych do něj dostal čerstvý vzduch.
Doufám, že se vám líbil můj návod, jak postavit meteorologickou stanici, protože to může být trochu drsné po okrajích, protože píšu průvodce takto poprvé, ale doufám, že se vám to líbilo:)
Doporučuje:
Meteostanice WIFI s Magicbitem (Arduino): 6 kroků
WIFI meteorologická stanice s Magicbit (Arduino): Tento tutoriál ukazuje, jak vytvořit meteorologickou stanici z Magicbit pomocí Arduina, která dokáže získat podrobnosti z vašeho chytrého telefonu
Meteostanice Hanging Gear: 7 kroků (s obrázky)
Meteostanice se závěsným zařízením: V této instruktáži vám ukážu, jak si postavit vlastní závěsnou meteorologickou stanici, která je vyrobena z CNC laserem řezaných dílů MDF. Krokový motor pohání každý převodový stupeň a Arduino provádí měření teploty a vlhkosti pomocí DHT
Meteostanice RPi a digitální hodiny: 4 kroky (s obrázky)
Meteorologická stanice RPi a digitální hodiny: Jedná se o rychlý a snadný projekt, který je třeba udělat, a pěkný displej, který můžete předvést. Zobrazuje čas, povětrnostní podmínky a teplotu. A pokud se vám líbí to, co vidíte, sledujte mě na Instagramu a Twitteru (@Anders644PI), abyste udrželi krok s tím, co vytvářím
Webem řízený Valentýn: 8 kroků (s obrázky)
Webově řízený Valentýn: S touto kombinací softwaru a hardwaru můžete rozsvítit noční světlo zdobené srdcem odkudkoli s přístupem na internet. Ať už si tedy pamatujete v práci, v kavárně, doma nebo na svém mobilním telefonu (s připojením k internetu), můžete svému miláčkovi říct, že
Webem řízená kamera: 8 kroků (s obrázky)
Web Controlled Surveillance Camera: Účelem této práce je ukázat, jak vybudovat sledovací systém s rozhraním webové stránky. Webovou kameru lze přes rozhraní otáčet ve svislém nebo vodorovném směru, ale pouze v oblasti, kterou umožní hraniční senzory. Pokračování