विषयसूची:

IoT RPi LED संदेश बोर्ड: 3 चरण (चित्रों के साथ)
IoT RPi LED संदेश बोर्ड: 3 चरण (चित्रों के साथ)

वीडियो: IoT RPi LED संदेश बोर्ड: 3 चरण (चित्रों के साथ)

वीडियो: IoT RPi LED संदेश बोर्ड: 3 चरण (चित्रों के साथ)
वीडियो: no battery led light / free energy from speaker / science project 2024, नवंबर
Anonim
Image
Image
हार्डवेयर सेटअप
हार्डवेयर सेटअप

इस निर्देशयोग्य में, मैंने रास्पबेरी पाई (आरपीआई) का उपयोग करके एक वाईफाई से जुड़ा एलईडी संदेश बोर्ड बनाया है। उपयोगकर्ता अपने ब्राउज़र का उपयोग करके रास्पबेरी पाई के वेबसर्वर से छोटे संदेश सबमिट करने के लिए कनेक्ट होंगे जो 8x8 एलईडी डिस्प्ले पर दिखाई देंगे। चूंकि पायथन में MAX7219 ड्राइवर के साथ 8x8 एलईडी मैट्रिक्स को इंटरफेस करना इंटरनेट पर दूसरों द्वारा अच्छी तरह से प्रलेखित है, यह प्रोजेक्ट वेबसर्वर इंटरफेस बनाने और आने वाले संदेशों को प्रबंधित करने के लिए ज़ीरोएमक्यू मैसेजिंग का उपयोग करने पर केंद्रित है।

अद्यतन: यहाँ एक अनुवर्ती परियोजना IoT दशमलव/हेक्साडेसिमल 8x8 एलईडी मैट्रिक्स ड्राइंग बोर्ड है

(मैं गर्ल्स हू कोड क्लब के लिए एक क्लब फैसिलिटेटर हूं और मैं वेब इंटरफेस डिजाइन और मैसेजिंग पर छात्रों को पढ़ाने के लिए इस सरल परियोजना के साथ आया हूं।)

चरण 1: हार्डवेयर सेटअप

हार्डवेयर सेटअप
हार्डवेयर सेटअप
हार्डवेयर सेटअप
हार्डवेयर सेटअप

इस परियोजना के लिए निम्नलिखित हार्डवेयर की आवश्यकता है:

  • रास्पबेरी पाई
  • यूएसबी पावर स्रोत जैसे एंकर के साथ एक छोटा यूएसबी से माइक्रोयूएसबी केबल
  • रिबन केबल के साथ MAX7219 डॉट मैट्रिक्स मॉड्यूल ($2 से कम के लिए Aliexpress)
  • संलग्नक (मैंने कार्डबोर्ड बॉक्स में से एक बनाया और स्प्रे को काले रंग में रंगा)

हार्डवेयर सेटअप आसान हिस्सा है। बस एक 5 वायर रिबन केबल को LED मैट्रिक्स से RPi प्रति MAX7219 लाइब्रेरी दस्तावेज़ से कनेक्ट करें।

एलईडी-> आरपीआई ======= वीसीसी-> जीपीआईओ पिन # 2 (5 वी) जीएनडी-> जीपीआईओ पिन # 6 (जीएनडी) डीआईएन-> जीपीआईओ पिन # 19 सीएस -> जीपीआईओ पिन # 24 सीएलके-> जीपीआईओ पिन # 23

मैंने एलईडी इकाई को आरपीआई मामले में चिपकाने के लिए एक दो तरफा फोम टेप का इस्तेमाल किया। फिर, मैंने आरपीआई और बैटरी दोनों को रखने के लिए एक कार्डबोर्ड बॉक्स से एक बाड़ा बनाया।

चरण 2: सॉफ्टवेयर सेटअप

सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप

आरपीआई में निम्नलिखित सॉफ्टवेयर होने चाहिए:

  • अजगर 3
  • अपाचे 2 वेबसेवर
  • Python के लिए Max7219 ड्राइवर
  • ज़ीरोएमक्यू मैसेजिंग

अजगर 3

RPi में पहले से ही Python 3 पहले से इंस्टॉल होना चाहिए। जबकि मेरा कोड पायथन 3 के लिए लिखा गया है, पायथन 2 को कुछ मामूली बदलावों के साथ काम करना चाहिए।

अपाचे २

अपाचे को सेटअप करें और पायथन सीजीआई स्क्रिप्टिंग को सक्षम करें। नीचे आरपीआई पर अपाचे को स्थापित करने के लिए कुछ बेहतरीन संसाधन दिए गए हैं, इसलिए मैं यहां नहीं दोहराऊंगा। Apache और CGI सेटअप करने के लिए बस नीचे दिए गए ट्यूटोरियल्स का पालन करें। सुनिश्चित करें कि *.py स्क्रिप्ट ब्राउज़र से निष्पादन योग्य हैं।

  • https://raspberrywebserver.com/cgiscripting/
  • https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/

मैक्स 7291 चालक

नवीनतम इंस्टॉल गाइड का पालन करके Max7219 ड्राइवर स्थापित करें:

https://max7219.readthedocs.io/en/latest/install.html

इंस्टॉल के बाद, एलईडी मैट्रिक्स पर "हैलो वर्ल्ड" प्रदर्शित करने के लिए उदाहरण कोड, matrix_test.py, प्रति इंस्टॉल गाइड चलाएं। अगले चरण पर जाने से पहले इसे काम करना होगा।

ज़ीरोएमक्यू मैसेजिंग

हमें मैसेजिंग की आवश्यकता क्यों है? उपरोक्त उदाहरण कोड, matrix_test.py, को दो टर्मिनल स्क्रीन पर एक साथ चलाने का प्रयास करें। सिस्टम एक साथ कई कोड चलाने की अनुमति देगा लेकिन आप संदेशों को ओवरलैप करते हुए देखेंगे जो वांछनीय नहीं है। एकल उपयोगकर्ता परिवेश में, यह कोई समस्या नहीं हो सकती है क्योंकि आप यह सुनिश्चित कर सकते हैं कि एक समय में केवल एक प्रोग्राम चल सकता है। वेब जैसे बहु-उपयोगकर्ता वातावरण में, सिस्टम को यह सुनिश्चित करने के लिए एक FIFO (फर्स्ट-इन-फर्स्ट-आउट) कतार बनानी होती है कि केवल एक व्यक्ति कोड निष्पादित कर सके जबकि अन्य प्रतीक्षा करें। जबकि इसे प्राप्त करने के लिए अन्य समाधान हो सकते हैं, मैंने फीफो कतार को प्रबंधित करने के लिए ज़ीरोएमक्यू का उपयोग करने का निर्णय लिया। ज़ीरोएमक्यू सर्वर कोड में एक समय में एलईडी मैट्रिक्स पर एक संदेश प्रदर्शित करने के लिए वास्तविक फ़ंक्शन कॉल होता है जबकि वेबसर्वर ज़ीरोएमक्यू क्लाइंट के रूप में कार्य करता है और ज़ीरोएमक्यू सर्वर पर संदेश सबमिट करता है। इस तरह, जबकि कई उपयोगकर्ता एक साथ वेब पेज के माध्यम से संदेश सबमिट कर सकते हैं, ज़ीरोएमक्यू सर्वर एक समय में केवल एक संदेश प्रदर्शित करेगा।

इस परियोजना के लिए, हम सिर्फ पायथन पैकेज pyzmq स्थापित करेंगे, न कि संपूर्ण ZeroMQ पैकेज।

Daud:

sudo pip3 pyzmq स्थापित करें

zguide.zeromq.org पर ज़ीरोएमक्यू गाइड पढ़ें और पाइथन में हैलो वर्ल्ड सर्वर और क्लाइंट उदाहरण आज़माएं। सर्वर और क्लाइंट दोनों के लिए पायथन उदाहरण कोड को आरपीआई में कॉपी करें और सुनिश्चित करें कि वे अगले चरण पर जाने से पहले काम करते हैं।

चरण 3: वेब पेज सेटअप

वेब पेज में, मैंने पेज को सुंदर दिखने के लिए बूटस्ट्रैप सीएसएस/जेएस फ्रेमवर्क का इस्तेमाल किया। यह पूरी तरह से वैकल्पिक है।

संलग्न led_msg.tar.gz फ़ाइल को Apache रूट या उप-निर्देशिका में डाउनलोड करें। gzip'd टार फ़ाइल को अनटार करने के लिए, चलाएँ:

टार -xzvf led_msg.tar.gz

यह निम्न फ़ाइलें बनाता है:

msg.py (मुख्य कार्यक्रम)

टेम्प्लेट/इंटरस्टिशियल.एचटीएमएल (एचटीएमएल टेम्प्लेट) टेम्प्लेट्स/send_msg.html (एचटीएमएल टेम्प्लेट)स्थिर/img/led_150x150-j.webp

वैकल्पिक रूप से, स्टैटिक डायरेक्टरी के तहत बूटस्ट्रैप css/js फ्रेमवर्क स्थापित करें।

अपने ब्राउज़र में msg.py का URL दर्ज करें और सुनिश्चित करें कि वेब पेज सामने आए। अभी तक कोई संदेश सबमिट न करें!!!

संदेशों को सबमिट करने से पहले, ज़ीरोएमक्यू सर्वर को वेबपेज क्लाइंट से संदेशों को स्वीकार करने और उन्हें एलईडी मैट्रिक्स पर प्रदर्शित करने के लिए शुरू किया जाना चाहिए। यदि ज़ीरोएमक्यू सर्वर नहीं चल रहा है तो स्क्रीन पर कुछ भी प्रदर्शित नहीं होगा।

संलग्न max7219_server.py कोड को अपनी होम निर्देशिका में डाउनलोड करें, अपाचे रूट डीआईआर में नहीं जहां इसे वेब उपयोगकर्ताओं द्वारा निष्पादित किया जा सकता है। इसे रूट के रूप में चलाएं:

सूडो अजगर max7219_server.py

अब ज़ीरोएमक्यू सर्वर वेब पेज से संदेश प्राप्त करने के लिए तैयार है। वेब पेज से एक साधारण संदेश दर्ज करें और सबमिट करें। यदि सब कुछ सही ढंग से सेटअप है, तो आप उस संदेश को ज़ीरोएमक्यू सर्वर स्क्रीन के साथ-साथ एलईडी मैट्रिक्स पर भी देखेंगे।

यदि आप सर्वर को बंद करना चाहते हैं, तो सर्वर स्क्रीन से बाहर निकलने के लिए बस कंट्रोल-सी करें।

इतना ही। आशा है कि आप इस परियोजना का उतना ही आनंद लेंगे जितना मैंने किया।

एक एन्हांसमेंट जो आप कर सकते हैं वह है सर्वर और क्लाइंट के बीच ज़ीरोएमक्यू संचार को अतुल्यकालिक बनाना ताकि वेबपेज अन्य संदेशों के प्रदर्शित होने की प्रतीक्षा न करे। इसके अलावा, आप कैस्केड मोड में अतिरिक्त एलईडी मैट्रिक्स संलग्न कर सकते हैं। मैं इसे आप पर छोड़ दूँगा।

सिफारिश की: