Bu eğitimde, engelleri tespit etmek için ESP32 modülüyle bir kızılötesi engel algılama sensörünün nasıl kullanılacağını öğreneceğiz. Bu proje, sensörün bir engel algılandığında bir buzzer'ı nasıl tetikleyebileceğini gösterecektir. Kurulum ayrıca algılama durumunu seri monitörde görüntüleyerek sensörün işlevselliğini gözlemlemenin açık ve etkileşimli bir yolunu sağlayacaktır.
Wi-Fi ve Bluetooth özelliklerine sahip ESP32 mikrodenetleyicisini içeren SunFounder ESP32 IoT Öğrenme Kiti ile çalışacağız. Kızılötesi sensör, yakındaki engellerden yansıyacak kızılötesi ışık göndererek çalışır. Işık geri yansıdığında, sensör kodumuzda okuyacağımız bir çıkış sinyali tetikleyecektir. Ayrıca, bir engel algılandığında etkinleşen ve sesli bir uyarı sağlayan bir buzzer da ekleyeceğiz.
Donanım Açıklaması
Bu projenin ana bileşenleri ESP32 modülü, kızılötesi engel algılama sensörü ve bir buzzer'dır. ESP32 modülü, sensör girişlerini işleyen ve çıkışları kontrol eden merkezi işlem birimi olarak görev yapar. Lityum pil ile güç sağlanabilir, bu da onu çeşitli uygulamalar için taşınabilir ve esnek kılar.
Kızılötesi engel algılama sensörü bir verici ve bir alıcıdan oluşur. Verici kızılötesi ışık yayar, alıcı ise yakındaki nesnelerden yansıyan ışığı algılar. Bir engel mevcut olduğunda, sensörün çıkış pini düşük olur ve ESP32'ye buzzer'ı açmak gibi bir işlem yapması için sinyal verir.
Veri Sayfası Ayrıntıları
Üretici
SunFounder
Parça numarası
Kızılötesi Engel Algılama Sensörü
Çalışma Voltajı
3,3 V - 5 V
Çıkış Tipi
Dijital (Engel algılandığında düşük)
Algılama Menzili
20 cm'ye kadar
Tepki Süresi
10 ms'den az
Paket
Modül
Güç kaynağı: Çalışma için 3,3 V ila 5 V.
Bir engel algılandığında çıkış sinyali düşük olur.
Potansiyometre ile ayarlanabilir hassasiyet.
Tipik algılama menzili 20 cm'ye kadardır.
10 ms'nin altında hızlı tepki süresi.
Bağlantı Talimatları
ESP32-19-obstacle_voide-wiring
Kızılötesi engel algılama sensörünü ESP32'ye bağlamak için sensörün VCC pinini ESP32 üzerindeki 5V pinine bağlayarak başlayın. Ardından, sensörün GND pinini ESP32 üzerindeki GND pinlerinden birine bağlayın. Son olarak, sensörün OUT pinini ESP32 üzerindeki GPIO pin 14'e bağlayın.
Buzzer için negatif terminali GND'ye ve pozitif terminali GPIO pin 27'ye bağlayın. Tüm bağlantıların güvenli olduğundan ve sensörün doğru şekilde güç aldığından emin olun. Sensör ve buzzer yalnızca basit güç ve sinyal bağlantıları gerektirdiğinden bağlantı basit olmalıdır.
Kod Örnekleri ve Açıklama
Kodda öncelikle engel algılama sensörüne bağlı pini tanımlıyoruz. Bu, 14'e ayarlanan avoidPin tanımlayıcısı kullanılarak yapılır. Ayrıca sensörün çıkış durumunu tutmak için bir avoidState değişkeni bildiriyoruz.
const int avoidPin = 14; // engel modülü pininin numarası
int avoidState = 0;
Kurulum fonksiyonunda seri iletişimi başlatıyor ve avoidPin'i giriş olarak ayarlıyoruz. Bu, ESP32'nin sensörün çıkış durumunu okumasını sağlar.
Döngü fonksiyonu içinde, digitalRead(avoidPin) kullanarak sensörün çıkışını sürekli okuyor ve sonucu avoidState içinde saklıyoruz. Bu değer daha sonra seri monitöre yazdırılır ve bir engelin algılanıp algılanmadığını (çıkış 0 olacaktır) veya algılanmadığını (çıkış 1 olacaktır) görmemizi sağlar.
Tam kod için lütfen makalenin altındaki yükleme bölümüne bakın.
Gösterim / Beklentiler
Kurulum tamamlandığında ve kod yüklendiğinde, bir engelin algılanıp algılanmadığına bağlı olarak seri monitörde 0 veya 1 görüntülendiğini görmelisiniz. Algılama menzili içinde bir engel olduğunda çıkış 0 okur ve buzzer çalar. Engel kaldırılırsa çıkış 1 okur ve buzzer durur. Bu işlevsellik videoda gösterilmiştir (videoda 12:30'da).
Yaygın sorunlar, sensörün düzgün çalışmamasına yol açabilecek yanlış bağlantı veya verilerin doğru görüntülenmesini engelleyen seri monitördeki uyumsuz baud hızları olabilir. Sorunlarla karşılaşırsanız bu yönleri kontrol ettiğinizden emin olun.
Video Zaman Damgaları
00:00 Başlangıç
1:57 Proje tanıtımı
4:33 Engel Algılama Bağlantısı
5:55 Engel Algılama için Arduino Kodu
7:36 Arduino IDE'de ESP32 Kartı ve COM portu Seçimi
818-ESP32 Tutorial 19/55- Arduino code for obstacle avoidance module
Dil: C++
// set pin
const int avoidPin = 14; // the number of the avoid avoid module pin
// variable for storing the avoid status
int avoidState = 0;
void setup() {
Serial.begin(115200);
// initialize the avoid pin as an input
pinMode(avoidPin, INPUT);
}
void loop() {
// read the state of the avoid value
avoidState = digitalRead(avoidPin);
Serial.println(avoidState);
}