Raspberry Pi amateur radio digitale klok - Ajarnpa
Raspberry Pi amateur radio digitale klok - Ajarnpa

Video: Raspberry Pi amateur radio digitale klok - Ajarnpa

Video: Raspberry Pi amateur radio digitale klok - Ajarnpa
Video: Top 5 Raspberry Pi Projects for Ham Radio 2025, Januari-
Anonim
Raspberry Pi amateur radio digitale klok
Raspberry Pi amateur radio digitale klok

Overzicht

Amateurradio-operators (ook bekend als HAM-radio) gebruiken 24 uur UTC (Universal Coordinated Time) voor een groot deel van hun activiteiten. Ik besloot een digitale klok te bouwen met behulp van de goedkope TM1637 4-cijferige displays en een Raspberry Pi Zero W in plaats van alleen een GUI-klok. (Hardware is leuk!)

Het TM1637-aangedreven display heeft vier 7-segments-leds met een dubbele punt in het midden ":" tussen twee reeksen cijfers. Er zijn twee draden nodig om het display aan te sturen plus 5V + en aarde voor in totaal 4 draden.

Voor dit specifieke project wilde ik dat de Raspi zijn tijd zou krijgen van NTP-servers (Network Time Protocol) via internet. Ik ben van plan een andere versie van deze klok te laten draaien op een Arduino Uno en een Real-Time Clock-module, voor als er geen wifi beschikbaar is en voor meer draagbare bediening.

Ik wilde ook dat de klok de lokale tijd in 12- en 24-uursformaten zou weergeven, evenals UTC in 12- en 24-uursformaten. De software is ontworpen om u 24 uur UTC (typische hammen) of verschillende tijden op maximaal 4 verschillende schermen te laten gebruiken.

U kunt ook de TIJDZONE instellen die u wilt gebruiken in plaats van de standaard Lokale tijd. Dus elk van de vier displays kan een andere tijdzone weergeven en in 12- of 24-uurs formaat.

Dit project vereist soldeerconnectoren of draden op de Pi- en / of de tm1637-modules.

Volledige instructies zijn ook beschikbaar op GITHUB:

Stap 1: Vereisten

Vereisten
Vereisten

• Raspberry Pi2, 3 of Zero W. (d.w.z. elke pi met de 40-pins header en Ethernet/Wifi)

• 4 - TM1637 4-cijferige displaymodules

En/of

OPMERKING: u kunt grotere of kleinere gebruiken, zolang ze compatibel zijn met TM1637.

• Kabelboom met 16 draden (elke TM1637 heeft 4 draden nodig)

• Soldeerloze Breadboard en draden Or

• Soldeerbare Breadboard & diverse pin connectoren.

• 8GB MicroSD of groter voor Pi

• 5v voeding voor Pi.

Stap 2: Software-installatie

Deze applicatie maakt gebruik van de gebruiksvriendelijke TM1637.py Python-bibliotheek, geschreven door Tim Waizenegger. (Als je details over de bibliotheek wilt, kijk dan op:

Wist u?

Als je Raspbian op een SD-kaart installeert met een pc, kun je twee bestanden op de kaart maken om wifi- en SSH-toegang te configureren voordat je hem opstart op een Raspberry?

Neem hiervoor aan dat uw SD-kaart momenteel als K: op uw pc is gemonteerd:

1) Installeer de Raspbian Lite-afbeelding op de SD.

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

2) Maak met Kladblok een bestand met de naam "ssh" en gebruik Opslaan als "Alle bestanden" naar K:\ssh

Het bestand kan van alles bevatten. Het is de bestandsnaam die belangrijk is. Mag NIET "ssh.txt" zijn!!!

3) Maak met Kladblok een tweede bestand met de naam "wpa_supplicant.conf" met het volgende:

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

Gebruik Opslaan als “Alle bestanden” naar K:\wpa_supplicant.conf

Nogmaals, laat Kladblok het niet veranderen in "wpa_supplicant.conf.txt"!!

Wanneer je de Raspberry de eerste keer opstart, zal Raspbian hiernaar zoeken en verbinding maken met je wifi. U zult echter op uw router moeten zoeken naar het IP-adres, aangezien het automatisch wordt toegewezen.

Stap 3: Software-installatie - Pt.2

1. Installeer de Raspbian Lite-versie op een microSD-kaart van 8 GB of groter als je dat nog niet hebt gedaan. U hebt GEEN GUI-versie nodig, omdat dit project geen monitor of toetsenbord gebruikt.

OPMERKING!: Dit project vereist Python2.7!

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

2. U moet op afstand toegang krijgen tot de Raspberry via SSH. Op Windows kunt u het PUTTY SSH-terminalprogramma gebruiken. Op Mac opent u gewoon een opdrachtterminalvenster.

3. Plaats de microSD-kaart in de Pi en sluit nu de stroom aan. Het opstarten duurt een paar minuten.

4. Om op afstand in te loggen op uw Raspberry Pi, moet u het IP-adres vinden. U kunt het volgende proberen: $ ssh [email protected] (Of voer vanuit Putty hostnaam [email protected] in. Anders moet u kijken of uw router de IP-adressen van uw lokale apparaten weergeeft. Standaard id/passwd is "pi /framboos"

Eenmaal ingelogd als pi-gebruiker:

5. Update je Raspbian: $ sudo apt update $ sudo apt upgrade

6. Configureer de Raspberry: $ sudo raspi-config a. Gebruikerswachtwoord wijzigen b. Lokalisatie-opties -> Tijdzone wijzigen Selecteer uw lokale tijdzone c. Tab om te voltooien

7. Installeer de RaspiDigiHamClock-software: $ cd /home/pi $ sudo apt update $ sudo apt install git $ git clone

8. Schakel uw Pi uit om de hardware in te stellen $ nu afsluiten Nadat de LED uitgaat, haalt u de stekker uit het stopcontact

Stap 4: Hardwarebedrading

Hardware bedrading
Hardware bedrading
Hardware bedrading
Hardware bedrading
Hardware bedrading
Hardware bedrading

U kunt connectoren op de TM1637-modules en de Raspberry Pi solderen (als deze nog geen connector heeft). Bepaal voordat u begint hoe u de displays wilt monteren en of u een breadboard of soldeerdraden rechtstreeks op de Pi- en displaymodules gaat gebruiken.

TM1637 modulepennen

Bedrading Opmerking: sommige tm1637-modules draaien de +5v- en GND-pinnen om! Dus misschien niet hetzelfde als de foto's.

De TM1637-module is een 4-cijferige led-displaymodule die gebruikmaakt van de TM1637-stuurprogrammachip. Er zijn slechts twee aansluitingen nodig om het 4-cijferige 8-segments display te bedienen. Twee andere draden voeden 5+ volt stroom en aarde.

PIN DESC CLK Klok DIO Data In GND Aarde 5V +5 volt

Sommige tm1637-modules draaien de +5v- en GND-pinnen om, dus controleer de markeringen van uw module

Test elke module. Ik stel voor te beginnen met een enkele 4-aderige vrouwelijke connectorkabel met mannelijke connectoren gesoldeerd aan een van de modules en de Pi. Sluit vervolgens tijdelijk de eerste module aan op onderstaande pinnen.

TIJDELIJKE TEST EEN MODULETM1637 Module Pin Pi Fysieke Pin# 5V 2 GND 6 CLK 40 DIO 38 Zie de GPIO-diagrammen verderop om de pinlay-outs te vinden.

De tweede foto toont twee schermen die tijdelijk zijn aangesloten op een Raspberry Pi 3 terwijl de software actief is.

1. Zodra je een module tijdelijk hebt aangesloten en je bedrading hebt gecontroleerd

2. Schakel de Raspberry Pi in. De rode LED op de module moet gaan branden, maar er is nog GEEN DISPLAY.

3. SSH opnieuw in je Pi zoals eerder.

$ cd RaspiDigiHamClock

$ python test.py

U zou de display door verschillende korte berichten moeten zien bladeren. Zo niet, controleer dan eerst nogmaals je bedrading! Het is gemakkelijk om een draad om te draaien of in de verkeerde GPIO-pin op de Pi te steken. Als je een Python-foutmelding krijgt, verifieer dan je Python-versie met:

$ python -V (hoofdletter "V")

Python 2.7. X

Ik heb niet getest tegen Python 3, dus ik weet niet zeker of de bibliotheek compatibel is.

Kopieer het foutbericht (meestal de laatste regel van de fout) en plak het in Google Zoeken. Dit kan een aanwijzing geven over wat er is gebeurd.

Als uw module werkt, Gefeliciteerd! Je weet dat de module en Pi werken. Herhaal nu voor elke module om het te testen. (Ik raad aan Pi uit te schakelen en uit te schakelen VOORDAT de modules worden aangesloten / losgekoppeld !!)

$ sudo nu afsluiten

Stap 5: GPIO-pinnen op Raspi

GPIO Pins op Raspi
GPIO Pins op Raspi
GPIO Pins op Raspi
GPIO Pins op Raspi
GPIO Pins op Raspi
GPIO Pins op Raspi

Dit project maakt gebruik van de GPIO fysieke BOARD-id's voor de pinnen.

Dat is Pin 1 tot Pin 40. Niet de "BCM" GPIO-pinnummering. (Ja, een beetje verwarrend, maar BOARD is slechts het aantal pinnen van linksboven naar rechtsonder.)

Display Module TM1637 Module Pin Pi Fysieke Pin#Voeding 5V 2 Aarde GND 6

Module #1 CLK 33

DIO 31

Module #2 CLK 36

DIO 32

Module #3 CLK 37

DIO 35

Module #4 CLK 40

DIO 38

Let op: U hoeft desgewenst niet alle 4 modules toe te voegen. U kunt tussen 1 en 4 modules hebben. (Ja, het is mogelijk om naar meer modules te gaan, maar je moet de code aanpassen om meer modules te ondersteunen.)

MAAR, u MOET de modules sequentieel aansluiten, beginnend bij Module #1

Dit komt omdat de TM1637-bibliotheek een ACK van de module verwacht en anders lijkt te wachten.

Voorbeeldfoto's van Soldered BreadboardU moet uw eigen bedradingspatroon volgen om overeen te komen met de eerder getoonde GPIO-pinnen, aangezien de connectoren en modules die ik heb gebruikt mogelijk niet overeenkomen met die van u.

Stap 6: Testen

Wow, dat was even een draadje! Nu tijd voor rooktesten…

Omdat je de afzonderlijke modules al kent en Pi werkt (heb je de modules getest zoals eerder beschreven?), is de volgende stap om het. INI-bestand in te stellen en het klokprogramma uit te voeren:

1. Bewerk de raspiclock.ini

$ cd /home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. Wijzig de num_modules in het aantal dat u hebt aangesloten. Dit is belangrijk omdat de bibliotheek blijft wachten op een ACK als deze niet met een module kan praten. Zorg ervoor dat u het aantal modules aansluit, IN DE VOLGORDE DIE WORDT GETOOND in de. INI Opmerking: Extra TZ- en HR- en GPIO-pins worden genegeerd als num_modules kleiner is dan 4.

3. Voeg tijdzones toe voor elke module.

Dit zijn Linux TZ-namen, zoals 'America/New_York', EST5EDT, UTC of 'Local' voor uw lokale tijdzone zoals ingesteld via raspi-config. De standaard is UTC

4. Stel in of de 12-uurs of 24-uurs modus voor elke module moet worden weergegeven

[KLOK]; Aantal TM1637-modules (tussen 1 en 4) num_modules = 2

; Tijdzones voor elke module

; Gebruik raspi-config om de lokale tijdzone in te stellen; Standaard is UTC; Formaat is Linux TZ-namen of 'Local' voor lokale tijd; 'Amerika/New_York', EST5EDT, UTC, 'Lokaal' TZ1 = Lokaal TZ2 = UTC TZ3 = TZ4 =

; 12/24 uur voor elke module

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

; HELDERHEID (bereik 1.7)

LUM = 1

5. U hoeft de GPIO-pinnen niet te bewerken, tenzij u ze op verschillende pin #'s op de Pi aansluit.

6. Sla de wijzigingen op en voer de klok uit:

$ python raspiclock.py

Als alles goed is, moeten al uw displaymodules oplichten met de tijden zoals ingesteld in het. INI-bestand.

Gefeliciteerd! Sla de probleemoplossing over en ga naar de Final Install…

Stap 7: Problemen oplossen

U zou enkele eenvoudige foutopsporingsberichten moeten zien verschijnen:

Initialiseren…Aantal modules = 4 Kloklus starten… Module#1 displayTM() Module#2 displayTM() Module#3 displayTM() Module#4 displayTM() (herhalend…)

Als je de modules eerder hebt getest en ze werkten allemaal, dan weet je dat de modules en Raspberry goed zijn.

A) HANG – Als de debug-berichten op één plek lijken te blijven hangen, wacht het programma op een ACK van die module#.

Controleer eerst uw bedrading! Het is gemakkelijk om een draad om te draaien of in de verkeerde GPIO-pin op de Pi te steken.

Ten tweede, verwissel modules om te zien of een module plotseling kapot ging.

Controleer ten derde het bestand raspiclock.ini op fouten. Verwijder indien nodig de hele map en voer nog een GIT-CLONE uit om het opnieuw op te halen.

Ten vierde, controleer uw bedrading opnieuw!;-)

B) Als je een Python-foutmelding krijgt, verifieer dan je Python-versie met:

$ python -V (hoofdletter "V")

Python 2.7. X

Ik heb niet getest tegen Python 3, dus ik weet niet zeker of de bibliotheek compatibel is. Kopieer het foutbericht (meestal de laatste regel van de fout) en plak het in Google Zoeken. Dit kan een aanwijzing geven over wat er is gebeurd.

Stap 8: Laatste installatie

Laatste installatie
Laatste installatie

1. Bewerk het. INI-bestand opnieuw en stel debug = 0.$ cd /home/pi/RaspiDigiHamClock in

$ nano raspiclock.ini

2. Controleer ook of de TZ-tijdzones en HR 12/24-uursinstellingen naar wens zijn.

3. Stel de Helderheid naar wens in tussen 1 en 7.

4. Voer het script install.sh uit om aan pi crontab toe te voegen voor automatisch opstarten bij het opstarten.

$ sh install.sh

5. Opnieuw opstarten

$ sudo opnieuw opstarten

6. Het zou opnieuw moeten opstarten en dan actief moeten zijn.

AFGEWERKT!