İçindekiler:

Çöp Sistemi: 7 Adım
Çöp Sistemi: 7 Adım

Video: Çöp Sistemi: 7 Adım

Video: Çöp Sistemi: 7 Adım
Video: Beni ALLAH Yargılar, SEN Değil..! 2024, Kasım
Anonim
Çöp Sistemi
Çöp Sistemi

Çöp imha işlemlerini daha verimli hale getirmek için bir mahallenin topluluk çöp dolgusunu veya mahalledeki her çöpte bir sensör izlemenin bir yolunu bulmaya karar verdik. İki haftada bir toplama için bir kamyon gelirse, ya ben ya da komşum sadece biraz dışarı atarsak diye düşündük. Mahallenin yarısının dolu çöp tenekesi göndermediği bir yere kamyon göndermek verimsiz olmaz mıydı? Komşumuzun çöp kutusunun doldurulduğunu görmek ve benimki doluysa ve onlarınki boşsa onların çöplerini kullanmak ve bunun tersi mümkün olsaydı harika olurdu. Bu projeyi halletmek için bir ahududu pi ile birlikte ultrasonik sensör HC-SR04'ü kullanmaya karar verdik.

Gereçler

Ultrasonik sensör (HC-SR04)

Raspberry Pi (Pi 4 Model B kullandık)

ekmek tahtası

Atlama kabloları

Birkaç direnç (3 x 1k ohm)

Adım 1: HC-SR04'ü Bağlama

HC-SR04'ün bağlanması
HC-SR04'ün bağlanması

Raspberry Pi kullandığımız için, Pi'nin GPIO pinlerine giden voltajı düzenlemek için sadece 3.3v'ye izin verdikleri için bir voltaj bölücü kullanmamız gerekiyor. HC-SR04, 5V kullanır ancak Pi'ye bağlanırken 3,3V'a düşürülmesi gerekir. 5V ve toprak pinlerini sırasıyla bağlayın ve programınıza göre eko ve tetik pinlerini saygılı pinlere takın. Programımızda sırasıyla eko ve tetik için pin 23 ve 24 kullandık.

2. Adım: Sivrisinek ve Paho MQTT

Ultrasonik sensörün Pi ile çalışmasını sağlamak için Python üzerinde programlamaya başlamadan önce, ultrasonik sensörün programlama yazılımımız Node-RED ile iletişim kurmasını sağlamak için bu uygulamaları kurmalıyız. Mosquitto, Pi üzerinde kullanabileceğiniz bir MQTT komisyoncusu iken Paho MQTT, sensörün MQTT komisyoncusu ile iletişim kurmasını sağlamak için Python'da kodlama yapmanıza izin veren kütüphanedir. Bunların ikisini de kurmak için bu komutları Pi terminalinize yazarsınız.

sudo uygun güncelleme

sudo apt install -y mosquitto sivrisinek istemcileri

sudo apt-get install python3-pip

sudo pip3 paho-mqtt yükleyin

Adım 3: Ultrasonik Sensör için Python Programı

Bu, sensörden gelen verileri okumak ve ayrıca MQTT aracısına yayınlamak için kullandığım programdır.

4. Adım: Düğüm-KIRMIZI

Düğüm-KIRMIZI
Düğüm-KIRMIZI
Düğüm-KIRMIZI
Düğüm-KIRMIZI
Düğüm-KIRMIZI
Düğüm-KIRMIZI
Düğüm-KIRMIZI
Düğüm-KIRMIZI

Bazı düğümler programda önceden kurulu olarak gelmez, bu yüzden onu paletlerden kurmanız gerekebilir. Yüklemeniz gerekenler, node-red-dashboard ve node-red-node-sqlite'dir.

Burada programlama yazılımımızı ve sensörü kullanmaya başlıyoruz. İhtiyacınız olan ilk düğüm, MQTT-in Düğümüdür ve bu, programı yukarıdan çalıştıran sensörümüzü bu yazılıma veri göndermek için kullanmamıza izin verir. Kullandığımız aralık düğümü elimizdeki değerleri çevirir (yani programdan 5cm dolu olduğu için %100'e çeviriyoruz). Menzil düğümünü takiben 2 işlev düğümümüz var, biri gösterge tablomuza mesajı görüntülemek için ve diğeri çöpün dolduğunu görsel olarak göstermek için. İşlev düğümleri için program ektedir.

Mümkünse, bu akış birden fazla ultrasonik sensör için kullanılabilir. Ancak projemiz için daha fazla sensör alamadığımız için simülasyon verileri yapmak zorunda kaldık. Bunu yapma şeklimiz çok benzer ancak kullanıcının her çöpe rastgele yüzde 1-10 çöp eklemek için tıklayabileceği butonlarımız var. Biri çöp eklemek, diğeri temizlemek için 2 düğme kullandık. Gösterge, mesajlar ve gösterge hala tamamen aynı, çöplerin sayılması ve sayılması için kod biraz farklı olsa da.

Adım 5: Verileri Günlüğe Kaydetme

Günlük Verileri
Günlük Verileri
Günlük Verileri
Günlük Verileri
Günlük Verileri
Günlük Verileri

Kamyon çöpleri boşaltmaya geldiğinde çöplerin ne kadar dolu olduğunu kaydetmenin iyi bir fikir olacağına karar verdik. Sqlite düğümünün yardımıyla, verileri Pi'ye kaydeden verileri okuyup yazabiliyoruz. Bu düğümü daha önce söylediğim gibi yüklemeniz gerekir.

Veri oluşturma ve kaydetme adımları aşağıdaki gibidir:

1. Veritabanını oluşturun

2. Verileri günlüğe kaydedin

3. Kontrol panelimizde gösterilecek verileri çekin

4. Verileri temizleyin ve silin

SQL'in çalışma şekli, CREATE TABLE, INSERT INTO, SELECT FROM ve DELETE FROM konularını oluşturmanız gerektiğidir. Zaman damgası düğümlerini kullanarak, bu işlevlerin her birini (oluşturma, ekleme, seçme ve silme) yapan sqlite düğümüne yönelik konuları yürütebiliriz. Veritabanını yalnızca bir kez oluşturmamız gerekiyor ve bir kez bittiğinde verileri günlüğe kaydedebiliriz. Veritabanı oluşturulduktan sonra, verileri kaydedebiliriz ve kamyon geldiğinde oturum açmak için tekrar kullanıcı girişini kullandık. Bunu, %80 kapasitede (dolu kabul edilen) 5 çöplük olan kamyonun gelmesine izin verilene kadar veri kaydı yapamayacak hale getirdik. Ayrıca 500'ü tekrar %0-100'e ölçeklendirmek için menzil düğümünü tekrar kullandık. Daha sonra istersek tüm verileri veritabanından silme seçeneğimiz var. UI tablo düğümü, tabloyu panomuzda güzel biçimlendirilmiş bir şekilde görmemizi sağlayan bir düğümdür.

6. Adım: Düzen

Tüm bunlar bittikten sonra Node-RED yardımıyla istediğiniz bir düzen oluşturabilirsiniz. Yan sekmede, onları istediğiniz gibi yerleştirebileceksiniz ve daha birçok özelleştirme seçeneğiniz var. Ayrıca tüm programım için akışım ekli.

7. Adım: Sonuç

Bu projeyi tamamladıktan sonra, programın daha da büyüdüğünü görebileceğimiz alanlar var. Günlüğe kaydetmeyi otomatik olarak yapmanın bir yolunu asla bulamadım, çünkü yapabileceğimiz tek yol, belirli aralıklarla oturum açmaktı ve çöp kamyonu bir kez gelirse tekrar numaralarına ihtiyacımız olmayacaktı. Bunun kısmen, bu programlamada daha rahat olduğumuz için, onu fonksiyon düğümlerine ve programlamaya nasıl büyük ölçüde bağımlı hale getirmeye karar verdiğimizden kaynaklandığını düşünüyorum. Bitirdikten sonra araştırdıktan sonra, her şey için yapılmış düğümler olduğu açıktı ve daha önce switch ve rbe düğümlerinin işlevini bulsaydık hayatı çok daha kolay hale getirebilirdi. Bir de çalıştıramadığımız ultrasonik sensörler için yapılmış bir düğüm vardı. Tetik ve yankı pinlerine sahip bir düğüm olduğu için MQTT'ye veya Python programına gerek olmayacağından işleri kolaylaştırabilirdi. Python programını yukarıda gördüğünüz gibi yaparak bu sorunu çözmeye karar verdik. Düğüm-RED'e dalmak isteyen herkes için büyük bir ipucu, her bir akışın çalışıp çalışmadığını ve istediğiniz/ihtiyaç duyduğunuz çıktıyı alıp almadığını anlamak için çok sayıda hata ayıklama düğümü kullanmanız gerektiğidir.

Önerilen: