- Gerekli Bileşenler:
- HC-SR04 Ultrasonik Sensör:
- ESP8266 Wi-Fi Modülü:
- Devre Şeması ve Açıklaması:
- Kod Açıklaması:
- "; if (mesafe <5) {webpage + =" Çöp kutusu Dolu ";} else {web sayfası + =" Çöp kutusu Boş ";} web sayfası + ="
- Projenin Test Edilmesi ve Çıktısı:
Bu DIY'de, web sunucusu aracılığıyla çöp kutusunun boş mu dolu mu olduğunu ve 'Çöp Kutusu'nuzun veya' Çöp Kutusu'nuzun durumunu öğrenebileceğiniz bir IOT tabanlı çöp kutusu / çöp İzleme Sistemi yapacağız. İnternet üzerinden dünyanın herhangi bir yerinde. Çok faydalı olacak ve çöp kutularına halka açık yerlerde ve evde kurulabilir.
Bu IoT Projesinde, çöp tenekesinin çöp ile dolu olup olmadığını tespit etmek için bir Ultrasonik Sensör kullanılmaktadır. Burada Ultrasonik Sensör, Çöp Kutusunun üst kısmına kurulur ve çöpün Çöp kutusunun üst kısmına olan mesafesini ölçer ve çöp tenekesinin boyutuna göre bir eşik değeri belirleyebiliriz. Mesafe bu eşik değerinden daha az olacaksa Çöp kutusu çöp dolu demektir ve web sayfasına “Sepet Dolu” mesajını yazdıracağız ve mesafe bu eşik değerinden fazla olacaksa yazdıracağız "Sepet Boş" mesajı. Burada Program kodunda 5cm Eşik değerini ayarladık. ESP8266 Wi-Fi modülünü kullanacağızArduino'yu web sunucusuna bağlamak için. Burada, bu Çöp İzleme Sisteminin çalışmasını göstermek için Yerel web sunucusunu kullandık.
Gerekli Bileşenler:
- Arduino Uno (herhangi birini kullanabilirsiniz)
- ESP8266 Wi-Fi modülü
- HC-SR04 Ultrasonik sensör
- 1K Dirençler
- Breadboard
- Bağlantı telleri
HC-SR04 Ultrasonik Sensör:
Ultrasonik Sensör, mesafeyi yüksek doğruluk ve kararlı okumalarla ölçmek için kullanılır. 2cm ile 400cm arası veya 1 inç ile 13 fit arası mesafeyi ölçebilir. Havada 40KHz frekansında bir ultrason dalgası yayar ve eğer nesne kendi yoluna çıkarsa sensöre geri döner. Nesneye çarpıp geri gelmek için geçen süreyi kullanarak mesafeyi hesaplayabilirsiniz.
Ultrasonik sensörün dört pimi vardır. Arduino'nun 5V ve GND'sine bağlanacak olan VCC ve GND, diğer iki pin ise Arduino'nun herhangi bir dijital pinine bağlanacak olan Trig ve Echo pinleridir. Trig pini sinyali gönderecek ve Echo pini sinyali almak için kullanılacaktır. Bir ultrason sinyali oluşturmak için, Trig pinini yaklaşık 10us yüksek tutmanız gerekir; bu, ses hızında 8 döngülü bir sonik patlama gönderir ve nesneye vurulduktan sonra Echo pimi tarafından alınacaktır.
Ultrasonik sensörün çalışmasını doğru bir şekilde anlamak ve onu kullanan herhangi bir nesnenin mesafesini ölçmek için aşağıdaki projeleri daha fazla kontrol edin:
- Ultrasonik Sensör kullanarak Arduino Tabanlı Mesafe Ölçümü
- HC-SR04 ve AVR Mikrodenetleyici kullanarak Mesafe Ölçümü
ESP8266 Wi-Fi Modülü:
ESP8266, projelerinize Wi-Fi veya internete erişim sağlayacak bir Wi-Fi modülüdür. Çok ucuz bir cihaz ama projelerinizi çok güçlü kılacak. Herhangi bir mikrodenetleyici ile iletişim kurabilir ve projeleri kablosuz hale getirebilir. IOT platformundaki en önde gelen cihazlar listesinde yer almaktadır. 3.3V ile çalışır ve 5V verirseniz hasar alır.
ESP8266'nın 8 pimi vardır; VCC ve CH-PD, wifi'yi etkinleştirmek için 3.3V'ye bağlanacaktır. TX ve RX pinleri, ESP8266'nın Arduino ile iletişiminden sorumlu olacaktır. RX pini 3.3V ile çalışır, bu yüzden projemizde yaptığımız gibi bunun için bir voltaj bölücü yapmanız gerekecektir.
Devre Şeması ve Açıklaması:
Öncelikle ESP8266'yı Arduino ile bağlayacağız. ESP8266 3,3V ile çalışır ve eğer Arduino'dan 5V verirseniz o zaman düzgün çalışmaz ve zarar görebilir. VCC ve CH_PD'yi Arduino'nun 3.3V pinine bağlayın. ESP8266'nın RX pini 3.3V üzerinde çalışır ve doğrudan Arduino'ya bağladığımızda Arduino ile iletişim kurmayacaktır. Yani bunun için bir voltaj bölücü yapmamız gerekecek. Seri bağlı üç adet 1k direnç işimizi bizim için yapacak. Aşağıdaki şekilde gösterildiği gibi dirençler aracılığıyla RX'i Arduino'nun 11 numaralı pinine ve ayrıca Arduino'nun TX'sini Arduino'nun 10 numaralı pinine bağlayın.
Şimdi HC-SR04 ultrasonik sensörü Arduino ile bağlama zamanı. Ultrasonik sensörün Arduino ile bağlantıları çok basittir. VCC'yi ve ultrasonik sensörün toprağını 5V'ye ve Arduino'nun toprağına bağlayın. Ardından ultrasonik sensörün TRIG ve ECHO pinini sırasıyla Arduino'nun 8 ve 9 numaralı pinlerine bağlayın.
Kod Açıklaması:
Kodu yüklemeden önce, ESP8266 cihazınızın Wi-Fi ağına bağlı olduğunuzdan emin olun. Aşağıdaki Kod bölümünde tam kodu kontrol edebilirsiniz, kod yorumlarla iyi bir şekilde açıklanmıştır, ayrıca aşağıda bazı önemli işlevleri de açıkladık.
Arduino önce Ultrasonik Sensörü okuyacaktır. TRIG pinini 10us için yüksek yaptığımızda ses hızında ultrasonik bir sinyal gönderecektir. Sinyal, nesneye çarptıktan sonra geri dönecek ve seyahat süresi süresini süre adlı değişkene kaydedeceğiz . Daha sonra bir formül uygulayarak nesnenin mesafesini (bizim durumumuzda çöp) hesaplayacağız ve onu distance adlı değişkene depolayacağız.
digitalWrite (trigPin, DÜŞÜK); gecikme Mikrosaniye (2); digitalWrite (trigPin, YÜKSEK); gecikme Mikrosaniye (10); digitalWrite (trigPin, DÜŞÜK); süre = pulseIn (echoPin, HIGH); mesafe = süre * 0,034 / 2;
Web sayfasındaki çıktıyı web tarayıcısında yazdırmak için HTML programlama kullanmamız gerekecek. Böylece, web sayfası adında bir dize oluşturduk ve çıktıyı içinde sakladık. Çöp kutusunun boş olup olmadığını anlamak için oraya bir koşul uyguladık. Mesafe 5 cm'den az olacaksa web sayfasında “Sepet Dolu” yazacak ve mesafe 5cm'den fazla olursa web sayfasında “Sepet Boş” mesajı gösterilecektir.
eğer (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {delay (1000); int connectionId = esp8266.read () - 48; Dize web sayfası = "
IOT Çöp İzleme Sistemi
"; web sayfası + =""; if (mesafe <5) {webpage + =" Çöp kutusu Dolu ";} else {web sayfası + =" Çöp kutusu Boş ";} web sayfası + ="
";Aşağıdaki kod, web sayfasındaki verileri gönderecek ve gösterecektir. 'Web sayfası' adlı dizede sakladığımız veriler, 'command' adlı dizede kaydedilecektir. ESP8266 daha sonra 'komuttan' karakteri tek tek okuyacak ve web sayfasına yazdıracaktır.
String sendData (String komutu, const int zaman aşımı, mantıksal hata ayıklama) {String response = ""; esp8266.print (komut); uzun int zaman = milis (); while ((zaman + zaman aşımı)> milis ()) {while (esp8266.available ()) {char c = esp8266.read (); yanıt + = c; }} if (hata ayıklama) {Seri.print (yanıt); } dönüş yanıtı; }
Projenin Test Edilmesi ve Çıktısı:
Kodu yükledikten sonra, Seri Monitörü açın ve size aşağıda gösterildiği gibi bir IP adresi gösterecektir.
Bu IP adresini tarayıcınıza yazın, çıktıyı aşağıda gösterildiği gibi gösterecektir. Çöp kutusunun boş olup olmadığını tekrar görmek isterseniz sayfayı tekrar yenilemeniz gerekecektir.
Dolayısıyla, bu Çöp İzleme Sistemi bu şekilde çalışır, bu proje, Çöp Kutusu yarı dolu olduğunda bir mesaj daha ayarlayabileceğimiz gibi birkaç özellik ekleyerek daha da geliştirilebilir veya Çöp Kutusu olduğunda kullanıcıyı uyarmak için bir E-posta / SMS tetikleyebiliriz. Sepet dolu.