Spisu treści:

Cyfrowy zegar radiowy Raspberry Pi: 8 kroków (ze zdjęciami)
Cyfrowy zegar radiowy Raspberry Pi: 8 kroków (ze zdjęciami)

Wideo: Cyfrowy zegar radiowy Raspberry Pi: 8 kroków (ze zdjęciami)

Wideo: Cyfrowy zegar radiowy Raspberry Pi: 8 kroków (ze zdjęciami)
Wideo: Syn mówi, że z komputerem coś nie tak 🤔 2024, Listopad
Anonim
Cyfrowy zegar radiowy Raspberry Pi
Cyfrowy zegar radiowy Raspberry Pi

Przegląd

Radiooperatorzy amatorscy (inaczej HAM Radio) używają 24-godzinnego czasu UTC (Universal Coordinated Time) przez większość swojej działalności. Zdecydowałem się zbudować zegar cyfrowy, korzystając z niedrogich 4-cyfrowych wyświetlaczy TM1637 i Raspberry Pi Zero W zamiast zegara GUI. (Sprzęt jest fajny!)

Wyświetlacz sterowany za pomocą TM1637 ma cztery 7-segmentowe diody LED ze środkowym dwukropkiem „:” między dwoma zestawami cyfr. Wymaga dwóch przewodów do zasilania wyświetlacza plus 5 V + i uziemienia, co daje łącznie 4 przewody.

W przypadku tego konkretnego projektu chciałem, aby Raspi pobierał swój czas z serwerów NTP (Network Time Protocol) przez Internet. Planuję kolejną wersję tego zegara, która będzie działać na Arduino Uno i module zegara czasu rzeczywistego, gdy nie ma dostępnego WiFi i dla bardziej przenośnej pracy.

Chciałem również, aby zegar pokazywał czas lokalny w formatach 12h i 24h oraz UTC w formatach 12h i 24h. Oprogramowanie zostało zaprojektowane tak, aby umożliwić korzystanie tylko z czasu UTC 24h (typowe szynki) lub różnych czasów na maksymalnie 4 różnych wyświetlaczach.

Możesz także ustawić STREFĘ CZASOWĄ, której chcesz używać zamiast domyślnego czasu lokalnego. Tak więc każdy z czterech wyświetlaczy może pokazywać inną strefę czasową w formacie 12 lub 24 godzinnym.

Ten projekt wymaga lutowania złączy lub przewodów do modułów Pi i/lub tm1637.

Pełne instrukcje są również dostępne na GITHUB:

Krok 1: Wymagania

Wymagania
Wymagania

• Raspberry Pi2, 3 lub Zero W. (tj. dowolne pi z 40-pinowym nagłówkiem i Ethernet/Wifi)

• 4 - TM1637 4-cyfrowe moduły wyświetlacza

I/lub

UWAGA: możesz używać większych lub mniejszych, o ile są kompatybilne z TM1637.

• Wiązka przewodów z 16 przewodami (każdy TM1637 wymaga 4 przewodów)

• Płytka do krojenia chleba bez lutowania i przewody Lub

• Płytka do lutowania i różne złącza szpilkowe.

• 8 GB MicroSD lub więcej dla Pi

• Zasilanie 5V dla Pi.

Krok 2: Instalacja oprogramowania

Ta aplikacja wykorzystuje łatwą w użyciu bibliotekę Pythona TM1637.py napisaną przez Tima Waizeneggera. (Jeśli chcesz uzyskać szczegółowe informacje na temat biblioteki, sprawdź:

Czy wiedziałeś?

Jeśli zainstalujesz Raspbian na karcie SD za pomocą komputera PC, możesz utworzyć dwa pliki na karcie, aby skonfigurować dostęp Wi-Fi i SSH przed uruchomieniem go na Raspberry?

W tym celu załóżmy, że twoja karta SD jest obecnie zamontowana jako K: na twoim komputerze:

1) Zainstaluj obraz Raspbian Lite na karcie SD.

www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit

2) Za pomocą notatnika utwórz plik o nazwie „ssh” i użyj Zapisz jako „Wszystkie pliki” do K: / ssh

Plik może zawierać wszystko. Ważna jest nazwa pliku. NIE MOŻE być „ssh.txt”!!!

3) Za pomocą notatnika utwórz drugi plik o nazwie „wpa_supplicant.conf” z następującymi danymi:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1 network={ ssid="mySSID" psk="mypassword" key_mgmt=WPA-PSK }

Użyj opcji Zapisz jako „Wszystkie pliki” do K:\wpa_supplicant.conf

Ponownie, nie pozwól Notatnikowi zmienić go na „wpa_supplicant.conf.txt”!!

Kiedy uruchamiasz Raspberry po raz pierwszy, Raspbian poszuka ich i połączy się z Wifi. Musisz jednak poszukać adresu IP na routerze, ponieważ jest on automatycznie przypisywany.

Krok 3: Instalacja oprogramowania - Pt.2

1. Jeśli jeszcze tego nie zrobiłeś, zainstaluj wersję Raspbian Lite na karcie microSD o pojemności 8 GB lub większej. NIE potrzebujesz wersji GUI, ponieważ ten projekt nie używa monitora ani klawiatury.

UWAGA!: Ten projekt wymaga Python2.7!

www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit

2. Będziesz musiał uzyskać zdalny dostęp do Raspberry przez SSH. W systemie Windows możesz użyć programu terminalowego PUTTY SSH. Na Macu po prostu otwórz okno terminala poleceń.

3. Włóż kartę microSD do Pi i podłącz teraz zasilanie. Uruchomienie zajmie kilka minut.

4. Aby zdalnie zalogować się do Raspberry Pi, musisz znaleźć jego adres IP. Możesz spróbować: $ ssh [email protected] (Lub z Putty wpisz nazwę hosta [email protected] W przeciwnym razie musisz sprawdzić, czy router pokaże adresy IP Twoich urządzeń lokalnych. Domyślnym identyfikatorem/hasłem jest „pi /Malina"

Po zalogowaniu się jako użytkownik pi:

5. Zaktualizuj Raspbian: $ sudo apt update $ sudo apt upgrade

6. Skonfiguruj Raspberry: $ sudo raspi-config Zmień hasło użytkownika Opcje lokalizacji -> Zmień strefę czasową Wybierz lokalną strefę czasową. Tab, aby zakończyć

7. Zainstaluj oprogramowanie RaspiDigiHamClock: $ cd /home/pi $ sudo apt update $ sudo apt install git $ git clone

8. Wyłącz teraz swoje Pi, aby skonfigurować wyłączenie sprzętu $ Po zgaśnięciu diody odłącz zasilanie

Krok 4: Okablowanie sprzętowe

Okablowanie sprzętowe
Okablowanie sprzętowe
Okablowanie sprzętowe
Okablowanie sprzętowe
Okablowanie sprzętowe
Okablowanie sprzętowe

Możesz wlutować złącza do modułów TM1637 i Raspberry Pi (jeśli nie ma jeszcze złącza). Przed rozpoczęciem zdecyduj, jak chcesz zamontować wyświetlacze i czy zamierzasz użyć płytki stykowej lub przewodów lutowniczych bezpośrednio na modułach Pi i wyświetlaczach.

Piny modułu TM1637

Uwaga dotycząca okablowania: Niektóre moduły tm1637 odwracają piny +5V i GND! Więc może nie wyglądać tak samo jak na zdjęciach.

Moduł TM1637 to 4-cyfrowy moduł wyświetlacza led, który wykorzystuje układ sterownika TM1637. Do sterowania 4-cyfrowym 8-segmentowym wyświetlaczem potrzebne są tylko dwa połączenia. Dwa inne przewody zasilają napięcie 5+ V i uziemienie.

PIN DESC CLK Zegar DIO Dane w GND Uziemienie 5 V + 5 woltów

Niektóre moduły tm1637 odwracają piny + 5 V i GND, więc sprawdź oznaczenia modułu

Przetestuj każdy moduł Proponuję zacząć od pojedynczego 4-żyłowego kabla żeńskiego ze złączami męskimi przylutowanymi do jednego z modułów i Pi. Następnie tymczasowo podłącz pierwszy moduł do pinów pokazanych poniżej.

TEST TYMCZASOWY A MODULETM1637 Pin modułu Pi Fizyczny Pin# 5V 2 GND 6 CLK 40 DIO 38 Zobacz schematy GPIO niżej, aby znaleźć układ pinów.

Drugie zdjęcie pokazuje dwa wyświetlacze tymczasowo podłączone do Raspberry Pi 3 z uruchomionym oprogramowaniem.

1. Po tymczasowym podłączeniu modułu i sprawdzeniu okablowania

2. Włącz Raspberry Pi. Czerwona dioda LED na Module powinna się zaświecić, ale jeszcze NIE BĘDZIE WYŚWIETLACZ.

3. SSH do swojego Pi ponownie, tak jak poprzednio.

$ cd RaspiDigiHamZegar

$ python test.py

Powinieneś zobaczyć cykl wyświetlania różnych krótkich wiadomości. Jeśli tego nie zrobisz, najpierw sprawdź ponownie okablowanie! Łatwo jest odwrócić przewód lub podłączyć do niewłaściwego pinu GPIO w Pi. Jeśli otrzymasz komunikat o błędzie Pythona, zweryfikuj swoją wersję Pythona za pomocą:

$ python -V (duże „V”)

Python 2.7. X

Nie testowałem z Pythonem 3, więc nie jestem pewien, czy biblioteka jest kompatybilna.

Skopiuj komunikat o błędzie (zwykle ostatni wiersz błędu) i wklej do wyszukiwarki Google. Może to dać wskazówkę, co się stało.

Jeśli Twój moduł działa, Gratulacje! Wiesz, że moduł i Pi działają. Teraz powtórz dla każdego modułu, aby go przetestować. (Proponuję wyłączyć Pi i wyłączyć zasilanie PRZED podłączeniem/odłączeniem modułów!!)

$ wyłącz sudo teraz

Krok 5: Piny GPIO na Raspi

Piny GPIO na Raspi
Piny GPIO na Raspi
Piny GPIO na Raspi
Piny GPIO na Raspi
Piny GPIO na Raspi
Piny GPIO na Raspi

Ten projekt używa fizycznych identyfikatorów GPIO BOARD dla pinów.

To jest Pin 1 do Pin 40. Nie numeracja pinów GPIO „BCM”. (Tak, trochę mylące, ale BOARD to tylko liczba pinów od lewego górnego rogu do prawego dolnego).

Moduł wyświetlacza TM1637 Pin modułu Pi Fizyczny pin#Zasilanie 5V 2 Uziemienie GND 6

Moduł #1 CLK 33

DIO 31

Moduł #2 CLK 36

DIO 32

Moduł #3 CLK 37

DIO 35

Moduł #4 CLK 40

DIO 38

Uwaga: W razie potrzeby nie musisz dodawać wszystkich 4 modułów. Możesz mieć od 1 do 4 modułów. (Tak, można przejść do większej liczby modułów, ale musisz zmienić kod, aby obsługiwać więcej.)

ALE, MUSISZ podłączać moduły sekwencyjnie, zaczynając od Modułu #1

Dzieje się tak, ponieważ biblioteka TM1637 oczekuje ACK z modułu, więc wydaje się, że w przeciwnym razie zawiesza się w oczekiwaniu.

Przykładowe zdjęcia lutowanej płyty prototypowej Musisz postępować zgodnie z własnym schematem okablowania, aby pasowały do pokazanych wcześniej pinów GPIO, ponieważ złącza i moduły, których użyłem, mogą nie pasować do twoich.

Krok 6: Testowanie

Wow, to było trochę okablowania! Teraz czas na testy dymu…

Skoro znasz już poszczególne moduły i pracę Pi (testowałeś moduły jak opisano wcześniej?), to następnym krokiem jest skonfigurowanie pliku. INI i uruchomienie programu zegarowego:

1. Edytuj raspiclock.ini

$ cd /home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. Zmień num_modules na ile masz podłączonych. Jest to ważne, ponieważ biblioteka zawiesza się czekając na ACK, jeśli nie może komunikować się z modułem. Pamiętaj, aby podać liczbę modułów, W KOLEJNOŚCI POKAZANEJ w. INI Uwaga: Dodatkowe piny TZ i HR i GPIO są ignorowane, jeśli liczba_modułów jest mniejsza niż 4.

3. Dodaj strefy czasowe dla każdego modułu.

To są nazwy Linux TZ, takie jak „America/New_York”, EST5EDT, UTC lub „Local” dla lokalnej strefy czasowej ustawionej za pomocą raspi-config. Wartość domyślna to UTC

4. Ustaw, czy dla każdego modułu ma być wyświetlany tryb 12h czy 24h

[ZEGAR]; Liczba modułów TM1637 (od 1 do 4) num_modules = 2

; Strefy czasowe dla każdego modułu

; Użyj raspi-config, aby ustawić lokalną strefę czasową; Wartość domyślna to UTC; Format to nazwy Linux TZ lub 'Local' dla czasu lokalnego; „Ameryka/Nowy_Jork”, EST5EDT, UTC, „Lokalny” TZ1 = Lokalny TZ2 = UTC TZ3 = TZ4 =

; 12/24 godziny dla każdego modułu

HR1 = 12 HR2 = 24 HR3 = 12 HR4 = 24

; JASNOŚĆ (zakres 1..7)

LUM = 1

5. Nie powinieneś edytować pinów GPIO, chyba że podłączysz je do różnych pinów # na Pi.

6. Zapisz zmiany, a następnie uruchom zegar:

$ python raspiclock.py

Jeśli wszystko jest w porządku, wszystkie moduły wyświetlania powinny zaświecić się z czasami ustawionymi w pliku. INI.

Gratulacje! Pomiń rozwiązywanie problemów i przejdź do instalacji końcowej…

Krok 7: Rozwiązywanie problemów

Powinieneś zobaczyć kilka prostych komunikatów debugowania:

Inicjalizacja…Liczba modułów = 4 Rozpoczęcie pętli zegara… Moduł#1 displayTM() Moduł#2 displayTM() Moduł#3 displayTM() Moduł#4 displayTM() (powtarzane…)

Jeśli wcześniej testowałeś moduły i wszystkie działały, to wiesz, że moduły i Raspberry są dobre.

A) ZAWIESZ – Jeśli komunikaty debugowania zawieszają się w jednym miejscu, program czeka na potwierdzenie z tego modułu #.

Najpierw sprawdź okablowanie! Łatwo jest odwrócić przewód lub podłączyć do niewłaściwego pinu GPIO w Pi.

Po drugie, zamień moduły, aby sprawdzić, czy moduł nagle się zepsuł.

Po trzecie, sprawdź plik raspiclock.ini pod kątem błędów. Jeśli to konieczne, usuń cały katalog i wykonaj kolejny GIT CLONE, aby ponownie pobrać.

Po czwarte, ponownie sprawdź okablowanie!;-)

B) Jeśli otrzymasz komunikat o błędzie Pythona, zweryfikuj swoją wersję Pythona za pomocą:

$ python -V (duże „V”)

Python 2.7. X

Nie testowałem z Pythonem 3, więc nie jestem pewien, czy biblioteka jest kompatybilna. Skopiuj komunikat o błędzie (zwykle ostatni wiersz błędu) i wklej do wyszukiwarki Google. Może to dać wskazówkę, co się stało.

Krok 8: Instalacja końcowa

Instalacja końcowa
Instalacja końcowa

1. Edytuj ponownie plik. INI i ustaw debug = 0.$ cd /home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. Sprawdź również, czy strefy czasowe TZ i HR 12/24 godziny są takie, jak chcesz.

3. Ustaw Jasność według potrzeb w zakresie od 1 do 7.

4. Uruchom skrypt install.sh, aby dodać do crontab pi w celu automatycznego uruchamiania podczas rozruchu.

$ sh install.sh

5. Uruchom ponownie

$ sudo restart

6. Powinien się zrestartować, a następnie uruchomić.

SKOŃCZONE!

Zalecana: