Department of Computer Engineering Faculty of Engineering Kasetsart University
Cat feeder
ที่ให้อาหารเเมวโดยอาหารจะหล่นลงมาเมื่อกดปุ่มและจะมีเสียงเพลงเพื่อเรียกแมวมากินอาหารโดย Servo จะหมุนให้อาหารตกลงมาที่ถาดจนถาดมีน้ำหนักเพียงพอที่จะกด ลิมิต สวิตซ์ เพลงก็จะหยุดทันทีโดยที่หน้า web app จะมีปุ่มที่ให้ผู้ใช้สามารถเลือกเพลงได้ว่าผู้ใช้ต้องการเปิดเพลงไหนเพื่อเรียกเเมวมากินแล้วจึงกดปุ่มเพื่อให้อาหารกับเเมวทันที
การให้อาหารสัตว์เลี้ยงโดยทั่วไปคือผู้ให้อาหารจะต้องอยู่ใกล้ถาดอาหารซึ่งหากในกรณีที่ผู้ให้อาหารไม่สามารถอยู่ใกล้ถาดอาหารด้วยเหตุใดก็ตามก็จะไม่สามารถทำเช่นนั้นได้ดังนั้นพวกเราจึดคิดค้นการให้อาหารผ่านหน้า web app ขึ้นมาโดยที่หน้า web app ดังกล่าวสามารถสั่งให้อาหารทันทีได้แล้วยังสามารถเลือกเพลงที่จะเปิดเรียกแมวมาได้
เมื่อเปิดเครื่องและเติมอาหารในถังจนเต็มก็ทำตามขั้นตอนดังนี้
- เลือกเพลง
- กดปุ่ม Feed Me Servo ก็จะหมุนทำให้อาหารหล่นลงมาใส่ถาดเรื่อยๆพร้อมๆกับเพลงที่เลือกไว้จากหน้าเว็ปจะดังขึ้นเพื่อเรียกแมวมากินอาหารที่หล่นลงมาและเมื่ออาหารในถาดมีน้ำหนักมากพอจนสามารถกดลิมิตสวิตซ์ได้เพลงก็จะหยุดลงพร้อมๆกับ servo ที่หมุนกลับมาที่เดิมเพื่อป้องกันไม่ให้อาหารหล่นลงมาจนล้นถาด
- ใช้ Flask python ในการสื่อสารกับ Frontend
- ใช้การ fetch method ต่างๆในการส่งข้อมูลให้ Backend
- ใช้ html ในการตกแต่งหน้าเว็บ
- เนื่องจากไฟจาก raspberry pi ไม่เพียงพอต่อ micro servo จึงจำเป็นต้องใช้ serial dongle มาช่วย
- เขียนโปรแกรมใน arduino ผ่าน vnc viewer เนื่องจากสะดวกกว่า
- ใช้ servo ในการเปิดปิดให้น้ำไหล
- ใช้ limit swited ในการบอกว่ามีอาหารอยู่ในถาดหรือไม่
catfeeder
|_____ MemberImages
|_____ 6210500587_Apiwat_Sukthawornpradit.jpg
|_____ 6210503748_Phakinee_Sirisukpoca.jpg
|_____ 6210503888_Sirapat_Inchan.jpg
|_____ 6210503896_Apichaya_Jarutikorn.jpg
|_____ Project
|_____ CatFeeder.pdf ( คำอธิบายเพิ่มเติม เกี่ยวกับอุปกรณ์ที่ใช้ต่างๆ และภาพรวมของชิ้นงาน )
|_____ Schematic.jpg ( รูปภาพผังวงจรส่วนของ Hardware )
|_____ ProjectImages
|_____ Hardware_1.jpg ( ภาพส่วนของ Hardware 1 )
|_____ Hardware_2.jpg ( ภาพส่วนของ Hardware 2 )
|_____ Logo.png ( โลโก้ของโปรเจค )
|_____ ProjectImage.jpg ( รูปถ่ายงานโดยรวมของโปรเจค )
|_____ Webpage.png ( หน้า website ของโปรเจค )
|_____ SourceCode
|_____ Backend
|_____ main.py ( โค้ดเชื่อมต่อระหว่าง Backend และ Frontend รวมถึงการแก้ไขไฟล์เพื่อเชื่อมกับ Hardware )
|_____ conser.txt ( ไฟล์เชื่อมกันระหว่าง Backend กับ Hardware ถ้าในไฟล์มีข้อมูลเป็นเลข 1 แสดงว่ามีคำสั่งผ่านหน้าเว็บให้อาหารตกลงมา ถ้าเป็น 0 ไม่มีอะไรเกิดขึ้น )
|_____ conmu.txt ( ไฟล์ที่เก็บที่ชื่อ 1 ชื่อ ที่จะเปิดโดยเขียนโดย Backend และอ่านโดย Hardware ว่าจะให้เล่นเพลงอะไร )
|_____ Frontend
|_____ index.html ( โค้ดที่แสดงหน้าเว็บ รวมถึงคำสั่งการเชื่อม Frontend และ Backend บริเวณปุ่มกดต่างๆ)
|_____ Hardware
|_____ firmware ( การตั้งค่าพื้นฐานของแต่ละอุปกรณ์ )
|_____ main.c
|_____ peri.c
|_____ peri.h
|_____ Song
|_____ LoveWithFish.mp3 ( เพลงด้วยรักและปลาทู - มอส ปฏิภาณ )
|_____ NANA.mp3 ( เพลงแมวตัวโปรด - NANA (ft. Pom) )
|_____ PICKME.mp3 ( เพลงPICK ME - PRODUCE48 )
|_____ usb-generic ( ควบคุมการหมุนของ servo ใช้โปรแกรม Arduino ผ่านโปรแกรม VNC Viewer )
|_____ peri.py
|_____ practicum.py
|_____ usbconfig.h
|_____ usb-generic.ino
|_____ control.py ( โปรแกรมใช้ในการควบคุมสวิตช์ เช็คการทำงาน servo และควบคุมเวลาการทำงานของเครื่อง )
|_____ License.txt
|_____ README.txt
- Raspberry Pi 3 Model B+ พร้อม สาย Adapter Model YM-0530 1 ชุด
- Board NodeMCU - ATmega328p (Practicum Board v3.2 CPE. KU 2020-11) 1 ชุด
- Peripheral board (PRACTICUM PROTOBOARD CPE. KU) 1 ชิ้น
- Micro Servo SG90 1 ตัว
- Ribbon cable 1 สาย
- Mini Micro Limit Switch 4 ตัว
- CH340G USB to Serial TTL 1 ตัว
- Mini speaker 1 ตัว
- Wire 25 สาย
Servo.h
usbdrv.h
usbconfig.h
usb
time
pygame
datetime import datetime
flask import Flask
render_template
request
url_for
practicumm import find_mcu_boards
McuBoard
Arduino IDE
Editor in Raspberry Pi
Mr.Apiwat Sukthawornpradit 6210500587
Ms.Phakinee Sirisukpoca 6210503748
Ms.Sirapat Inchan 6210503888
Ms.Apichaya Jarutikorn 6210503896