विषयसूची:

स्मार्ट वॉल कैलेंडर: 5 कदम
स्मार्ट वॉल कैलेंडर: 5 कदम

वीडियो: स्मार्ट वॉल कैलेंडर: 5 कदम

वीडियो: स्मार्ट वॉल कैलेंडर: 5 कदम
वीडियो: Ajanta Digital Wall Clock Time Setting || Ajanta Digital Wall Clock में Time Setting कैसे करते है ? 2024, जुलाई
Anonim
स्मार्ट वॉल कैलेंडर
स्मार्ट वॉल कैलेंडर

मेरी पत्नी और मेरे पास क्लासिक पेपर वॉल कैलेंडर हुआ करता था, जिस पर हम महत्वपूर्ण तिथियों को चिह्नित करते थे। घटनाओं को चिह्नित करने के लिए हम अपने स्मार्ट फोन पर Google कैलेंडर का भी उपयोग करते हैं, इसलिए इसका मतलब दोहरा काम था। इसलिए मैंने कुछ प्रकार के स्मार्ट वॉल कैलेंडर बनाने का फैसला किया, जो हमारे रिमाइंडर, ईवेंट और कुछ अन्य डेटा प्रदर्शित करेगा। चूंकि मेरे पास कई पुराने इलेक्ट्रॉनिक पुर्जे पड़े हैं, इसलिए मेरा लक्ष्य उन्हें अधिक से अधिक पुन: उपयोग करना और कम से कम लागत के साथ कैलेंडर बनाना था।

इस ट्यूटोरियल में मैं आपको दिखाऊंगा कि स्मार्ट वॉल कैलेंडर कैसे बनाया जाता है, जिसमें कई Google खातों से ईवेंट प्रदर्शित होते हैं। यह समय, तिथि, मौसम, तापमान और कुछ अतिरिक्त जानकारी भी प्रदर्शित करेगा। यह रास्पबेरी पाई कंप्यूटर द्वारा एक निष्क्रिय इन्फ्रारेड सेंसर (पीआईआर) मोशन सेंसर से जुड़ा होगा, ताकि कमरे में गति का पता चलने पर डिस्प्ले चालू हो जाए, लेकिन कुछ मिनटों की निष्क्रियता के बाद बंद हो जाए। यह ट्यूटोरियल कई अन्य ट्यूटोरियल पर आधारित है जो मुझे इंटरनेट पर मिले हैं और मैं उन्हें बेहतर समझने के लिए लिंक दूंगा। कुछ बुनियादी प्रोग्रामिंग ज्ञान की आवश्यकता है (एचटीएमएल, पायथन,…)।

चरण 1: हार्डवेयर

जैसा कि पहले उल्लेख किया गया है, मैंने लागत को कम रखने के लिए कई पुराने इलेक्ट्रॉनिक भागों का पुन: उपयोग करने का प्रयास किया। हालाँकि कुछ वस्तुओं को मुझे खरीदना था, इसलिए मैं निर्माण के लिए आवश्यक सभी चीजों को सूचीबद्ध करूँगा।

- एक रास्पबेरी पाई किट। शुरुआत में मैंने अपने पुराने मॉडल 2 को किसी अन्य प्रोजेक्ट से इस्तेमाल किया। यह काम कर गया, लेकिन वेब पेज संपादन और पुनः लोड करने में मुझे बहुत समय लगा, इसलिए मैंने अंततः मॉडल 3 की अदला-बदली की, जो अधिक धाराप्रवाह रूप से काम करता है

- एलसीडी चित्रपट। मैंने अपने पुराने लैपटॉप से स्क्रीन का उपयोग किया, इसलिए मुझे इसके लिए केवल LVDS ड्राइवर बोर्ड और बिजली की आपूर्ति खरीदने की आवश्यकता थी https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=hdmi+ ड्राइवर+LVDS+बोर्ड&_sacat=0

- इलेक्ट्रॉनिक्स के लिए प्लास्टिक स्टोरेज बॉक्स

- पैसिव इंफ्रारेड मोशन सेंसर

- AM2302 तापमान/आर्द्रता सेंसर

- एलसीडी फ्रेम के लिए ब्लैक प्लास्टिक स्लाइड-ऑन बाइंडर

- विभिन्न केबल (एचडीएमआई, डीसी पावर के लिए 5.5 मिमी, सोल्डरलेस ब्रेडबोर्ड जम्पर केबल,…)

चरण 2: एलसीडी डिस्प्ले बनाना

एलसीडी डिस्प्ले बनाना
एलसीडी डिस्प्ले बनाना
एलसीडी डिस्प्ले बनाना
एलसीडी डिस्प्ले बनाना
एलसीडी डिस्प्ले बनाना
एलसीडी डिस्प्ले बनाना

मैंने अपने पुराने अप्रचलित लैपटॉप से एलसीडी स्क्रीन का उपयोग किया। इसे कैसे करें, इस पर कई ट्यूटोरियल हैं, मैंने इसका अनुसरण किया:

www.instructables.com/id/How-to-reuse-the-old-LCD-Screen-of-your-broken-Lap/

मैंने अपने पुराने लैपटॉप के कवर को हटा दिया, एलसीडी डिस्प्ले निकाला और फिर सही एलवीडीएस ड्राइवर बोर्ड का आदेश दिया। मैंने विक्रेता को उत्पाद कोड प्रदान किया, जो एलसीडी के पीछे की तरफ पाया जा सकता है, मेरे मामले में यह LP171WE3 (TL) (A2) है - अंतिम तस्वीर पर नीचे दायां लेबल देखें, और फिर उसने मुझे उपयुक्त LVDS भेजा। कृपया ध्यान दें, आपको डिस्प्ले के लिए बिजली की आपूर्ति की भी आवश्यकता होगी, इसलिए विक्रेता से इसे भी भेजने के लिए कहें। मैंने ड्राइवर बोर्ड को अच्छी तरह से फिट करने और इसे एलसीडी के पीछे की तरफ लगाने के लिए एक अच्छा 14.5×7.5×2cm प्लास्टिक बॉक्स भी खरीदा।

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

चरण 3: सॉफ़्टवेयर सेट करना

जब मैं कुछ सुराग के लिए इंटरनेट पर देख रहा था कि कैलेंडर कैसे बनाया जाए, तो मैं इस पेज https://dakboard.com/site से प्रेरित हुआ। वे तैयार उत्पाद (डिस्प्ले, कंप्यूटर और कामकाजी सॉफ्टवेयर) प्रदान करते हैं, लेकिन उनके पास DIY समाधान (https://blog.dakboard.com/diy-wall-display/) के लिए एक उत्कृष्ट ट्यूटोरियल भी है। मेरा सुझाव है कि आप इस ट्यूटोरियल का अनुसरण करें, कम से कम पहले भाग के लिए रास्पबेरी पर सिस्टम तैयार करने और स्थापित करने के निर्देशों के साथ, ताकि ब्राउज़र बूट पर वांछित वेब पेज को स्वतः लोड कर सके।

यह अच्छी तरह से काम किया, हालांकि मैं कुछ समाधान की तलाश में था, जिसे मेरी इच्छा के अनुसार और अधिक अनुकूलित किया जा सकता था। मैंने अपना खुद का वेब सर्वर स्थापित करने और एक वेब पेज बनाने का फैसला किया है, जो कैलेंडर के अलावा अतिरिक्त जानकारी दिखाएगा। मैंने Wordpress.org को चुना है, क्योंकि यह अच्छी तरह से प्रलेखित है और इसमें आपकी सहायता के लिए अच्छा समर्थन और बड़ा समुदाय है। रास्पबेरी पाई पर वर्डप्रेस कैसे स्थापित करें, इस पर ट्यूटोरियल यहां दिया गया है: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress। Wordpress स्थापित होने के साथ, मेरे होमपेज को डिज़ाइन करने का समय आ गया था। आप कई प्रदान की गई थीम में से एक का उपयोग कर सकते हैं, या स्क्रैच से डिज़ाइन कर सकते हैं। वैसे भी, इसके लिए कुछ HTML प्रोग्रामिंग ज्ञान की आवश्यकता है।

मैंने अपना पृष्ठ डिज़ाइन किया है, ताकि बाईं ओर कैलेंडर दिखाया जा सके (https://sl.wordpress.org/plugins/google-calendar-events/), जबकि दाईं ओर समय और दिनांक दिखाया गया है (https://www.timeanddate.com/clocks/free.html और https://www.arclab.com/en/kb/htmlcss/display-date-time-javascript-php-ssi.html)। मौसम का पूर्वानुमान इस पृष्ठ से है (https://www.1a-vreme.si/vremensko-okno/), जो स्लोवेनियाई शहरों के लिए पूर्वानुमान विजेट प्रदान करता है, लेकिन मुझे लगता है कि अन्य देशों के विजेट इंटरनेट पर भी मिल सकते हैं। AM2302 सेंसर (https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=AM2302+&_sacat=0) का उपयोग करके तापमान एकत्र किया जाता है, जैसा कि इस अध्याय के अंत में बताया गया है। नीचे एक साधारण दैनिक उलटी गिनती टाइमर है, जो दर्शाता है कि किसी घटना के लिए कितने दिन शेष हैं (मेरे बच्चों के लिए यह जानना दिलचस्प है कि उन्हें कितने दिन इंतजार करना होगा)। ऊपरी दाएं किनारे में मेटास्लाइडर प्लगइन (https://wordpress.org/plugins/ml-slider/) है, जो बेतरतीब ढंग से मेरे परिवार की चुनिंदा तस्वीरों को स्लाइड करता है। इसके अतिरिक्त मैंने पृष्ठभूमि स्लाइडर प्लगइन का उपयोग किया है (https://sl.wordpress.org/plugins/background-slider-master/) मुझे अच्छी पृष्ठभूमि के लिए कुछ यादृच्छिक चित्र दिखाने के लिए।

जैसा कि पहले उल्लेख किया गया है, इनडोर तापमान AM2302 सेंसर का उपयोग करके एकत्र किया जाता है। तापमान कैसे प्राप्त करें, इस पर कई ट्यूटोरियल हैं, मैंने इसका अनुसरण किया: https://www.modmypi.com/blog/am2302-temphumidity-sensor। बाद में मैंने इस सेंसर को दूसरे रास्पबेरी पाई में स्थानांतरित कर दिया, जिस पर होम असिस्टेंट चल रहा था, क्योंकि इसके डीएचटी सेंसर घटक (https://www.home-assistant.io/components/sensor.dht/) का उपयोग करके मूल्यों को पढ़ना और प्रकाशित करना आसान है।. गृह सहायक विभिन्न मौसम घटकों का उपयोग करके बाहरी तापमान भी एकत्र कर सकता है, मैंने YR.no घटक (https://www.home-assistant.io/components/sensor.yr/) का उपयोग किया। इसके साथ, मैंने इन घटकों से इनडोर/बाहर के तापमान को इकट्ठा करने और उन्हें एक टेक्स्ट फ़ाइल में लिखने के लिए एक ऑटोमेशन स्क्रिप्ट लिखी, जो तब मेरे वॉल कैलेंडर पर प्रदर्शित होती है। होम असिस्टेंट के बारे में अधिक जानकारी के लिए होमपेज (https://www.home-assistant.io/) देखें।

चरण 4: वैकल्पिक - प्रदर्शन बंद करना

अब हमारे पास अपना कैलेंडर सेट अप और चल रहा है, ठीक वैसे ही जैसे हम इसे पसंद करते हैं। लेकिन हम नहीं चाहते कि डिस्प्ले 24/7 चालू रहे। हम इसे केवल तभी चालू रखना चाहते हैं, जब कोई घर पर हो। इसके अलावा, हम नहीं चाहते कि यह रात के मध्य में चालू हो, जब हम शौचालय जाते हैं, तो यह बहुत उज्ज्वल होता है! इसलिए जब कोई इसके सामने खड़ा होता है, तो हम नोटिस करने के लिए एक इन्फ्रारेड सेंसर संलग्न करेंगे, और कुछ समय सीमाएं जोड़ेंगे, जब इसे चालू करना चाहिए।

कृपया ध्यान दें कि मेरे प्रोग्रामिंग कौशल सीमित हैं, इसलिए निम्नलिखित इष्टतम नहीं हो सकते हैं, क्योंकि मैंने इसे विभिन्न ऑनलाइन मंचों और ट्यूटोरियल से चुना है, लेकिन अनिवार्य रूप से यह काम करता है। फिर भी, किसी भी सिफारिश का अभी भी स्वागत है। पहले हम मॉनिटर को मैन्युअल रूप से चालू / बंद करने के लिए परीक्षण से शुरू करेंगे। उसके लिए, हम दो फाइलें (उदाहरण के लिए Monitor_on.sh और Monitor_off.sh) बनाएंगे और उसमें कुछ कोड लिखेंगे। ऐसा करने का सबसे आसान तरीका है कि आप SSH का उपयोग करके अपने रास्पबेरी में लॉग इन करें और टाइप करें

sudo nano Monitor_on.sh

और निम्न कोड टाइप करें

tvservice --वरीय;

startx /usr/bin/graphical_launcher `fgconsole`

सहेजने और बाहर निकलने के लिए CTRL+X दबाएं, फिर दूसरी फ़ाइल बनाएं

सुडो नैनो मॉनिटर_ऑफ.श

और निम्न कोड टाइप करें

टीवी सेवा --ऑफ़;

फिर से, सहेजने और बाहर निकलने के लिए CTRL+X दबाएँ। इन नव निर्मित फ़ाइलों को निष्पादन योग्य बनाएं:

सुडो चामोद +x मॉनिटर_ऑन.श

सुडो चामोद +x मॉनिटर_ऑफ.श

अब यह कोशिश करने के लिए कि क्या ये आदेश काम कर रहे हैं, टाइप करें

सुडो./monitor_off.sh

सुडो./monitor_on.sh

मॉनिटर को अब उसी के अनुसार बंद और चालू करना चाहिए। मैंने देखा है कि रास्पबेरी पाई 2 पर मॉनिटर को चालू होने में लगभग 10 सेकंड का समय लगा। रास्पबेरी पाई 3 पर 1-2 सेकंड लगते हैं। आगे हम एक इन्फ्रारेड सेंसर कनेक्ट करेंगे, जो इन स्क्रिप्ट्स को ट्रिगर करेगा। फिर से, रास्पबेरी पाई और पीआईआर सेट करने के लिए कई ट्यूटोरियल हैं, मैंने इसका अनुसरण किया: https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/। मूल रूप से, नैनो संपादक (उदाहरण के लिए Motion_sensor.py) का उपयोग करके एक फ़ाइल बनाएं और उसमें उपयुक्त पायथन कोड टाइप करें। नीचे मेरी फ़ाइल का उदाहरण है:

RPIO. GPIO को GPIO के रूप में आयात करें। time.time()SHUTOFF_DELAY = 180 # सेकंडजबकि सही:i=GPIO.input(17)अगर i==0: #जब मोशन सेंसर से आउटपुट कम हो, तो मॉनिटर को ऑफ कर दें अगर टर्न_ऑफ नहीं है और टाइम ()> (last_motion_time + SHUTOFF_DELAY): "कोई घुसपैठिए नहीं" प्रिंट करें, iturned_off = Truetime.sleep(1) subprocess.call(['/home/pi/monitor_off.sh'], shell=True)elif i==1: #जब मोशन सेंसर से आउटपुट हाई है, मॉनिटर को ऑनप्रिंट करें "घुसपैठिए का पता चला", itime.sleep(1)last_motion_time = time.time()sys.stdout.flush()if turn_off और dt.datetime.now().hour > 5 and dt.datetime. अब ()। घंटा < 23: चालू_ऑफ = Falsesubprocess.call (['/home/pi/monitor_on.sh'], खोल = सच) अगर _name_ == '_main_': कोशिश करें: मुख्य() कीबोर्डइंटरप्ट को छोड़कर: GPIO.cleanup ()

ध्यान दें कि "GPIO.setup(17, GPIO. IN)" इंगित करता है कि पीआईआर से आउटपुट पिन रास्पबेरी पाई पर पिन 17 से जुड़ा है। कौन सा पिन यह निर्भर करता है कि आप GPIO.setmode(GPIO. BOARD) या GPIO.setmode(GPIO. BCM) को परिभाषित करते हैं। अंतर यहाँ समझाया गया है: https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering। मेरे पास GPIO. BOARD के सामने # है, इसलिए इसे अनदेखा कर दिया जाता है और GPIO. BCM का उपयोग किया जाता है।

लाइन पर ध्यान दें

SHUTOFF_DELAY = १८० #सेकंड

यहां बताया गया है कि आखिरी गति का पता चलने के बाद, बंद होने से पहले मॉनिटर कितने समय तक चालू रहता है। यह उपयोगी है क्योंकि मैं नहीं चाहता कि जब मैं इसके पास से चलूं तो मॉनिटर लगातार बंद/चालू हो, लेकिन मैं इसे बंद होने से पहले कुछ समय के लिए चालू रखना चाहता हूं। मैंने 180 सेकंड के अंतराल को चुना है, ताकि आखिरी गति का पता चलने के लगभग 3 मिनट बाद मॉनिटर बंद हो जाए।

अंत में, यह पंक्ति

अगर टर्न_ऑफ और dt.datetime.now().hour> 6 और dt.datetime.now().hour <23:

बताता है कि मॉनिटर केवल 6:00 और 23:00 के बीच चालू होता है, इसलिए यह मुझे रात के समय में परेशान नहीं करता है। रेखाएं

प्रिंट "कोई घुसपैठिए नहीं", i

तथा

प्रिंट "घुसपैठिए का पता चला", i

केवल स्क्रिप्ट के परीक्षण के लिए हैं, आप उन्हें बाद में हटा सकते हैं, जब आपके पास यह काम करने लगेगा। अब स्क्रिप्ट का परीक्षण करें:

sudo python Motion_sensor.py

यदि आप सेंसर के ऊपर तरंग करते हैं, तो आपको "घुसपैठिए का पता चला" संदेश देखना चाहिए, अन्यथा यह "कोई घुसपैठिया नहीं" होगा। जब इस स्क्रिप्ट का परीक्षण किया जाता है और काम कर रहा होता है, तो इसे बूट पर शुरू करने के लिए सेट करें:

सुडो नैनो ~/.config/lxsession/LXDE-pi/autostart

और निम्न पंक्ति जोड़ें

@sudo /usr/bin/python /home/pi/motion_sensor.py

बेशक आपको अपने द्वारा बनाई गई पायथन लिपि का सही फ़ाइल नाम निर्दिष्ट करना होगा।

चरण 5: कैलेंडर लटकाएं

सभी सेट अप के साथ, कैलेंडर को दीवार पर टांगने का समय आ गया है!

शुरू में मैं एलसीडी डिस्प्ले के पीछे रास्पबेरी पाई को छिपाने की सोच रहा था, ताकि केवल एक केबल (डीसी पावर) की जरूरत पड़े। लेकिन चूंकि रास्पबेरी 5 वी पर चलता है और एलसीडी डिस्प्ले 12 वी पर चलता है, इसलिए मुझे अतिरिक्त ट्रांसफार्मर की आवश्यकता होगी। इसके अलावा, रास्पबेरी का मामला काफी मोटा है, जिसका अर्थ है कि एलसीडी दीवार से लगभग 3 सेंटीमीटर की दूरी पर होगी। इसलिए मैंने इसे छोड़ दिया और केवल एलसीडी इलेक्ट्रॉनिक्स को एलसीडी के पीछे छोड़ दिया, ताकि यह अब दीवार से 1 सेंटीमीटर से कम दूर हो। मैंने डीसी बिजली की आपूर्ति के लिए दो 5 मीटर लंबी केबल, एक एचडीएमआई और एक 5, 5 मिमी का अधिग्रहण किया। दोनों केबल दीवार की तरह सफेद हैं, जिसका अर्थ है कि वे ज्यादा अलग नहीं हैं। मैंने दीवार पर एलसीडी लगा दी है और रास्पबेरी को विपरीत दीवार पर रेफ्रिजरेटर के ऊपर रख दिया है, इसलिए यह मूल रूप से छिपा हुआ है, फिर भी आसानी से सुलभ है।

सिफारिश की: