İçindekiler:
- Gereçler
- Adım 1: HC-SR04'ü Bağlama
- 2. Adım: Sivrisinek ve Paho MQTT
- Adım 3: Ultrasonik Sensör için Python Programı
- 4. Adım: Düğüm-KIRMIZI
- Adım 5: Verileri Günlüğe Kaydetme
- 6. Adım: Düzen
- 7. Adım: Sonuç
Video: Çöp Sistemi: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Çö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
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
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
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:
ML ile Pi Çöp Sınıflandırıcısı Yapın!: 8 Adım (Resimlerle)
ML ile Pi Çöp Sınıflandırıcısı Yapın: Sevgiyle "Nereye gidiyor?!" olarak bilinen Çöp Sınıflandırıcısı projesi, şeyleri daha hızlı ve daha güvenilir bir şekilde atmak için tasarlanmıştır. Bu proje bir Makine Öğrenimi (ML) modeli kullanır. Lobe'de eğitim almış, yeni başlayanlar için uygun (kodsuz!)
Arduino, Ultrasonik Sensör ve Servo Motor Kullanan Akıllı Çöp Kovası: 3 Adım
Arduino, Ultrasonik Sensör ve Servo Motor Kullanan Akıllı Çöp Kovası: Bu projede sizlere, çöp ile yaklaştığınızda çöp kutusunun kapağının otomatik olarak açılacağı Arduino ile Akıllı Çöp Kovası Nasıl Yapılır onu göstereceğim. Bu Akıllı çöp kutusunu yapmak için kullanılan diğer önemli bileşenler bir HC-04 Ultrasonik Sensördür
OTOMATİK ÇÖP KUTUSU VEYA KUTUSU. GEZEGENİ KURTARMAK İÇİN: 19 Adım (Resimli)
OTOMATİK ÇÖP KUTUSU VEYA KUTUSU. GEZEGENİ KURTARMAK İÇİN: Başlamadan önce bunu okumadan önce ilk videoyu izlemenizi tavsiye ederim çünkü çok faydalı. Merhaba, benim adım Jacob ve İngiltere'de yaşıyorum. Geri dönüşüm yaşadığım yerde büyük bir sorun, tarlalarda çok fazla çöp görüyorum ve zararlı olabilir. NS
Akıllı Çöp Yönetim Sistemi: 23 Adım
Akıllı Çöp Yönetim Sistemi: GİRİŞ.Bu proje ile ilgili Mevcut Sorun veya Sorun Mevcut toplumumuzun temel sorunu katı atık madde birikimidir. Toplumumuzun sağlığı ve çevre üzerinde daha büyük bir etkisi olacaktır. Algılama, monitör
Mini HiFi Raf Sistemi (Ses Sistemi) Nasıl Doğru Bağlanır ve Kurulur: 8 Adım (Resimlerle)
Mini HiFi Raf Sistemi (Ses Sistemi) Nasıl Düzgün Bağlanır ve Kurulur: Elektrik mühendisliği hakkında bilgi edinmekten keyif alan biriyim. Ann Richards Genç Kadın Liderler Okulu'nda bir lisedeyim. Mini LG HiFi Raf Sisteminden müziklerinin keyfini çıkarmak isteyen herkese yardımcı olmak için bunu öğretilebilir hale getiriyorum