Spisu treści:

Fanair: stacja pogodowa do Twojego pokoju: 6 kroków (ze zdjęciami)
Fanair: stacja pogodowa do Twojego pokoju: 6 kroków (ze zdjęciami)

Wideo: Fanair: stacja pogodowa do Twojego pokoju: 6 kroków (ze zdjęciami)

Wideo: Fanair: stacja pogodowa do Twojego pokoju: 6 kroków (ze zdjęciami)
Wideo: Part 3 - The Return of Sherlock Holmes Audiobook by Sir Arthur Conan Doyle (Adventures 06-08) 2024, Lipiec
Anonim
Fanair: stacja pogodowa do Twojego pokoju
Fanair: stacja pogodowa do Twojego pokoju

Istnieje niezliczona ilość sposobów na sprawdzenie aktualnej pogody, ale wtedy znasz tylko pogodę na zewnątrz. A jeśli chcesz poznać pogodę w swoim domu, w konkretnym pomieszczeniu? To właśnie staram się rozwiązać w tym projekcie.

Fanair wykorzystuje wiele czujników do wykrywania:

  • temperatura
  • wilgotność
  • lekki
  • niektóre gazy
  • ciśnienie powietrza

Jest bardzo kompaktowy i wykorzystuje Raspberry Pi 3 B do pobierania wartości, zapisywania ich w bazie danych MySQL, a następnie łatwego udostępniania ich na stronie internetowej. W kodzie i na stronie internetowej zawarta jest możliwość uzyskania rzeczywistych danych pogodowych dla Twojej lokalizacji, dzięki czemu strona internetowa może być używana również do sprawdzania pogody na zewnątrz.

Krok 1: Zdobądź wszystkie wymagane przedmioty

Zdobądź wszystkie wymagane przedmioty
Zdobądź wszystkie wymagane przedmioty

Przede wszystkim będziesz potrzebować podstawowej elektroniki jak przewody/kable rozruchowe. Jeśli planujesz lutować wszystko razem jako stały projekt, to oczywiście będziesz potrzebować również lutownicy, lutu i dla własnego komfortu PCB, do którego wszystko przylutujesz.

Dla bardziej szczegółowych elementów zrobiłem ten Zestawienie Materiałów.

  • Raspberry Pi 3 B
  • MPC3008 - 8-kanałowy 10-bitowy przetwornik ADC
  • AM2301 Termometr Czujnik temperatury i wilgotności
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS Case do prototypowania (czarny)
  • LDR
  • Czujnik gazu MQ135
  • 2x BC517 Tranzystor Darlington
  • LED RGB
  • Pakiet rezystorów
  • Brzęczyk
  • Przewody
  • Barometr BMP280
  • Cichy wentylator USB (5V)

Wszystko razem powinno kosztować około 110 €. Należy pamiętać, że całkowita cena jest przybliżona. Ponadto mój projekt ma na zdjęciu ekran LCD, ale nie jest on podłączony, ponieważ w moim przypadku nie było wystarczająco dużo miejsca, więc nie jest on uwzględniony w instrukcji.

Krok 2: Przygotuj swoje Raspberry Pi

Pobierz Raspian Jessie z systemem operacyjnym Pixel z oficjalnej strony Raspberry Pi, a po pobraniu rozpakuj go. Otrzymasz plik obrazu. Aby uzyskać go na Pi, musisz zapisać go na karcie SD za pomocą programu Win32 Disk Imager. Po zainstalowaniu wybierz plik obrazu i dysk, na którym znajduje się karta SD. Następnie naciśnij write i poczekaj, aż skończy.

Po zakończeniu kliknij swoją kartę SD w Eksploratorze plików i otwórz plik o nazwie 'cmdline.txt' przejdź na koniec pliku tekstowego tuż przed rootwait i napisz 'ip=254.169.10.2' oczywiście ze spacjami. Po zapisaniu należy kliknąć prawym przyciskiem myszy gdzieś w oknie i utworzyć nowy plik o nazwie 'ssh'. Zauważ, że ten plik nie ma rozszerzenia. Aby upewnić się, że nie ma rozszerzenia, kliknij „wyświetl” w eksploratorze plików i zaznacz „ukryte pliki”. Jeśli tak, zmień nazwę i usuń rozszerzenie, aby po prostu czytało 'ssh'.

Po wykonaniu tej czynności możesz w końcu umieścić swoją kartę SD w Raspberry Pi. Pobierz klienta ssh (polecam MobaXterm). I połącz się za pomocą ssh z adresem IP ustawionym wcześniej '254.169.10.2'. Nazwa użytkownika to „pi”, hasło „malina”. Jeśli chcesz, możesz zmienić hasło, wpisując w terminalu polecenie „sudo passwd” i postępując zgodnie z instrukcjami. Ponieważ zamierzamy użyć sporej części karty SD dla Fanair, powinieneś rozszerzyć dostępną pamięć, wpisując „sudo rapi-config”, wybierając „Opcje zaawansowane”, a następnie „Rozwiń system plików”. Jeśli pojawi się monit, uruchom ponownie.

Będziemy korzystać z interfejsu 1-wire, SPI i I2C. Aby móc z nich korzystać, musisz je najpierw skonfigurować!

Krok 3: Połącz wszystko razem

Połącz wszystko razem
Połącz wszystko razem
Połącz wszystko razem
Połącz wszystko razem

Czas zrobić obwód! Za pierwszym razem prawdopodobnie powinieneś wypróbować go na płytce prototypowej, ale jeśli nie masz na to czasu, możesz spróbować zlutować go razem.

Obwód, którego potrzebujesz, wygląda jak powyżej, dla wygody dołączona jest również wersja z płytką stykową.

Krok 4: Utwórz swoją bazę danych

Aby efektywnie zapisywać wszystkie dane, które otrzymasz, skorzystamy z bazy danych TSQL MySQL. Przed zainstalowaniem MySQL upewnijmy się, że wszystko jest aktualne, wpisując kilka poleceń w terminalu:

  • „aktualizacja sudo apt-get”
  • „Uaktualnienie sudo apt-get”
  • 'sudo apt-get dist-upgrade'

Zaakceptuj każdy monit, wpisując „y” i wprowadź.

Aby zainstalować MySQL wpisz:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Po wyświetleniu monitu utwórz wybrane hasło roota.

Po zakończeniu instalacji zaloguj się za pomocą:

'mysql -root -p'

I wpisując swoje hasło.

Pobierz kod Fanair z My Github! Kliknij „Klonuj lub pobierz”, a następnie „Pobierz ZIP”. Rozpakuj kod w wybranym folderze. Zapytanie o utworzenie w pełni działającej bazy danych znajduje się w folderze bazy danych. Otwórz plik, skopiuj kod i wklej go w terminalu z otwartym MySQL. Następnie kliknij enter i baza danych jest gotowa!

Krok 5: Czas na kod

Aby wykorzystać wszystkie czujniki, musisz oczywiście uruchomić program. Na szczęście kod jest już gotowy (w większości) i pobraliśmy go już podczas pobierania zapytania SQL do bazy danych.

Tak jak powiedziałem, jest jeszcze kilka rzeczy, które należy zmienić/dodać, aby program działał poprawnie. Przede wszystkim program korzysta z API Darksky, aby uzyskać dane pogodowe na podstawie długości i szerokości geograficznej. Aby z niego skorzystać, musisz się zarejestrować. Pierwsze 1000 połączeń jest bezpłatne, a następnie kosztuje 0,0001 USD za połączenie. Słyszałem, że jeśli nie zapłacisz, Twoje konto zostanie zablokowane. Aby być uczciwym, 0,0001 USD za połączenie jest dość tanie. Fanair dzwoni do najnowszych danych co godzinę, co oznacza, że w ciągu roku, jeśli działa w pełnym wymiarze godzin, będzie Cię to kosztować tylko 0,876 USD. Otrzymasz również 41 dni za darmo, jeśli Fanair działa w pełnym wymiarze godzin.

Po zarejestrowaniu się poszukaj swojego klucza API. Poszukaj długości i szerokości geograficznej swojej lokalizacji na mapach Google lub spróbuj ją wygooglować. Utwórz nowy plik tekstowy w katalogu głównym Fanair (z klasami, main.py…). Nazwij plik „key_location.txt”. Otwórz plik tekstowy i w pierwszym wierszu wklej swój klucz Darksky API. W drugim wierszu wklej swoją długość geograficzną, aw trzecim wklej szerokość geograficzną (obie w formacie dziesiętnym). Kiedy skończysz, zapisz plik.

W tym samym katalogu utwórz kolejny plik tekstowy o nazwie 'database_dsn.txt'. Pierwsza linia powinna zawierać „localhost”. Druga linia to „root”. W trzeciej linii powinieneś wpisać swoje hasło, które zrobiłeś wcześniej dla bazy danych, aw czwartej i ostatniej linii powinieneś wpisać 'fanair'.

Kliknij prawym przyciskiem myszy plik main.py i wybierz edytuj. Należy zmienić 'fanair = Fanair(5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")'. Jeśli podążałeś za obrazem, pierwsze 5 wartości powinno zostać zmienionych z „5, 26, 17, 27, 22, 4” na „20, 21, 26, 19, 13”. '/home/muhsin/Applications/Fanair' należy również zmienić na ścieżkę główną Fanair (gdzie jest main.py). Pamiętaj, aby umieścić ukośnik przed „domem”, ale nie po „Fanair”.

Teraz wszystko jest świetne, ale kod musi dostać się do Pi. Na szczęście dla nas istnieje protokół sftp. Aby umieścić pliki na Pi, użyj klienta sftp, takiego jak FileZilla, lub jeśli zdecydujesz się użyć MobaXterm, możesz łatwo przesłać pliki w interfejsie sftp po lewej stronie terminala.

Z mojego doświadczenia wynika, że nie zawsze otrzymuję w Raspberry Pi właściwą datę i godzinę. Aby upewnić się, że otrzymasz poprawną datę i godzinę, sugeruję postępować zgodnie z tym przewodnikiem: Data i godzina synchronizacji Raspberry Pi.

Na koniec należy zainstalować kilka bibliotek i aktywować kilka interfejsów:

„sudo apt-get install build-essential python-dev”

Adafruit DHT:

'pip3 zainstaluj adafruit_python_dht'

1-przewodowy:

  1. 'konfiguracja sudo raspi'
  2. „Opcje interfejsu”
  3. „1 przewód”
  4. Włączyć
  5. 'sudo nano /boot/config.txt'
  6. Dodaj ten wiersz w pliku: 'dtoverlay=w1-gpio'
  7. „sudo ponowne uruchomienie”

SPI:

  1. 'konfiguracja sudo raspi'
  2. „Opcje interfejsu”
  3. „SPI”
  4. Włączyć
  5. „sudo ponowne uruchomienie”
  6. 'sudo nano /boot/config.txt'
  7. Wyszukaj „dtparam=spi=on” i usuń komentarz, usuwając hashtag.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. „konfiguracja sudo raspi”
  2. „Opcje interfejsu”
  3. „I2C”
  4. Włączyć
  5. „sudo ponowne uruchomienie”
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Wyszukaj dtparam=i2c_arm=on i odkomentuj go usuwając hashtag.

kolba

pip3 zainstaluj kolbę

złącze mysql

'pip3 install -Iv mysql-connector==2.1.4'

spidev

'pip3 zainstaluj py-spidev'

ciemne niebo

'pip3 zainstaluj darkskylib'

Krok 6: Wypróbuj

Jeśli udało ci się dotrzeć tak daleko, poklep się po plecach. Teraz wszystko jest zrobione, aby Fanair działał poprawnie. Aby to przetestować, wpisz „cd „””. Lokalizacja pliku to "/home/pi", na przykład, jeśli właśnie wkleiłeś plik w swoim katalogu domowym. Następnie wpisz „python3 main.py” i pozwól mu odpocząć przez 15 minut, aby po zakończeniu miał dane w bazie danych. Następnie naciśnij 'ctrl + c' zatrzymaj program i wpisz 'python3 Flask.py'. Aby sprawdzić, czy Twoja witryna działa, musisz surfować do adresu IP swojego Pi, który wprowadziłeś za pomocą ':5000' (na przykład: 169.254.10.1:5000').

Aby uruchamiał się automatycznie po uruchomieniu:

'sudo nano /etc/rc.local'

Na końcu pliku ALE PRZED wyjściem 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Gratulacje, teraz skrypt powinien działać od samego początku i GOTOWE! Jeśli planujesz kontynuować projekt, a jeszcze tego nie zrobiłeś, sugeruję, abyś zlutował wszystko razem, aby upewnić się, że wszystko zostanie na swoim miejscu. Chociaż jeśli nie grasz, aby poruszać nim dużo, tablica prototypowa również działa oczywiście.

Zalecana: