विषयसूची:

रास्पबेरी पाई एमेच्योर रेडियो डिजिटल घड़ी: 8 कदम (चित्रों के साथ)
रास्पबेरी पाई एमेच्योर रेडियो डिजिटल घड़ी: 8 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पाई एमेच्योर रेडियो डिजिटल घड़ी: 8 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पाई एमेच्योर रेडियो डिजिटल घड़ी: 8 कदम (चित्रों के साथ)
वीडियो: Super Antenna MP1 | Ham Radio Antenna 2024, नवंबर
Anonim
रास्पबेरी पाई एमेच्योर रेडियो डिजिटल घड़ी
रास्पबेरी पाई एमेच्योर रेडियो डिजिटल घड़ी

अवलोकन

एमेच्योर रेडियो ऑपरेटर (उर्फ एचएएम रेडियो) अपने अधिकांश ऑपरेशन के लिए 24 घंटे यूटीसी (यूनिवर्सल कोऑर्डिनेटेड टाइम) का उपयोग करते हैं। मैंने कम लागत वाले TM1637 4 अंकों के डिस्प्ले और सिर्फ एक GUI घड़ी के बजाय एक रास्पबेरी पाई ज़ीरो डब्ल्यू का उपयोग करके एक डिजिटल घड़ी बनाने का फैसला किया। (हार्डवेयर मजेदार है!)

TM1637 संचालित डिस्प्ले में दो सेट अंकों के बीच एक सेंटर कोलन ":" के साथ चार 7 सेगमेंट एलईडी हैं। कुल 4 तारों के लिए डिस्प्ले प्लस 5V + और ग्राउंड को चलाने के लिए दो तारों की आवश्यकता होती है।

इस विशेष परियोजना के लिए, मैं चाहता था कि रास्पि इंटरनेट के माध्यम से एनटीपी (नेटवर्क टाइम प्रोटोकॉल) सर्वर से अपना समय प्राप्त करे। मैं इस घड़ी के दूसरे संस्करण को Arduino Uno और रीयल-टाइम क्लॉक मॉड्यूल पर चलाने की योजना बना रहा हूं, जब कोई वाईफाई उपलब्ध नहीं है और अधिक पोर्टेबल ऑपरेशन के लिए।

मैं यह भी चाहता था कि घड़ी स्थानीय समय को 12hr और 24hr प्रारूपों के साथ-साथ UTC को 12hr और 24hr प्रारूपों में दिखाए। सॉफ़्टवेयर को आपको केवल UTC 24hr (विशिष्ट hams) या 4 अलग-अलग डिस्प्ले पर अलग-अलग समय का उपयोग करने के लिए डिज़ाइन किया गया है।

आप उस समय क्षेत्र को भी सेट कर सकते हैं जिसे आप डिफ़ॉल्ट स्थानीय समय के बजाय उपयोग करना चाहते हैं। तो चार डिस्प्ले में से प्रत्येक एक अलग समय क्षेत्र और 12 घंटे या 24 घंटे प्रारूप में दिखा सकता है।

इस परियोजना में पाई और/या tm1637 मॉड्यूल पर सोल्डरिंग कनेक्टर या तारों की आवश्यकता होती है।

पूर्ण निर्देश GITHUB पर भी उपलब्ध हैं:

चरण 1: आवश्यकताएँ

आवश्यकताएं
आवश्यकताएं

• रास्पबेरी पाई2, 3, या जीरो डब्ल्यू. (अर्थात 40 पिन हेडर और ईथरनेट/वाईफाई वाला कोई भी पाई)

• 4 - TM1637 4 अंक डिस्प्ले मॉड्यूल https://www.dx.com/p/produino-0-36-4-digit- Yellow-…

और/या https://www.dx.com/p/produino-0-36-4-digit- Yellow-…

नोट: आप बड़े या छोटे का उपयोग कर सकते हैं, जब तक कि वे TM1637 संगत हों।

• 16 तारों के साथ वायर हार्नेस (प्रत्येक TM1637 को 4 तारों की आवश्यकता होती है)

• सोल्डरलेस ब्रेडबोर्ड और तार या

• सोल्डर-सक्षम ब्रेडबोर्ड और विभिन्न पिन कनेक्टर।

• Pi. के लिए 8GB माइक्रोएसडी या इससे बड़ा

• पाई के लिए 5वी बिजली की आपूर्ति।

चरण 2: सॉफ़्टवेयर स्थापना

यह एप्लिकेशन टिम वेइज़नेगर द्वारा लिखित TM1637.py पायथन लाइब्रेरी का उपयोग करने में आसान है। (यदि आप पुस्तकालय के बारे में विवरण चाहते हैं, तो देखें:

क्या तुम्हें पता था?

यदि आप पीसी का उपयोग करके एसडी कार्ड पर रास्पियन स्थापित करते हैं, तो आप रास्पबेरी पर बूट करने से पहले वाईफाई और एसएसएच एक्सेस को कॉन्फ़िगर करने के लिए कार्ड पर दो फाइलें बना सकते हैं?

इसके लिए, मान लें कि आपका एसडी कार्ड वर्तमान में आपके पीसी पर K: के रूप में आरोहित है:

1) रास्पियन लाइट छवि को एसडी में स्थापित करें।

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 में “सभी फ़ाइलें” के रूप में सहेजें का उपयोग करें

दोबारा, नोटपैड को इसे "wpa_supplicant.conf.txt" में बदलने न दें !!

जब आप पहली बार रास्पबेरी को बूट करते हैं, तो रास्पियन इन्हें ढूंढेगा और आपके वाईफाई से कनेक्ट होगा। आपको आईपी पते के लिए अपने राउटर को देखना होगा, हालांकि, इसके ऑटो असाइन किए जाने के बाद से।

चरण 3: सॉफ्टवेयर स्थापना - पीटी 2

1. यदि आपने पहले से नहीं किया है, तो 8GB या बड़े माइक्रोएसडी कार्ड पर रास्पियन लाइट संस्करण स्थापित करें। आपको GUI संस्करण की आवश्यकता नहीं है, क्योंकि यह प्रोजेक्ट मॉनिटर या कीबोर्ड का उपयोग नहीं करता है।

नोट !: इस परियोजना के लिए Python2.7 की आवश्यकता है!

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

2. आपको एसएसएच के माध्यम से दूर से रास्पबेरी तक पहुंचने की आवश्यकता होगी। विंडोज़ पर, आप पुट्टी एसएसएच टर्मिनल प्रोग्राम का उपयोग कर सकते हैं। मैक पर, बस एक कमांड टर्मिनल विंडो लाएं।

3. माइक्रोएसडी कार्ड को पाई में डालें और अभी पावर प्लग करें। बूट होने में कुछ मिनट लगेंगे।

4. अपने रास्पबेरी पाई में दूरस्थ रूप से लॉग इन करने के लिए, आपको इसका आईपी पता ढूंढना होगा। आप कोशिश कर सकते हैं: $ ssh [email protected] (या पुट्टी से, होस्टनाम [email protected] दर्ज करें। /रसभरी"

एक बार पीआई उपयोगकर्ता के रूप में लॉग इन करने के बाद:

5. अपने रास्पियन को अपडेट करें: $ sudo apt update $ sudo apt upgrade

6. रास्पबेरी कॉन्फ़िगर करें: $ sudo raspi-config a. उपयोगकर्ता पासवर्ड बदलें b. स्थानीयकरण विकल्प -> समय क्षेत्र बदलें अपना स्थानीय समय क्षेत्र चुनें c. समाप्त करने के लिए टैब

7. RaspiDigiHamClock सॉफ़्टवेयर स्थापित करें: $ cd /home/pi $ sudo apt update $ sudo apt install git $ git क्लोन

8. हार्डवेयर सेट करने के लिए अपने पाई को पावर डाउन करें $ शटडाउन अभी एलईडी बंद होने के बाद बिजली को अनप्लग करें

चरण 4: हार्डवेयर वायरिंग

हार्डवेयर वायरिंग
हार्डवेयर वायरिंग
हार्डवेयर वायरिंग
हार्डवेयर वायरिंग
हार्डवेयर वायरिंग
हार्डवेयर वायरिंग

आप TM1637 मॉड्यूल और रास्पबेरी पाई (यदि इसमें पहले से कनेक्टर नहीं है) पर कनेक्टर्स को मिलाप कर सकते हैं। शुरू करने से पहले, तय करें कि आप डिस्प्ले को कैसे माउंट करना चाहते हैं और यदि आप ब्रेडबोर्ड या सोल्डर तारों का उपयोग सीधे पाई और डिस्प्ले मॉड्यूल पर करने जा रहे हैं।

TM1637 मॉड्यूल पिन

वायरिंग नोट: कुछ tm1637 मॉड्यूल +5v और GND पिन फ्लिप करते हैं! तो तस्वीरों के समान दिखाई नहीं दे सकता है।

TM1637 मॉड्यूल एक 4-अंकीय एलईडी डिस्प्ले मॉड्यूल है जो TM1637 ड्राइवर चिप का उपयोग करता है। 4-अंकीय 8-सेगमेंट डिस्प्ले को नियंत्रित करने के लिए इसे केवल दो कनेक्शन की आवश्यकता होती है। दो अन्य तार 5+ वोल्ट बिजली और जमीन खिलाते हैं।

पिन डीईएससी सीएलके क्लॉक डीआईओ डेटा जीएनडी ग्राउंड में 5V +5 वोल्ट

कुछ tm1637 मॉड्यूल +5v और GND पिन को फ़्लिप करते हैं, इसलिए अपने मॉड्यूल के चिह्नों की जाँच करें

प्रत्येक मॉड्यूल का परीक्षण करेंमैं सुझाव देता हूं कि एकल 4 तार वाली महिला कनेक्टर केबल के साथ शुरू करें जिसमें पुरुष कनेक्टर एक मॉड्यूल और पाई से जुड़े हों। फिर अस्थायी रूप से पहले मॉड्यूल को नीचे दिखाए गए पिन से कनेक्ट करें।

अस्थायी परीक्षण एक MODULETM1637 मॉड्यूल पिन पाई भौतिक पिन # 5V 2 GND 6 CLK 40 DIO 38 पिन लेआउट खोजने के लिए GPIO आरेखों को और नीचे देखें।

दूसरी तस्वीर दो डिस्प्ले दिखाती है जो अस्थायी रूप से रास्पबेरी पाई 3 पर चल रहे सॉफ़्टवेयर के साथ वायर्ड हैं।

1. एक बार जब आपके पास एक मॉड्यूल अस्थायी रूप से वायर्ड हो जाता है और अपनी वायरिंग की जाँच करता है

2. रास्पबेरी पाई को पावर दें। मॉड्यूल पर लाल एलईडी प्रकाश करना चाहिए, लेकिन अभी तक कोई प्रदर्शन नहीं होगा।

3. SSH आपके पाई में फिर से पहले की तरह।

$ सीडी

$ अजगर test.py

आपको विभिन्न लघु संदेशों के माध्यम से प्रदर्शन चक्र देखना चाहिए। यदि आप नहीं करते हैं, तो पहले अपनी वायरिंग दोबारा जांचें! तार को फ्लिप करना या पाई पर गलत GPIO पिन में प्लग करना आसान है। यदि आपको एक पायथन त्रुटि संदेश मिलता है, तो अपने पायथन संस्करण का उपयोग करके सत्यापित करें:

$ पायथन-वी (पूंजी "वी")

पायथन 2.7. X

मैंने पायथन 3 के खिलाफ परीक्षण नहीं किया है, इसलिए सुनिश्चित नहीं है कि पुस्तकालय संगत है या नहीं।

त्रुटि संदेश की प्रतिलिपि बनाएँ (आमतौर पर त्रुटि की अंतिम पंक्ति) और Google खोज में पेस्ट करें। इससे क्या हुआ इसका सुराग मिल सकता है।

यदि आपका मॉड्यूल काम करता है, बधाई हो! आप जानते हैं कि मॉड्यूल और पाई काम कर रहे हैं। अब प्रत्येक मॉड्यूल के परीक्षण के लिए इसे दोहराएं। (मेरा सुझाव है कि प्लगिंग / अनप्लगिंग मॉड्यूल से पहले पाई और पावर को बंद कर दें !!)

$ सूडो शटडाउन अभी

चरण 5: रास्पि पर GPIO पिन

रास्पि पर GPIO पिन
रास्पि पर GPIO पिन
रास्पि पर GPIO पिन
रास्पि पर GPIO पिन
रास्पि पर GPIO पिन
रास्पि पर GPIO पिन

यह परियोजना पिनों के लिए GPIO भौतिक बोर्ड आईडी का उपयोग करती है।

वह पिन 1 से पिन 40 है। "बीसीएम" जीपीआईओ पिन नंबरिंग नहीं। (हां, थोड़ा भ्रमित करने वाला, लेकिन BOARD ऊपर से नीचे दाईं ओर सिर्फ पिन काउंट है।)

प्रदर्शन मॉड्यूल TM1637 मॉड्यूल पिन पाई भौतिक पिन # पावर 5V 2 ग्राउंड GND 6

मॉड्यूल # 1 सीएलके 33

डीआईओ 31

मॉड्यूल #2 सीएलके 36

डीआईओ 32

मॉड्यूल #3 सीएलके 37

डीआईओ 35

मॉड्यूल #4 सीएलके 40

डीआईओ 38

नोट: यदि वांछित हो तो आपको सभी 4 मॉड्यूल जोड़ने की आवश्यकता नहीं है। आपके पास 1 से 4 मॉड्यूल हो सकते हैं। (हां, अधिक मॉड्यूल पर जाना संभव है, लेकिन अधिक समर्थन के लिए आपको कोड को बदलने की आवश्यकता है।)

लेकिन, आपको मॉड्यूल # 1. से क्रमिक रूप से शुरू होने वाले मॉड्यूल में प्लग इन करना होगा

ऐसा इसलिए है क्योंकि TM1637 पुस्तकालय मॉड्यूल से एक एसीके की अपेक्षा करता है, इसलिए ऐसा लगता है कि अन्यथा प्रतीक्षा कर रहा है।

सोल्डरेड ब्रेडबोर्ड की नमूना तस्वीरें आपको पहले दिखाए गए GPIO पिन से मेल खाने के लिए अपने स्वयं के वायरिंग पैटर्न का पालन करने की आवश्यकता है, क्योंकि मेरे द्वारा उपयोग किए गए कनेक्टर और मॉड्यूल आपके मेल नहीं खा सकते हैं।

चरण 6: परीक्षण

वाह, वह थोड़ी सी वायरिंग थी! अब धूम्रपान परीक्षण का समय …

चूंकि आप पहले से ही अलग-अलग मॉड्यूल और पाई काम जानते हैं (आपने पहले बताए गए मॉड्यूल का परीक्षण किया था?), तो अगला कदम. INI फ़ाइल सेट करना और घड़ी कार्यक्रम चलाना है:

1. raspiclock.ini. संपादित करें

$ सीडी /होम/पीआई/रास्पिडिजीहैमक्लॉक

$ नैनो raspiclock.ini

2. num_modules को बदलें कि आपने कितने को तार-तार किया है। यह महत्वपूर्ण है क्योंकि पुस्तकालय एसीके की प्रतीक्षा में लटका रहेगा यदि वह किसी मॉड्यूल से बात नहीं कर सकता है।. INI में दिखाए गए क्रम में मॉड्यूल की संख्या में तार करना सुनिश्चित करें। नोट: अतिरिक्त TZ और HR और GPIO पिन को अनदेखा कर दिया जाता है यदि num_modules 4 से कम है।

3. प्रत्येक मॉड्यूल के लिए समय क्षेत्र जोड़ें।

यह आपके स्थानीय समयक्षेत्र के लिए 'अमेरिका/न्यू_यॉर्क', EST5EDT, UTC, या 'स्थानीय' जैसे Linux TZ नाम हैं, जैसा कि raspi-config के माध्यम से सेट किया गया है। डिफ़ॉल्ट यूटीसी है

4. सेट करें कि प्रत्येक मॉड्यूल के लिए 12hr या 24hr मोड प्रदर्शित करना है या नहीं

[घड़ी]; TM1637 मॉड्यूल की संख्या (1 और 4 के बीच) num_modules = 2

; प्रत्येक मॉड्यूल के लिए समय क्षेत्र

; स्थानीय समयक्षेत्र सेट करने के लिए रास्पि-कॉन्फ़िगरेशन का उपयोग करें; डिफ़ॉल्ट यूटीसी है; प्रारूप स्थानीय समय के लिए Linux TZ नाम या 'स्थानीय' है; 'अमेरिका/न्यूयॉर्क', EST5EDT, UTC, 'स्थानीय' TZ1 = स्थानीय TZ2 = UTC TZ3 = TZ4 =

; प्रत्येक मॉड्यूल के लिए 12/24 घंटे

एचआर1 = 12 एचआर2 = 24 एचआर3 = 12 एचआर4 = 24

; चमक (रेंज 1..7)

लुम = 1

5. आपको GPIO पिन को तब तक संपादित नहीं करना चाहिए जब तक कि आप उन्हें Pi पर अलग-अलग पिन # में प्लग न करें।

6. परिवर्तन सहेजें और फिर घड़ी चलाएँ:

$ अजगर raspiclock.py

यदि सब कुछ ठीक है, तो आपके सभी डिस्प्ले मॉड्यूल को. INI फ़ाइल में सेट किए गए समय के साथ हल्का होना चाहिए।

बधाई हो! समस्या निवारण छोड़ें और फ़ाइनल इंस्टाल पर जाएँ…

चरण 7: समस्या निवारण

आपको कुछ सरल डिबग संदेश दिखाई देने चाहिए:

प्रारंभ करना…मॉड्यूल की संख्या = 4 क्लॉक लूप प्रारंभ करना… मॉड्यूल#1 डिस्प्लेटीएम() मॉड्यूल#2 डिस्प्लेटीएम() मॉड्यूल#3 डिस्प्लेटीएम() मॉड्यूल#4 डिस्प्लेटीएम() (दोहराव…)

यदि आपने पहले मॉड्यूल का परीक्षण किया है और वे सभी काम करते हैं, तो आप जानते हैं कि मॉड्यूल और रास्पबेरी अच्छे हैं।

ए) हैंग - यदि डिबग संदेश एक स्थान पर हैंग होते दिखाई देते हैं, तो प्रोग्राम उस मॉड्यूल # से एसीके की प्रतीक्षा कर रहा है।

पहले अपनी वायरिंग की जाँच करें! तार को फ्लिप करना या पाई पर गलत GPIO पिन में प्लग करना आसान है।

दूसरा, मॉड्यूल को स्वैप करें यह देखने के लिए कि क्या कोई मॉड्यूल अचानक खराब हो गया है।

तीसरा, त्रुटियों के लिए raspiclock.ini फ़ाइल की जाँच करें। यदि आवश्यक हो, तो पूरी निर्देशिका को हटा दें और पुनः प्राप्त करने के लिए एक और GIT CLONE करें।

चौथा, अपनी वायरिंग दोबारा जांचें!;-)

बी) यदि आपको एक पायथन त्रुटि संदेश मिलता है, तो अपने पायथन संस्करण का उपयोग करके सत्यापित करें:

$ पायथन-वी (पूंजी "वी")

पायथन 2.7. X

मैंने पायथन 3 के खिलाफ परीक्षण नहीं किया है, इसलिए सुनिश्चित नहीं है कि पुस्तकालय संगत है या नहीं। त्रुटि संदेश की प्रतिलिपि बनाएँ (आमतौर पर त्रुटि की अंतिम पंक्ति) और Google खोज में पेस्ट करें। इससे क्या हुआ इसका सुराग मिल सकता है।

चरण 8: अंतिम स्थापना

अंतिम स्थापना
अंतिम स्थापना

1.. INI फ़ाइल को फिर से संपादित करें और डिबग = 0. $ cd /home/pi/RaspiDigiHamClock सेट करें

$ नैनो raspiclock.ini

2. यह भी सत्यापित करें कि TZ समय क्षेत्र और HR 12/24 घंटे की सेटिंग्स आपकी इच्छानुसार हैं।

3. चमक को 1 और 7 के बीच इच्छानुसार सेट करें।

4. बूट पर स्वचालित स्टार्टअप के लिए pi crontab में जोड़ने के लिए install.sh स्क्रिप्ट चलाएँ।

$ श install.sh

5. रिबूट

$ सूडो रिबूट

6. इसे रीबूट करना चाहिए और फिर दौड़ना आना चाहिए।

ख़त्म होना!

सिफारिश की: