[Rehber] Arduino ile bilgisayarı uzaktan açmak | ESP8266 & ESP32

İbrahim Zdemir

Zettapat
Moderatör
Katılım
2 Haziran 2015
Mesajlar
12.869
Çözümler
82
Beğeniler
27.130
Yer
Pillars of Creation
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

1.jpg


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.

2.jpg


Ama ESP8266 için olan kodu da paylaşacağım.

Konsept

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.

NO-RELAY-1024x574.jpg


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.

Malzemeler ve Kurulum

İhtiyacımız olan malzemeler şu şekilde:
  • ESP32 ya da ESP8266 geliştirme kartı
  • Tek röleli röle kartı
  • 3 adet d/d jumper kablo
  • 2 adet d/e jumper kablo
3.jpg


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:
  • VCC --> 3.3V
  • GND --> GND
  • Sinyal --> GPIO 14
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.

5V-Relay-Pinout1.png


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:

4.jpg


Röleden çıkan iki ucu anakarta bağladıktan sonra ise böyle: (Tozlu görüntü için kusura bakmayın)

5.jpg


Ek olarak, devreyi kasanıza koyarken, altına yalıtıcı bir malzeme koymayı ihmal etmeyin.

Yazılım

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ı:

app_ss.jpg


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. :)
 
Son düzenleme:

realmoonlight

Hectopat
Katılım
28 Mayıs 2019
Mesajlar
2.641
Çözümler
16
Beğeniler
1.943
Yer
44.64533 -63.57239
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

Eki Görüntüle 696939

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.

Eki Görüntüle 696940

Ama ESP8266 için olan kodu da paylaşacağım.

Konsept

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.

Eki Görüntüle 696955

Biz de bugünkü 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.

Malzemeler ve Kurulum

İhtiyacımız olan malzemeler şu şekilde:
  • ESP32 ya da ESP8266 geliştirme kartı
  • Tek röleli röle kartı
  • 3 adet D/D jumper kablo
  • 2 adet D/e jumper kablo
Eki Görüntüle 696941

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:
  • VCC --> 3.3V
  • GND --> GND
  • Sinyal --> GPIO 14
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.

Eki Görüntüle 696965

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:

Eki Görüntüle 696942

Röleden çıkan iki ucu anakarta bağladıktan sonra ise böyle: (Tozlu görüntü için kusura bakmayın)

Eki Görüntüle 696943

Ek olarak, devreyi kasanıza koyarken, altına yalıtıcı bir malzeme koymayı ihmal etmeyin.

Yazılım

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ı:

Eki Görüntüle 696975

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. :)

Güzel rehber ben de aynısını bir tanıdık için Arduino kullanarak yapmıştım yine sizinki gibi röle kullanarak. Ama Bluetooth ile çalışıyordu uygulamayı da App inventor ile yapmıştım.
 

Akil Gündoğan

Exapat
Moderatör
Katılım
2 Temmuz 2014
Mesajlar
9.647
Çözümler
139
Beğeniler
17.958
Yer
Türkiye
Aşırı güzel olmuş hocam. Ellerinize sağlık.

Mesajımız bulunsun, konu üstte kalsın :)
 

hadwiger

Hectopat
Katılım
9 Nisan 2020
Mesajlar
4.092
Çözümler
8
Beğeniler
6.174
Yer
YigitYVZ ile çay içiyor
KS
İbrahim Zdemir

İbrahim Zdemir

Zettapat
Moderatör
Katılım
2 Haziran 2015
Mesajlar
12.869
Çözümler
82
Beğeniler
27.130
Yer
Pillars of Creation
Hocam elinize sağlık ama sisteminiz ilk açılışında biraz fazla ses çıkartmıyor mu?
Evet, maalesef öyle. MSI'dan ASUS anakarta geçtiğimden beri durum böyle, yaklaşık 3 senedir.

Sebebi hakkında en ufak fikrim yok. :(

Ek olarak, eklenen Deep Sleep moduyla, kart kullanılmıyorken güç tüketimi de düşürülebiliyor.
 
Son düzenleme:
Katılım
1 Eylül 2018
Mesajlar
3.881
Çözümler
21
Beğeniler
3.272
Güzel fikir. Bende yapmak istemişimdir hatta eve girince kapının hareketini görüp bilgisayara akım yollayarak açılmasını sağlayan bir fikir vardı aklımda ama sadece fikir olarak kaldı. ( Alıp siz yapabilirsiniz. )

Bu arada ben Arduino Nano falan bekliyordum siz bildiğiniz sunucu kurmuşsunuz. Bluetooth ile yapılabilir aslında.
 
KS
İbrahim Zdemir

İbrahim Zdemir

Zettapat
Moderatör
Katılım
2 Haziran 2015
Mesajlar
12.869
Çözümler
82
Beğeniler
27.130
Yer
Pillars of Creation
Wi-Fi stabil bir bağlantı için aslında. :) Bluetooth olunca, ek olarak uygulama yapmak gerekiyor, bir de Bluetooth'a bağlanmak gerekiyor.

Ama böyle olunca, cihaz evin Wi-Fi ağına bağlanmış oluyor. İçinde Web sayfası olduğundan, tasarımı ve butonları da kendi bünyesinde oluyor. Yani hem ek bir bağlantı yapmanıza gerek kalmıyor telefondan, hem de uygulama indirmenize gerek kalmıyor.

Ek olarak, bu hizmeti Alexa, Google Asistan ve Siri gibi sesli asistanlara da bağlayabiliyorsunuz. :)
 

FilterKill

Millipat
Katılım
11 Nisan 2020
Mesajlar
691
Çözümler
1
Beğeniler
501
@İbrahim Zdemir hocam altına yalıtıcı koymanızın sebebi pinler bükülürse kısa devre yapmaması değil mi? Ellerinize sağlık hocam çok güzel olmuş. Denemek isterdim ama Laptop olunca tuşa basmak için mekanik bir sistem kurmak gerekiyor :)
 



Yukarı