Temmuz 10, 2020

WiFi Üzerinden Led Kontrolü (IoT’a Giriş)

      Merhaba, bu hafta sizlere kısaca ESP32’den ve Arduino IDE üzerinde kurulumundan bahsedeceğim ve sonrasında her şey bir LED yakmakla başlar deyip projemize başlayacağız.:)

Yüksek hızlı çift çekirdekli işlemciye sahip
Espressif  Systems ailesinden IoT endüstrisindeki Wi-Fi + Bluetooth uygulamalarınının aranan yüzüdür ESP32
dahili anten anahtarları, RF balun , güç amplifikatörü, düşük gürültülü amplifikatör, filtreler ve güç yönetimi modülleri gibi birçok bileşen ve internete güvenli bir şekilde bağlanmayı sağlayan  dahili donanım hızlandırıcı güvenli kod depolaması ve TLS (SSL) ile güçlü donanım özelliklerine sahip bir geliştirme kartıdır.Ayrıca çoklu görevleri yürütmede kullanacağımız freeRTOS’u da desteklemektedir. Bu kavramı daha önce duymadıysanız ileriki yazılarda sıkça duyacaksınız ve projelerimizde kullanacağız.
   ESP32 için bu kadar bilgi yeter şimdi kodlamasını yapacağımız Arduino IDE’sinde kurulumuna geçelim.
 Adım adım gidecek olursak,
  1.   Arduino IDE’yi indiriyoruz .
  2. Dosyalar(File) -> Tercihler(Preferences) kısmındaki Ek Devre Kartları URL’leri (Additional Boards Manager URLS) kısmına aşağıdaki linki kopyalayıp yapıştırıyoruz. https://dl.espressif.com/dl/package_esp32_index.json
 
3.Esp32 dosyalarını indirmek için. Araçlar Kartlar –Kart Yöneticisine tıklıyoruz. 

 
Ve burada ESP32’ye ait dosyaları indiriyoruz.


   Şimdi yüklediysek eğer devreyi kurup kodları yazmaya başlayalım. Devremiz LED’leri fazla akımdan korumak için kullandığımız üç direnç, üç LED ve bir ESP32 kartından oluşuyor. 




















Projemizde gerekli olacak kütüphaneleri tanımlıyoruz. Ve alt kısımda gördüğünüz ssid ve password kısmında  NUDEMCU içerisinde kendimize yeni bir server tanımlıyoruz. Herhangi bir isim ve şifre verebilirsiniz. Çünkü bu sizin kendi oluşturduğunuz alan olacak. Dikkat etmeniz gereken nokta WiFi bağlantısı yaparken sadece bu isme sahip ağa bağlanıp belirlediğiniz şifreyi girmek. Artık kendinizi özel server üzerinden LED’lerimizi kontrol edebiliriz. 



Devam edelim, özel olarak herhangi bir bağlantı noktası belirtilmediğinde Web sunucusu genellikle 80 numaralı bağlantı noktasını kullanır biz de bundan dolayı WebServer’imizi 80’e ayarlayıp LED’leri bağladığımız pinleri de tanımlayıp setup()’ a geçiyoruz.

 

  Bu kısımda dikkat etmemiz gereken şey Serial.begin() kısmındaki sayı değerini Tools(araçlar)kısmındaki yükleme hızın(upload speed) ile  aynı değere ayarlı olması aksi halde serial portunuzda ?!^’!’!^+^ gibi anlamsız yazılar alırsınız. Sonrasında pinMode’larımızı ayarlayıp server kısmı için gerekli komutlara başlıyoruz. 


 
Burada htlm kısmında çağırdığımızda LED’lerin on-off durumunu kontrol etmemize yarayan küçük fonksiyoncuklar oluşturuyoruz. Dikkatle incelediğinizde çok basit bir mantıkla yazıldığını anlayacaksınız. Gözünüzde büyütmeyin. 


  Bu ptr ‘li kısmın tamamı htlm yani istediğiniz ara yüzün görüntüsüyle alakalı olan kodlar, üzerinde istediğiniz gibi oynama yapabilirsiniz.



Yukarıdaki kodları kullandığınızda aşağıdaki gibi bir ara yüze sahip olacaksınız.




















Ve aşağıdaki son kısım da artık şu olursa yansın şu olursa sönsün kısmı. 



Şimdi kodları yükleyebiliriz. Yükleme yaparken dikkat etmeniz gereken nokta ise Connecting… yazısını gördüğünüzde ESP32’nin üzerindeki BOOT butonuna bir süre elinizi kaldırmadan basmanız gerektiği.













Aksi halde aşağıdaki hata ile karşılaşırsınız.


Şimdi kodumuzu karta yükledik ve sırada WiFi’ye bağlanma var. Daha önceden yukarıda isim verdiğimiz ağ telefonumuzda bu şekilde gözükecektir onu seçip yukarıda belirlediğimiz şifreyi giriyoruz. 















   Daha sonrasında internette boş bir sekme açıp arama kısmına 192.168.4.1 yazıyoruz. Bu NODEMCU’nun kendi URL’si. Ve projemiz bitti bu aşamadan sonra LED’leri istediğiniz gibi kontrol edebilirsiniz. LED yerine röle kullarak Çaycınızı  ya da kahve makinenizi de uzaktan kondrol edebillirsiniz. Ama  bunu bir sonraki projelerde ayrıntılı olarak göstereceğim. 

GitHub Kodu:  https://github.com/EdaSeyma/LedControl/blob/master/LedControl.ino
Şimdilik sağlıcakla kalın haftaya görüşürüz. 🙂
 
         
 

Kaçırmış Olabilirsiniz