Სარჩევი:

Raspberry Pi სამოყვარულო რადიო ციფრული საათი: 8 ნაბიჯი (სურათებით)
Raspberry Pi სამოყვარულო რადიო ციფრული საათი: 8 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi სამოყვარულო რადიო ციფრული საათი: 8 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi სამოყვარულო რადიო ციფრული საათი: 8 ნაბიჯი (სურათებით)
ვიდეო: World's Cheapest Internet Radio Player! - Powered by Raspberry Pi 2024, ივლისი
Anonim
ჟოლოს Pi სამოყვარულო რადიო ციფრული საათი
ჟოლოს Pi სამოყვარულო რადიო ციფრული საათი

მიმოხილვა

სამოყვარულო რადიო ოპერატორები (იგივე HAM რადიო) იყენებენ 24 საათიან UTC (უნივერსალურ კოორდინირებულ დროს) მათი მუშაობის დიდი ნაწილისთვის. მე გადავწყვიტე ავაშენო ციფრული საათი დაბალფასიანი TM1637 4 ციფრული ეკრანისა და Raspberry Pi Zero W– ის ნაცვლად GUI საათის ნაცვლად. (აპარატურა სახალისოა!)

TM1637- ის მართვის ჩვენებას აქვს ოთხი 7 სეგმენტის შუქდიოდური ცენტრალური მსხვილი ნაწლავი ":" ციფრების ორ კომპლექტს შორის. ჩვენ გვჭირდება ორი მავთული დისპლეის მართვისთვის, დამატებით 5V + და Ground სულ 4 მავთულისთვის.

ამ კონკრეტული პროექტისთვის მინდოდა, რომ Raspi– მ თავისი დრო მიეღო NTP (ქსელის დროის პროტოკოლის) სერვერებიდან ინტერნეტის საშუალებით. მე ვგეგმავ ამ საათის სხვა ვერსიას Arduino Uno- ზე და რეალურ დროში საათის მოდულზე, როდესაც WiFi არ არის ხელმისაწვდომი და უფრო პორტატული მუშაობისთვის.

მე ასევე მინდოდა, რომ საათმა აჩვენოს ადგილობრივი დრო 12 სთ და 24 სთ ფორმატებში, ასევე UTC 12 სთ და 24 სთ ფორმატებში. პროგრამული უზრუნველყოფა შექმნილია იმისთვის, რომ გამოიყენოთ მხოლოდ UTC 24 სთ (ტიპიური ლოყები) ან განსხვავებული დრო 4 - მდე სხვადასხვა ეკრანზე.

თქვენ ასევე შეგიძლიათ დააყენოთ TIME ZONE, რომლის გამოყენება გსურთ ნაგულისხმევი ადგილობრივი დროის ნაცვლად. ოთხი ეკრანიდან თითოეულს შეუძლია აჩვენოს განსხვავებული დროის ზონა და 12 სთ ან 24 სთ ფორმატში.

ეს პროექტი მოითხოვს შემაერთებელ კონექტორებს ან მავთულხლართებს Pi და/ან tm1637 მოდულებზე.

სრული ინსტრუქციები ასევე ხელმისაწვდომია GITHUB– ზე:

ნაბიჯი 1: მოთხოვნები

მოთხოვნები
მოთხოვნები

• ჟოლო Pi2, 3, ან Zero W. (ანუ ნებისმიერი pi 40 პინიანი სათაურით და Ethernet/Wifi)

• 4-TM1637 ოთხნიშნა ჩვენების მოდულები

და/ან

შენიშვნა: შეგიძლიათ გამოიყენოთ უფრო დიდი ან პატარა პირობა, თუ ისინი თავსებადია TM1637- თან.

• მავთულის აღკაზმულობა 16 მავთულით (თითოეულ TM1637- ს სჭირდება 4 მავთული)

• Solderless Breadboard და მავთულები ან

• შედუღების უნარი Breadboard & სხვადასხვა pin კონექტორები.

• 8 GB MicroSD ან მეტი Pi

• 5 ვ დენის წყაროს Pi.

ნაბიჯი 2: პროგრამული უზრუნველყოფის ინსტალაცია

ეს პროგრამა იყენებს ადვილად გამოსაყენებელ TM1637.py პითონის ბიბლიოთეკას, რომელიც დაწერილია ტიმ ვაიზნეგერის მიერ. (თუ გსურთ ბიბლიოთეკის შესახებ დეტალები, გადახედეთ:

Იცოდი?

თუ თქვენ დააინსტალირებთ Raspbian– ს SD ბარათზე კომპიუტერის გამოყენებით, შეგიძლიათ შექმნათ ორი ფაილი ბარათზე WiFi და SSH წვდომის კონფიგურაციისთვის, სანამ მას ჟოლოს ჩატვირთავთ?

ამისათვის, ჩათვალეთ, რომ თქვენი 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

კიდევ ერთხელ, ნუ მისცემთ Notepad– ს შეცვლის მას „wpa_supplicant.conf.txt“- ში !!

ჟოლოს პირველად ჩატვირთვისას, Raspbian ეძებს მათ და დაუკავშირდება თქვენს Wifi– ს. თქვენ უნდა მოძებნოთ თქვენი როუტერი IP მისამართისთვის, თუმცა მისი ავტომატური მინიჭების შემდეგ.

ნაბიჯი 3: პროგრამული უზრუნველყოფის ინსტალაცია - Pt.2

1. თუ უკვე არ გაქვთ, დააინსტალირეთ Raspbian Lite ვერსია 8 GB ან უფრო დიდი microSD ბარათზე. თქვენ არ გჭირდებათ GUI ვერსია, რადგან ეს პროექტი არ იყენებს მონიტორს ან კლავიატურას.

შენიშვნა!: ეს პროექტი მოითხოვს Python2.7!

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

2. თქვენ დაგჭირდებათ ჟოლოს დისტანციური წვდომა SSH– ის საშუალებით. Windows– ზე შეგიძლიათ გამოიყენოთ PUTTY SSH ტერმინალის პროგრამა. Mac– ზე, უბრალოდ გაუშვით ბრძანების ტერმინალის ფანჯარა.

3. ჩადეთ microSD ბარათი Pi- ში და შეაერთეთ დენი ახლავე. ჩატვირთვას რამდენიმე წუთი დასჭირდება.

4. დისტანციურად რომ შეხვიდეთ თქვენს Raspberry Pi– ში, თქვენ უნდა იპოვოთ მისი IP მისამართი. შეგიძლიათ სცადოთ: $ ssh [email protected] (ან Putty– დან შეიყვანეთ hostname [email protected] წინააღმდეგ შემთხვევაში, თქვენ უნდა ნახოთ თქვენი როუტერი აჩვენებს თუ არა თქვენი ადგილობრივი მოწყობილობების IP მისამართებს. ნაგულისხმევი id/passwd არის „pi /ჟოლო”

ერთხელ შესული ხართ როგორც pi მომხმარებელი:

5. განაახლეთ თქვენი Raspbian: $ sudo apt განახლება $ sudo apt განახლება

6. ჟოლოს კონფიგურაცია: $ sudo raspi-config a. მომხმარებლის პაროლის შეცვლა ბ. ლოკალიზაციის პარამეტრები -> დროის ზონის შეცვლა აირჩიეთ თქვენი ადგილობრივი დროის სარტყელი c. ჩანართი დასრულების მიზნით

7. დააინსტალირეთ RaspiDigiHamClock პროგრამა: $ cd/home/pi $ sudo apt update $ sudo apt install git $ git clone

8. გამორთეთ Pi თქვენი აპარატურა $ გამორთვისთვის ახლავე LED- ის გამორთვის შემდეგ გამორთეთ დენი

ნაბიჯი 4: აპარატურის გაყვანილობა

აპარატურის გაყვანილობა
აპარატურის გაყვანილობა
აპარატურის გაყვანილობა
აპარატურის გაყვანილობა
აპარატურის გაყვანილობა
აპარატურის გაყვანილობა

შეგიძლიათ შეაერთოთ კონექტორები TM1637 მოდულებზე და Raspberry Pi (თუ მას უკვე არ აქვს კონექტორი). დაწყებამდე გადაწყვიტეთ, როგორ გსურთ ეკრანის დამონტაჟება და აპირებთ თუ არა პურის დაფის ან მავთულის გამოყენებას პირდაპირ Pi- სა და ჩვენების მოდულებზე.

TM1637 მოდულის ქინძისთავები

გაყვანილობის შენიშვნა: ზოგიერთი tm1637 მოდული გადაატრიალებს +5v და GND ქინძისთავებს! ასე რომ, შეიძლება არ იყოს იგივე, რაც ფოტოებზე.

TM1637 მოდული არის 4-ნიშნიანი led ჩვენების მოდული, რომელიც იყენებს TM1637 დრაივერის ჩიპს. მას სჭირდება მხოლოდ ორი კავშირი 4-ნიშნიანი 8-სეგმენტიანი ეკრანის გასაკონტროლებლად. ორი სხვა მავთული იკვებება 5+ ვოლტის სიმძლავრით და მიწით.

PIN DESC CLK საათი DIO მონაცემები GND გრუნტში 5V +5 ვოლტი

ზოგიერთი tm1637 მოდული გადაატრიალებს +5v და GND ქინძისთავებს, ასე რომ შეამოწმეთ თქვენი მოდულის ნიშნები

შეამოწმეთ თითოეული მოდული მე ვთავაზობ დაწყებას ერთი 4 მავთულის მდედრობითი კონექტორის კაბელით მამრობითი კონექტორებით, რომლებიც გაერთიანებულია ერთ მოდულსა და Pi- ზე. შემდეგ დროებით შეაერთეთ პირველი მოდული ქვემოთ ნაჩვენებ ქინძისთავებთან.

დროებითი ტესტი MODULETM1637 მოდულის Pin Pi ფიზიკური Pin# 5V 2 GND 6 CLK 40 DIO 38 იხილეთ GPIO დიაგრამები უფრო ქვემოთ, რომ ნახოთ პინის განლაგება.

მეორე ფოტოზე ნაჩვენებია ორი ეკრანი, რომელიც დროებით შეუერთდა Raspberry Pi 3 – ს პროგრამული უზრუნველყოფის მუშაობით.

1. მას შემდეგ რაც მოდული დროებით გაერთეთ და შეამოწმეთ თქვენი გაყვანილობა

2. გააქტიურეთ Raspberry Pi. მოდულზე წითელი შუქი უნდა ანათებდეს, მაგრამ ჩვენება ჯერ არ იქნება.

3. SSH თქვენს Pi- ში ისევ ისე, როგორც ადრე.

$ cd RaspiDigiHamClock

$ პითონის ტესტი. py

თქვენ უნდა ნახოთ ჩვენების ციკლი სხვადასხვა მოკლე შეტყობინებების საშუალებით. თუ არა, ჯერ ისევ შეამოწმეთ გაყვანილობა! ადვილია მავთულის გადახვევა ან არასწორი GPIO პინზე Pi- ზე შეყვანა. თუ თქვენ მიიღებთ პითონის შეცდომის შეტყობინებას, გადაამოწმეთ თქვენი პითონის ვერსია გამოყენებით:

$ პითონი -V (კაპიტალი "V")

პითონი 2.7. X

მე არ გამომიცდია პითონ 3 -ის წინააღმდეგ, ამიტომ დარწმუნებული არ ვარ ბიბლიოთეკა თავსებადია თუ არა.

დააკოპირეთ შეცდომის შეტყობინება (ჩვეულებრივ, შეცდომის ბოლო ხაზი) და ჩასვით Google ძიებაში. ამან შეიძლება ნახოს რა მოხდა.

თუ თქვენი მოდული მუშაობს, გილოცავთ! თქვენ იცით, რომ მოდული და Pi მუშაობენ. ახლა გაიმეორეთ თითოეული მოდულის შესამოწმებლად. (მე გირჩევთ გამორთოთ Pi და გამორთოთ მოდულების ჩართვა/გამორთვა !!)

$ sudo გამორთვა ახლა

ნაბიჯი 5: GPIO ქინძისთავები Raspi– ზე

GPIO ქინძისთავები რასპზე
GPIO ქინძისთავები რასპზე
GPIO ქინძისთავები რასპზე
GPIO ქინძისთავები რასპზე
GPIO ქინძისთავები რასპზე
GPIO ქინძისთავები რასპზე

ეს პროექტი იყენებს GPIO– ს ფიზიკურ ბორდის იდენტებს ქინძისთავებისთვის.

ეს არის Pin 1 Pin 40 – მდე. არა „BCM“GPIO pin ნუმერაცია. (დიახ, ცოტა დამაბნეველია, მაგრამ BOARD არის მხოლოდ პინების რაოდენობა ზემოდან მარცხნიდან ქვემოთ მარჯვნივ.)

ჩვენების მოდული TM1637 მოდული Pin Pi ფიზიკური პინი#სიმძლავრე 5V 2 გრუნტი GND 6

მოდული #1 CLK 33

DIO 31

მოდული #2 CLK 36

DIO 32

მოდული #3 CLK 37

DIO 35

მოდული #4 CLK 40

DIO 38

შენიშვნა: სურვილის შემთხვევაში არ გჭირდებათ ოთხივე მოდულის დამატება. თქვენ შეგიძლიათ გქონდეთ 1 -დან 4 მოდულამდე. (დიახ, შესაძლებელია უფრო მეტ მოდულზე გადასვლა, მაგრამ თქვენ გჭირდებათ კოდის შეცვლა უფრო მეტი მხარდაჭერისთვის.)

მაგრამ, თქვენ უნდა ჩართოთ მოდულები თანმიმდევრულად დაწყებული #1 მოდულიდან

ეს იმიტომ ხდება, რომ TM1637 ბიბლიოთეკა ელოდება ACK მოდულს, ასე რომ სხვაგვარად ელოდება.

Soldered Breadboard– ის ნიმუშის ფოტო თქვენ უნდა დაიცვას თქვენი გაყვანილობის ნიმუში, რათა ემთხვეოდეს ადრე ნაჩვენები 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. დაამატეთ დროის ზონები თითოეული მოდულისთვის.

ეს არის Linux TZ სახელები, როგორიცაა ‘America/New_York’, EST5EDT, UTC, ან ‘Local’ თქვენი ადგილობრივი დროის ზონისთვის, როგორც დადგენილია raspi-config– ის საშუალებით. ნაგულისხმევი არის UTC

4. დააყენეთ გამოჩნდება თუ არა 12 სთ ან 24 სთ რეჟიმი თითოეული მოდულისთვის

[საათი]; TM1637 მოდულის რაოდენობა (1 -დან 4 -მდე) num_modules = 2

; დროის ზონები თითოეული მოდულისთვის

; გამოიყენეთ raspi-config ადგილობრივი დროის ზონის დასაყენებლად; ნაგულისხმევი არის UTC; ფორმატი არის Linux TZ სახელები ან "ადგილობრივი" ადგილობრივი დროისთვის; 'ამერიკა/ნიუ -იორკი', EST5EDT, UTC, 'ადგილობრივი' TZ1 = ადგილობრივი TZ2 = UTC TZ3 = TZ4 =

; 12/24 საათი თითოეული მოდულისთვის

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

; სიკაშკაშე (დიაპაზონი 1..7)

LUM = 1

5. თქვენ არ უნდა გქონდეთ GPIO ქინძისთავების რედაქტირება, თუ მათ Pi- ზე სხვადასხვა pin #-ებში არ შეაერთებთ.

6. შეინახეთ ცვლილებები და შემდეგ გაუშვით საათი:

$ python raspiclock.py

თუ ყველაფერი კარგად არის, ყველა თქვენი ჩვენების მოდული უნდა ანათებდეს. INI ფაილში დაყენებულ დროს.

გილოცავთ! გამოტოვეთ პრობლემების მოგვარება და გადადით საბოლოო ინსტალაციაზე…

ნაბიჯი 7: პრობლემების მოგვარება

თქვენ უნდა ნახოთ რამდენიმე მარტივი გამოსწორების შეტყობინება:

ინიციალიზაცია… მოდულების რაოდენობა = 4 საათის მარყუჟის დაწყება… მოდული#1 ჩვენებაTM () მოდული#2 ჩვენებაTM () მოდული#3 ჩვენებაTM () მოდული#4 ჩვენებაTM () (განმეორებითი…)

თუ თქვენ ადრე გამოსცადეთ მოდულები და ყველამ იმუშავა, მაშინ იცით რომ მოდულები და ჟოლო კარგია.

ა) გათიშვა - თუ გამართვის შეტყობინებები ერთ ადგილას ეკიდება, პროგრამა ელოდება ACK იმ მოდულიდან#.

ჯერ შეამოწმეთ თქვენი გაყვანილობა! ადვილია მავთულის გადახვევა ან არასწორი GPIO პინზე Pi- ზე შეყვანა.

მეორე, შეცვალეთ მოდულები, რომ ნახოთ მოდული მოულოდნელად დაზიანდა.

მესამე, შეამოწმეთ raspiclock.ini ფაილი შეცდომებისთვის. საჭიროების შემთხვევაში, წაშალეთ მთელი დირექტორია და გააკეთეთ სხვა GIT CLONE, რომ კვლავ მიიღოთ.

მეოთხე, კიდევ ერთხელ შეამოწმეთ თქვენი გაყვანილობა!;-)

ბ) თუ თქვენ მიიღებთ პითონის შეცდომის შეტყობინებას, გადაამოწმეთ თქვენი პითონის ვერსია გამოყენებით:

$ პითონი -V (კაპიტალი "V")

პითონი 2.7. X

მე არ გამომიცდია პითონ 3 -ის წინააღმდეგ, ამიტომ დარწმუნებული არ ვარ ბიბლიოთეკა თავსებადია თუ არა. დააკოპირეთ შეცდომის შეტყობინება (ჩვეულებრივ, შეცდომის ბოლო ხაზი) და ჩასვით Google ძიებაში. ამან შეიძლება ნახოს რა მოხდა.

ნაბიჯი 8: საბოლოო ინსტალაცია

საბოლოო ინსტალაცია
საბოლოო ინსტალაცია

1. კვლავ შეცვალეთ. INI ფაილი და დააყენეთ გამართვა = 0. $ cd/home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. ასევე გადაამოწმეთ TZ დროის ზონები და HR 12/24 საათიანი პარამეტრები, როგორც გსურთ.

3. დააყენეთ Brightness როგორც გსურთ 1 -დან 7 -მდე.

4. გაუშვით install.sh სკრიპტი, რომ დაამატოთ pi crontab ჩატვირთვისას ავტომატური გაშვებისთვის.

$ sh install.sh

5. გადატვირთეთ

$ sudo გადატვირთვა

6. ის უნდა გადატვირთოს და შემდეგ გამოვიდეს გაშვებული.

დასრულდა!

გირჩევთ: