Mundarija:
- Ta'minotlar
- 1 -qadam: Pi o'rnatish
- 2 -qadam: LED va yorug'lik sensori
- 3 -qadam: Servo dvigatel
- 4 -qadam: RFID o'quvchi RC522
- 5 -qadam: HX711 uyasini yuklang
- 6 -qadam: LCD (16*2)
- 7 -qadam: To'liq davr
- 8 -qadam: Ishning boshlanishi
- 9 -qadam: uni birlashtirish
- 10 -qadam: veb -sayt
Video: Itlar uchun avtomatik dispenser: 10 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Men o'z loyiham bilan itingizni uyda yolg'iz qoldirganingizda, u hech qachon ovqatsiz qolmasligiga ishonch hosil qilaman.
Avtomatik oziqlantiruvchi makkajo'xori yong'og'i dispenseridan "buziladi". Dispenser - bu itlarning ovqatlari uchun suv ombori, pastki qismidagi g'ildirak beshik deyarli bo'sh bo'lganda va it etarlicha yaqin bo'lganda ovqatni avtomatik ravishda tashlab yuboradigan servo dvigatelga ulanadi. Dispenserning pastki qismida PVX naycha o'rnatilgan bo'lib, u itning ovqatini beshikka yaxshi tashlab yuboradi. Shunday qilib, ushbu loyihada 3 ta sensorlar bo'ladi, ulardan 2 tasi sinfda va 1 tasi aktuatorda.
Birinchi sensor - RFID o'quvchi. Bu sensor it beshikka yaqinlashganda tekshiradi. RFID itning yoqasiga o'rnatiladi. Agar bu sensor it etarlicha yaqin ekanligini sezsa, u ikkinchi sensorga signal uzatadi. Ikkinchi sensor - bu beshikdagi ovqatni o'lchaydigan vazn sensori (sinfda ko'rsatilmagan), agar bu sensor og'irlik juda pastligini aniqlasa, u servo dvigatelga ovqatni beshikka tashlaydigan signal yuboradi (RFID va vazn sensori tasdiqlanishi bilan). Qisqasi, it faqat beshikka etarlicha yaqin bo'lganida va beshik deyarli bo'sh bo'lganda qo'shimcha ovqat oladi. Albatta, o'zingizni veb -server orqali belgilashingiz mumkin bo'lgan chegara ham bor; it kuniga juda ko'p ovqat olmasligi uchun. Uchinchi datchik - bu beshik atrofida qorong'i bo'lganda LED yoritgichini yorituvchi yorug'lik sensori. Aktuator shuning uchun dispenserdagi g'ildirakka ulangan servo vosita bo'ladi.
Bu loyiha itlar uchun mo'ljallangan, siz undan boshqa kichik uy hayvonlari uchun ham foydalanishingiz mumkin.
Ta'minotlar
Raspberry Pi 3
Yuk xujayrasi (1 kg)
HX711 yuk xujayrali kuchaytirgich
Oziq -ovqat idishi
Donli dispenser
Yog'och (+ vintlardek va tornavida)
Yorug'lik sensori
LED
RFID o'quvchi rc522
Jumper simlari
16*2 LCD (displey)
Servo dvigatel
5V quvvat adapteri
Rezistor 470 Ohm
PVX quvur
Breadbord
Potentsiometr
Ko'rdim
Zımpara qog'ozi
Silikon qurol
1 -qadam: Pi o'rnatish
Sozlash
Boshlash uchun biz avval Pi -ni sozlashimiz kerak.
Sizga ikkita narsa kerak bo'ladi:
- Win32 Disk Imager dasturi
- Raspbian OS tasviri
ZIP faylini yuklab oling va uni xohlagan joyga ko'chiring.
O'rnatish
1. Papka belgisi orqali rasmingizni tanlang
2. Ochiladigan ro'yxat orqali SD -kartangizni tanlang
3. Yozish -ni bosing
Endi biz Pi -ga kira olishimiz uchun ba'zi sozlamalar bilan qo'shimcha ishlarni bajarishimiz kerak bo'ladi.
1. SD -kartaning yuklash katalogiga o'ting
2. "cmdline.txt" faylini oching.
3. Qo'shish ip = 169.254.10.1 Matn uzun satrining oxirida bo'sh joy bilan ajratilgan (bir qatorda).
4. Faylni saqlang.
5. Xuddi shu katalogda kengaytmasi bo'lmagan ssh nomli fayl yarating
Endi siz SD -kartani chiqarib, uni Pi -ga qo'yishingiz mumkin.
Ulanmoqda
Endi biz dasturiy ta'minotni sozlashimiz kerak.
Birinchidan, LAN simini ulang, bir uchi ish stolida/noutbukda, ikkinchisi Pi -da.
Endi Raspberry Pi -ni yuklang.
1. Putty -ni https://www.putty.org/ saytidan o'rnating.
2. IP maydoniga 169.254.10.1 kiriting.
3. SSH tanlanganligiga va 22 -port to'ldirilganligiga ishonch hosil qiling.
4. Ochish -ni bosing
5. Foydalanuvchi nomini kiriting: pi
6. Parolni to'ldiring: malina
Raspi-config
Raspi-config yordam dasturini quyidagicha oching:
sudo raspi-config
Interfeyslar toifasida quyidagi variantlarni yoqing
- 1-simli
- SPI
Yuklash imkoniyatlari toifasida quyidagi variantlarni o'chirib qo'ying
- Bosh ekran
Nihoyat yuklash variantlari toifasidagi Desktop/CLI sozlamalarini Desktop Autologin -ga o'rnating.
Wifi
Itni oziqlantiruvchi uchun bizda Wi -Fi ulanishi bo'lishi kerak, shuning uchun Wi -Fi ma'lumotlari yaqin ekanligiga ishonch hosil qiling.
1. Ildiz rejimiga o'ting
sudo -i
2. Bu qatorni joylashtiring, lekin SSID va Parol ham to'ldirilganligiga ishonch hosil qiling
wpa_passphrase "SSID" "PAROLA" >> /etc/wpa_supplicant/wpa_supplicant.conf
3. WPA mijozini kiriting.
Wpa_cli
4. Interfeysni tanlang
Interfaol wlan0
5. Konfiguratsiyani qayta yuklang
Qayta sozlash
IP a yozib, WLAN0 interfeyslarida IP bor yoki yo'qligini bilib, to'g'ri ulanganingizga ishonch hosil qiling.
Paketlar
Endi biz Internetga ulangan bo'lsak, ba'zi paketlarni o'rnatishimiz kerak bo'ladi.
Avval biz paketlar ro'yxatini yangilashimiz kerak.
sudo apt yangilash
Python
Biz Raspbianni Python 3 dan foydalanishga majbur qilamiz
update-alternatives-install/usr/bin/python python /usr/bin/python2.7 1
update-alternatives-install/usr/bin/python python/usr/bin/python3 2
MariaDB
Ma'lumotlar bazasini o'rnatish uchun quyidagi qatorni joylashtiring.
sudo apt install mariadb-server
Keyin biz o'rnatishni ta'minlashimiz kerak.
mysql_secure_installation
U bizdan joriy parolni so'raydi, chunki bizda faqat Enter tugmachasi yo'q.
Keyin u y -da ildiz parolini xohlaymizmi, deb so'raydi.
Keyingi savollar uchun Y kiriting.
Keyin biz ko'zgu uchun foydalana oladigan foydalanuvchi yaratamiz.
Mysql qobig'ini kiriting:
- O'zimizni ildiz otish uchun ko'taramiz
Sudo -i
- MySQL qobig'ini kiriting
Mysql
- O'z foydalanuvchi nomingiz bilan almashtiring va shu bilan
*. * dagi barcha imtiyozlarni '@'%'belgisiga ko'ra belgilang;
- '.@'%'belgisiga'.
Keyin biz ma'lumotlar bazasini qo'shamiz.
Apache veb -server
Veb -serverni o'rnatish uchun quyidagi qatorni ishga tushiring.
sudo apt install apache2 -y
Python paketlar
Biz bu paketlarni o'rnatamiz
- Shisha
- Flask-Cors
- Flask-MySQL
- Flask rozetkasi
- PyMySQL
- Gevent
- Gevent-veb-rozetkasi
-
- Python-soket
- Talablar
- Wsaccel
- Ujson
Qilish orqali
pip o'rnatish Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent-webocket httplib2 python-socketio wsaccel ujson mfrc522 hx711 Adafruit-CharLCD
2 -qadam: LED va yorug'lik sensori
Ledni ulash
- S -> GPIO15 (rxd0)
- + -> 5V
- G -> Rezistor 470 ohm va GND
Nur sensori ulanmoqda
- Chiqish -> GPIO17
- VCC -> 3.3V
- GND -> GND
Endi biz svetodiod va yorug'lik sensori shu kichik skript bilan ishlaydimi yoki yo'qligini sinab ko'rishimiz mumkin
RPi. GPIO -ni GPIO GPIO.setmode (GPIO. BCM) sifatida import qilish
GPIO. sozlash (15, GPIO. OUT)
GPIO. sozlash (17, GPIO. IN)
harakat qilib ko'ring: while True:
agar GPIO.input (17) == 0:
GPIO.output (15, GPIO. HIGH)
agar GPIO.input (17) == 1:
GPIO.output (15, GPIO. LOW)
KeyboardInterruptdan tashqari: GPIO.cleanup ()
3 -qadam: Servo dvigatel
Servo motorni ulash
- Chiqish -> GPIO18
- VCC -> 5V
- GND -> GND
Endi biz svetodiod va yorug'lik sensori shu kichik skript bilan ishlaydimi yoki yo'qligini sinab ko'rishimiz mumkin
RPi. GPIO -ni GPIOimport vaqti sifatida import qilish
GPIO.setmode (GPIO. BCM)
GPIO. sozlash (18, GPIO. OUT)
p = GPIO. PWM (18, 50)
p.boshlanish (12.5)
harakat qilib ko'ring:
rost bo'lsa:
p. ChangeDutyCycle (12.5)
uyqu (1)
p. ChangeDutyCycle (2.5)
uyqu (1)
KeyboardInterruptdan tashqari:
p.stop ()
GPIO.cleanup ()
4 -qadam: RFID o'quvchi RC522
RFID ulanmoqda
- RST -> GPIO6
- MISO -> GPIO9 (MISO)
- MOSI -> GPIO10 (MOSI)
- SCK -> GPIO11 (SPISCLK)
- SDA -> GPIO8 (SPICS0)
- 3.3V -> 3.3V
- GND -> GND
Endi biz RFID o'quvchimiz ushbu kichik skript bilan ishlayotganligini sinab ko'rishimiz mumkin
RPi. GPIO -ni GPIO sifatida import qilish
mfrc522 importdan SimpleMFRC522
o'quvchi = SimpleMFRC522 ()
matn = kiritish ('Yangi ma'lumotlar:')
chop etish ("Endi tegingizni yozish uchun joy qo'ying")
o'quvchi.yozish (matn)
chop etish ("Yozma")
5 -qadam: HX711 uyasini yuklang
Load katakchasini HX711 haydovchi kartasiga ulash
- Qizil -> E+
- Qora -> E-
- Yashil -> A+
- Oq -> A-
Yuklash katakchasi ulanmoqda
- DT-> GPIO27
- SCK -> GPIO22
- QIZIL -> 3.3V
- GND -> GND
Endi biz yuk xujayramiz shu kichik skript bilan ishlaydimi yoki yo'qligini sinab ko'rishimiz mumkin
RPi. GPIO -ni GPIO sifatida import qilish klasses. HX711 import HX711 -dan vaqtni import qilish.
def cleanAndExit (): chop etish ("Tozalash …") GPIO.cleanup () chop etish ("Xayr!") sys.exit ()
hx = HX711 (22, 27)
hx.set_reading_format ("LSB", "MSB")
hx.set_reference_unit (2167)
hx.reset ()
hx.tare ()
rost bo'lsa:
harakat qilib ko'ring:
val = max (0, int (hx.get_weight (5)))
bosib chiqarish (val)
hx.power_down ()
hx.power_up ()
vaqt uyqu (0,5)
(KeyboardInterrupt, SystemExit) tashqari: cleanAndExit ()
6 -qadam: LCD (16*2)
LCD -ni ulash
- RS -> GPIO21
- RW -> GND
- E-> GPIO20
- D0 -> GPIO16
- D1 -> GPIO12
- D2 -> GPIO6
- D3 -> GPIO24
- D4 -> GPIO23
- D5 -> GPIO26
- D6 -> GPIO19
- D7 -> GPIO13
- VSS -> GND
- VDD -> 5V
- A -> 5V
- K -> GND
- V0 -> o'rta potentsial pin
Endi biz LCD displeyimiz ushbu kichik skript bilan ishlayaptimi yoki yo'qligini sinab ko'rishimiz mumkin
Adafruit_CharLCD -ni LCDlcd_rs = 21 sifatida import qiling
lcd_en = 20
lcd_d4 = 23
lcd_d5 = 26
lcd_d6 = 19
lcd_d7 = 13
lcd_columns = 16
lcd_rows = 2
lcd = LCD. Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows)
lcd.message ('169.254.10.1')
7 -qadam: To'liq davr
bu erda siz butun sxemaning to'g'riligini tekshirishingiz mumkin
8 -qadam: Ishning boshlanishi
Men makkajo'xori dispenseridan itlarning ovqatlari uchun suv ombori sifatida foydalanardim
Men dispenserdagi g'ildirakni servo motorimga uladim
Endi men servo dvigatelim bilan g'ildirakni boshqaraman va ovqatni suv omboridan tashlab yuboraman
Suv omborining oxirida PVX trubkasi ulangan, u ovqatni beshikka yaxshilab tushiradi
Qoplama sifatida men yog'ochdan foydalanaman
9 -qadam: uni birlashtirish
10 -qadam: veb -sayt
Endi bizning mashinamiz ishlaydi, biz veb -saytni pi -ga olishimiz kerak, endi hamma narsa tayyor va sayt qanday ishlashi haqida bir nechta ko'rsatma.
Siz Wi -Fi tarmog'iga HDMI kabelini ulash orqali ulanishingiz va shu tarzda faollashtirishingiz mumkin
Birinchi sahifa - bu bosh sahifa, bu erda ko'rishingiz mumkin:
- Chiroq haqida real vaqtda ma'lumot
- Idishdagi ovqat haqida real vaqtda ma'lumot
- Siz ovqatni tashlab qo'yishingiz mumkin
- It haqida ma'lumot
Ikkinchi sahifa - tahrirlash sahifasi, bu erda tahrir qilishingiz mumkin:
- uy hayvoningizning nomi
- uy hayvoningizning yoshi
- uy hayvoningizning og'irligi
- uy hayvoningizning fotosurati
Uchinchi sahifa - bu tarix sahifasi, bu erda ko'rishingiz mumkin:
- qachon chiroq yondi
- it ovqatlangach
- ovqat tushganda
To'rtinchi sahifa - sozlash sahifasi, bu erda tahrir qilishingiz mumkin:
- ovqatni tushirish kerak bo'lganda
- tushadigan oziq -ovqat miqdori
- maksimal ovqat/kun
- yorug'lik
Tavsiya:
Itlar uchun LED masofa indikatori: 5 qadam (rasmlar bilan)
Itlar uchun LED masofa indikatori: Men odatda itim Rusioni quyosh botganda sayrga olib chiqaman, shunda u qizib ketmasdan o'ynashi mumkin. Muammo shundaki, u tayoqdan tushganida, ba'zida u juda hayajonlanib, kerak bo'lgandan ko'ra yuguradi, past yorug'lik va boshqa itlar bilan
NeckLight: odamlar va itlar uchun PCB marjonlari: 8 qadam (rasmlar bilan)
NeckLight: odamlar va itlar uchun tenglikni taqinchoqlari: Hammaga salom, bu loyiha mening birinchi yo'riqnomam, shuning uchun men qo'limdan kelganicha harakat qilishga harakat qilaman, men sizga bu qorong'uda porlab turadigan PCB marjonini qanday yaratganimni tushuntiraman! Rostini aytsam, agar siz o'rganmoqchi bo'lsangiz, bu mukammal loyihadir
Itlar uchun ovqat signallari: 5 qadam
Itlar uchun ovqat signallari: Yana salom! Mening uyimda, Taos ismli oltin doodl (Nyu -Meksiko shahridan keyin) bizning itimizni boqish majburiyatlari ko'pincha biz bolalarning zimmasiga tushadi. Biroq, uni ovqatlantirish vaqti kelganida, uni ilgari ovqatlanganmi yoki yo'qmi, aytish qiyin
Itlar uchun avtomatik to'p tashlash: 6 qadam
Itlar uchun avtomatik to'p tashlovchi: Ikkalamizda ham it bor, hamma biladi, itlar kun bo'yi to'p o'ynab o'tirishi mumkin edi. Shuning uchun biz avtomatik to'p otish moslamasini yaratish yo'lini o'ylab topdik
Arduino bilan ishlaydigan itlar uchun oziq -ovqat dispenseri: 10 qadam (rasmlar bilan)
Arduino bilan ishlaydigan itlar uchun oziq -ovqat dispenseri: Agar sizning uyingiz menikiga o'xshasa, ba'zi vazifalar shoshilganda unutilishi mumkin. Bu sizning uy hayvoningiz bo'lishi mumkinligiga yo'l qo'ymang! Itlarning oziq -ovqat mahsulotlarini avtomatlashtirilgan tarqatish moslamasi Arduino -dan foydalanib, kerakli miqdordagi ovqatni kerakli vaqtda etkazib beradi. Hammasi