Obsah:

Meteostanice RPi s responzivním webem: 5 kroků
Meteostanice RPi s responzivním webem: 5 kroků

Video: Meteostanice RPi s responzivním webem: 5 kroků

Video: Meteostanice RPi s responzivním webem: 5 kroků
Video: ДОМАШНЯЯ МЕТЕОСТАНЦИЯ С БЕСПРОВОДНЫМ ДАТЧИКОМ И WI FI. НАСТРОЙКА, ОБЗОР, ОТЗЫВ. 2024, Červenec
Anonim
Meteostanice RPi s responzivním webem
Meteostanice RPi s responzivním webem
Meteostanice RPi s responzivním webem
Meteostanice RPi s responzivním webem

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

Připojení našeho hardwaru
Připojení našeho hardwaru
Připojení našeho hardwaru
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

Připojení všeho: Nastavení Pi
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

Software / kód
Software / kód
Software / kód
Software / kód
Software / kód
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

Příloha
Příloha
Příloha
Příloha
Příloha
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: