Spisu treści:

Zegar pogodowy z barometrem Raspberry Pi: 9 kroków (ze zdjęciami)
Zegar pogodowy z barometrem Raspberry Pi: 9 kroków (ze zdjęciami)

Wideo: Zegar pogodowy z barometrem Raspberry Pi: 9 kroków (ze zdjęciami)

Wideo: Zegar pogodowy z barometrem Raspberry Pi: 9 kroków (ze zdjęciami)
Wideo: Stacja pogody z kolorowym wyświetlaczem i zewnętrznym czujnikiem bezprzewodowym DIGOO DG-TH8622 2024, Listopad
Anonim
Zegar pogodowy z barometrem Raspberry Pi
Zegar pogodowy z barometrem Raspberry Pi

W tej instrukcji pokażę, jak zbudować podstawowy zegar termometru / barometru przy użyciu Raspberry Pi 2 z czujnikiem BMP180 I2C wyświetlającym na 4-cyfrowym 7-segmentowym wyświetlaczu I2C Adafruit. Pi używa również modułu zegara czasu rzeczywistego I2C DS3231, aby zachować czas po ponownym uruchomieniu Pi.

Zegar przechodzi przez 4 etapy po 5 sekund każdy. Najpierw pokazuje temperaturę w stopniach Celsjusza, potem w stopniach Fahrenheita, potem ciśnienie barometryczne w kPa *(przenosi tę liczbę w lewo ze względu na ograniczoną liczbę cyfr) i na końcu pokazuje trend zmian ciśnienia barometrycznego od chwili obecnej do średniej poprzednia godzina.

Tym, co odróżnia ten zegar od większości, jest to, że używa bazy danych MySQL na Pi do rejestrowania danych z BMP180 co minutę. Ponieważ bieżące ciśnienie barometryczne nie jest tak cenne, jak jego ruch w górę lub w dół w danym okresie czasu, wykorzystuje tę bazę danych do obliczenia średniej z przedziału godzinowego od 2 godzin do 1 godziny temu i porównuje ją z bieżącym ciśnieniem. Znaczący wzrost ciśnienia barometrycznego zwykle wskazywał na poprawę warunków pogodowych, a duży spadek mógł ostrzegać przed nadchodzącą burzą.

Zegar jest umieszczony w wydrukowanej w 3D obudowie ABS z BMP180 w wentylowanej nasadce z tyłu zegara, aby zapobiec wpływowi ciepła wytwarzanego przez Pi na odczyty temperatury. Dostarczę schemat Autodesk 123D Design, jeśli chcesz wydrukować własny.

Zegar jest zasilany ze standardowej ściennej brodawki USB i pobiera w sumie około 450 mA.

Nie będę wchodził w zbyt wiele szczegółów na temat podstawowej konfiguracji Pi i I2C, ponieważ zostało to omówione w wielu innych instrukcjach, do których podam linki.

Krok 1: Przygotuj Pi

Przygotuj Pi
Przygotuj Pi

Skonfiguruj Raspberry Pi - Szczegóły na Raspberrypi.org

  1. Pobierz i zainstaluj wybraną dystrybucję Linuksa na karcie SD - użyłem Raspbian
  2. Podłącz pi i uruchom go
  3. Użyłem adaptera micro WiFi do podłączenia pi do mojego routera, ponieważ obudowa zegara zasłania port Ethernet.
  4. Użyłem trybu bezgłowego, w którym łączysz się z pi za pomocą SSH, więc wszystko, czego potrzebujesz, to zasilanie.
  5. Skonfiguruj I2C na Pi - postępowałem zgodnie z tymi instrukcjami na stronie Adafruit.

Krok 2: Podłącz wszystko do góry

Podłącz wszystko do góry
Podłącz wszystko do góry

Wszystkie moduły, których używam w tym projekcie, są odporne na 5 V i używają I2C, który jest protokołem 2-przewodowym używanym do komunikacji między układami scalonymi, więc okablowanie jest dość proste. Podłącz wszystkie VCC do 5 V, wszystkie masy razem i wszystkie linie SCA i SCL razem zgodnie ze schematem. Zadanie wykonane.

Krok 3: Przetestuj swój I2C

Przetestuj swoje I2C
Przetestuj swoje I2C

Częścią instalacji I2C jest uruchomienie i2cdetect, który powinien wyglądać jak załączony obraz, jeśli wszystko jest prawidłowo podłączone.

Poniżej znajdują się pasujące adresy

  1. 0x70 = 7-segmentowy wyświetlacz
  2. 0x77 = BMP180 Termometr / czujnik barometru
  3. 0x68 = Moduł zegara czasu rzeczywistego DS3231
  4. 0x57 = DS3231 na płycie EEPROM do przechowywania danych alarmowych.

Krok 4: Zainstaluj MySQL i PhpMyAdmin

Zainstaluj MySQL i PhpMyAdmin
Zainstaluj MySQL i PhpMyAdmin

Instalacja mySQL jest dość prosta, jeśli postępujesz zgodnie z samouczkiem tutaj

sudo apt-get install mysql-server

Zainstalowałem również phpMyAdmin, która jest stroną internetową działającą na Apache, której można używać do tworzenia i zarządzania bazami danych mySQL. Samouczek tutaj

sudo apt-get zainstaluj phpmyadmin

Po zainstalowaniu skonfigurowałem bazę danych o nazwie BP180 za pomocą phpMyAdmin ze strukturą jak na obrazku.

Korzystam również z modułu Pythona o nazwie mysqlDB, który można zainstalować za pomocą

sudo apt-get install python-mysqldb

Krok 5: Zainstaluj moduły Pythona

Pobierz i zainstaluj poniższe moduły Pythona, których będziesz używać do łączenia się z czujnikami.

  1. Moduł Adafruit_BMP085
  2. Moduł SDL_DS3231
  3. Adafruit 7-segmentowy moduł

Krok 6: Kod do logowania do bazy danych

Poniższy fragment kodu służy do rejestrowania temperatury i ciśnienia barometrycznego i jest wywoływany ze skryptu cron (zaplanowane zadania systemu Linux), który jest uruchamiany co 5 minut. Aby dowiedzieć się, jak korzystać z crond, zapoznaj się z tym samouczkiem.

Uwaga! Nie zawracaj sobie głowy niszczeniem moich umiejętności kodowania, nie jestem programistą, więc tak, prawdopodobnie jest milion lepszych, szybszych, płynniejszych i czystszych sposobów na zrobienie tego

W kodzie zauważysz, że temperatura jest zmniejszona o 7 stopni, co odpowiada ciepłu generowanemu przez Raspberry Pi, nawet z BMP180 zamontowanym na zewnątrz obudowy. Kiedy pierwotnie miałem go w obudowie, był o około 15 stopni cieplejszy niż temperatura otoczenia. Wydaje się, że jest dość liniowy, ale nie miałem okazji przetestować żadnych skrajności. Informacje zwrotne na temat twoich doświadczeń będą mile widziane.

Krok 7: Kod do wyświetlenia temperatury

Kod do wyświetlania temperatury
Kod do wyświetlania temperatury
Kod do wyświetlania temperatury
Kod do wyświetlania temperatury
Kod do wyświetlania temperatury
Kod do wyświetlania temperatury
Kod do wyświetlania temperatury
Kod do wyświetlania temperatury

Ten kod jest wywoływany, aby przechodzić przez wyświetlacz zgodnie z wprowadzeniem.

Ponownie, nie jestem programistą, więc kod jest naprawdę szorstki, ale działa

Krok 8: Obudowa drukowana w 3D

Obudowa drukowana w 3D
Obudowa drukowana w 3D
Obudowa drukowana w 3D
Obudowa drukowana w 3D
Obudowa drukowana w 3D
Obudowa drukowana w 3D
Obudowa drukowana w 3D
Obudowa drukowana w 3D

Dalej jest projekt obudowy. Było to dość trudne, ponieważ kształt jest podatny na wypaczenie, ponieważ części zewnętrznej skorupy mają tylko 2 mm grubości. Najpierw narysowałem makiety Pi i wszystkich części, a następnie zaprojektowałem obudowę wokół niego. Drukowanie trwało około 7 godzin na moim RapMan 3.2 (która jest dość wolną drukarką) przy głębokości warstwy 0,25.

Załączony schemat jest wykonany w Autodesk 123D Design, który moim zdaniem jest fantastycznym darmowym oprogramowaniem.

Zauważ, że niektóre otwory, takie jak te potrzebne do zamontowania Pi, nie znajdują się w projekcie, ponieważ lepiej jest je później wywiercić, na wypadek, gdyby wydruk trochę się wypaczył. Pewna ręka wystarczy wiertło 3 mm. Zaznacz głębokość na wiertle taśmą maskującą, aby przypadkowo nie przejść przez odcisk z 7 godzin, tak jak ja.

Krok 9: Rzeczy do zrobienia

Rzeczy do zrobienia
Rzeczy do zrobienia
  1. Zegar czasu rzeczywistego został dodany po wydrukowaniu obudowy po raz piąty, więc obecnie jest przyklejony na gorąco z boku obudowy, co nie wygląda dobrze, więc chciałbym przerobić projekt i dodać miejsce na niego.
  2. Jasność 7-segmentowego wyświetlacza jest obecnie ustawiona na najjaśniejszą, co nie jest optymalne w warunkach silnego oświetlenia. Chciałbym dodać fotorezystor na górze obudowy i dostosować jasność 7-segmentową w zależności od warunków oświetlenia otoczenia.
  3. Istnieje kilka drobnych problemów projektowych związanych z pękaniem podstawy, które również zostaną naprawione.
  4. Wszelkie pomysły są mile widziane.

Mam nadzieję, że spodobała Ci się ta instrukcja i uznałeś ją za wystarczająco inspirującą, abyś mógł zacząć. Chodzi o to, aby zapewnić platformę, na której można dodawać własne pomysły. Baw się dobrze!

Zalecana: