جدول المحتويات:

آلة تغذية الحيوانات الأليفة مع RasPi و Telegram Bot: 4 خطوات (بالصور)
آلة تغذية الحيوانات الأليفة مع RasPi و Telegram Bot: 4 خطوات (بالصور)

فيديو: آلة تغذية الحيوانات الأليفة مع RasPi و Telegram Bot: 4 خطوات (بالصور)

فيديو: آلة تغذية الحيوانات الأليفة مع RasPi و Telegram Bot: 4 خطوات (بالصور)
فيديو: 2000+ Common Swedish Nouns with Pronunciation · Vocabulary Words · Svenska Ord #1 2024, يوليو
Anonim
آلة تغذية الحيوانات الأليفة مع RasPi و Telegram Bot
آلة تغذية الحيوانات الأليفة مع RasPi و Telegram Bot
آلة تغذية الحيوانات الأليفة مع RasPi و Telegram Bot
آلة تغذية الحيوانات الأليفة مع RasPi و Telegram Bot

بادئ ذي بدء ، أحتاج إلى توضيح أن هذا ليس Idea Mine أصليًا ، فقط قم بتحديث وتكييف نصوص البرمجة للعمل مع telegram ، لقد وجدتها في Instructable سابقًا ، لذا فإن الائتمانات هي مؤلفها حقًا.

يمكنك رؤية النسخة الإسبانية من هذا في مدونتي الشخصية:

تحتاج إلى بناء دائرة صغيرة تنشط محركًا عالي العزم ، وبما أن معرفتي بالإلكترونيات نادرة جدًا ، فقد اضطررت إلى قضاء يومين في تعلم الأساسيات من خلال مشاهدة مقاطع الفيديو على YouTube.

تمت كتابة نص التشغيل الآلي الأصلي بلغة Python ويستخدم اتصال GMail لاستشارة الأوامر ، ولم أستخدم لغة البرمجة هذه مطلقًا ولكن الحقيقة لا تختلف كثيرًا عن الآخرين ، لقد قمت بتعديلها قليلاً بحيث تتكيف بشكل أفضل مع الجديد تتيح لك مكتبات Python وعملية الأتمتة جنبًا إلى جنب مع تكوينات نظام التشغيل تحديد معلمات ما يلي:

  • يتم التحكم في التفاعل من خلال الأوامر المرسلة إلى Chat من خلال ChatBots.
  • يسمح بتتبع حالة الطعام الذي يتم توزيعه.
  • يتحكم في كمية الطعام التي سيتم توزيعها.
  • يحتوي على أزرار تسمح لك بالتغذية يدويًا.
  • لا يسمح بالإفراط في التغذية عن طريق تعطيل التغذية كل 8 ساعات.
  • يحتوي على شاشة LCD للحالة تعرض البيانات كتاريخ ووقت المرة التالية لمزود الطاقة التالي ، SSID الذي تم توصيله بشبكة WiFi وعنوان IP الخاص بالجهاز.
  • اختياري: يعرض بعض نكات تشاك نوريس العشوائية و / أو تريفيا من الأرقام باستخدام زوج من APIS العام (مبتكر من قبل المؤلف الأصلي).
  • النظام محصن من إعادة التشغيل بسبب انقطاع التيار الكهربائي لأنه يحفظ ملف الحالة.
  • يكتشف النظام وجود فقدان في الاتصال ويحاول إعادة الاتصال حتى ينجح.

الخطوة الأولى: المواد المستعملة

  • 1 Raperry Pi ، ويفضل أن يكون الإصدار 3 المدمج بالفعل مع البطاقة اللاسلكية ، يمكنك أيضًا استخدام إصدار Pi 3 Zero ، يتطلب الأمر مزيدًا من العمل لأنه يتعين عليك لحام الدبابيس ، لكنني اكتشفت في وقت متأخر جدًا أنه يمكن استخدم واحدًا من هؤلاء الأكثر اقتصادا.
  • 1 محرك كهربائي عالي العزم ، 37 مم ، 3.5 دورة في الدقيقة و 12 فولت.
  • 1 براكيت لمحرك 37 مم.
  • شاشة LCD بحجم 20 × 4 خطوط مع تحكم HD44780.
  • 1 موزع حبوب زيفرو موديل WM1001 رمح D بطول 5 بوصات وقطر 0.63 سم (قطع D ضروري لتوصيله بالموزع)
  • 1 قارنة عمود الدوران من 1/4 بوصة إلى 6 مم لتوصيل المحرك.

لم أتمكن من الحصول عليها في بلدي جميع المواد السابقة باستثناء المواد السابقة (أو على الأقل لم أكن أعرف من أين أحصل عليها) ، ولكن من المحتمل أن يكون القضيب والمقرن في ورشة لحام ، لكن هذه هي المرة الأولى التي أفعل فيها شيئًا من هذا القبيل ، لم يكن لدي أي فكرة عن كيفية ملاءمة المحرك لذلك سألت صفحة الروابط الموضحة أعلاه ؛ أقل من المواد التي يمكنني شراؤها من المتاجر المحلية:

  • 1 صندوق خشبي ، أستخدم عرض 20.3 سم × ارتفاع 26.7 سم × 13 سم. الصندوق به باب يفتح على اليمين بفتحة 10 سم × 4 سم لوضع شاشة LCD (نجارة محلية)
  • 3 أزرار انضغاطية
  • 1 لوح صغير
  • 1 LED بقوة 3.3 فولت (لا يهم اللون ولكن للجهد عادة ما يكون أحمر)
  • 1 ترانزستور NPN PN2222
  • 1 مقاومة 270 Ω
  • 1 مقاومة 10 KΩ
  • 1 مقياس الجهد 10 KΩ
  • 1 IN4003 الصمام الثنائي (يمكن أن يعمل IN4001 أو IN4004)
  • 1 محول 12 فولت 3 أمبير
  • 1 5V 2A محول
  • 4 براغي بجوز جناح من 1.5 بوصة إلى 2 بوصة (يعتمد على سمك الخشب المستخدم ، وهي لتثبيت قوس المحرك في الصندوق الخشبي)
  • خيوط وصلة للكابلات بألوان مختلفة
  • 1 أنبوب قابل للطي أو مجموعة من PVC بقطر 4 بوصات ، وهذا يعتمد على الارتفاع الذي سيتم وضع الصندوق الخشبي عليه.
  • 1 كوع PVC يعلق على القالب السابق.
  • 3 مشابك لمواسير السيارات (العالم)
  • 4 أقدام من كبل UTP (نحتاج إلى الأزواج الملتوية لإجراء التوصيلات)
  • 1 USB WebCam ، ليس من الضروري أن تكون عالية الدقة.

بعض المواد المتنوعة التي يمكن الحصول عليها من متاجر الأجهزة أو ربما لدينا بالفعل: شريط صناعي

  • لحام القصدير
  • تين
  • تدريبات
  • حفر 5/16
  • مسامير S8 مع موسعات

الخطوة 2: وضع الهيكل

وضع الهيكل
وضع الهيكل
وضع الهيكل
وضع الهيكل
وضع الهيكل
وضع الهيكل

الفكرة الرئيسية هي استبدال مقبض الاستغناء الذي يأتي في ZEVRO بالقضيب D والذي سيتم توصيله بعد ذلك بالمحرك عن طريق قارنة التوصيل. سيتم توصيل الموزع بالصندوق الخشبي والصندوق الخشبي بالحائط. نظرًا لأنني لا أعرف الكثير من الإلكترونيات ، لم أستخدم أي لوحة من الباكليت لتركيب الدائرة ، لذلك استخدمت اللوح لوضع جميع المكونات بحيث يتم تثبيتها في الجزء السفلي من الصندوق بمسامير Rapberry Pi واللوح الذي يحتوي بالفعل على مادة لاصقة على ظهره لذلك ذهبت لألصقه. يجب أن يحتوي الصندوق على ثلاثة أزرار سيكون لها وظيفة إعادة تشغيل المؤقت ، وتنشيط وحدة التغذية ، وسيكون آخرها خطوة مباشرة لتنشيط المحرك دون المرور عبر الدائرة. سيتم تثبيت المحرك داخل الصندوق عن طريق الحامل ، لذلك فقط القضيب D الذي يتصل بالموزع سوف يبرز من الصندوق ، في الجزء السفلي من الصندوق ، قم بإصلاح وضبط كاميرا الويب بحيث في كل استشارة بريد وتأكيد I أرسل صورة لكيفية الطبق ، وذلك لعدم الإفراط في التغذية في حالة عدم الانتهاء من الجولة الأخيرة من الطعام.

من أسفل الموزع ، تم وضع الأنبوب الذي ينزل إلى اللوحة وتم وضع كوع PVC على القاعدة ، وضعت شريطًا صناعيًا صغيرًا في المخرج لتقليل سرعة تدفق الطعام وصنعت قاعدة صرف لـ منع رش الطعام في كل مكان. لإصلاح الأنبوب على الحائط ، استخدم الأقواس المعدنية التي تثبتها على الحائط باستخدام مسامير التثبيت S8.

على باب الصندوق ، أمسك لوحة شاشة LCD واستخدم الأزواج الملتوية من كابل UTP لنقلها مباشرة إلى Raspberry ، في الطرف الآخر من الكابلات ، قم بلصق الأطراف الأنثوية من وصلات العبور لتسهيل الاتصال في منافذ GPIO في Raspberry. سيكون هذا هو مخطط الدائرة. سأحاول شرح ذلك بالقليل الذي يمكنني الحصول عليه من الإلكترونيات.

المحرك متصل مباشرة بالقطب الموجب لمحول 12 فولت ولكن لكي يتدفق التيار يجب أن يمر عبر الدائرة في القطب المحايد للمحرك ، حيث يتم استخدام هذا الترانزستور N2222. تحتوي الترانزستورات عادةً على 3 أرجل تتوافق مع مجمّع وقاعدة وباعث ، اعتمادًا على طراز الترانزستور ، قد يختلف موقع هذه الأرجل ؛ هذا الترانزستور يجعل وظيفة التبديل. هذا هو المكان الذي نقوم فيه بتوصيل القطب المحايد للمحرك بمجمع الترانزستور ، ويتم توصيل دبوس # 19 من الرابيري بالقاعدة عن طريق مقاومة 270Ω ويتم توصيل الباعث بالطرف المحايد للترانزستور. محول 12 فولت مع أحد أقطاب توت العليق الأرضية ؛ سيسمح الترانزستور بتدفق التيار بين المجمع والباعث طالما تم تحفيز القاعدة بجهد كافٍ ؛ سنقوم لاحقًا ببرمجة الراببيري بحيث وفقًا لأوامر معينة ، سيصدر المنفذ 19 3.3 فولت ، وهو ما يكفي لاستمرار الدائرة وتنشيط المحرك.

بالنسبة لشاشة LCD ، يتم استخدام جزء آخر من protobard في دائرة مختلفة حيث تقوم بتوصيل مقياس الجهد 10KΩ الذي يرفض تباين النص الذي يظهر على شاشة LCD ، لذلك إذا لم يظهر أي شيء على الشاشة ، فربما يكون ذلك بسبب أن مقياس الجهد كليًا مغلق؛ في حالتي ، أتركه مفتوحًا تمامًا حتى يتم تصور النص بشكل أفضل. في النهاية ، ستكون الاتصالات في اللوح كما يلي.

الخطوة 3: تكوين Raspberry Pi

بادئ ذي بدء ، من المهم إنشاء Telegram Bot بحيث تتم إدارة النظام ، وستحتاج إلى مفتاح لتعديل نص Python النصي المرفق. برجاء قراءة الخطوات الواردة في توثيق البرقية:

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

لتهيئة rapberry ، استخدم الإصدار Lite من Rapbian (لا نحتاج إلى واجهة رسومية) وقم بتطبيق التكوين الأساسي الذي يظهر raspbian بمجرد تثبيته أو باستخدام أمر raspi-config: قم بتوسيع المساحة إلى 100٪ وقم بتمكين SSH ولكن الشيء الأكثر أهمية بشكل خاص هو تغيير كلمة المرور واسم المستخدم للمستخدم pi الذي يأتي افتراضيًا (وإلا ، كما حدث لي ، يمكن أن يتعرضوا لهجوم عن طريق المنفذ 22 إذا كان لديهم IP عام موجه إلى raspberry). بصرف النظر عن هذا التكوين للاتصال تلقائيًا بشبكة WiFi الخاصة بي (بافتراض أن شبكتي تسمى "BlogSoriano" وكلمة المرور الخاصة بي هي "$ ecure123!") نقوم بإنشاء وحفظ المفتاح في ملف الاتصالات اللاسلكية بالأمر التالي:

sudo wpa_passphrase "BlogSoriano" "$ ecure123!" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf> / dev / null

الشيء التالي هو تحديث وتثبيت نظام تثبيت Python "pip" لذلك سنقوم بتسجيل الدخول كجذر ، وتحديث وتثبيت الحزم الضرورية:

sudo -i apt-get update apt-get install build-basic python-dev python-smbus python-pip

مع هذا ، لدينا بالفعل وصول إلى مكتبة فئة Python ، بالنسبة للبرنامج النصي الذي سنستخدمه ، نحتاج إلى تثبيت ما يلي:

نقطة تثبيت RPi. GPIO Adafruit-CharLCD HTplib2 html2text netifaces wireless telepot cv2

بمجرد الانتهاء من تثبيت التبعيات ، سنستخدم البرنامج النصي المرفق بهذه الخطوة ، وسأحفظه في المسار /opt/petfeeder.py ويمكن إنشاء الملف باستخدام الأمر nano /opt/petfeeder.py وداخل هذا الملف نقوم بلصق الكود ، أو إذا كان لديك المزيد من خبرة Linux ، يمكنك التنزيل مباشرة باستخدام wget. في البرنامج النصي ، من المهم تعديل المتغيرات BOTKEY (في السطر 36) و SYSPASSWORD (في السطر 23).

أوضحت أن هذا الرمز لم يكتبه لي لأنني لم أقم ببرمجته في Python مطلقًا ، لقد قمت بتعديله فقط للعمل مع المكتبات الجديدة وشاشة LCD مقاس 20 × 4 واستخدام Telegram Bot.

بمجرد أن نحصل على البرنامج النصي ، يجب علينا تغيير قيم المتغيرات باستخدام مفتاح الروبوت ؛ لهذا من الضروري إنشاء Telegram Bot جديد ، بحيث يتم حفظ الملف فقط والخروج (باستخدام Ctrl + أو حفظ و ctrl + x يترك المحرر nano) ، نحتاج فقط إلى أن نكون دليلاً على إعادة التشغيل ؛ يحفظ البرنامج النصي نفسه آخر مرة يتم فيها تنشيط نظام الطاقة ، لذلك علينا فقط تشغيل البرنامج النصي في كل مرة يبدأ فيها نظام التشغيل ، ولهذا وجدت حلاً خاصًا للغاية مع برنامج يسمى المشرف ، والذي يتم تثبيته من مستودعات دبيان:

مشرف تثبيت apt-get

وبمجرد التثبيت ، نحتاج فقط إلى إنشاء ملف تكوين في /etc/supervisor/conf.d/petfeeder.conf ، كما في الحالة السابقة يمكننا إنشاؤه وحفظه باستخدام nano ، سيكون لهذا الملف ما يلي:

[program: petfeederd] directory = / opt command = python petfeeder.py autostart = true autorestart = true

بمجرد حفظ الملف ، يمكننا استخدام command Supervisorctl [بدء | توقف | إعادة تشغيل] petfeederd ، لأنه في هذه الحالة لم تبدأ الخدمة ، نقوم بتنفيذها مع start:

المشرف بدء تشغيل petfeederd

الخطوة 4: جاهز للاختبار

Image
Image
جاهز للاختبار
جاهز للاختبار
جاهز للاختبار
جاهز للاختبار
جاهز للاختبار
جاهز للاختبار

وبهذا يجب أن يعمل النظام ، يجب أن تعرض شاشة LCD معلومات حول الوقت الذي يجب أن تكون فيه الخلاصة التالية أو ما إذا كانت جاهزة للتغذية هل يجب أن أقول ذلك. يجب عليك أيضًا إظهار اسم الشبكة اللاسلكية التي تتصل بها وعنوان IP المستخدم في حالة احتياجنا للاتصال عبر SSH ، أشارك مقطع فيديو صغيرًا قمت بإنشائه ، أعتذر عن جودته ، أنا لست جيدًا جدًا هذا موضوع مدونات الفيديو.

يجب أن تكون قادرًا على البحث في الروبوت الخاص بك على Telegram وإرسال أحد الأوامر التالية بعد / تفويض الدردشة:

/ feed: بدء عملية التغذية طالما انقضت الفترة الزمنية المحددة.

/ متى: يعرض معلومات حول وقت آخر رضعة وصورة لطبق الطعام.

/ الصورة: إرجاع صورة طبق الطعام.

/ إعادة التشغيل: أعد تشغيل النظام ، واضبط متغير آخر تغذية على 0 لتتمكن من التغذية على الفور.

/ status يُعلم عن حالة الاتصال بالإنترنت: SSID للشبكة اللاسلكية المتصلة وعنوان IP الخاص بالنظام داخل الشبكة.

موصى به: