İçindekiler:

Evcil Hayvanlar için IoT Treat Dispenseri: 7 Adım (Resimlerle)
Evcil Hayvanlar için IoT Treat Dispenseri: 7 Adım (Resimlerle)

Video: Evcil Hayvanlar için IoT Treat Dispenseri: 7 Adım (Resimlerle)

Video: Evcil Hayvanlar için IoT Treat Dispenseri: 7 Adım (Resimlerle)
Video: My FIRST DAY in Bangkok was ABSOLUTE MADNESS 🇹🇭 2024, Temmuz
Anonim
Image
Image
Evcil Hayvanlar için IoT Treat Dispenseri
Evcil Hayvanlar için IoT Treat Dispenseri

İki kedim var ve onlara günde yaklaşık 3 kez mama vermek zorunda kalmak oldukça can sıkıcı bir hal aldı. Sevimli yüzleri ve yoğun bakışlarıyla bana bakıyor, sonra kedi yeşillikleriyle dolu bir kutuya koşuyor, miyavlıyor ve onlar için yalvarıyorlardı. Yeter artık diye karar vermiştim. Artık bir kediye birkaç ödül vermek için kalkmak yok. Şimdi bir tedavi dağıtma makinesinin zamanıydı, çünkü dediğimiz gibi: "Programcılar, basit şeyleri daha az yapmak için karmaşık şeyler yapmak için vardır."

DFRobot bu projeye sponsor oldu.

Parça listesi:

  • DFRobot Ahududu Pi 3
  • DFRobot Raspberry Pi Kamera Modülü
  • Planet Dişli DFRobot Step Motor
  • I2C LCD 16x2
  • Varil Jack'den Terminale
  • DRV8825 Step Motor Sürücüsü
  • Kapasitör 100 µF
  • Arduino UNO & Genuino UNO
  • Atlama telleri (jenerik)

Adım 1: Tasarım Oluşturma

Tasarım Oluşturma
Tasarım Oluşturma

Birincisi, yeni düşünce makinemi nasıl kontrol edeceğimin seçimiydi. Bluetooth, hiçbir engel olmadan yalnızca 30 fitte çok kısa bir menzile sahip olurdu. Bu bilgilerle WiFi kullanmayı seçtim. Ama şimdi, makineyi kontrol etmek için WiFi'yi nasıl kullanırım? Bir Raspberry Pi 3, bir web sayfasını barındırmak için Flask'ı kullanmama izin veren yerleşik WiFi özelliklerine sahiptir. Ardından, muhafazanın konusu ve ikramların nasıl dağıtılacağıydı. İkramların küçük bölümlere ayrılacağı, etrafında döndürüleceği ve ardından ikramların bir rampaya inip makinenin önüne gideceği döner bir tekerlek tasarımına karar verdim.

Adım 2: Fusion 360 Modelini Yapmak

Fusion 360 Modelini Yapmak
Fusion 360 Modelini Yapmak
Fusion 360 Modelini Yapmak
Fusion 360 Modelini Yapmak
Fusion 360 Modelini Yapmak
Fusion 360 Modelini Yapmak

Tedavi yuvası için bir temel model oluşturarak başladım. İkramlar bir mini hazneye düşer ve daha sonra dönen bir çarka alınır.

Sonra Raspberry Pi 3'ü Fusion tasarımına, LCD ve Raspberry Pi kamera modülü de dahil olmak üzere diğer elektronik parçalarla birlikte ekledim. Ayrıca ek ikramları saklayabilecek bir hazne yaptım.

Muamele dağıtıcısının duvarlarının bir CNC router üzerinde 1/4 inçlik kontrplaktan kesilmesi gerekiyor. 7 parça, 4 duvar, bir zemin ve ikramları ortaya çıkarmak için açılıp kapanabilen bir üst ve kapak parçası vardır.

Son olarak, kapağı açmak için "süslü" bir kulp oluşturdum.

Adım 3: Pi'yi Ayarlama

DFRobot bana ulaştı ve Raspberry Pi 3 ve Raspberry Pi Kamera Modüllerini gönderdi. Bu yüzden kutuları açtıktan sonra SD kartı kurarak çalışmaya başladım. Önce Raspberry Pi İndirilenler sayfasına gittim ve Raspbian'ın en son sürümünü indirdim. Daha sonra dosyayı çıkardım ve uygun bir dizine koydum. Bir.img dosyasını bir SD karta kopyalayıp yapıştıramazsınız, karta "yakmanız" gerekir. İşletim sistemi görüntüsünü kolayca aktarmak için Etcher.io gibi bir yazma yardımcı programını indirebilirsiniz..img dosyası SD kartıma girdikten sonra Raspberry Pi'ye taktım ve güç verdim. Yaklaşık 50 saniye sonra kabloyu çıkardım ve SD kartı çıkardım. Sonra SD kartı bilgisayarıma geri koydum ve "önyükleme" dizinine gittim. Not Defteri'ni açtım ve NO uzantısıyla "ssh" adlı boş bir dosya olarak kaydettim. Ayrıca eklediğim "wpa_supplicant.conf" adında bir dosya vardı ve içine şu metni koydum: network={ ssid= psk=} Sonra kartı kaydedip çıkardım ve Raspberry Pi 3'e geri koydum. Bu şimdi izin vermeli. SSH kullanımı ve WiFi'ye bağlanma.

4. Adım: Yazılımı Yükleme

VLC ve motion gibi video akışı yapabilen birkaç farklı yazılım var, ancak düşük gecikme süresi ve kolay kurulumu nedeniyle mjpeg-streamer'ı kullanmaya karar verdim. Sitedeki talimatlara göre, a:git klonu https://github.com/jacksonliam/mjpg-streamer.git Bir klasöre yapın, ardından şunu yazın: sudo apt-get install cmake libjpeg8-dev Gerekli kitaplıkları kurmak için. Dizininizi indirdiğiniz klasöre değiştirin ve ardından şunu yazın: make Ardından gelen: sudo make install Yazılımı derlemek için. Son olarak şunu girin: dışa aktar LD_LIBRARY_PATH=. Çalıştırmak için şunu yazın:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Akışa şu adrese giderek erişebilirsiniz: https:// Pi'nin yerel ipi:8080/stream. html Akışı görüntülemek için.

Adım 5: Bir Web Sunucusu Kurma

Makinenin WiFi ile harici olarak kontrol edilmesini sağlamak için bir web sunucusuna ihtiyacım vardı. Bir web sunucusu temel olarak, genellikle bir tarayıcı tarafından istendiğinde web sayfalarını sunar. Apache'yi masadan kaldırarak kurulumu ve kullanımı hızlı ve basit bir şey istedim. Ayrıca Arduino Uno'yu PySerial ile kontrol edebilmek için web sunucusunu Python ile arayüzlemek istedim. Bu arayış sonunda beni, kullanıcıların hızla bir web sunucusu oluşturmasına olanak tanıyan güzel bir Python kitaplığı olan Flask'a götürdü. Kodun tamamı bu proje sayfasına eklenmiştir. Python betiği temelde 2 web sayfası kurar, biri kök dizinde barındırılan '/' ve diğeri '/dispense' dizininde barındırılan. Dizin sayfası, gönderildiğinde dağıtım sayfasına bir gönderi isteği gönderen bir HTML formuna sahiptir. Dağıtım sayfası daha sonra gönderi değerinin doğru olup olmadığını kontrol eder ve 'D\n' mesajı seri olarak Arduino Uno'ya gönderilir.

6. Adım: IO'yu Kontrol Etme

GÇ'yi kontrol etme
GÇ'yi kontrol etme
GÇ'yi kontrol etme
GÇ'yi kontrol etme
GÇ'yi kontrol etme
GÇ'yi kontrol etme
GÇ'yi kontrol etme
GÇ'yi kontrol etme

Step motorumu sürmek için DRV8825'i kullanmaya karar verdim, çünkü sadece 2 IO pinine ve ayarlanabilir akım sınırlamasına ihtiyaç duyuyordu. Bir L293D kullanmayı denedim ama step motorun yükünü kaldıramadı. DRV8825, STEP pinini PWM aracılığıyla darbeleyerek kontrol edilir ve yön, DIR pinini yukarı veya aşağı çekerek kontrol edilir. Kullandığım step motorun 1.2 amper çekişi var, bu yüzden VREF voltajını 0,6V olarak ayarladım. Sırada LCD vardı. Gereken IO miktarını azaltmak ve kodu basitleştirmek için I2C kullanmak istedim. Kütüphaneyi kurmak için "LiquidCrystal_I2C"yi aratın ve kurun. Son olarak, Arduino Uno, seri arabellekteki yeni bilgileri ve 'D' ile eşleşip eşleşmediğini kontrol eder. Olursa, Uno, kademeli motorun 180 derece ve sonra -72 derece hareket etmesine neden olur ve böylece ikramların takılmasını önler.

Önerilen: