İçindekiler:

IDC2018IOT Bağlantılı Evcil Hayvan Maması, Su ve Monitör Sistemi: 7 Adım
IDC2018IOT Bağlantılı Evcil Hayvan Maması, Su ve Monitör Sistemi: 7 Adım

Video: IDC2018IOT Bağlantılı Evcil Hayvan Maması, Su ve Monitör Sistemi: 7 Adım

Video: IDC2018IOT Bağlantılı Evcil Hayvan Maması, Su ve Monitör Sistemi: 7 Adım
Video: Internet Technologies - Computer Science for Business Leaders 2016 2024, Temmuz
Anonim
Image
Image
IDC2018IOT Bağlantılı Evcil Hayvan Maması, Su ve Monitör Sistemi
IDC2018IOT Bağlantılı Evcil Hayvan Maması, Su ve Monitör Sistemi

Tanıtım

İster baskı altındaki bir öğrenci olun, ister çalışkan bir kişi olun, ister günde birkaç saatten fazla bir süre evden uzakta olun. Sevecen bir evcil hayvan sahipleri olarak, sevdiklerimizin sağlıklı, beslenmiş ve tabii ki koltukta uzanmadıklarından emin olmak istiyoruz (seni piç!). İyilik istemeyi, hatta bu tür hizmetler için ödeme yapmayı bırakmanın zamanı geldi.

Bu harika proje ile size kendin yapma yeteneği sağlamayı amaçlıyoruz (bunun şimdi bir şey olduğunu duydum). Evcil hayvanlarımızı daha iyi izlemek için bir çözüm geliştireceğiz ve hatta ofiste, okulda veya sadece arkadaşlarımızla veya diğer önemli kişilerle takılırken harekete geçeceğiz.

Bu sistem, evcil hayvanınızı uzaktan beslemenizi sağlarken, kaptan dökülen mama miktarını kontrol etmenizi, su kabı boşaldığında doldurmanızı sağlar. Ayrıca basit bir kamera modülü kullanarak artık kase su seviyelerini gerçek zamanlı olarak izleyebiliyor, mama kabı içeriğini ölçebiliyor ve en önemlisi evcil hayvanı canlı olarak izleyebiliyoruz.

Hakkımızda

Tomer Maimon, Gilad Ram ve Alon Shprung. IDC Herzeliya'nın üç tutkulu Bilgisayar Bilimi öğrencisi. Bu, bir IoT atölyesinin parçası olarak ilk Eğitilebilir Projeler projemizdir - inşa etmeyi ilginç ve eğlenceli bulacağınızı umuyoruz!

Adım 1: Mimariyi Anlamak:

Mimariyi Anlamak
Mimariyi Anlamak
Mimariyi Anlamak
Mimariyi Anlamak

Bu sistemi iki ana bölüme ayırabiliriz:

  1. Gelen Veri Kanalları:

    • Su sensörü - pet kase içindeki su seviyelerini örnekler, veriler Düğüm-MCU ünitesinden Blynk sunucusuna iletilir ve son olarak Pet Dashboard aracılığıyla sunulur.
    • Sonar sensörü - gıda kabı içeriğinin örneklenmesi, veriler Arduino ünitesinden (Ethernet kalkan uzantısı ile) Blynk sunucusuna iletilir ve son olarak Pet Dashboard aracılığıyla sunulur.
    • Pi Kamera Modülü - sürekli olarak evcil hayvan alanının karelerini örnekler, Pi, evcil hayvan Dashboard'a canlı besleme sağlayan kendi sunucusunu barındırır.
  2. Komut Akışı:

    • Besleme Düğmesi (Dashboard) - Blynk aracılığıyla sanal bir pin değeri güncellenir, Arduino kartında ilgili fonksiyon tetiklenir, ardından Servo, yiyeceklerin kapaktan geçmesine izin vermek için hareket eder.
    • Su Ver (Dashboard) - Blynk aracılığıyla sanal bir pin değerini aktif olarak günceller, ilgili fonksiyon Düğüm-MCU kartında tetiklenir, röle AÇIK konuma getirilir, su pompası evcil hayvanın kasesine su akıtmaya başlar.
    • Pet Canlı Besleme (Dashboard) - gösterge panosuna gömülü ve Pi cihazında çalışan şişe sunucusu aracılığıyla canlı veri sunuyor.

Adım 2: Parça Listesi

Parça Listesi
Parça Listesi
Parça Listesi
Parça Listesi
Parça Listesi
Parça Listesi

Bu sistem üzerinde çalışmaya başlamak için aşağıdaki (veya benzer) parçalara ihtiyacınız olacak:

  1. Fiziksel:

    • Gıda Kabı: Bir ev mağazasından aldığımız 45 cm'lik iki taraflı endüstriyel bir boru kullandık. 2 çıkış olması önemlidir. Biri içeriği ölçmek için, ikincisi ise açma/kapama mekanizması için.
    • Koli Bandı: İşleri bir arada tutmak için;)
    • Jumper Wires: Ne kadar neşeli olursa, bir şeyler ters giderse biraz fazladan olması her zaman iyidir.
    • Ethernet Kablosu: Arduino'muzu (ethernet kalkanlı) internete bağlamak için.
    • Bahçe Tenekesi: Su kabı ve su pompası olarak kullanılır.
    • Kısa Su Tüpü: Pompaya bağlanır ve suyu evcil hayvanın kasesine boşaltır.
  2. Sensörler:

    • WINGONEER Su Seviyesi Sensörü: Evcil hayvanın kasesindeki su seviyelerini ölçün.
    • Sonar Sensörü - Yiyecek seviyesinin kabın içindeki üst kapaktan olan mesafesini ölçün.
    • TONGLING Rölesi: Su akıtan su pompasını açıp kapamamızı sağlar.
    • Pi Kamera Modülü: Bir ahududu Pi cihazına bağlanır ve evcil hayvan alanının görüntülerini yayınlar.
    • Genel Servo: Yemek kabını kilitler ve kilidini açar.
  3. Elektronik Cihazlar / Panolar:

    • Arduino Uno: Yemek kabı ünitesi uygulamasını kontrol eder.
    • Arduino Ethernet Shield: Panomuza internet bağlantısı sağlar.
    • NodeMCU(ESP-8266): Hem suyu ölçmek hem de dökmek için su ünitesini kontrol eder. Bu kart WiFi üzerinden bağlanma özelliğine sahiptir.
    • Raspberry Pi 3 - kamera sunucusunu barındırır ve evcil hayvan panosuna canlı besleme sağlar.
    • VicTsing 80 GPH Dalgıç Su Pompası: Su borusuyla birlikte bahçe kabından hazneye su akıtır.

Adım 3: Kablolama ve Eşyaları Bir Araya Yerleştirme

İşleri Birlikte Kablolama ve Yerleştirme
İşleri Birlikte Kablolama ve Yerleştirme
İşleri Birlikte Kablolama ve Yerleştirme
İşleri Birlikte Kablolama ve Yerleştirme
İşleri Birlikte Kablolama ve Yerleştirme
İşleri Birlikte Kablolama ve Yerleştirme

kablolama

Başlamadan önce, tüm kabloları bir araya getirmeyi ve herhangi bir fiziksel konuma yerleştirmeyi kolaylaştırmak için Arduino / Düğüm-MCU'yu bir devre tahtasına yerleştirmeniz önerilir. Ayrıca kablo kopmasından kaynaklanan hataları önlemek için uzun teller kullanılması tavsiye edilir. Size Node-MCU (Su Ünitesi) ve Arduino (Yiyecek Ünitesi) için bir bağlantı şeması sağladık.

  1. Gıda Birimi (Arduino):

    • Sonar Sensörü:

      • GND (Siyah) = GND
      • VCC (Kırmızı) = 5V
      • Trig (Mor) = 3
      • Yankı (Mavi) = 4
    • Servo:

      • GND (Siyah) = GND
      • VCC (Kırmızı) = 5V
      • Sinyal (Sarı) = 9
  2. Su Ünitesi (Düğüm):

    • Su Seviye Sensörü:

      • S (Mavi) = A0
      • + (Kırmızı) = 3v3
      • - (Siyah) = GND
    • Röle (su pompasına elektriksel olarak bağlı):

      • IN (Sarı) = D1
      • VCC (Kırmızı) = Vin
      • GND (Siyah) = GND
  3. Kamera Birimi (Pi):

    • Kamera Sensörü:

      • Pi'nin tek kamera bağlantı noktasına bağlanın (akı kablosu)
      • Pi ile kamera modülü hakkında daha fazla bilgi edinmek istiyorsanız - Link

Parçaları Birlikte Birleştirme

Bu bölümde, "sizin yapmak" için bu projeyi özelleştirebilir ve değiştirebilirsiniz. Ancak, ürün versiyonumuzu yeniden yapılandırmanız için size resimler ve açıklamalar sağlayacağız.

  1. Yiyecek Birimi (Arduino): Kap oldukça düz, iki kapağın işlenmesine odaklanacağız.

    • Üst kapak: Sonar sensörünün sığması için kapakta 2 delik açın (ekteki resme bakın).
    • Alt kapak + Mekanizma: Plastik ataşmanlardan birini (servo sensörle birlikte verilir) alarak başlayın ve koli bandı / tahta çubuklar kullanarak bir "Balyoz" şekli oluşturun (sadece bant kullandık). Ardından, servoyu takın. Şimdi, kapağın kendisinde 2 deliğe ihtiyacımız var. Birincisi, servonun kapağın "iç tarafına" yerleştirdiğimiz mekanizmaya s.t'ye sığmasına izin vermelidir. Hazırladığınız "çekiç kafasının" yanına göre başka bir delik açın. Bu sayede servo her açıldığında çekicin kuyruğu yiyecekleri çıkışa doğru süpürecek ve büyük parçaların birbirine yapışmasını önleyecektir.
  2. Su Ünitesi (Düğüm-MCU): Su borusunu su pompasına bağlamanız yeterlidir, şimdi bahçe kutusunun içine yerleştirin (suyun içine röle ve elektrik kabloları ile yanlış parçayı YERLEŞTİRMEYİN).
  3. Kamera Ünitesi: Tek yapmanız gereken kameralı Pi'yi istediğiniz bir yere yerleştirmek.

4. Adım: Blynk'i Kurun

Blynk'i Kur
Blynk'i Kur
Blynk'i Kur
Blynk'i Kur

Bu projedeki tüm uzak yetenekler Blynk'e dayanmaktadır. Bu hizmet temel olarak bize Arduino/Node-MCU cihazlarımızla HTTP protokolü kullanarak internet üzerinden iletişim kurmak için ücretsiz bir Web Sunucusu ve RESTful API sağlar. Blynk, su dökme, besleme ve farklı sensörleri örnekleme ile ilgili belirli işlevleri yürütmek için bir adres olarak kullanılacak sanal pinleri tanımlamamızı sağlar (bu kısmı sizin için yaptık, tek yapmanız gereken kendi uygulama jetonunuzu almak, hangisi daha sonra açıklanacaktır).

Blynk Kimlik Doğrulama Simgemi Nasıl Alırım?

  1. Mobil cihazınız için Blynk uygulamasını AppStore / PlayStore üzerinden indirin.
  2. Bu hizmete kaydolun (kullanımı ücretsizdir).
  3. Yeni bir proje başlatın, doğru cihazı seçtiğinizden emin olun (bizim durumumuzda ESP8266).
  4. Oluşturulduktan sonra, DOĞRULAMA TOKEN içeren bir e-posta gönderilecektir - Belirteci sonraki adımlar için kaydedin.

Not: Blynk, uygulama aracılığıyla tamamen kullanılabilir, ancak kendi özelleştirilmiş panomuzu uygulamaya karar verdik.

Son olarak, bir sonraki adıma geçmek için Blynk library - Link'i indirip yüklemelisiniz (3. bölüme atlayın)

Adım 5: Yemek Kabı, Su Pompası ve Canlı Kamerayı Yapılandırın

Yemek Kabı, Su Pompası ve Canlı Kamerayı Yapılandırın
Yemek Kabı, Su Pompası ve Canlı Kamerayı Yapılandırın
Yemek Kabı, Su Pompası ve Canlı Kamerayı Yapılandırın
Yemek Kabı, Su Pompası ve Canlı Kamerayı Yapılandırın

Bu noktada, tüm parçaları bir araya getirmeyi bitirdik ve blynkAuthAppToken'ımızı aldık (3. adıma bakın).

Bu projeyi yürütmek için ihtiyacınız olan tüm kodu size sağladık, tek yapmanız gereken koddaki birkaç değişkeni değiştirmek, bu da onu "kendi" özel sisteminiz yapacak.

Öncelikle Arduino IDE'yi indirerek başlayın (henüz yapmadıysanız) - Link

Arduino Yemek Kabı

  1. IDE'yi Arduino kartına kurun: Araçlar -> Kart -> Arduino/Genuino Uno
  2. Şu kitaplıkların kurulu olduğundan emin olun: Eskiz -> Kitaplığı Dahil Et -> Kitaplıkları Yönet

    Röle (Rafael Tarafından)

  3. PetFeeder.ino çizim dosyasını açın, aşağıdaki parametreleri yapılandırın (yardım için ekteki resme bakın):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Çizimi Derleyin ve Arduino cihazınıza yükleyin.

Node-MCU Su Ünitesi

  1. IDE'yi Node-MCU kartına kurun:

    Ayrıntılı açıklama için bu talimatın ilk bölümüne bakın

  2. Şu kitaplıkların kurulu olduğundan emin olun: Eskiz -> Kitaplığı Dahil Et -> Kitaplıkları Yönet

    WiFi Yöneticisi (tzapu tarafından)

  3. PetFeeder.ino çizim dosyasını açın, aşağıdaki parametreleri yapılandırın (yardım için ekteki resme bakın):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "SİZİN_WIFI_SSID"; // Temel olarak WiFi ağınızın adıdır
    • pass = "SİZİN_WIFI_PASSWORD"; // şifreniz yoksa boş "" dizesini kullanın
  4. Çizimi Derleyin ve Düğüm-MCU cihazınıza yükleyin.

Pi Canlı Kamera Modülü

  1. Pi kamera modülünü bağlayın
  2. " sudo raspi-config " komutunu çalıştırın ve "kamera" seçeneğini etkinleştirin.
  3. Bir resim çekmek için "raspistill" komutunu kullanarak kamerayı test edin

    r aspistill -o resim.jpg

  4. Flask web kamera sunucusunu ayarlayın:

    • pip install -r gereksinimleri.txt kullanarak tüm gereksinimleri yükleyin
    • camera_server.py'yi çalıştırmak için python kullanın
    • 127.0.0.1:5000/video_feed'de kontrol edin
  5. Flask web sunucusunu açılışta çalışacak şekilde ayarlayın:

    • Aşağıdaki satırı /etc/rc.local dosyasına ekleyin (çıkış satırından önce):

      piton /camera_server.py

Adım 6: Kontrol Paneli Nasıl Kullanılır

Kontrol Paneli Nasıl Kullanılır
Kontrol Paneli Nasıl Kullanılır

Kurmak

Bu kısım oldukça basittir, tek yapmanız gereken "blynk app token"ı "index.js" dosyasına aşağıdaki gibi eklemektir:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // önceki adımlardaki aynı belirteci kullanın.

kullanım

  1. "index.html" dosyasına çift tıklayarak kontrol panelini açın.
  2. Gösterge paneli, sistemi her 10 dakikada bir otomatik olarak örnekleyecektir.
  3. Su & Gıda Konteyner ölçüleri manuel olarak alınabilir.
  4. "Su Ver" ve "Besle" düğmeleri, evcil hayvanınıza aktif olarak yiyecek ve su sağlamak için kullanılır.
  5. Gösterge panelinin alt kısmı, önceki adım talimatlarını dikkatli bir şekilde takip ettiyseniz, kamera modülünden canlı yayını sunacaktır.

Not: Beslediğinizde mama kabının açılma sayısını özelleştirmek istiyorsanız, "index.js" dosyasını açın ve bir sonraki satırdaki "değeri" "3"ten istediğiniz herhangi bir sayıya değiştirin:

fetch(baseURL + '/update/V1?value=3');

7. Adım: Zorluklar, Sınırlar ve Gelecek Planları

Zorluklar

Bu projede bizim için temel zorluklar, gıda kabının açma/kapama mekanizmasını tasarlamak ve gıda birimini kontrol etmek ve ölçmek için istikrarlı bir eşzamanlı kod oluşturmaktı. Memnun kalana kadar en az 4 farklı versiyon denediğimize inanıyorum. Ana endişe, çıkışı engelleyen yiyeceklerdi. Bunu önlemek için Balyoz tasarımı seçtik, bu şekilde kabı ne zaman açsak, "çekiç" kuyruğu yiyecekleri çıkışa doğru süpürüyor. Ayrıca yemek kabının yapımında çift taraflı tüp kullanılması hayatımızı çok kolaylaştırdı. Bu tür bir nesne, bir tarafa çıkış mekanizmasını ve içeriğini ölçmek için diğer tarafa bir mesafe sensörünü yerleştirmek için mükemmeldir.

limitler

Projenin bu aşamasında, sistemde birkaç sınırlama vardır:

  1. Tam otomatik değildir, yani su besleme ve boşaltma, herhangi bir akıllı programlayıcı olmadan (gelecekte eklenebilecek veya sizin tarafınızdan uygulanabilecek!) izleme panosu aracılığıyla manuel olarak yapılır.
  2. Kontrol paneli kendi dizüstü bilgisayarınızdan yerel olarak çalışır, daha erişilebilir hale getirmek için "Heroku" gibi popüler platformlarda barındırılabilir.
  3. Daha iyi görüntü kalitesi sağlamak ve evcil hayvanınızla iletişim kanalı eklemeyi mümkün kılmak için (hoparlör kullanarak) çok daha karmaşık bir modülle değiştirilebilen çok basit bir kamera modülü kullandık.

Gelecek planları

Bu sistemi geliştirmeye devam etmek için zamanımız ve bütçemiz olsaydı, aklımızda birkaç fikir ve olası program vardı:

  1. Evcil hayvan besleme için otomatik zamanlama sistemi ekleme - 2~3 günlük çalışma.
  2. Sistemimizin kullanıcılarının çevrimiçi olarak barındırılan ve bağlı herhangi bir cihazdan erişilebilen özelleştirilmiş pano oluşturmasını sağlamak için bir web sitesi oluşturmak - 1-2 aylık çalışma.
  3. Daha fazla evcil hayvan sahibinin evcil hayvanlarını çevrimiçi olarak daha iyi kontrol etmesini ve iletişim kurmasını sağlayan bu sistem için endüstriyel bir sürüm üzerinde çalışın, bu Eğitilebilir Yazının sonucunu gören arkadaşlarımızdan çok ilgi gördük. Yani, projeyi bir sonraki seviyeye taşımak için zaman tutkunuz varsa - tam desteğiniz var!

Umarız bu projeyi okumaktan (ve umarım inşa etmekten) keyif almışsınızdır:)

Önerilen: