Spisu treści:

Stacja pogodowa RPi z responsywną stroną internetową: 5 kroków
Stacja pogodowa RPi z responsywną stroną internetową: 5 kroków

Wideo: Stacja pogodowa RPi z responsywną stroną internetową: 5 kroków

Wideo: Stacja pogodowa RPi z responsywną stroną internetową: 5 kroków
Wideo: Mądry dom za grosze #6 - Inteligentna stacja pogodowa działająca po wifi | DIY 2024, Lipiec
Anonim
Stacja pogodowa RPi z responsywną stroną internetową
Stacja pogodowa RPi z responsywną stroną internetową
Stacja pogodowa RPi z responsywną stroną internetową
Stacja pogodowa RPi z responsywną stroną internetową

Do szkolnego projektu musieliśmy wykonać urządzenie IoT z witryną do wizualizacji zebranych informacji w przyjemny sposób. Zdecydowałem się na stworzenie stacji pogodowej zasilanej przez Raspberry Pi 3 z systemem Flask dla responsywnej witryny MySQL (MariaDB) dla mojej bazy danych i skrypt Pythona do zbierania informacji ze wszystkimi moimi czujnikami. Zajęło mi to około 2 tygodni od początku do końca.

Zachęciliśmy nas do wydania instrukcji, aby podzielić się naszymi postępami z resztą społeczności DIY, więc oto jest!

Krok 1: Wybór części, narzędzia i materiały

Najpierw musiałem dowiedzieć się, jakie czujniki są niezbędne dla stacji pogodowej. Zdecydowałem, że chcę zmierzyć wszystkie następujące dane:

  • Temperatura
  • Ciśnienie powietrza
  • Wilgotność
  • Prędkość wiatru
  • Indeks UV

Oto wszystkie narzędzia, materiały i części, których użyłem

Części:

  • DHT22/AM2302 do odczytów temperatury i wilgotności. (15 EUR)
  • Adafruit BMP280 do pomiaru ciśnienia i temperatury barometrycznej. (12 EUR)
  • Adafruit SI1145 do pomiaru indeksu UV. (10 EUR)
  • Anemometr analogowy Adafruit do pomiaru prędkości wiatru (50 EUR)
  • MCP3008 do konwersji sygnałów analogowych na cyfrowe.
  • Rezystor 10kOhm jako podciąganie dla mojego AM2302.
  • Zasilacz 9V do „zasilania” anemometru
  • Adapter 5V do Raspberry Pi
  • Raspberry Pi 3 (dowolne Pi powinno wystarczyć)

Materiały:

Plastikowy pojemnik do przechowywania wszystkiego i zabezpieczenia przed deszczem

Narzędzia:

  • Lutownica i cyna
  • Multimetr
  • Silikon
  • Niektóre taśmy

W sumie wszystkie czujniki kosztują mnie około 85 euro, co jest dość strome, ale naprawdę chciałem dołączyć odpowiedni miernik prędkości wiatru, więc myślę, że warto.

Bardziej szczegółową listę sklepów, w których wszystko można kupić, znajdziesz w pliku PDF poniżej:)

Krok 2: Podłączanie naszego sprzętu

Podłączanie naszego sprzętu
Podłączanie naszego sprzętu
Podłączanie naszego sprzętu
Podłączanie naszego sprzętu

Oczywiście będziemy musieli podłączyć nasze czujniki do naszego Raspberry Pi. Powyżej możesz zobaczyć schematyczny schemat, który możesz wykonać, aby wszystko prawidłowo połączyć.

Na schemacie widać, że jako źródło zasilania dla naszego anemometru jest używana bateria 9V, najlepiej używać jej tylko do testowania, ponieważ nie będzie trwała zbyt długo, możesz wymienić baterię 9V na dowolne źródło zasilania 7-12V wybierać.

Nasze czujniki SI1145 i BMP280 będą sterowane za pomocą protokołu I2C, ponieważ jest on najłatwiejszy w obsłudze i wymaga mniej przewodów.

Anemometr na schemacie jest tutaj pokazany jako LDR, ponieważ ma prawie identyczne okablowanie jak anemometr i nie mogłem znaleźć prawdziwego anemometru, który mógłbym umieścić na moim spieczonym schemacie:)

Krok 3: Łączenie wszystkiego: Konfiguracja Pi

Podłączanie wszystkiego: konfiguracja Pi
Podłączanie wszystkiego: konfiguracja Pi

Przede wszystkim musimy upewnić się, że jesteśmy połączeni z internetem.

Aby to zrobić w terminalu, możesz przejść do pliku wpa_supplicant, uruchamiając następujące polecenie: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

W pliku możesz dodać to:

network={ssid= "Twoje_Wifi_SSID" psk="Twoje_Hasło_Wifi" key_mgmt=WPA-PSK

}

Możesz także ustawić swój adres IP na statyczny, aby uzyskać łatwiejszy dostęp w przyszłości. Aby to zrobić, musisz przejść do pliku dhcpcd.conf, uruchamiając to polecenie: sudo nano /etc/dhcpcd.conf

Dodaj to w pliku:

interfejs wlan0static adres_ip=192.168.0.100/24

Następnie upewnimy się, że pakiety, które są już zainstalowane na naszym Pi, są w pełni zaktualizowane:

aktualizacja sudo apt-get && aktualizacja sudo apt-get

To może chwilę potrwać, więc nie martw się

Będziesz musiał włączyć protokół I2C i SPI w konfiguracji raspi. Możesz to zrobić, uruchamiając to polecenie:

sudo raspi-config

Następnie przejdź do opcji interfejsu i włączenia zarówno I2C, jak i SPI

Najpierw musisz utworzyć katalog, w którym chcesz umieścić swój projekt (nazwiemy go „stacja pogodowa”):

cd ~ stacja pogodowa mkdir stacja pogodowa cd

Następnie konfigurujemy nasze wirtualne środowisko python3:

python3 -m pip install --upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env/bin/activatepython -m pip install mysql-connector-python Flask-mysql-mysql-connector-python passlib mysql-connector -python-rf

Następnie będziemy musieli zainstalować kilka innych pakietów, które są potrzebne, aby wszystko działało poprawnie:

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

Teraz stworzymy naszą bazę danych:

Jednak nadal musimy skonfigurować naszą bazę danych. Możesz to zrobić, uruchamiając plik code/sql znajdujący się w folderze „sql” w następujący sposób:

sudo mariadb < sql/db_init.sql

Zapytanie sql utworzy potrzebne nam tabele, a także sprawi, że kilku użytkowników sprawi, że nasza baza danych będzie trochę bezpieczniejsza.

Spowoduje to również umieszczenie w naszej bazie danych przykładowych danych historycznych, aby upewnić się, że nasza witryna wyświetla wszystko poprawnie, gdy nie są jeszcze zebrane żadne prawdziwe dane.

Aby zainstalować Adafruit_GPIO i MyPyDHT, musisz zrobić kilka innych rzeczy. Najpierw wróć do folderu use, a następnie:

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: Oprogramowanie/kod

Oprogramowanie / kod
Oprogramowanie / kod
Oprogramowanie/kod
Oprogramowanie/kod
Oprogramowanie / kod
Oprogramowanie / kod

Musimy skonfigurować zaplecze dla stacji pogodowej, które obejmuje:

- Baza danych mariadb do przechowywania odczytów z czujników i kilka innych drobiazgów - Usługa kolby do prowadzenia strony internetowej. - Kolejna usługa uruchamiająca plik Python, który odczytuje wszystkie czujniki. Powyżej możesz zobaczyć moją bardzo prostą konfigurację bazy danych. Tabela użytkowników jest niepotrzebne, ale ponieważ zależało mi na systemie logowania, bo (chociaż wszystkie dane są takie same dla wszystkich użytkowników) zdecydowałem się uwzględnić w swojej bazie danych.

Możesz śmiało sklonować kod mojego projektu z Github do folderu projektu. Przejdź do folderu użytkownika i uruchom: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* stacja pogody/

Następnie przejdź do folderu conf w stacji pogodowej i wszystkich plików w folderze.

Zmień wszystkie wystąpienia „USERNAME” na swoją nazwę użytkownika

Będziesz także musiał skopiować oba pliki.service do systemd i przetestować je w ten sposób:

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

sudo systemctl status stacji pogodowej-*

Następnie musimy edytować konfigurację 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 uruchom ponownie nginx.servicesudo status ctl system nginx.service

Jeśli wszystko poszło dobrze, powinieneś być w stanie uruchomić to i wydrukować trochę html w terminalu:

wget -qO - host lokalny

Teraz wszystko powinno działać dobrze. Możesz surfować do adresu IP swojego Raspberry Pi, który ustawiliśmy na początku, i zostać przywitany ekranem logowania.

Krok 5: Obudowa

Załącznik
Załącznik
Załącznik
Załącznik
Załącznik
Załącznik

Teraz, gdy wszystko działa, musimy włożyć całość w coś.

Wybrałem proste plastikowe pudełko z przezroczystą pokrywką. Anemometr jest na nim zamontowany, podobnie jak drugi mały pojemnik, w którym znajdują się czujniki DHT22 i BMP280.

Czujniki te są montowane w osobnym pojemniku, ponieważ muszą znajdować się na świeżym powietrzu (bez deszczu), ale raspberry pi nie musi.

Jak widać, dodałem trochę silikonu na brzegach, aby był wodoodporny. Wywierciłem też kilka otworów w górnym pojemniku, aby wpuścić do niego świeże powietrze.

Mam nadzieję, że podobał Ci się mój przewodnik o tym, jak zbudować stację pogodową, może być trochę szorstki na brzegach, ponieważ po raz pierwszy piszę taki przewodnik, ale mam nadzieję, że mimo to podobał Ci się:)

Zalecana: