Computer >> कंप्यूटर >  >> सॉफ्टवेयर >> मेल

रास्पबेरी पाई जीमेल नोटिफिकेशन लाइट बनाएं

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

आपको क्या चाहिए

  • 1 x रास्पबेरी पाई
  • 1 एक्स ब्रेडबोर्ड
  • 1 x 220 ओम रोकनेवाला
  • 1 x 5mm एलईडी
  • 1 एक्स जीमेल खाता
  • नर से मादा हुक अप तार

कोई भी रास्पबेरी पाई इस परियोजना के लिए काम करेगी - यहां तक ​​कि पाई ज़ीरो भी! केवल एक GPIO पिन की आवश्यकता है, और यह विशेष रूप से CPU गहन नहीं है। यदि आपके पास पाई स्टार्टर किट है तो आपके पास इसे पूरा करने के लिए पर्याप्त से अधिक भाग हैं।

योजना बनाएं

रास्पबेरी पाई जीमेल नोटिफिकेशन लाइट बनाएं

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

हार्डवेयर

रास्पबेरी पाई जीमेल नोटिफिकेशन लाइट बनाएं

एलईडी के पॉजिटिव एनोड (लंबे पैर) को रेसिस्टर से और फिर GPIO पिन 14 से कनेक्ट करें। आप किसी भी GPIO पिन का उपयोग कर सकते हैं, हालांकि पहले पिनआउट को देखें, क्योंकि वे मॉडल के बीच थोड़े भिन्न होते हैं। नकारात्मक कैथोड (चपटे किनारे वाला छोटा पैर) को जमीन से कनेक्ट करें।

पाई सेटअप

रास्पबेरी पाई जीमेल नोटिफिकेशन लाइट बनाएं

अपने पाई को प्रदान करने के लिए एक ऑपरेटिंग सिस्टम (ओएस) स्थापित है, वहां बहुत सारे सेटअप की आवश्यकता नहीं है (सुनिश्चित नहीं है कि आपको क्या चाहिए? यहां एक को कैसे इंस्टॉल करें)। एक नया टर्मिनल खोलें (ऊपर बाएं> मेनू> सहायक उपकरण> टर्मिनल ) पाई पर (आपको कोडिंग निंजा बनाने के लिए इन शॉर्टकट्स को चेकआउट करें)। पायथन लिपि को संग्रहीत करने के लिए आपको एक नया फ़ोल्डर बनाने की आवश्यकता है। निम्नलिखित कमांड दर्ज करें:

pwd

यह "प्रिंट वर्किंग डायरेक्टरी" के लिए है, और आपको दिखाएगा कि आप किस फोल्डर में हैं (डिफ़ॉल्ट रूप से यह "/home/pi" है)। दस्तावेज़ फ़ोल्डर में नेविगेट करें और "gmail_python" नामक एक नई निर्देशिका (फ़ोल्डर) बनाएं:

cd Documents/
sudo mkdir gmail_python

"Mkdir" कमांड "मेक डायरेक्टरी" के लिए है। इसके बाद कुछ भी निर्देशिका नाम के लिए उपयोग किया जाएगा। अब आपको अपनी निर्देशिका देखने में सक्षम होना चाहिए:

ls

यदि आपने कोई गलती की है, तो आप इस निर्देशिका को आसानी से हटा सकते हैं:

sudo rm -r gmail_python

अब नई निर्देशिका में नेविगेट करें:

cd gmail_python/

एक नई पायथन लिपि बनाएँ:

sudo nano check_messages.py

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

मज़ाक को छोड़कर, पूर्ण विराम के लिए दोनों के बीच इस तुलना को देखें।

CTRL + X दबाएं नैनो से बाहर निकलने और टर्मिनल पर वापस जाने के लिए।

पायथन सेटअप

रास्पबेरी पाई जीमेल नोटिफिकेशन लाइट बनाएं

अब जब पीआई सेटअप हो गया है, तो कोड लिखने का समय आ गया है। इस परियोजना के लिए चार्ली गुओ द्वारा उत्कृष्ट जीमेल पायथन लाइब्रेरी की आवश्यकता है। जीथब से पुस्तकालय डाउनलोड करें और सामग्री निकालें। अंदर "जीमेल" नामक एक फ़ोल्डर होना चाहिए। इस पूरे फोल्डर को "/home/pi/Documents/gmail_python" में कॉपी करें।

कमांड लाइन पर वापस स्विच करें और अपनी स्क्रिप्ट को फिर से खोलें (यदि आप अप की दबाते हैं तो आप अपने पहले दर्ज किए गए कमांड को स्क्रॉल कर सकते हैं):

sudo nano check_messages.py

ध्यान दें कि यह वही कमांड है जिसका उपयोग आपने फ़ाइल बनाने के लिए किया था - यदि कोई फ़ाइल पहले से मौजूद है तो इसे खोला जाएगा, अन्यथा इसे बनाया जाएगा। ये रहा पायथन:

import gmail, RPi.GPIO as GPIO, time # import modules
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output
g = gmail.login('YOUREMAIL@gmail.com', 'YOUR PASSWORD')
unread_messages = g.inbox().mail(unread=True)
total_messages = 0
for message in unread_messages:
total_messages += 1
if total_messages > 0:
# there are unread emails, turn light on
GPIO.output(14, True)
else:
# there are no unread emails, turn light off
GPIO.output(14, False)

काम करने के लिए आपको अपना उपयोगकर्ता नाम और पासवर्ड दर्ज करना होगा। यदि आप चाहें तो आप जीमेल प्लगइन के लिए पूर्ण स्रोत कोड देख सकते हैं। यदि आप ऐसा करने में सहज महसूस नहीं करते हैं (या आप दो-कारक प्रमाणीकरण का उपयोग कर रहे हैं) तो आपको OAuth2 का उपयोग करके Gmail से कनेक्ट करना होगा। यह इस ट्यूटोरियल के लिए थोड़ा सा शामिल है, हालांकि Google के पास आरंभ करने के लिए एक उत्कृष्ट मार्गदर्शिका है।

आइए कोड को तोड़ दें। पहले कुछ मॉड्यूल आयात किए जाते हैं। पायथन में मॉड्यूल एक उद्देश्य के लिए लिखे गए कोड के छोटे टुकड़े हैं (Arduino IDE में पुस्तकालयों के समान)। RPi.GPIO GPIO तक पहुँचने के लिए एक Pi विशिष्ट मॉड्यूल है, gmail वह मॉड्यूल है जिसे आपने पहले डाउनलोड किया था, और समय एक मॉड्यूल है जिसे टाइमिंग फ़ंक्शन प्रदान करने के लिए पायथन में बनाया गया है। अब "GPIO.setmode" और "GPIO.setup" का उपयोग Pi को यह बताने के लिए किया जाता है कि पिन 14 एक आउटपुट है, और आप "ब्रॉडकॉम पिन नंबरिंग" (BCM के बारे में अधिक जानकारी) का उपयोग करना चाहते हैं।

यह लाइन आपके जीमेल अकाउंट से जुड़ती है। यह "g" नामक एक ऑब्जेक्ट बनाता है, और पहले आयात किए गए gmail मॉड्यूल की लॉगिन विधि को कॉल करता है। अपना जीमेल ईमेल और पासवर्ड दर्ज करना न भूलें।

g = gmail.login('YOUREMAIL@gmail.com', 'YOUR PASSWORD')

अब सभी अपठित संदेशों को पुनः प्राप्त करें और उन्हें "अपठित संदेश" नामक एक चर में संग्रहीत करें:

unread_messages = g.inbox().mail(unread=True)

ध्यान दें कि "अपठित =सही" को एक पैरामीटर के रूप में कैसे पारित किया जाता है - आप इसे प्रेषक या विषय जैसे विभिन्न मापदंडों के आधार पर संदेशों को पुनः प्राप्त करने के लिए बदल सकते हैं। बहुत अधिक जानकारी के लिए एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) दस्तावेज़ देखें।

इसके बाद, प्रत्येक संदेश पर लूप करने के लिए लूप के लिए उपयोग किया जाता है:

for message in unread_messages:
total_messages += 1

लूप के लिए बहुत उपयोगी हैं। वे कोड के एक ब्लॉक को कई बार दोहराते हैं, अक्सर हर बार थोड़ा अलग मान के साथ। यह लूप के लिए unread_messages में प्रत्येक संदेश पर जाता है और "total_messages" चर को बढ़ाता है।

अंत में, कुछ सरल "if" कथनों का उपयोग किया जाता है। यदि अपठित संदेश हैं, तो एलईडी चालू करें, अन्यथा बंद होने पर बंद करें।

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

टर्मिनल पर स्विच करें और अपनी स्क्रिप्ट चलाएँ:

python check_messages.py

यह आदेश आपकी स्क्रिप्ट चलाएगा। अपने इनबॉक्स में कुछ ईमेल को अपठित स्थिति में मैन्युअल रूप से बदलने और स्क्रिप्ट को फिर से चलाने का प्रयास करें -- आपको अपने इनबॉक्स को दर्शाने के लिए एलईडी को चालू या बंद देखना चाहिए।

क्रॉन सेटअप

अब जब स्क्रिप्ट काम कर रही है तो इसे स्वचालित करने का समय आ गया है। ऐसा करने का सबसे आसान तरीका क्रॉन जॉब है। स्वचालित बैकअप जैसे कार्यों और स्क्रिप्ट को शेड्यूल करने के लिए क्रॉन जॉब्स का उपयोग किया जाता है। Crontab (निर्धारित कार्यों की सूची) खोलें:

crontab -e

यदि पहले से कोई शेड्यूल किए गए कार्य सेटअप नहीं हैं, तो यह फ़ाइल खाली होगी (इसमें "#" से पहले दस्तावेज़ या टिप्पणियां हो सकती हैं)। यदि आपके पास पहले से ही यहां प्रविष्टियां हैं, तो बस अपनी नई कमांड को एक नई लाइन पर दर्ज करें:

* * * * * python ~/pi/Documents/gmail_python/check_messages.py

पांच "सितारे" ("* * * * *") निर्दिष्ट करते हैं कि कार्य को कितनी बार चलाना है (आप यहां वास्तव में फैंसी प्राप्त कर सकते हैं, उदाहरण के लिए हर दूसरे बुधवार को 2.00 बजे)। ये पांच सितारे निर्दिष्ट करते हैं कि कार्य हर मिनट चलाया जाना चाहिए। यह अनुमत सबसे छोटा अंतराल है (क्रॉनजॉब शेड्यूलिंग के बारे में अधिक जानें)। अगला, "पायथन" शेड्यूलर को स्क्रिप्ट को पायथन फ़ाइल के रूप में निष्पादित करने के लिए कहता है। अंत में, "~/pi/Documents/gmail_python/check_messages.py" आपकी स्क्रिप्ट का संपूर्ण फ़ाइल पथ है -- एक सापेक्ष पथ काम नहीं करेगा।

अब आपके पास अपना जीमेल नोटिफिकेशन लाइट होना चाहिए! किसी भिन्न आवश्यकता या फ़िल्टर के आधार पर संदेशों को देखने के लिए इसे संशोधित करना काफी सरल होगा (यहां फ़िल्टर का उपयोग करना सीखें), या कोड का एक अलग टुकड़ा निष्पादित करें - शायद आप एक ट्विटर बॉट बना सकते हैं जो ईमेल के आधार पर ट्वीट करता है ( Pi Twitter bot बनाने के बारे में और जानें).

हालाँकि आप अपने सूचना बॉक्स को कोडित कर देते हैं, मुझे यह जानना अच्छा लगेगा कि टिप्पणियों में यह कैसे जाता है!


  1. आपको अधिक उत्पादक बनाने के लिए जीमेल के लिए 5 बेहतरीन क्रोम एक्सटेंशन

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

  1. Gmail पर संपर्कों का समूह कैसे बनाएं

    लोग अक्सर अपने क्लाइंट और अपने कार्यबल के संपर्क में रहने के लिए Gmail का उपयोग करते हैं। कभी-कभी जब आपको उन्हीं लोगों को बार-बार ईमेल भेजने पड़ते हैं, तो आप उनकी ईमेल आईडी बार-बार टाइप करते-करते थक जाते हैं। उसके लिए यहां एक समाधान है। आपको हर बार लोगों के एक ही समूह को ईमेल करने के लिए उनकी ईमेल आ

  1. कैसे एक एलईडी लाइट सेटअप करें और इसे कोड के साथ ब्लिंक करें

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