Turinys:

„Raspberry Pi“mėgėjų radijo skaitmeninis laikrodis: 8 žingsniai (su nuotraukomis)
„Raspberry Pi“mėgėjų radijo skaitmeninis laikrodis: 8 žingsniai (su nuotraukomis)

Video: „Raspberry Pi“mėgėjų radijo skaitmeninis laikrodis: 8 žingsniai (su nuotraukomis)

Video: „Raspberry Pi“mėgėjų radijo skaitmeninis laikrodis: 8 žingsniai (su nuotraukomis)
Video: CS50 2015 - Week 5 2024, Lapkritis
Anonim
„Raspberry Pi“mėgėjų radijo skaitmeninis laikrodis
„Raspberry Pi“mėgėjų radijo skaitmeninis laikrodis

Apžvalga

Radijo mėgėjai (dar žinomi kaip HAM radijas) didžiąją savo veiklos dalį naudoja 24 valandų UTC (universalų koordinuotą laiką). Aš nusprendžiau sukurti skaitmeninį laikrodį, naudodamas nebrangius 4 skaitmenų TM1637 ekranus ir „Raspberry Pi Zero W“, o ne tik GUI laikrodį. (Aparatūra yra smagu!)

TM1637 valdomame ekrane yra keturi 7 segmentų šviesos diodai su vidurine dvitaške „:“tarp dviejų skaitmenų rinkinių. Norint valdyti ekraną, reikia dviejų laidų plius 5V + ir įžeminimo, iš viso 4 laidų.

Šiam konkrečiam projektui norėjau, kad „Raspi“gautų laiką iš NTP (tinklo laiko protokolo) serverių per internetą. Aš planuoju kitą šio laikrodžio versiją, kuri bus paleista naudojant „Arduino Uno“ir „Real-Time Clock“modulį, kai nėra „WiFi“ir daugiau nešiojamų.

Taip pat norėjau, kad laikrodis rodytų vietinį laiką 12 ir 24 valandų formatu, taip pat UTC 12 ir 24 valandų formatu. Programinė įranga sukurta taip, kad galėtumėte naudoti tik 24 valandas UTC (tipiškas kumpis) arba skirtingu laiku iki 4 skirtingų ekranų.

Taip pat galite nustatyti LAIKO ZONĄ, kurią norite naudoti vietoj numatytojo vietinio laiko. Taigi kiekvienas iš keturių ekranų gali rodyti skirtingą laiko juostą 12 arba 24 valandų formatu.

Šiam projektui reikia lituoti jungtis ar laidus ant Pi ir (arba) tm1637 modulių.

Visas instrukcijas taip pat rasite GITHUB:

1 žingsnis: Reikalavimai

Reikalavimai
Reikalavimai

• Raspberry Pi2, 3 arba Zero W. (t. Y. Bet koks „pi“su 40 kontaktų antrašte ir „Ethernet“/„Wi -Fi“)

• 4-TM1637 4 skaitmenų ekrano moduliai

Ir/arba

PASTABA: galite naudoti didesnius ar mažesnius, jei jie suderinami su TM1637.

• laidai su 16 laidų (kiekvienam TM1637 reikia 4 laidų)

• Lituoklio neturinti duonos lenta ir laidai. Or

• Lituoti tinkama duonos lenta ir įvairios kaiščių jungtys.

• 8 GB arba didesnė „MicroSD“, skirta „Pi“

• 5 V maitinimo šaltinis Pi.

2 veiksmas: programinės įrangos diegimas

Ši programa naudoja lengvai naudojamąTM1637.py python biblioteką, parašytą Tim Waizenegger. (Jei norite išsamesnės informacijos apie biblioteką, apsilankykite:

Ar tu žinai?

Jei įdiegsite „Raspbian“į SD kortelę naudodami kompiuterį, prieš paleisdami „Raspberry“, kortelėje galite sukurti du failus, kad sukonfigūruotumėte „WiFi“ir SSH prieigą?

Norėdami tai padaryti, tarkime, kad jūsų SD kortelė šiuo metu jūsų kompiuteryje yra sumontuota kaip K:

1) Įdiekite „Raspbian Lite“vaizdą į SD.

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

2) Naudodami užrašų knygelę, sukurkite failą pavadinimu „ssh“ir naudokite Įrašyti kaip „Visi failai“į K: / ssh

Faile gali būti bet kas. Svarbus yra failo pavadinimas. Neturi būti „ssh.txt“!!!

3) Naudodami užrašų knygelę, sukurkite antrą failą pavadinimu „wpa_supplicant.conf“, kuriame nurodyta:

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

Naudokite Įrašyti kaip „Visi failai“į K: / wpa_supplicant.conf

Vėlgi, neleiskite „Notepad“pakeisti jo į „wpa_supplicant.conf.txt“!!

Kai pirmą kartą paleidžiate „Raspberry“, „Raspbian“jų ieškos ir prisijungs prie jūsų „Wifi“. Vis dėlto turėsite ieškoti maršrutizatoriaus IP adreso, nes jis priskirtas automatiškai.

3 veiksmas: programinės įrangos diegimas - Pt.2

1. Jei to dar nepadarėte, įdiekite „Raspbian Lite“versiją į 8 GB ar didesnę „microSD“kortelę. Jums nereikia GUI versijos, nes šiame projekte nenaudojamas monitorius ar klaviatūra.

PASTABA!: Šiam projektui reikalingas „Python2.7“!

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

2. Raspberry turėsite pasiekti nuotoliniu būdu per SSH. „Windows“sistemoje galite naudoti PUTTY SSH terminalo programą. „Mac“sistemoje tiesiog atverkite komandų terminalo langą.

3. Įdėkite „microSD“kortelę į „Pi“ir dabar įjunkite maitinimą. Įkrovimas užtruks kelias minutes.

4. Norėdami nuotoliniu būdu prisijungti prie „Raspberry Pi“, turėsite rasti jo IP adresą. Galite pabandyti: $ ssh [email protected] (Arba iš „Putty“įveskite pagrindinio kompiuterio pavadinimą [email protected] Priešingu atveju turėsite pamatyti, ar jūsų maršrutizatorius rodys jūsų vietinių įrenginių IP adresus. Numatytasis ID/passwd yra „pi /aviečių “

Prisijungę kaip pi vartotojas:

5. Atnaujinkite savo Raspbian: $ sudo apt update $ sudo apt upgrade

6. Konfigūruokite Raspberry: $ sudo raspi-config a. Pakeisti vartotojo slaptažodį b. Lokalizavimo parinktys -> Keisti laiko juostą Pasirinkite vietinę laiko juostą c. Skirtukas Baigti

7. Įdiekite „RaspiDigiHamClock“programinę įrangą: $ cd/home/pi $ sudo apt update $ sudo apt install git $ git clone

8. Išjunkite „Pi“, kad nustatytumėte aparatūros $ išjungimą dabar. Kai šviesos diodas užges, atjunkite maitinimą

4 žingsnis: aparatinės įrangos prijungimas

Techninės įrangos laidai
Techninės įrangos laidai
Techninės įrangos laidai
Techninės įrangos laidai
Techninės įrangos laidai
Techninės įrangos laidai

Galite lituoti jungtis prie TM1637 modulių ir „Raspberry Pi“(jei jis dar neturi jungties). Prieš pradėdami nuspręskite, kaip norite montuoti ekranus ir ar ketinate naudoti duonos lentą ar litavimo laidus tiesiai prie „Pi“ir ekrano modulių.

TM1637 modulio kaiščiai

Elektros instaliacija Pastaba: Kai kurie tm1637 moduliai apverčia +5v ir GND kaiščius! Taigi gali atrodyti ne taip, kaip nuotraukos.

TM1637 modulis yra 4 skaitmenų LED ekrano modulis, kuris naudoja TM1637 tvarkyklės mikroschemą. Tam reikia tik dviejų jungčių, kad būtų galima valdyti 4 skaitmenų 8 segmentų ekraną. Kiti du laidai maitina 5 ar daugiau voltų maitinimą ir įžemina.

PIN DESC CLK Laikrodis DIO duomenys GND įžeminime 5V +5 voltai

Kai kurie tm1637 moduliai apverčia +5v ir GND kaiščius, todėl patikrinkite modulio žymes

Siūlau pradėti nuo vieno 4 laidų jungties kabelio su kištukais, prilituotais prie vieno iš modulių ir „Pi“. Tada laikinai prijunkite pirmąjį modulį prie žemiau pateiktų kaiščių.

LAIKINAS MODULIO BANDYMASM1637 Modulio kaištis Pi Fizinis kaištis# 5V 2 GND 6 CLK 40 DIO 38 Žiūrėkite toliau pateiktas GPIO diagramas, kad rastumėte kaiščių išdėstymą.

Antroje nuotraukoje rodomi du ekranai, laikinai prijungti prie „Raspberry Pi 3“su veikiančia programine įranga.

1. Kai laikinai prijungsite modulį ir patikrinsite laidus

2. Įjunkite Raspberry Pi. Raudonas modulio šviesos diodas turėtų užsidegti, tačiau ekrane kol kas NEbus.

3. SSH vėl į savo Pi, kaip ir anksčiau.

$ cd RaspiDigiHamClock

$ python test.py

Turėtumėte matyti ekrano ciklą per įvairias trumpąsias žinutes. Jei ne, pirmiausia dar kartą patikrinkite laidus! Lengva apversti laidą arba prijungti prie netinkamo „Pi“GPIO kaiščio. Jei gaunate „Python“klaidos pranešimą, patikrinkite savo „Python“versiją naudodami:

$ python -V (didžioji raidė "V")

„Python 2.7. X“

Nesu išbandęs „Python 3“, todėl nesu tikras, ar biblioteka yra suderinama.

Nukopijuokite klaidos pranešimą (dažniausiai paskutinę klaidos eilutę) ir įklijuokite į „Google“paiešką. Tai gali duoti užuominą apie tai, kas atsitiko.

Jei jūsų modulis veikia, sveikiname! Jūs žinote, kad modulis ir Pi veikia. Dabar pakartokite kiekvieną modulį, kad jį išbandytumėte. (Siūlau išjungti „Pi“ir išjungti energiją prieš prijungiant/atjungiant modulius !!)

$ sudo dabar išjungtas

5 žingsnis: GPIO kaiščiai „Raspi“

GPIO smeigtukai ant Raspi
GPIO smeigtukai ant Raspi
GPIO smeigtukai ant Raspi
GPIO smeigtukai ant Raspi
GPIO smeigtukai ant Raspi
GPIO smeigtukai ant Raspi

Šiame projekte kaiščiams naudojami fiziniai GPIO BOARD ID.

Tai yra kaištis nuo 1 iki 40. Ne „BCM“GPIO kaiščių numeracija. (Taip, šiek tiek painu, bet BOARD yra tik kaiščių skaičius iš viršaus į kairę iki apačios į dešinę.)

Ekrano modulis TM1637 modulio kaištis Pi Fizinis kaištis#maitinimas 5V 2 įžeminimas GND 6

1 modulis CLK 33

DIO 31

2 modulis CLK 36

DIO 32

3 modulis CLK 37

DIO 35

4 modulis CLK 40

DIO 38

Pastaba: jei norite, nereikia pridėti visų 4 modulių. Galite turėti nuo 1 iki 4 modulių. (Taip, galima pereiti prie daugiau modulių, bet jums reikia pakeisti kodą, kad būtų palaikoma daugiau.)

BET, jūs privalote prijungti modulius nuosekliai, pradedant nuo 1 modulio

Taip yra todėl, kad TM1637 biblioteka tikisi ACK iš modulio, todėl atrodo, kad jis kabo laukdamas.

Turite sekti savo laidų schemą, kad atitiktų anksčiau parodytus GPIO kaiščius, nes mano naudojamos jungtys ir moduliai gali neatitikti jūsų.

6 žingsnis: bandymas

Oho, tai buvo šiek tiek laidų! Dabar laikas išbandyti dūmus …

Kadangi jūs jau žinote atskirus modulius ir Pi darbą (jūs išbandėte modulius, kaip aprašyta anksčiau?), Tada kitas žingsnis yra nustatyti. INI failą ir paleisti laikrodžio programą:

1. Redaguokite raspiclock.ini

$ cd/home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. Pakeiskite num_modules į tai, kiek prijungėte. Tai svarbu, nes biblioteka kabės laukdama ACK, jei negalės susikalbėti su moduliu. Būtinai prijunkite modulių skaičių. INI RODYMO RODYME. INI Pastaba: jei TIK, HR ir GPIO PINS nepaisoma, jei modulių skaičius yra mažesnis nei 4.

3. Pridėkite kiekvieno modulio laiko juostas.

Tai yra „Linux TZ“pavadinimai, pvz., „Amerika/New_York“, EST5EDT, UTC arba „Local“jūsų vietinei laiko juostoje, kaip nustatyta raspi-config. Numatytasis yra UTC

4. Nustatykite, ar kiekvienam moduliui rodyti 12 arba 24 valandų režimą

[LAIKRODIS]; TM1637 modulių skaičius (nuo 1 iki 4) num_modules = 2

; Laiko juostos kiekvienam moduliui

; Naudokite raspi-config, kad nustatytumėte vietinę laiko juostą; Numatytasis yra UTC; Formatas yra „Linux TZ“pavadinimai arba „vietinis“vietos laiku; „Amerika/Niujorkas“, EST5EDT, UTC, „Vietinis“TZ1 = vietinis TZ2 = UTC TZ3 = TZ4 =

; 12/24 valandos kiekvienam moduliui

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

; ŠVIESUMAS (diapazonas 1–7)

LUM = 1

5. Jums nereikės redaguoti GPIO kaiščių, nebent prijungsite juos prie skirtingų „Pi“kaiščių.

6. Išsaugokite pakeitimus ir paleiskite laikrodį:

$ python raspiclock.py

Jei viskas gerai, visi jūsų ekrano moduliai turėtų užsidegti pagal laiką, nustatytą. INI faile.

Sveikinu! Praleiskite trikčių šalinimą ir eikite į galutinį diegimą …

7 žingsnis: trikčių šalinimas

Turėtumėte pamatyti keletą paprastų derinimo pranešimų:

Inicijuojama… Modulių skaičius = 4 Pradedamas laikrodžio ciklas… Module#1 displayTM () Module#2 displayTM () 3 modulis

Jei anksčiau išbandėte modulius ir jie visi veikė, žinote, kad moduliai ir „Raspberry“yra geri.

A) HANG - Jei atrodo, kad derinimo pranešimai kabo vienoje vietoje, programa laukia ACK iš to modulio#.

Pirmiausia patikrinkite laidus! Lengva apversti laidą arba prijungti prie netinkamo „Pi“GPIO kaiščio.

Antra, pakeiskite modulius, kad pamatytumėte, ar staiga modulis sugedo.

Trečia, patikrinkite, ar raspiclock.ini faile nėra klaidų. Jei reikia, ištrinkite visą katalogą ir atlikite kitą GIT CLONE, kad gautumėte dar kartą.

Ketvirta, dar kartą patikrinkite laidus!;-)

B) Jei gaunate „Python“klaidos pranešimą, patikrinkite savo „Python“versiją naudodami:

$ python -V (didžioji raidė "V")

„Python 2.7. X“

Nesu išbandęs „Python 3“, todėl nesu tikras, ar biblioteka yra suderinama. Nukopijuokite klaidos pranešimą (dažniausiai paskutinę klaidos eilutę) ir įklijuokite į „Google“paiešką. Tai gali duoti užuominą apie tai, kas atsitiko.

8 žingsnis: galutinis diegimas

Galutinis diegimas
Galutinis diegimas

1. Dar kartą redaguokite. INI failą ir nustatykite derinimą = 0. $ cd/home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. Taip pat patikrinkite, ar TZ laiko juostos ir HR 12/24 valandų nustatymai yra tokie, kokių norite.

3. Nustatykite ryškumą pagal pageidavimą nuo 1 iki 7.

4. Vykdykite scenarijų install.sh, kad pridėtumėte prie pi crontab, kad paleistumėte automatiškai.

$ sh install.sh

5. Perkraukite

$ sudo perkraukite

6. Jis turėtų būti paleistas iš naujo ir tada pradėti veikti.

PABAIGTA!

Rekomenduojamas: