فهرست مطالب:

دستگاه تغذیه حیوان خانگی با RasPi و ربات تلگرام: 4 مرحله (همراه با تصاویر)
دستگاه تغذیه حیوان خانگی با RasPi و ربات تلگرام: 4 مرحله (همراه با تصاویر)

تصویری: دستگاه تغذیه حیوان خانگی با RasPi و ربات تلگرام: 4 مرحله (همراه با تصاویر)

تصویری: دستگاه تغذیه حیوان خانگی با RasPi و ربات تلگرام: 4 مرحله (همراه با تصاویر)
تصویری: Lesson 1: What is Arduino? Types of Arduino Boards and SunFounder Kit | SunFounder Robojax 2024, جولای
Anonim
دستگاه تغذیه حیوان خانگی با RasPi و ربات تلگرام
دستگاه تغذیه حیوان خانگی با RasPi و ربات تلگرام
دستگاه تغذیه حیوان خانگی با RasPi و ربات تلگرام
دستگاه تغذیه حیوان خانگی با RasPi و ربات تلگرام

اول از همه باید توضیح دهم که این یک Idea Mine اصلی نیست ، فقط اسکریپت های برنامه نویسی را به روز کنید و متناسب با تلگرام تنظیم کنید ، من آن را در یک دستورالعمل قبلی پیدا کردم ، بنابراین اعتبار نویسنده آن است.

شما می توانید نسخه اسپانیایی آن را در وبلاگ شخصی من ببینید:

شما باید یک مدار کوچک بسازید که یک موتور گشتاور بالا را فعال می کند ، و از آنجا که اطلاعات من در زمینه الکترونیک بسیار بسیار کمیاب است ، مجبور شدم چند روز را با مشاهده فیلم ها در YouTube صرف یادگیری اصول اولیه کنم.

اسکریپت اصلی اتوماسیون به زبان پایتون نوشته شده است و از اتصال GMail برای مشورت با دستورات استفاده می کند ، من هرگز از این زبان برنامه نویسی استفاده نکرده بودم اما حقیقت چندان با دیگران متفاوت نیست ، من آن را کمی تغییر داده ام تا بهتر با زبان جدید سازگار شود. کتابخانه های پایتون و فرآیند اتوماسیون همراه با تنظیمات سیستم عامل به شما امکان می دهد موارد زیر را پارامتر کنید:

  • تعامل از طریق دستورات ارسال شده به چت که از طریق ChatBots کنترل می شود.
  • این اجازه می دهد تا وضعیت غذای توزیع شده را ردیابی کنید.
  • میزان توزیع غذا را کنترل می کند.
  • دارای دکمه هایی است که به شما امکان تغذیه دستی را می دهد.
  • با غیرفعال کردن تغذیه در فواصل 8 ساعته ، تغذیه بیش از حد مجاز نیست.
  • دارای LCD وضعیتی است که داده ها را به عنوان تاریخ و زمان دفعه بعد برای منبع تغذیه بعدی ، SSID که به WiFi و آدرس IP دستگاه متصل است ، نشان می دهد.
  • اختیاری: برخی از جوک های تصادفی و / یا چیزهای بی اهمیت اعداد را با استفاده از یک جفت APIS عمومی (مبتکرانه توسط نویسنده اصلی) نشان می دهد.
  • سیستم به دلیل قطع برق در صورت ذخیره فایل وضعیت ، از راه اندازی مجدد مصون است.
  • سیستم هنگام قطع اتصال تشخیص می دهد و سعی می کند مجدداً متصل شود تا زمانی که موفق شود.

مرحله 1: مواد مورد استفاده

  • 1 Raperry Pi ، ترجیحاً نسخه 3 که قبلاً با کارت Wireless ادغام شده است ، همچنین می توانید از نسخه Pi 3 Zero استفاده کنید ، کمی بیشتر کار می برد زیرا باید پین ها را لحیم کنید ، اما من خیلی دیر متوجه شدم که می تواند از یکی از موارد مقرون به صرفه تر استفاده کنید.
  • 1 موتور الکتریکی با گشتاور بالا ، 37 میلی متر ، 3.5 دور در دقیقه و 12 ولت.
  • 1 عدد براکت برای موتور 37 میلی متری
  • صفحه نمایش LCD 1 کاراکتری از 20x4 خط با کنترل HD44780.
  • 1 غلات و حبوبات Zevro مدل WM1001 شفت-D به طول 5 اینچ و قطر 0.63 سانتیمتر (برای اتصال آن به تلگراف برش D لازم است)
  • 1 اتصال شفت از 1/4 اینچ تا 6 میلی متر برای اتصال به موتور.

همه مواد قبلی بجز دو مورد آخر من نتوانستم آنها را در کشورم تهیه کنم (یا حداقل نمی دانستم از کجا تهیه کنم) ، با این حال میله و جفت کننده احتمالاً در کارگاه جوشکاری هستند اما اولین بار است که کاری انجام می دهم. مانند آن ، من هیچ ایده ای نداشتم که چگونه باید با موتور کار کند ، بنابراین از صفحه پیوندهایی که در بالا توضیح داده شد ، پرسیدم. در زیر موادی که می توانم در فروشگاه های محلی بخرم:

  • 1 جعبه چوبی ، من از عرض 20.3 سانتی متر high ارتفاع 26.7 سانتی متر و عمق 13 سانتی متر استفاده می کنم. جعبه دارای یک در است که به سمت راست با یک سوراخ 10 سانتی متر در 4 سانتی متر باز می شود تا صفحه LCD را قرار دهید (نازک کاری محلی)
  • 3 دکمه را فشار دهید
  • 1 Protoboard کوچک
  • 1 LED 3.3 ولت (رنگ مهم نیست اما برای ولتاژ آنها معمولاً قرمز هستند)
  • 1 ترانزیستور NPN PN2222
  • 1 مقاومت 270 Ω
  • 1 مقاومت 10 کیلو وات
  • 1 پتانسیومتر 10 کیلووات
  • 1 دیود IN4003 (IN4001 یا IN4004 می تواند کار کند)
  • 1 آداپتور 12V 3A
  • 1 آداپتور 5V 2A
  • 4 پیچ با مهره بال از 1.5 اینچ تا 2 اینچ (بسته به ضخامت چوب مورد استفاده ، آنها باید براکت موتور را به جعبه چوبی ثابت کنند)
  • کابل های رشته های رنگی مختلف
  • 1 لوله تاشو یا مجموعه ای از PVC با قطر 4 اینچ ، این بستگی به ارتفاع جعبه چوبی دارد.
  • 1 آرنج PVC که به گچ قبلی متصل می شود.
  • 3 گیره برای لوله های خودرو (The World)
  • 4 فوت کابل UTP (برای ایجاد اتصالات به جفت پیچ خورده نیاز داریم)
  • 1 USB WebCam ، نیازی به وضوح بالا نیست.

برخی از مواد متفرقه که می توان آنها را در فروشگاه های سخت افزار یا احتمالاً قبلاً در اختیار داریم: نوار صنعتی

  • جوشکار قلع
  • قلع
  • مته
  • مته 5/16
  • پیچ S8 با توسعه دهنده

مرحله 2: قرار دادن ساختار

قرار دادن ساختار
قرار دادن ساختار
قرار دادن ساختار
قرار دادن ساختار
قرار دادن ساختار
قرار دادن ساختار

ایده اصلی این است که دسته توزیع کننده موجود در ZEVRO را با میله D جایگزین کنید که سپس با استفاده از کوپلر به موتور متصل می شود. دیسپنسر به جعبه چوبی و جعبه چوبی به دیوار متصل می شود. از آنجا که من لوازم الکترونیکی زیادی نمی دانم ، من از هیچ صفحه Bakelite برای نصب مدار استفاده نکردم ، بنابراین از تخته نان برای قرار دادن تمام اجزا استفاده کردم ، بنابراین در انتهای جعبه با پیچ Rapberry Pi و تخته نان که قبلاً چسب داشت محکم می شود. در پشت ، بنابراین من فقط برای چسباندن آن رفتم. جعبه باید دارای سه دکمه باشد که عملکرد راه اندازی مجدد تایمر ، فعال کردن تغذیه کننده و آخرین مورد یک مرحله مستقیم برای فعال کردن موتور بدون عبور از مدار خواهد بود. موتور با استفاده از براکت در داخل جعبه نگه داشته می شود ، بنابراین فقط میله D که به پخش کننده متصل می شود از جعبه بیرون می زند ، در پایین جعبه وب کم را تعمیر و تنظیم کنید تا در هر مشاوره و تأیید نامه I عکسی از وضعیت بشقاب ارسال کرد ، در صورتی که غذای آخر را تمام نکرده باشند ، بیش از حد غذا ندهید.

از قسمت پایین دستگاه ، لوله ای که به صفحه می رود قرار داده شد و آرنج PVC روی پایه قرار گرفت ، من یک نوار صنعتی کوچک در خروجی قرار دادم تا سرعت جریان غذا را به حداقل برساند و یک پایه توزیع کننده برای از پاشیدن غذا در همه جا جلوگیری کنید. برای اتصال لوله به دیوار ، از براکت های فلزی استفاده کنید که با پیچ های گل میخ S8 روی دیوار ثابت می کنید.

در درب جعبه صفحه صفحه LCD را نگه دارید و از جفت پیچ خورده کابل UTP برای انتقال مستقیم آنها به تمشک استفاده کنید ، در انتهای دیگر کابل ها نوک های زنانه بلوزها را به هم متصل کرده تا اتصال در پورت GPIO تمشک. این نمودار مدار خواهد بود. من سعی خواهم کرد آن را با اندک چیزی که می توانم از الکترونیک بدست آورم توضیح دهم.

موتور مستقیماً به قطب مثبت ترانسفورماتور 12 ولت متصل است اما برای جریان باید از مدار در قطب خنثی موتور عبور کند ، برای این ترانزیستور N2222 استفاده می شود. ترانزیستورها به طور معمول دارای 3 پایه هستند که مربوط به یک جمع کننده ، یک پایه و یک امیتر است ، بسته به مدل ترانزیستور ، محل قرارگیری این پایه ها ممکن است متفاوت باشد. این ترانزیستور باعث عملکرد سوئیچ می شود. اینجاست که قطب خنثی موتور را به کلکتور ترانزیستور وصل می کنیم ، پین شماره 19 تمشک با مقاومت 270Ω به پایه متصل می شود و امیتر به ترمینال خنثی ترانزیستور متصل می شود. ترانسفورماتور 12 ولت به همراه یکی از قطب های زمین تمشک ؛ تا زمانی که پایه با ولتاژ کافی تحریک شود ، ترانزیستور اجازه می دهد جریان بین کلکتور و امیتر جریان یابد. بعداً ما تمشک را طوری برنامه ریزی می کنیم که طبق دستورات خاصی پورت 19 3.3 ولت ساطع کند که برای ادامه مدار و فعال شدن موتور کافی است.

برای صفحه LCD ، قسمت دیگری از protobard در یک مدار متفاوت استفاده می شود که در آن شما پتانسیومتر 10KΩ را متصل می کنید که کنتراست متن موجود در LCD را رد می کند ، بنابراین اگر چیزی روی صفحه ظاهر نمی شود احتمالاً به این دلیل است که پتانسیومتر کاملا بسته شده ؛ در مورد من من آن را کاملاً باز می گذارم تا متن بهتر تجسم شود. در پایان اتصالات موجود در نان برد به شرح زیر خواهد بود.

مرحله 3: پیکربندی Raspberry Pi

اول از همه ایجاد ربات تلگرام برای مدیریت سیستم مهم است ، برای تغییر اسکریپت پایتون پیوست به یک کلید نیاز دارید. لطفا مراحل اسناد تلگرام را بخوانید:

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

برای پیکربندی تمشک ، از نسخه Lite Rapbian استفاده کنید (نیازی به رابط گرافیکی نداریم) و پیکربندی اولیه ای را که raspbian را نشان می دهد پس از نصب یا با استفاده از دستور raspi-config اعمال کنید: فضا را تا 100٪ گسترش دهید و فعال کنید SSH اما به ویژه مهمترین چیز این است که رمز عبور و نام کاربری را به کاربر pi تغییر دهید که به طور پیش فرض آمده است (در غیر این صورت ، همانطور که برای من اتفاق افتاد ، اگر یک IP عمومی به تمشک داشته باشند ، ممکن است توسط پورت 22 حمله کنند) به جدا از این تنظیمات برای اتصال خودکار به شبکه WiFi من (با فرض اینکه شبکه من "BlogSoriano" نامیده می شود و رمز عبور من "$ ecure123!" است) ما با دستور زیر کلید را در فایل اتصالات بی سیم تولید و ذخیره می کنیم:

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

مورد بعدی این است که سیستم نصب python "pip" را به روز کرده و نصب کنید ، بنابراین ما به عنوان root وارد سیستم می شویم ، بسته های لازم را به روز می کنیم و نصب می کنیم:

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

با استفاده از این ما در حال حاضر به کتابخانه کلاس پایتون دسترسی داریم ، برای اسکریپتی که قرار است از آن استفاده کنیم ، باید موارد زیر را نصب کنیم:

pip install RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces wireless telepot cv2

پس از اتمام نصب وابستگی ها ، از اسکریپت پیوست شده به این مرحله استفاده می کنیم ، آن را در مسیر /opt/petfeeder.py ذخیره می کنم و فایل را می توان با استفاده از دستور nano /opt/petfeeder.py و داخل این فایل ایجاد کرد. کد را می چسبانیم یا اگر تجربه لینوکس بیشتری دارید ، می توانید مستقیماً با wget بارگیری کنید. در اسکریپت تغییر متغیرهای BOTKEY (در خط 36) و SYSPASSWORD (در خط 23) مهم است.

من توضیح می دهم که این کد توسط من نوشته نشده است زیرا من هرگز در پایتون برنامه نویسی نکرده بودم ، فقط آن را تغییر دادم تا با کتابخانه های جدید و صفحه LCD 20x4 کار کنم و از ربات تلگرام استفاده کنم.

هنگامی که اسکریپت را در اختیار داریم ، باید مقادیر متغیرها را با کلید ربات تغییر دهیم. برای این کار لازم است یک ربات جدید تلگرام ایجاد کنید ، با این کار فقط می توانید فایل را ذخیره کرده و خارج شوید (با Ctrl + یا ذخیره و ctrl + x ویرایشگر نانو را ترک می کند) ، ما فقط باید اثبات راه اندازی مجدد باشیم. اسکریپت آخرین باری را که سیستم قدرت فعال می شود ذخیره می کند ، بنابراین ما فقط باید هر بار که سیستم عامل شروع به کار می کند ، اسکریپت را اجرا کنیم ، برای این کار من یک راه حل بسیار خاص با برنامه ای به نام سرپرست پیدا کردم که از مخازن دبیان نصب شده است.:

سرپرست apt-get install

و پس از نصب ، ما فقط نیاز به ایجاد یک فایل پیکربندی در

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

پس از ذخیره شدن فایل می توانیم از دستور supervisorctl [شروع | توقف | restart] petfeederd ، زیرا در این مورد سرویس شروع نشده است ، ما آن را با شروع اجرا می کنیم:

supervisorctl petfeederd را شروع کنید

مرحله 4: آماده تست

Image
Image
آماده تست
آماده تست
آماده تست
آماده تست
آماده تست
آماده تست

و با این کار سیستم باید کار کند ، صفحه LCD باید اطلاعاتی در مورد زمان تغذیه بعدی یا اینکه آیا آماده تغذیه است نشان دهد. شما همچنین باید نام شبکه بی سیم را که به آن متصل هستید نشان دهید و آدرس IP مورد استفاده در صورت نیاز به اتصال از طریق SSH ، من یک ویدئوی کوچک را که ساختم به اشتراک می گذارم ، از کیفیت آن عذرخواهی می کنم ، خیلی خوب نیست این موضوع از وبلاگ ها است.

شما باید بتوانید ربات خود را در تلگرام جستجو کرده و یکی از دستورهای بعدی را بعد از خود ارسال کنید /چت خود را مجاز کنید:

/feed: فرایند تغذیه را تا زمانی که دوره زمانی پارامتر شده سپری شده است ، آغاز می کند.

/زمان: اطلاعات مربوط به آخرین تغذیه و تصویر بشقاب غذا را برمی گرداند.

/عکس: تصویری از بشقاب غذا را برگردانید.

/restart: سیستم را راه اندازی مجدد کنید ، متغیر آخرین تغذیه را روی 0 تنظیم کنید تا بتوانید بلافاصله تغذیه کنید.

/status در مورد وضعیت اتصال به اینترنت اطلاع می دهد: SSID بی سیم متصل و آدرس IP ای که سیستم در شبکه دارد.

توصیه شده: