İçindekiler:

IDC2018IOT Çöp Kutusu-Çevrimiçi: 7 Adım
IDC2018IOT Çöp Kutusu-Çevrimiçi: 7 Adım

Video: IDC2018IOT Çöp Kutusu-Çevrimiçi: 7 Adım

Video: IDC2018IOT Çöp Kutusu-Çevrimiçi: 7 Adım
Video: Ünal turan Azad yılmaz Karşıma çıkın dedi 2024, Temmuz
Anonim
Image
Image
Gerekli Parçalar
Gerekli Parçalar

Tanıtım

Çöpü çöp kutusunda çok uzun süre çıkarmadan bıraktığımızda ne olduğunu herkes bilir. En bariz olan şey, daha fazla çöp için yer olmamasıdır, ama aynı zamanda kokmaya başlar ve çok tatsız olur.

Bu proje ile ev\çalışma alanı\vb. çevredeki çöp kutularınızı izlemenize yardımcı olmayı hedefliyoruz, böylece ne zaman dolduğunu her zaman bilebilirsiniz ve çöpü dışarı çıkararak anında aksiyon alabilirsiniz.

Sistem, çöp tenekesini boşaltmanız gerektiğine dair telefon bildirimi veya pano uyarısı ile sizi uyaracaktır. Sistem, çöp kutusunun doluluk düzeyinin yanı sıra içinde ölçülen sıcaklık ve nemi de dikkate alır. Sıcak ve nemli günlerde çöp kutularını boşaltmanın aciliyetine hepimiz aşinayız…

Ana Özellikler

  1. İzleme Panosu:

    • Ana bölüm:

      • Her çöp kutusunun doluluk seviyesi.
      • Her çöp kutusunun sıcaklığı ve nemi.
    • İstatistik Bölümü:

      • En dolu çöp kutusu.
      • En sıcak çöp kutusu.
  2. Uyarılar ve Bildirimler Sistemi:

    • Aşağıdaki olaylar desteklenir:

      • Çöp kutusu Dolu.
      • Bir sensör hatası oluştu.
    • Doluluk uyarıları, çöp kutusunun doluluk düzeyinin yanı sıra çöp kutusunun sıcaklık ve nem düzeylerini de dikkate alır.
    • Uyarılar, telefon bildirimleri ve gösterge tablosu uyarıları yoluyla gönderilebilir.
    • Her uyarı kanalı, gösterge tablosu aracılığıyla açılıp kapatılabilir.
  3. Ölçeklenebilirlik:

    • Kalibrasyon butonunu kullanarak sistemi farklı kapasitelerde farklı çöp kutularına ayarlamak mümkündür.
    • Nispeten kolay bir şekilde daha fazla çöp kutusu eklemek mümkündür. Aynı sistemi yeni bir çöp kutusuna monte edebilir, çöp tenekesi ID'sini ayarlayabilir ve kalibre edebilirsiniz (bir düğmeye basarak). 3'ten fazla çöp kutusuna sahip olmak, Gösterge Tablosunun genişletilmesini gerektirecektir (gerçekleştirilmesi kolay bir görev).

Biz Kimiz?

Bu proje (sevgi ve özveri ile!) IDC Herzliya öğrencileri Rom Cyncynatus ve Daniel Alima tarafından IoT kursumuzun final projesi olarak oluşturuldu. Çalışmamızı faydalı bulacağınızı ve keyifle kullanacağınızı umuyoruz!

Adım 1: Gerekli Parçalar

Sistemi kurmak için aşağıdaki bileşenleri ve parçaları edineceksiniz:

  1. Çöp tenekesi(tercihen kapaklı): Bunun için kullanılacak… Şey… Bununla ne yapacağımızı biliyorsun, ha?;)
  2. Breadboard: Tüm farklı bileşenleri herhangi bir lehim kullanmadan bağlamak için.
  3. NodeMCU (ESP-8266): Sensörleri okumaktan ve bilgileri buluta göndermekten sorumlu.
  4. Mesafe IR Sensörü - Keskin 0A41SK: Bu sensör, kutu içindeki çöp miktarını (Doluluk seviyesi) ölçer.
  5. Sıcaklık ve Nem Sensörü - DHT11: Bu sensör çöp kutusunun içindeki sıcaklık ve nemi ölçer.
  6. Anlık Anahtar: Çöp kutusunun boyutuna göre mesafe sensörünü kalibre etmek için kullanılacaktır.
  7. Alüminyum Folyo: Açık veya kapalı kapak durumu için bir dedektör oluşturmak için kullanılacaktır.
  8. Atlama telleri: Bol miktarda ve farklı uzunluk ve renklerde alın. Her şeyi birbirine bağlayacak.
  9. Koli Bandı: Bir şeyleri yerine takmamız gerekecek.
  10. Mikro-USB Kablosu: NodeMCU'yu programlamak ve daha sonra bir güç kaynağı için bilgisayarınıza bağlamak için.
  11. USB Güç Kaynağı (akıllı telefon şarj cihazı): Çöp kutusuna takıldığında NodeMCU'ya güç sağlar.

Adım 2: Kablolama ve Montaj

Kablolama ve Montaj
Kablolama ve Montaj
Kablolama ve Montaj
Kablolama ve Montaj
Kablolama ve Montaj
Kablolama ve Montaj

kablolama

NodeMCU'yu daha sonra çöp kutusuna takmak için uygun olacak şekilde devre tahtasına yerleştirin ve USB kablosunu buna bağlayın. Ardından, farklı bileşenleri NodeMCU'ya bağlamak için yukarıdaki bağlantı şeması resmine bakın. Sensörler ve durum kabloları için uzun kablolar kullandığınızdan emin olun, böylece sistemi kurmak ve onunla birlikte çöp kutusunu kullanmak uygun olacaktır.

  • Mesafe IR Sensörü - Keskin 0A41SK:

    • Vin (Kırmızı) Vin
    • GND (Siyah) GND
    • Vout (Sarı) A0
  • Sıcaklık ve Nem Sensörü - DHT11:

    • Vin (Kırmızı) 3V3
    • GND (Siyah) GND
    • VERİ (Sarı) D4
  • anlık Anahtar:

    • Pin1 D3
    • Pin2 GND
  • Kapak durumu (aç/kapat) kabloları:

    • Tel1 D2
    • Tel2 GND

toplantı

Sistemin çöp tenekesi üzerine montajı oldukça basittir. Breadboard'u çöp kutusuna, tercihen kapağa yakın bir yere takın. Yerine sabitlemek için bant veya kablo bağı kullanın. Sonra:

  1. IR mesafe sensörünü kapağın ortasına yerleştirin (iç taraftan!). Doğru şekilde sabitlediğinizden emin olun, aksi takdirde yanlış okumalarla karşılaşırsınız!
  2. Sıcaklık ve nem sensörünü çöp kutusunun içinde bir yere yerleştirin. Bantla sabitleyin.
  3. Kapağın kenarını ve çöp kutusunun ucunu alüminyum folyo ile kapatın. Kapak kapalıyken iyi bir temas olduğundan emin olun. Bu, sisteme çöp kutusunun açıldığını veya kapandığını bildirecektir. Ardından kapak durum kablolarının her birini alüminyum folyodan birine yapıştırın ve bantla sabitleyin.

Adım 3: MQTT, Node-RED ve IFTTT'yi kurun

MQTT, Node-RED ve IFTTT'yi kurun
MQTT, Node-RED ve IFTTT'yi kurun
MQTT, Node-RED ve IFTTT'yi kurun
MQTT, Node-RED ve IFTTT'yi kurun
MQTT, Node-RED ve IFTTT'yi kurun
MQTT, Node-RED ve IFTTT'yi kurun

Proje mantığının çoğu aslında bulutta uygulanır. NodeMCU, verileri MQTT sunucusuna gönderir ve Node-RED onu tüketir ve mantığını buna uygular (ilerideki mimari hakkında daha fazla bilgi). Son olarak, push bildirimlerini (uyarıları) akıllı telefonumuza iletmek için IFTTT kullandık.

Sırasıyla MQTT ve Node-RED sunucularımız olarak CloudMQTT ve FRED bulut hizmetlerini kullanacağız ve push bildirimleri için IFTTT kullanacağız.

  1. Ücretsiz planla CloudMQTT'ye kaydolun. Kimlik bilgilerinizi MQTT sunucusuna not edin (kullanıcı adı ve parola).
  2. IFTTT'ye kaydolun. Yeni bir "Webhooks IFTTT uygulama bildirimi" uygulaması oluşturun. WebHookds olay adı olarak "Cep Telefonu Bildirimi"ni kullanın. Nitty cesur ayrıntılar için yukarıdaki resme bakın. Yapıcı API anahtarınızı not edin.
  3. IFTTT uygulamasını telefonunuza indirin ve kimlik bilgilerinizle oturum açın. Bu, push bildirimleri almanızı sağlar.
  4. Ücretsiz planla FRED'e kaydolun.
  5. FRED örneğini kurup çalıştırdıktan sonra, ekli akışları ona içe aktarın (3 Çubuk düğmesi Panodan İçe Aktar). Her dosyanın içeriğini (widgest.json, alerts.json, Statistics.json) yapıştırın ve içe aktarın.
  6. CloudMQTT kimlik bilgilerinizi güncellemek için MQTT düğümlerinden birini düzenleyin (biri yeterlidir).
  7. IFTTT oluşturucu API anahtarınızı güncellemek için IFTTT düğümünü düzenleyin.

Adım 4: NodeMCU ve Çöp Kovası Kapasite Kalibrasyonunu Programlayın

Her şeyi bağladıktan sonra, NodeMCU'yu uygun yazılımla (sketch) programlamamız gerekiyor, böylece ona bağlı olan her şeyi gerçekten kullanacak ve internet ile iletişim kuracak.

  1. Arduino IDE'yi buradan indirin ve kurun.
  2. NodeMCU kart tipini aşağıdaki talimatın başında açıklandığı gibi kurun ve ayarlayın.
  3. Aşağıdaki kitaplıkları kurun (Sketch Include Library Manage Libraries…):

    1. Adafruit MQTT Kütüphanesi (Adafruit tarafından)
    2. DHT sensör kütüphanesi (Adafruit tarafından)
    3. SharpIR (Giuseppe Masino tarafından)
    4. EEPROMANything - burada açıklama.
  4. GarbageCanOnline.ino dosyasını açın ve aşağıdakileri güncelleyin:

    1. WiFi kimlik bilgileriniz (WLAN_SSID, WLAN_PASS)
    2. CloudMQTT kimlik bilgileriniz (MQTT_USERNAME, MQTT_PASSWORD)
    3. Bu ikinci bir çöp kutusu veya daha fazlasıysa, çöp tenekesi kimliğini değiştirin (GARBAGECAN_ID)
  5. Güncellenen çizimi NodeMCU'nuza yükleyin.
  6. Seri izleme penceresini açın (Ctrl+M) ve sensör verilerini CloudMQTT'ye yayınlamayı başardığından emin olun.
  7. Şimdi, kapak kapalıyken ve çöp kutusu boşken, çöp kutusu kapasitesini kalibre etmek için kalibrasyon düğmesine uzun basın.
  8. Çöp kutusu hazır. Bilgisayarınızdan bağlantısını kesebilir ve USB güç kaynağını kullanarak belirlenen yerine bağlayabilirsiniz.

Adım 5: Sistemi Kullanma

Sistemi Kullanmak
Sistemi Kullanmak
Sistemi Kullanmak
Sistemi Kullanmak
Sistemi Kullanmak
Sistemi Kullanmak

Buraya kadar ulaştıysanız, her şey yolunda ve çalışıyor olmalıdır. Sistemin farklı kullanım yönlerine hızlı bir genel bakış yapalım.

Bağlı yalnızca tek bir çöp kutunuz olduğunu varsayıyoruz, ancak daha sonra daha fazlasını eklemek kolaydır!

İlk olarak, ana gösterge panosuna dikkat edin. Çöp kutusunun doluluk, sıcaklık ve nem seviyelerini görerek ana ekranda olmalısınız. Soldaki anahtarları kullanarak telefon bildirimlerini ve Gösterge Tablosu uyarılarını kontrol edebilirsiniz.

Çöp kutusunun içindeki çöp miktarı değiştiğinde, göstergenin de buna göre değiştiğini göreceksiniz. Bu aynı zamanda sıcaklık ve nem grafikleri için de geçerlidir.

Doluluk seviyesi %85-90'a ulaştığında (tam eşik sıcaklık ve neme bağlıdır) veya bir sensör hatası oluştuğunda, tercih ettiğiniz yöntem(ler) üzerinden bir bildirim alırsınız. Çöp kutusu başına saatte bir kez bilgilendirileceksiniz.

İstatistikler görünümünde, şu anda en dolu çöp kutusunu ve en sıcak olanı görebileceksiniz. Tatsız başlık, diyebiliriz ki…

Adım 6: Akışı Anlamak

Akışı Anlamak
Akışı Anlamak
Akışı Anlamak
Akışı Anlamak
Akışı Anlamak
Akışı Anlamak
Akışı Anlamak
Akışı Anlamak

Muhtemelen şimdiye kadar fark ettiğiniz gibi, sistemde çok sayıda "hareketli parça" var. Şeylerin birbiriyle nasıl bağlantılı olduğunu açıklamaya çalışacağız.

İlk olarak, NodeMCU ve sensörleri ile çöp kutumuz var. Bunlardan bolca alabiliriz - sadece birbirimizin "kopyaları".

NodeMCU, çöp kutusuna yerleştirilen farklı sensörleri ölçer ve verileri MQTT sunucusuna (MQTT protokolü) yayınlar. MQTT sunucusunu birçok çöp kutusunun bilgilerini rapor edebileceği büyük bir bilgi alışverişi olarak düşünebilirsiniz.

MQTT sunucusuna bağlanan diğer bir varlık Node-RED'dir. Node-RED, duyusal verileri taşıyan çöp tenekelerinden gelen farklı mesajları dinler ve mantığını buna uygular. Bilginin "akışlarını" kullanarak çalışır. Her mesaj alındığında, türüne (MQTT konusu) bağlı olarak, sistemin farklı özelliklerini etkinleştiren (pano güncelleme, uyarı gönderme vb.) belirli işlem zincirlerine girer. Düğüm-RED sistemin "beyni"dir. Her yerde olup biten her şeyin farkındadır ve buna göre hareket edebilir.

Node-RED'in içinde 3 ana bilgi akışı oluşturduk:

  1. Widget'lar - Node-RED'e beslenen duyusal bilgiler daha sonra gösterge tablosunda göstergeler ve grafikler aracılığıyla görüntülenir.
  2. Uyarılar - Duyusal bilgiler, bir uyarının tetiklenip tetiklenmeyeceğine karar vermek için işlenir (panoda veya akıllı telefon uygulamasında). Doluluk seviyesi, sıcaklık ve nem ile birlikte kullanıcıyı çöp kutusunun dolu olduğu konusunda bilgilendirmeye karar vermek için dikkate alınır. Ayrıca duyusal hatalar da aynı akış tarafından rapor edilir.
  3. İstatistikler - Duyusal bilgiler, en dolu ve en sıcak çöp kutularını görüntülemek için toplanır.

Node-RED'in push bildirimi gönderebilmesi için IFTTT (HTTP protokolü ile) adlı bir servise bağlanır. İlgili bildirim metni ile belirli bir IFTTT olayını etkinleştirir ve IFTTT bildirimi akıllı telefonumuza gönderir (HTTP & XMPP protokolleri).

(a) sistemin genel yapısını ve (b) Node-RED içindeki 3 farklı bilgi akışını daha iyi anlamak için yukarıdaki görsellere bakın

7. Adım: Zorluklar, Sınırlamalar ve Gelecek İçin Planlar…

Zorluklar

Bu projedeki ana zorluklar çoğunlukla MQTT ve Node-RED hizmetlerini ele almaktı. İlk önce AdafruitIO'yu kullandık, ancak özel MQTT uygulaması bizim için pek iyi değildi. Node-RED içindeki "beslemeleri" ile çalışmak uygun değildi. Bu nedenle sonunda Mosquitto MQTT sunucusuna dayanan ve çok daha standart olan CloudMQTT'yi seçtik. Ardından, çoğunlukla Düğüm-RED'in bir canavar olması nedeniyle oldukça zorlayıcı olan Düğüm-RED'i ele almaya geçtik. Örneğin bizim açımızdan IFTTT'den çok daha kapsamlı ve profesyonel. Sistemin gerekli özelliklerini oluşturmak için akış tabanlı tasarım yaklaşımını nasıl kullanacağımızı ayarlamak ve öğrenmek zorunda kaldık. Üstelik en büyük avantajlarından biri javascript kodunu desteklemesi ama javascript programcısı olmadığımız için alışması biraz zaman aldı. Tüm bunlara rağmen, bu özel araçla çalışmaktan gerçekten keyif aldık ve çok ilginç ve faydalı olduğunu gördük.

sınırlamalar

Kısıtlamalarla ilgili olarak, ilki, yalnızca ücretsiz hizmetleri kullandığımız ve tam ölçekli çalışmaya izin vermeyecekleri gerçeği olacaktır. CloudMQTT ücretsiz planı, 5'ten fazla paralel bağlantıya izin vermez, yani yalnızca 4 çöp kutusuna ve Node-RED'e sahip olabiliriz. FRED Node-RED ücretsiz planı yalnızca 24 saatlik düz kullanıma izin verir, bundan sonra manuel olarak oturum açmanız ve zamanlayıcıyı sıfırlamanız gerekir. Ancak bu sorunlar, bu hizmetleri yerel olarak çalıştırarak veya sınırlamaları kaldırmak için biraz fazladan ödeme yaparak kolayca çözülebilir. İkinci sınırlama, dördüncü çöp kutusunu ve sonrakini eklediğinde, uygun pencere öğelerini eklemek için Düğüm-RED'deki pencere öğeleri akışını manuel olarak düzenlemesi gerektiği gerçeğidir.

Gelecek için planlar

Sistemimizi daha da geliştirmek ve genişletmek için bazı fikirlerimiz vardı:

  1. Ücretsiz olmayan bulut hizmetlerine geçin. (tek iş günü).
  2. Çöp kutusuna bir çöp kompresörü ekleyerek boşaltma sıklığını azaltır. (4 aylık çalışma)
  3. Şehirdeki çöpleri işleyen şehir kamyonlarının verimliliğini artırmak için kentsel ve endüstriyel çöp kutuları ile çalışmak. Bu, kamyon sürücülerinin çöpleri işlerken rotalarını çok daha iyi planlayabilmeleri için gösterge tablosunu ve bildirim sistemini büyük ölçüde iyileştirmek anlamına gelir. (6 aylık çalışma).
  4. Çöp kutusuna özel biyolojik solüsyonlar dökmek ve çöp tenekesi içindeyken geri dönüşüme yardımcı olmak gibi çöp kutusuna geri dönüşüm yetenekleri eklemek. Bu, örneğin bahçeler için kompost üretmek için yurt içinde kullanılabilir, ancak aynı zamanda endüstriyel kutularda da kullanılabilir. (6 aylık çalışma).

Önerilen: