Оглавление:

Радиолюбительские цифровые часы на Raspberry Pi: 8 шагов (с изображениями)
Радиолюбительские цифровые часы на Raspberry Pi: 8 шагов (с изображениями)

Видео: Радиолюбительские цифровые часы на Raspberry Pi: 8 шагов (с изображениями)

Видео: Радиолюбительские цифровые часы на Raspberry Pi: 8 шагов (с изображениями)
Видео: 😱Хакерская SDR Прослушка На Xiaomi 🔥 2024, Ноябрь
Anonim
Радиолюбительские цифровые часы Raspberry Pi
Радиолюбительские цифровые часы Raspberry Pi

Обзор

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

Управляемый дисплей TM1637 имеет четыре 7-сегментных светодиода с двоеточием в центре «:» между двумя наборами цифр. Для подключения дисплея требуется два провода плюс 5 В + и заземление, всего 4 провода.

Для этого конкретного проекта я хотел, чтобы Raspi получал время с серверов NTP (Network Time Protocol) через Интернет. Я планирую еще одну версию этих часов для работы на Arduino Uno и модуле часов реального времени, когда Wi-Fi недоступен, и для более портативной работы.

Я также хотел, чтобы часы показывали местное время в 12-часовом и 24-часовом форматах, а также UTC в 12-часовом и 24-часовом форматах. Программное обеспечение разработано так, чтобы вы могли использовать только UTC 24 часа (типичные радиолюбители) или разное время на 4 разных дисплеях.

Вы также можете установить ЧАСОВОЙ ПОЯС, который хотите использовать вместо местного времени по умолчанию. Таким образом, каждый из четырех дисплеев может отображать другой часовой пояс и в 12-часовом или 24-часовом формате.

Этот проект требует пайки разъемов или проводов на модули Pi и / или tm1637.

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

Шаг 1. Требования

Требования
Требования

• Raspberry Pi2, 3 или Zero W. (т.е. любой пи с 40-контактным разъемом и Ethernet / Wi-Fi)

• 4 - 4-разрядные модули дисплея TM1637

И / или

ПРИМЕЧАНИЕ: вы можете использовать большие или меньшие, если они совместимы с TM1637.

• Жгут проводов с 16 проводами (для каждого TM1637 требуется 4 провода)

• Беспаечная макетная плата и провода или

• Макетная плата с возможностью пайки и различные штыревые разъемы.

• MicroSD 8 ГБ или больше для Pi

• Источник питания 5В для Pi.

Шаг 2: установка программного обеспечения

Это приложение использует простую в использовании библиотеку Python TM1637.py, написанную Тимом Вайзенеггером. (Если вам нужны подробности о библиотеке, посетите:

Вы знали?

Если вы устанавливаете Raspbian на SD-карту с помощью ПК, вы можете создать на карте два файла для настройки доступа Wi-Fi и 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 network = {ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}

Используйте «Сохранить как все файлы» в K: / wpa_supplicant.conf

Опять же, не позволяйте Блокноте изменить его на «wpa_supplicant.conf.txt» !!

Когда вы загружаете Raspberry в первый раз, Raspbian будет искать их и подключаться к вашему Wi-Fi. Однако вам придется искать IP-адрес на своем маршрутизаторе, поскольку он назначается автоматически.

Шаг 3: Установка программного обеспечения - Часть 2

1. Если вы еще этого не сделали, установите версию Raspbian Lite на карту microSD объемом 8 ГБ или больше. Вам НЕ нужна версия с графическим интерфейсом, поскольку в этом проекте не используется монитор или клавиатура.

ПРИМЕЧАНИЕ! Для этого проекта требуется 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-адреса ваших локальных устройств. Идентификатор / пароль по умолчанию - «pi /малина"

После входа в систему как пользователь pi:

5. Обновите свой Raspbian: $ sudo apt update $ sudo apt upgrade

6. Настройте Raspberry: $ sudo raspi-config a. Изменить пароль пользователя b. Параметры локализации -> Изменить часовой пояс. Выберите местный часовой пояс. C. Tab для завершения

7. Установите программное обеспечение RaspiDigiHamClock: $ cd / home / pi $ sudo apt update $ sudo apt install git $ git clone

8. Выключите Pi для настройки оборудования. $ Shutdown now После того, как светодиод погаснет, отключите питание.

Шаг 4: Подключение оборудования

Аппаратная проводка
Аппаратная проводка
Аппаратная проводка
Аппаратная проводка
Аппаратная проводка
Аппаратная проводка

Вы можете припаять разъемы к модулям TM1637 и Raspberry Pi (если у него еще нет разъема). Прежде чем начать, решите, как вы хотите установить дисплеи и собираетесь ли вы использовать макетную плату или припаять провода непосредственно к Pi и модулям дисплея.

Выводы модуля TM1637

Примечание по подключению: Некоторые модули tm1637 имеют контакты + 5v и GND! Поэтому может не выглядеть так, как на фотографиях.

Модуль TM1637 - это модуль с 4-значным светодиодным дисплеем, в котором используется микросхема драйвера TM1637. Для управления 4-значным 8-сегментным дисплеем требуется всего два соединения. Два других провода питают напряжение 5+ В и землю.

PIN DESC CLK Clock DIO Data In GND Земля 5 В +5 В

Некоторые модули tm1637 имеют контакты + 5v и GND, поэтому проверьте маркировку вашего модуля.

Протестируйте каждый модуль Я предлагаю начать с одинарного 4-проводного кабеля с гнездовым разъемом, при этом штекерные разъемы припаяны к одному из модулей и Pi. Затем временно подключите первый модуль к контактам, показанным ниже.

ВРЕМЕННАЯ ПРОВЕРКА А MODULETM1637 Контакт Pi модуля MODULETM1637 Физический контакт # 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 на Распи
Контакты GPIO на Распи
Контакты GPIO на Распи
Контакты GPIO на Распи
Контакты GPIO на Распи
Контакты GPIO на Распи

Этот проект использует идентификаторы физических плат GPIO для контактов.

Это контакт 1 - контакт 40. Это не нумерация контактов GPIO «BCM». (Да, немного сбивает с толку, но BOARD - это просто количество выводов от верхнего левого угла до нижнего правого.)

Модуль дисплея TM1637 Контакт Pi Физический контакт # Питание 5 В 2 Земля GND 6

Модуль # 1 CLK 33

ДИО 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 игнорируются, если num_modules меньше 4.

3. Добавьте часовые пояса для каждого модуля.

Это Linux TZ Names, например «America / New_York», EST5EDT, UTC или «Local» для вашего местного часового пояса, установленного с помощью raspi-config. По умолчанию - UTC.

4. Установите, следует ли отображать 12-часовой или 24-часовой режим для каждого модуля.

[ЧАСЫ]; Количество модулей TM1637 (от 1 до 4) num_modules = 2

; Часовые пояса для каждого модуля

; Используйте raspi-config, чтобы установить местный часовой пояс; По умолчанию - UTC; Формат - имена Linux TZ или «Местное» для местного времени; '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 Запуск цикла синхронизации… Отображение модуля №1TM () Отображение модуля №2TM () Отображение модуля №3TM () Отображение модуля №4TM () (повторение…)

Если вы ранее тестировали модули и все они работали, то вы знаете, что модули и 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 и 12/24 часов по вашему желанию.

3. Установите желаемую яркость от 1 до 7.

4. Запустите сценарий install.sh, чтобы добавить в pi crontab для автоматического запуска при загрузке.

$ sh install.sh

5. Перезагрузитесь.

$ sudo перезагрузка

6. Он должен перезагрузиться, а затем заработать.

ЗАКОНЧЕННЫЙ!

Рекомендуемые: