Съдържание:

Радиомагнитни радиолюбителски цифрови часовници: 8 стъпки (със снимки)
Радиомагнитни радиолюбителски цифрови часовници: 8 стъпки (със снимки)

Видео: Радиомагнитни радиолюбителски цифрови часовници: 8 стъпки (със снимки)

Видео: Радиомагнитни радиолюбителски цифрови часовници: 8 стъпки (със снимки)
Видео: Особенности распространения радиоволн [ РадиолюбительTV 16] 2024, Ноември
Anonim
Raspberry Pi Любителско радио Цифров часовник
Raspberry Pi Любителско радио Цифров часовник

Общ преглед

Радиолюбителите (известни още като HAM Radio) използват 24 часа UTC (универсално координирано време) за голяма част от работата си. Реших да направя цифров часовник, използвайки евтини 4-цифрени дисплеи TM1637 и Raspberry Pi Zero W, вместо просто часовник с графичен интерфейс. (Хардуерът е забавен!)

Дисплеят с задвижване TM1637 има четири 7 сегментни светодиода с централно двоеточие „:“между два набора от цифри. Изисква два проводника за задвижване на дисплея плюс 5V + и заземяване за общо 4 проводника.

За този конкретен проект исках Raspi да получава времето си от NTP (Network Time Protocol) сървъри през Интернет. Планирам друга версия на този часовник да работи на Arduino Uno и модул Часовник в реално време, когато няма наличен WiFi и за по-преносима работа.

Исках също така часовникът да показва местното време във формат 12 часа и 24 часа, както и UTC във формат 12 часа и 24 часа. Софтуерът е проектиран да ви позволява да използвате само UTC 24 часа (типични шунки) или различно време на до 4 различни дисплея.

Можете също така да зададете ЧАСОВАТА ЗОНА, която искате да използвате вместо стандартното местно време. Така че всеки от четирите дисплея може да показва различна часова зона и във формат 12 часа или 24 часа.

Този проект изисква запояване на конектори или проводници към модулите Pi и/или tm1637.

Пълни инструкции са достъпни и на GITHUB:

Стъпка 1: Изисквания

Изисквания
Изисквания

• Raspberry Pi2, 3 или Zero W. (т.е. всяко пи с 40 -пинов заглавие и Ethernet/Wifi)

• 4-TM1637 4-цифрени дисплейни модули

И/или

ЗАБЕЛЕЖКА: можете да използвате по -големи или по -малки, стига да са съвместими с TM1637.

• Кабел с 16 жици (всеки TM1637 се нуждае от 4 проводника)

• Планка и проводници без запояване Or

• Спояваща платка и различни щифтови конектори.

• 8GB MicroSD или по -голям за Pi

• 5v захранване за Pi.

Стъпка 2: Инсталиране на софтуер

Това приложение използва лесната за използване TM1637.py библиотека на python, написана от Tim Waizenegger. (Ако искате подробности за библиотеката, разгледайте:

Знаеше ли?

Ако инсталирате Raspbian на SD карта с компютър, можете да създадете два файла на картата, за да конфигурирате WiFi и SSH достъп, преди да го стартирате на Raspberry?

За това приемете, че вашата SD карта в момента е монтирана като K: на вашия компютър:

1) Инсталирайте изображението на Raspbian Lite на SD.

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

2) С бележник създайте файл, наречен просто „ssh“и използвайте Запазване като „Всички файлове“в K: / ssh

Файлът може да съдържа всичко. Името на файла е важно. НЕ трябва да бъде „ssh.txt“!!!

3) С бележник създайте втори файл, наречен „wpa_supplicant.conf“със следното:

ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdevupdate_config = 1 мрежа = {ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}

Използвайте Запазване като „Всички файлове“в K: / wpa_supplicant.conf

Отново, не позволявайте на Notepad да го промени на „wpa_supplicant.conf.txt“!!

Когато стартирате Raspberry за първи път, Raspbian ще ги потърси и ще се свърже с вашия Wifi. Ще трябва да потърсите на вашия рутер IP адреса, тъй като той е автоматично присвоен.

Стъпка 3: Инсталиране на софтуер - Pt.2

1. Ако все още не сте инсталирали Raspbian Lite версия на 8GB или по -голяма microSD карта. НЕ се нуждаете от GUI версията, тъй като този проект не използва монитор или клавиатура.

ЗАБЕЛЕЖКА !: Този проект изисква Python2.7!

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

2. Ще трябва да получите достъп до Raspberry от разстояние чрез SSH. В Windows можете да използвате терминална програма PUTTY SSH. На Mac просто отворете прозореца на командния терминал.

3. Поставете microSD картата в Pi и включете захранването сега. Зареждането ще отнеме няколко минути.

4. За да влезете дистанционно във вашия Raspberry Pi, ще трябва да намерите неговия IP адрес. Можете да опитате: $ ssh [email protected] (Или от Putty, въведете име на хост [email protected] В противен случай ще трябва да видите дали вашият маршрутизатор ще показва IP адресите на вашите локални устройства. По подразбиране id/passwd е „pi /малина”

След като сте влезли като потребител на pi:

5. Актуализирайте вашия Raspbian: $ sudo apt update $ sudo apt upgrade

6. Конфигурирайте малината: $ sudo raspi-config a. Промяна на потребителска парола b. Опции за локализация -> Промяна на часовата зона Изберете вашата местна часова зона c. Tab за завършване

7. Инсталирайте софтуера RaspiDigiHamClock: $ cd/home/pi $ sudo apt update $ sudo apt install git $ git clone

8. Изключете вашия Pi за настройка на хардуерното $ shutdown сега След като LED изгасне, изключете захранването

Стъпка 4: Хардуерно окабеляване

Хардуерно окабеляване
Хардуерно окабеляване
Хардуерно окабеляване
Хардуерно окабеляване
Хардуерно окабеляване
Хардуерно окабеляване

Можете да запоявате конектори към модулите TM1637 и Raspberry Pi (ако все още няма конектор). Преди да започнете, решете как искате да монтирате дисплеите и дали ще използвате макет или спойка проводници директно върху модулите Pi и дисплея.

Пинове на модула TM1637

Забележка за окабеляване: Някои модули tm1637 обръщат щифтовете +5v и GND! Така че може да не изглеждат същите като снимките.

Модулът TM1637 е 4-цифрен светодиоден модул, който използва чип драйвер TM1637. Нужни са само две връзки за управление на 4-цифрения 8-сегментен дисплей. Други два проводника захранват 5+ волта и заземяват.

PIN DESC CLK Часовник DIO данни в GND заземяване 5V +5 волта

Някои модули tm1637 обръщат щифтовете +5v и GND, така че проверете маркировките на вашия модул

Тествайте всеки модул Предлагам да започнете с един 4 -жилен женски съединителен кабел с мъжки конектори, запоени към един от модулите и Pi. След това временно свържете първия модул до щифтовете, показани по -долу.

ВРЕМЕНЕН ТЕСТ A MODULETM1637 Модул Pin Pi Физически пин# 5V 2 GND 6 CLK 40 DIO 38 Вижте графиките GPIO по -долу, за да намерите оформленията на щифтовете.

Втората снимка показва два дисплея, временно свързани към Raspberry Pi 3 с работещ софтуер.

1. След като имате временно свързан модул и проверите кабелите си

2. Включете Raspberry Pi. Червеният светодиод на модула трябва да светне, но все още няма да има дисплей.

3. SSH отново във вашия Pi, както преди.

$ cd RaspiDigiHamClock

$ python test.py

Трябва да видите цикъла на показване чрез различни кратки съобщения. Ако не го направите, първо проверете отново кабелите си! Лесно е да обърнете проводник или да включите в грешния GPIO щифт на Pi. Ако получите съобщение за грешка на Python, проверете версията на Python, като използвате:

$ python -V (главна буква "V")

Python 2.7. X

Не съм тествал срещу Python 3, така че не съм сигурен дали библиотеката е съвместима.

Копирайте съобщението за грешка (обикновено последният ред на грешката) и поставете в търсенето с Google. Това може да даде представа за случилото се.

Ако вашият модул работи, поздравления! Знаете, че модулът и Pi работят. Сега повторете за всеки модул, за да го тествате. (Предлагам да изключите Pi и да изключите преди да включите/изключите модулите !!)

$ sudo изключване сега

Стъпка 5: GPIO щифтове на Raspi

GPIO пинове на Raspi
GPIO пинове на Raspi
GPIO пинове на Raspi
GPIO пинове на Raspi
GPIO пинове на Raspi
GPIO пинове на Raspi

Този проект използва физическите идентификатори на борда на GPIO за щифтовете.

Това е пин 1 до пин 40. Не „BCM“GPIO номериране на щифтове. (Да, малко объркващо, но BOARD е само броят на щифтовете отгоре вляво до долу вдясно.)

Модул на дисплея TM1637 Модул Pin Pin Физически пин#Захранване 5V 2 Заземяване GND 6

Модул #1 CLK 33

DIO 31

Модул #2 CLK 36

DIO 32

Модул #3 CLK 37

DIO 35

Модул #4 CLK 40

DIO 38

Забележка: Не е необходимо да добавяте всички 4 модула, ако желаете. Можете да имате между 1 и 4 модула. (Да, възможно е да преминете към повече модули, но трябва да промените кода, за да поддържате повече.)

НО, ТРЯБВА да включите модулите последователно, започвайки от Модул #1

Това е така, защото библиотеката TM1637 очаква ACK от модула, така че изглежда да виси в противен случай.

Примерни снимки на споена платка Трябва да следвате собствения си модел на окабеляване, за да съответства на показаните по -горе пинове GPIO, тъй като използваните от мен конектори и модули може да не съвпадат с вашите.

Стъпка 6: Тестване

Уау, това беше малко окабеляване! Сега е време за тестване на дим …

Тъй като вече знаете, че отделните модули и Pi работят (проверихте ли модулите, както е описано по -горе?), Следващата стъпка е да настроите. INI файла и да стартирате часовника:

1. Редактирайте raspiclock.ini

$ cd/home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. Променете num_modules на колко сте свързали. Това е важно, тъй като библиотеката ще виси в очакване на ACK, ако не може да говори с модул. Не забравяйте да посочите броя на модулите, В ПОРЪЧКАТА, ПОКАЗАНА в. INI Забележка: Допълнителните TZ и HR и GPIO PINS се игнорират, ако num_modules е по -малко от 4.

3. Добавете часови зони за всеки модул.

Това са имена на TZ на Linux, като „America/New_York“, EST5EDT, UTC или „Local“за вашата местна часова зона, зададени чрез raspi-config. По подразбиране е UTC

4. Задайте дали да се показва режим 12 часа или 24 часа за всеки модул

[ЧАСОВНИК]; Брой модули TM1637 (между 1 и 4) num_modules = 2

; Часови зони за всеки модул

; Използвайте raspi-config, за да зададете Местна часова зона; По подразбиране е UTC; Форматът е Linux TZ имена или „Local“за местно време; 'America/New_York', EST5EDT, UTC, 'Local' TZ1 = Local TZ2 = UTC TZ3 = TZ4 =

; 12/24 часа за всеки модул

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

; ЯРКОСТ (диапазон 1..7)

LUM = 1

5. Не трябва да редактирате GPIO пиновете, освен ако не ги включите в различни пинове #на Pi.

6. Запазете промените и след това стартирайте часовника:

$ python raspiclock.py

Ако всичко е наред, всички ваши дисплейни модули трябва да светят с времето, както е настроено във файла. INI.

Честито! Пропуснете отстраняването на неизправности и отидете на окончателната инсталация …

Стъпка 7: Отстраняване на неизправности

Трябва да видите някои прости съобщения за отстраняване на грешки:

Инициализиране … Брой модули = 4 Начален цикъл на часовник … Модул#1 displayTM () Модул#2 displayTM () Модул#3 displayTM () Модул#4 displayTM () (повтарящ се …)

Ако преди това сте тествали модулите и всички те са работили, тогава знаете, че модулите и Raspberry са добри.

A) HANG - Ако съобщенията за отстраняване на грешки изглеждат висящи на едно място, програмата чака ACK от този модул#.

Първо проверете кабелите си! Лесно е да обърнете проводник или да включите в грешния GPIO щифт на Pi.

Второ, разменете модулите, за да видите дали даден модул изведнъж се е повредил.

Трето, проверете файла raspiclock.ini за грешки. Ако е необходимо, изтрийте цялата директория и направете друг GIT CLONE, за да изтеглите отново.

Четвърто, проверете отново кабелите си!;-)

Б) Ако получите съобщение за грешка на Python, проверете версията на Python, като използвате:

$ python -V (главна буква "V")

Python 2.7. X

Не съм тествал срещу Python 3, така че не съм сигурен дали библиотеката е съвместима. Копирайте съобщението за грешка (обикновено последният ред на грешката) и поставете в търсенето с Google. Това може да даде представа за случилото се.

Стъпка 8: Окончателна инсталация

Окончателна инсталация
Окончателна инсталация

1. Редактирайте отново. INI файла и задайте debug = 0. $ cd/home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. Проверете също така часовите зони TZ и настройките на HR 12/24 часа, както желаете.

3. Задайте яркостта по желание между 1 и 7.

4. Изпълнете скрипта install.sh, за да добавите към pi crontab за автоматично стартиране при зареждане.

$ sh install.sh

5. Рестартирайте

$ sudo рестартиране

6. Трябва да се рестартира и след това да стартира.

ЗАВЕРШЕНО!

Препоръчано: