SonOff Flashlama Rehberinden sonra ilginç bir rehberle daha karşınızdayım.
SonOff konusunda, IoT’den ve ESP tabanlı kartların neler yapabildiğinden bahsetmiştim. O konuyu bir başlangıç olarak kabul ettim ve seriyi devam ettirip, birkaç IoT tabanlı uygulama daha paylaşmak istedim.
IoT artık hayatımızın birçok alanına girmiş durum. Temelde bir şeyleri uzaktan kontrol edebilmek düşüncesiyle çıkan IoT, çok kısa bir sürede ciddi bir evrim geçirdi ve koca bir sektör haline geldi.
IoT denince, büyük fabrikalardaki onlarca robotun optomasyonu, yüzlerce sensörün yönetilmesini kabul edebileceğimiz gibi, basit bir Wi-Fi kartıyla yapılan uzaktan kumanda da kabul edilebilir. IoT’nin sınırı kalmamış durumda artık.
Uzunca bir süredir, bilgisayarı uzaktan açıp kapatabileceğim bir sistem yapmayı amaçlıyordum. Ancak vakit eksikliği ve bilgisayardaki düzeni bozmak istemem, buna hep engel olmuştu. Ancak SonOff konusundan sonra, yeni bir rehber arayışına girince, bu konu aklıma geldi ve bende değerlendirmek istedim.
Temelde çalıştığım 2 ESP çipi var: ESP8266 ve ESP32.
ESP8266, daha basit ve hafif bir çip. ESP32 ise güç ve hafıza olarak biraz daha önce. Ancak temellerinde aynılar diyebiliriz.
Soldan sağa, ESP8266/CH340 – ESP32 DevKit C – ESP8266 CP210
ESP8266 ve ESP32 arasında bazı farklar var demiştik. Bu farklardan biri, beni de ESP32 kullanmaya iteni, “WEB Server” becerileri.
Bildiğiniz gibi, bu kartlar Wi-Fi ağınıza bağlanan kartlar. Wi-Fi ağınıza bağlandığında, local bir IP adresi atanıyor bu kartlara. Bu kartlar için özel olarak oluşturulmuş Arduino kütüphanelerini kullanarak, kartların üzerinden Web sunucusu açabiliyorsunuz. Yani bir bakıma, kartın bağlı olduğu local IP adresinde bir sunucu açılmış oluyor ve sizde bu sunucu üzerinden kartı kontrol edebiliyorsunuz.
İki kart da Web sunucusu özelliğine sahip, ancak ESP8266, özelleştirilmiş HTML sayfalarında düşük performans gösterebiliyor. Ben, bu nedenle ESP32 kullandım.
Ama ESP8266 için olan kodu da paylaşacağım.
Bilgisayarları açmak için kullandığımız düğmeler (Power Switch), çok basit bir çalışma prensibine sahiptir. İki ucu olan bu düğme, basıldığı zaman üzerine takılı olan kabloları birbirine bağlar.
Peki, bu bilgisayarın açılmasını nasıl sağlar.
Güç kablosunu taktığımız 2 port (Jumper) vardır. Bu portlara alıcı ve verici diyebiliriz. Verici portta elektrik akımı bulunur, alıcı portta ise elektrik akımı yoktur. Ve, bu iki port normal şartlarda birbirine bağlı değillerdir. Siz düğmeye bastığınızda, Verici port Alıcı porta bağlanmış olur. Yani, devre tamamlanır. Verici porttan Alıcı porta elektrik akımı geçer, bu bir tür sinyal gibidir. Yani anakartın sistemi açması için bir sinyal verilir.
Bizim yapmamız gereken ise, düğmenin yerini başka bir şeyle doldurmak, uzaktan kontrol edilebilen bir şeyle.
Röle (relay) burada devreye giriyor. Röle, basitçe dışardan elektrik akımıyla kontrol edilebilen bir anahtar gibidir. İçinde iki mıknatıs bulunur. Elektrik verdiğinizde, mıknatıslar anahtar uçlarını birleştirir ve elektriği iletir.
Biz de bugünki uygulamamızda röleyi kullanacağız. Ancak bir farkla.
Eğer röle sürekli açık olursa, yani anakarta sürekli açma sinyali giderse, anakart açılırken kapanır. Nasıl bilgisayarı açarken, düğmeye basıp çekiyorsak, rölenin de belirli bir milisaniye açık olması lazım.
İhtiyacımız olan malzemeler şu şekilde:
Rölenin kontrol bağlantıları, 3 pinlidir. Bunlar “VCC, GND, Sinyal” pinleridir. VCC ve GND kısaca “+” ve “-“, Sinyal ise röleyi kontrol edeceğimiz pindir.
Rölenin bağlantılarını şu şekilde yapabiliriz:
Rölenin, anakarta gidecek kablolarını bağlamadan önce, bir noktayı açıklamak gerekiyor.
Normalde elektrik anahtarlarının 2 portu olur. Bunlardan biri gelen, diğeri ise giden elektrik içindir. Ama rölelerde fazladan bir port daha bulunur. Bunun nedeni, rölelerin farklı bir mantığa sahip olmasıdır.
Rölenin solunda da gördüğünüz gibi, “NC” – “C” ve “NO” adlı üç pin. C, akımın geldiği pindir. NC ve NO ise, “Normaly Closed” ve “Normaly Open” terimlerinin kısaltmasıdır.
Kabloyu NC portuna takarsanız, röle çalışmıyorken elektrik akımı iletilmez. Röle çalıştığında iletilir. NO ise tam tersi bir mantığa sahiptir. Biz, akımın normalde geçmemesini istediğimiz için, “NC” ve “C” portunu seçeceğiz
Bu porta iki kablo takıp, uçlarını da anakarta bağlayacağız
Bağlantılar sonrası, devre şu şekilde görünecektir:
Röleden çıkan iki ucu anakarta bağladıktan sonra ise böyle: (Tozlu görüntü için kusura bakmayın)
Ek olarak, devreyi kasanıza koyarken, altına yalıtıcı bir malzeme koymayı ihmal etmeyin.
Web sunucusu tarafı, basit bir mantığa dayanıyor. Web sayfasında basit bir push-button bulunacak. Kullanıcı buna tıkladığında, röle 300 milisaniye süreyle devreyi tamamlayacak, yani, sanki bilgisayarın açma tuşuna basmışız gibi olacak.
Web sunucusunda çalışan Web sayfası:
Proje kaynak kodu:
Projenin demo videosu:
Biraz uzun bir rehber oldu, ama keyifli olmuştur umarım.
Bu, temel düzeyde bir uygulama. Ama bunu geliştirip, Amazon Alexa ya da Google Asistan ya da Siri gibi hizmetlerle çalışacak şekilde ayarlayabilirsiniz.
Yorum ve görüşlerinizi belirtirseniz sevinirim, bir başka rehberde görüşmek üzere.