विषयसूची:

रसपी और टेलीग्राम बॉट के साथ पेट फीडर मशीन: 4 कदम (चित्रों के साथ)
रसपी और टेलीग्राम बॉट के साथ पेट फीडर मशीन: 4 कदम (चित्रों के साथ)

वीडियो: रसपी और टेलीग्राम बॉट के साथ पेट फीडर मशीन: 4 कदम (चित्रों के साथ)

वीडियो: रसपी और टेलीग्राम बॉट के साथ पेट फीडर मशीन: 4 कदम (चित्रों के साथ)
वीडियो: Тополь цветёт_Рассказ_Слушать 2024, दिसंबर
Anonim
RasPi और Telegram Bot. के साथ पेट फीडर मशीन
RasPi और Telegram Bot. के साथ पेट फीडर मशीन
RasPi और Telegram Bot. के साथ पेट फीडर मशीन
RasPi और Telegram Bot. के साथ पेट फीडर मशीन

सबसे पहले मुझे यह स्पष्ट करने की आवश्यकता है कि यह एक मूल आइडिया माइन नहीं है, बस टेलीग्राम के साथ काम करने के लिए प्रोग्रामिंग स्क्रिप्ट को अपडेट और अनुकूलित करें, मैंने इसे पिछले इंस्ट्रक्शनल में पाया, इसलिए क्रेडिट वास्तव में इसके लेखक हैं।

आप मेरे निजी ब्लॉग में इसका स्पेनिश संस्करण देख सकते हैं:

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

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

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

चरण 1: प्रयुक्त सामग्री

  • 1 रैपेरी पाई, अधिमानतः संस्करण 3 जो पहले से ही वायरलेस कार्ड के साथ एकीकृत है, आप पाई 3 ज़ीरो संस्करण का भी उपयोग कर सकते हैं, इसमें थोड़ा अधिक काम होता है क्योंकि आपको पिनों को मिलाप करना पड़ता है, लेकिन मुझे बहुत देर से पता चला कि यह हो सकता है इनमें से किसी एक का उपयोग करें जो अधिक किफायती हो।
  • 1 हाई टॉर्क इलेक्ट्रिक मोटर, 37mm, 3.5rpm और 12V।
  • 37 मिमी मोटर के लिए 1 ब्रेकेट।
  • HD44780 कंट्रोल के साथ 20x4 लाइनों की 1 कैरेक्टर एलसीडी स्क्रीन।
  • 1 अनाज डिस्पेंसर ज़ेवरो मॉडल WM1001 शाफ्ट-डी 5 इंच लंबा, 0.63 सेमी व्यास (डी कट इसे डिस्पेंसर से जोड़ने के लिए आवश्यक है)
  • मोटर से जुड़ने के लिए 1 शाफ्ट कपलर 1/4 "से 6 मिमी तक।

पिछले दो को छोड़कर सभी पिछली सामग्री मैं उन्हें अपने देश में नहीं प्राप्त कर सका (या कम से कम मुझे नहीं पता था कि उन्हें कहां प्राप्त करना है), हालांकि रॉड और कप्लर शायद वेल्डिंग वर्कशॉप में हैं लेकिन पहली बार मैं कुछ करता हूं उस तरह, मुझे नहीं पता था कि यह इंजन में कैसे फिट होना चाहिए इसलिए मैंने ऊपर वर्णित लिंक के पृष्ठ से पूछा; उन सामग्रियों के नीचे जो मैं स्थानीय दुकानों में खरीद सकता था:

  • 1 लकड़ी का डिब्बा, मैं 20.3 सेमी चौड़ा × 26.7 सेमी ऊँचा x 13 सेमी गहरा उपयोग करता हूँ। बॉक्स में एक दरवाजा है जो एलसीडी स्क्रीन (स्थानीय जॉइनरी) लगाने के लिए 10 सेमी x 4 सेमी के छेद के साथ दाईं ओर खुलता है।
  • 3 पुश बटन
  • 1 छोटा प्रोटोबार्ड
  • 3.3 वोल्ट की 1 एलईडी (इससे कोई फर्क नहीं पड़ता लेकिन वोल्टेज के लिए वे आमतौर पर लाल होते हैं)
  • 1 NPN PN2222 ट्रांजिस्टर
  • 1 270. का प्रतिरोध
  • 1 10 KΩ. का प्रतिरोध
  • 10 KΩ. का 1 पोटेंशियोमीटर
  • 1 IN4003 डायोड (IN4001 या IN4004 संचालित हो सकता है)
  • 1 12 वी 3 ए एडाप्टर
  • १ ५वी २ए अडैप्टर
  • 1.5 इंच से 2 इंच तक विंग नट के साथ 4 स्क्रू (इस्तेमाल की गई लकड़ी की मोटाई पर निर्भर करता है, वे लकड़ी के बक्से में मोटर ब्रैकेट को ठीक करने के लिए हैं)
  • विभिन्न रंगों के केबल्स जम्पर किस्में
  • 1 तह ट्यूब या 4 इंच व्यास के पीवीसी का एक सेट, यह उस ऊंचाई पर निर्भर करता है जिस पर लकड़ी के बक्से को रखा जाएगा।
  • 1 पीवीसी कोहनी जो पिछली कास्ट से जुड़ी होती है।
  • कार पाइप के लिए 3 क्लैंप (दुनिया)
  • यूटीपी केबल के 4 फीट (कनेक्शन बनाने के लिए हमें मुड़ जोड़े की जरूरत है)
  • 1 यूएसबी वेब कैमरा, उच्च संकल्प होना जरूरी नहीं है।

कुछ विविध सामग्री जो हार्डवेयर स्टोर में प्राप्त की जा सकती हैं या संभवतः हमारे पास पहले से ही हैं: औद्योगिक टेप

  • टिन वेल्डर
  • टिन
  • ड्रिल
  • ड्रिल 5/16
  • विस्तारकों के साथ S8 स्क्रू

चरण 2: संरचना रखना

संरचना रखना
संरचना रखना
संरचना रखना
संरचना रखना
संरचना रखना
संरचना रखना

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

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

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

मोटर सीधे 12 वोल्ट ट्रांसफार्मर के सकारात्मक ध्रुव से जुड़ा होता है लेकिन वर्तमान प्रवाह के लिए इसे मोटर के तटस्थ ध्रुव में सर्किट से गुजरना होगा, इसके लिए ट्रांजिस्टर एन 2222 का उपयोग किया जाता है। ट्रांजिस्टर में आमतौर पर 3 पैर होते हैं जो एक कलेक्टर, एक आधार और एक उत्सर्जक के अनुरूप होते हैं, ट्रांजिस्टर के मॉडल के आधार पर इन पैरों का स्थान भिन्न हो सकता है; यह ट्रांजिस्टर स्विच को फंक्शन करता है। यहीं पर हम मोटर के न्यूट्रल पोल को ट्रांजिस्टर के कलेक्टर से जोड़ते हैं, रास्पबेरी का पिन # 19 270Ω के प्रतिरोध के माध्यम से बेस से जुड़ा होता है और एमिटर ट्रांजिस्टर के न्यूट्रल टर्मिनल से जुड़ा होता है। रास्पबेरी के पृथ्वी ध्रुवों में से एक के साथ 12V ट्रांसफार्मर; ट्रांजिस्टर कलेक्टर और एमिटर के बीच करंट प्रवाहित होने देगा, जब तक कि आधार पर्याप्त वोल्टेज से प्रेरित होता है; बाद में हम रैपबेरी को प्रोग्राम करेंगे ताकि कुछ आदेशों के अनुसार पोर्ट 19 3.3 वोल्ट का उत्सर्जन करे, जो सर्किट को जारी रखने और मोटर को सक्रिय करने के लिए पर्याप्त है।

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

चरण 3: रास्पबेरी पाई कॉन्फ़िगरेशन

सबसे पहले टेलीग्राम बॉट बनाना महत्वपूर्ण है कि सिस्टम को प्रबंधित किया जाएगा, आपको संलग्न पायथन लिपि को संशोधित करने के लिए एक कुंजी की आवश्यकता होगी। कृपया टेलीग्राम दस्तावेज़ीकरण पर दिए गए चरणों को पढ़ें:

core.telegram.org/bots#3-how-do-i-create-a-bot

रैपबेरी को कॉन्फ़िगर करने के लिए, रैपियन के लाइट संस्करण का उपयोग करें (हमें ग्राफिक इंटरफ़ेस की आवश्यकता नहीं है) और मूल कॉन्फ़िगरेशन लागू करें जो रास्पियन को स्थापित करने के बाद दिखाता है या रास्पि-कॉन्फ़िगरेशन कमांड का उपयोग करता है: स्पेस को 100% तक विस्तारित करें और सक्षम करें एसएसएच लेकिन विशेष रूप से सबसे महत्वपूर्ण बात यह है कि उपयोगकर्ता पीआई में पासवर्ड और उपयोगकर्ता नाम बदलना डिफ़ॉल्ट रूप से आता है (अन्यथा, जैसा कि मेरे साथ हुआ, वे पोर्ट 22 द्वारा हमला कर सकते हैं यदि उनके पास रास्पबेरी को संबोधित सार्वजनिक आईपी है). इसके अलावा मेरे वाईफाई नेटवर्क से स्वचालित रूप से कनेक्ट करने के लिए कॉन्फ़िगरेशन (मान लें कि मेरे नेटवर्क को "ब्लॉगसोरियानो" कहा जाता है और मेरा पासवर्ड "$ecure123!" है) हम निम्न आदेश के साथ वायरलेस कनेक्शन फ़ाइल में कुंजी उत्पन्न और सहेजते हैं:

sudo wpa_passphrase "ब्लॉगसोरियानो" "$ecure123!" | सुडो टी -ए /etc/wpa_supplicant/wpa_supplicant.conf > /dev/null

अगली बात यह है कि पायथन इंस्टॉलेशन सिस्टम "पाइप" को अपडेट और इंस्टॉल करना है, इसलिए हम रूट के रूप में लॉग इन करेंगे, आवश्यक पैकेजों को अपडेट और इंस्टॉल करेंगे:

sudo -i apt-get update apt-get install बिल्ड-आवश्यक अजगर-देव अजगर-smbus अजगर-पाइप

इसके साथ हमारे पास पहले से ही अजगर वर्ग पुस्तकालय तक पहुंच है, जिस स्क्रिप्ट का हम उपयोग करने जा रहे हैं, उसके लिए हमें निम्नलिखित स्थापित करने की आवश्यकता है:

RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces वायरलेस टेलीपोट cv2 स्थापित करें

एक बार निर्भरता की स्थापना समाप्त हो जाने के बाद, हम इस चरण से जुड़ी स्क्रिप्ट का उपयोग करेंगे, मैं इसे पथ /opt/petfeeder.py में सहेजता हूं और फ़ाइल nano /opt/petfeeder.py कमांड का उपयोग करके और इस फ़ाइल के अंदर बनाई जा सकती है। हम कोड पेस्ट करते हैं या, यदि आपके पास अधिक लिनक्स अनुभव है, तो आप सीधे wget के साथ डाउनलोड कर सकते हैं। स्क्रिप्ट में BOTKEY (लाइन 36 में) और SYSPASSWORD (लाइन 23 में) वेरिएबल्स को संशोधित करना महत्वपूर्ण है।

मैं स्पष्ट करता हूं कि यह कोड मेरे द्वारा नहीं लिखा गया था क्योंकि मैंने कभी पायथन में प्रोग्राम नहीं किया था, मैंने इसे केवल नए पुस्तकालयों और 20x4 एलसीडी स्क्रीन के साथ काम करने और टेलीग्राम बॉट का उपयोग करने के लिए संशोधित किया था।

एक बार हमारे पास स्क्रिप्ट हो जाने के बाद, हमें बॉट की कुंजी के साथ वेरिएबल के मानों को बदलना होगा; इसके लिए एक नया टेलीग्राम बॉट बनाना आवश्यक है, इसके साथ यह केवल फ़ाइल को सहेजना और बाहर निकलना होगा (Ctrl + या सहेजें और ctrl + x संपादक नैनो को छोड़ देता है), हमें केवल पुनरारंभ होने का प्रमाण होना चाहिए; पिछली बार पावर सिस्टम के सक्रिय होने पर स्क्रिप्ट ही बचती है, इसलिए हमें हर बार ऑपरेटिंग सिस्टम शुरू होने पर केवल स्क्रिप्ट को चलाना पड़ता है, इसके लिए मुझे सुपरवाइज़र नामक प्रोग्राम के साथ एक बहुत ही विशेष समाधान मिला, जो डेबियन रिपॉजिटरी से स्थापित है:

उपयुक्त-स्थापित पर्यवेक्षक

और एक बार स्थापित होने के बाद, हमें केवल /etc/supervisor/conf.d/petfeeder.conf में एक कॉन्फ़िगरेशन फ़ाइल बनाने की आवश्यकता है, जैसा कि पिछले मामले में हम इसे नैनो के साथ बना और सहेज सकते हैं, इस फ़ाइल में निम्नलिखित होंगे:

[कार्यक्रम: petfeederd]निर्देशिका=/ऑप्ट कमांड=पायथन petfeeder.py autostart=true autorestart=true

एक बार फाइल सेव हो जाने के बाद हम सुपरवाइज़रक्टल कमांड का उपयोग कर सकते हैं [स्टार्ट | रुको | पुनरारंभ करें] petfeederd, जैसा कि इस मामले में सेवा शुरू नहीं हुई है, हम इसे प्रारंभ के साथ निष्पादित करते हैं:

Supervisorctl पेटफीडर शुरू करें

चरण 4: परीक्षण के लिए तैयार

Image
Image
परीक्षण के लिए तैयार
परीक्षण के लिए तैयार
परीक्षण के लिए तैयार
परीक्षण के लिए तैयार
परीक्षण के लिए तैयार
परीक्षण के लिए तैयार

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

आपको टेलीग्राम पर अपना बॉट खोजने में सक्षम होना चाहिए और अपनी चैट को अधिकृत करने के बाद अगली कमांड में से एक भेजें:

/फीड: जब तक पैरामीटरयुक्त समय अवधि समाप्त हो जाती है, तब तक फीडिंग प्रक्रिया शुरू होती है।

/कब: यह इस बारे में जानकारी देता है कि आखिरी बार कब खिलाना था और खाने की थाली की तस्वीर।

/फोटो: खाने की थाली की तस्वीर लौटाएं।

/ पुनरारंभ करें: सिस्टम को पुनरारंभ करें, तुरंत फ़ीड करने में सक्षम होने के लिए अंतिम फ़ीड के चर को 0 पर सेट करें।

/status यह इंटरनेट कनेक्शन की स्थिति के बारे में सूचित करता है: कनेक्टेड वायरलेस का SSID और IP पता जो सिस्टम में नेटवर्क के भीतर है।

सिफारिश की: