Spisu treści:
- Krok 1: Wybór części, narzędzia i materiały
- Krok 2: Podłączanie naszego sprzętu
- Krok 3: Łączenie wszystkiego: Konfiguracja Pi
- Krok 4: Oprogramowanie/kod
- Krok 5: Obudowa
Wideo: Stacja pogodowa RPi z responsywną stroną internetową: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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
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
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
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
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:
Internetowa stacja pogodowa: 6 kroków
Stacja pogodowa online: nie uwierzysz! Ale od początku. Pracowałem nad kolejną wersją CoolPhone'a i ilość błędów jakie popełniłem przy jego projektowaniu zmusiła mnie do zrobienia sobie przerwy. Włożyłem buty i wyszedłem na zewnątrz. Okazało się, że jest zimno, więc
Internetowa stacja pogodowa Raspberry Pi: 5 kroków (ze zdjęciami)
Internetowa stacja pogodowa Raspberry Pi: *** Aktualizacja *** Ta instrukcja jest nieaktualna. Usługi pogodowe dla danych pogodowych, używane w tej instrukcji, już nie działają. JEDNAK istnieje alternatywny projekt, który w zasadzie robi to samo (tylko lepiej - ta Instructa
Stacja pogodowa NaTaLia: stacja pogodowa zasilana energią słoneczną Arduino Wykonana we właściwy sposób: 8 kroków (ze zdjęciami)
Stacja pogodowa NaTaLia: Stacja pogodowa zasilana energią słoneczną Arduino Wykonana we właściwy sposób: po roku udanej pracy w 2 różnych lokalizacjach dzielę się planami projektu stacji pogodowej zasilanej energią słoneczną i wyjaśniam, jak ewoluował w system, który może naprawdę przetrwać przez długi czas okresy z energii słonecznej. Jeśli obserwujesz
Strona internetowa Node.js, część 2: 7 kroków
Strona internetowa Node.js Część 2: Witamy w CZĘŚCI 2!! To jest część 2 mojego samouczka aplikacji witryny Node.js. Podzieliłem ten samouczek na dwie części, ponieważ oddziela tych, którzy potrzebują tylko krótkiego wprowadzenia i tych, którzy chcą pełnego samouczka na stronie internetowej. Przejdę przez
ESP8266-01 Strona internetowa: 6 kroków
ESP8266-01 Strona internetowa: Witam wszystkich. Dzisiaj w tym artykule nauczymy się zrobić stronę internetową dla ESP8266-01. Wykonanie tego projektu jest bardzo proste i zajmuje tylko kilka minut. Obwód jest również prosty, a kod łatwy do zrozumienia. Użyjemy Arduino IDE, aby