Spisu treści:
- Krok 1: Przygotuj Pi
- Krok 2: Podłącz wszystko do góry
- Krok 3: Przetestuj swój I2C
- Krok 4: Zainstaluj MySQL i PhpMyAdmin
- Krok 5: Zainstaluj moduły Pythona
- Krok 6: Kod do logowania do bazy danych
- Krok 7: Kod do wyświetlenia temperatury
- Krok 8: Obudowa drukowana w 3D
- Krok 9: Rzeczy do zrobienia
Wideo: Zegar pogodowy z barometrem Raspberry Pi: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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
Skonfiguruj Raspberry Pi - Szczegóły na Raspberrypi.org
- Pobierz i zainstaluj wybraną dystrybucję Linuksa na karcie SD - użyłem Raspbian
- Podłącz pi i uruchom go
- Użyłem adaptera micro WiFi do podłączenia pi do mojego routera, ponieważ obudowa zegara zasłania port Ethernet.
- Użyłem trybu bezgłowego, w którym łączysz się z pi za pomocą SSH, więc wszystko, czego potrzebujesz, to zasilanie.
- Skonfiguruj I2C na Pi - postępowałem zgodnie z tymi instrukcjami na stronie Adafruit.
Krok 2: 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
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
- 0x70 = 7-segmentowy wyświetlacz
- 0x77 = BMP180 Termometr / czujnik barometru
- 0x68 = Moduł zegara czasu rzeczywistego DS3231
- 0x57 = DS3231 na płycie EEPROM do przechowywania danych alarmowych.
Krok 4: 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.
- Moduł Adafruit_BMP085
- Moduł SDL_DS3231
- 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
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
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
- 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.
- 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.
- Istnieje kilka drobnych problemów projektowych związanych z pękaniem podstawy, które również zostaną naprawione.
- 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:
ESP8266 Zegar sieciowy bez zegara RTC - Nodemcu NTP Zegar bez RTC - PROJEKT ZEGAR INTERNETOWY: 4 kroki
ESP8266 Zegar sieciowy bez zegara RTC | Nodemcu NTP Zegar bez RTC | PROJEKT ZEGARA INTERNETOWEGO: W projekcie będzie wykonywany projekt zegara bez RTC, będzie pobierał czas z internetu za pomocą wifi i wyświetli go na wyświetlaczu st7735
Zegar pogodowy Raspi-Nextion: 7 kroków
Zegar pogodowy Raspi-Nextion: Widząc tak wiele różnych zegarów zbudowanych z arduino i Raspberry Pi zainspirowało mnie. Też chciałem zrobić. Zacząłem od arduino mega z ESP8266, ale stwierdziłem, że wifi 8266 ma zbyt wiele czkawek. Postanowiłem użyć zapasowego Pi, które miałem (Raspb
Zegar pogodowy: 11 kroków (ze zdjęciami)
Zegar pogodowy: Aktualizacja ze schematem elektrycznym i schematem Fritzing Robię dwie przesłanki: To mój pierwszy InstructableJestem ignorantem włoskim, który nie uczył się angielskiego w szkole i dlatego poprosiłem o pomoc: https://translate.google.itStart z podziękowaniami
Zegar pogodowy: 15 kroków (ze zdjęciami)
Zegar pogodowy: świetnie wyglądający zegar na biurko z datą i; wyświetlacz pogody
ESP8266 Zegar pogodowy: 6 kroków (ze zdjęciami)
Zegar pogodowy ESP8266: Jestem bardzo dumny z twojego przyjazdu i witam cię