ESP8266-01 ile Masanızdaki LCD üzerinden dünya saatini, döviz kurlarını ve ortam sıcaklığını takip edin.

ESP8266-01 Nodemcu haline çevrildikten sonra Arduino gibi işlemciler olmadan kendisi internete bağlanıp bilgileri alıp gönderebilir. Bu özelliğinden faydalanıp internet üzerindeki php dosyalarından bilgileri alıp LCD ile size gösterebilecektir.

Nodemcu haline nasıl çevrilir diye düşünüyorsanız bu yazı yardımcı olacaktır. 

Bu sistemi ben kolaylık olsun diye seri port üzerinden çalışan ve üzerinde direkt olarak ESP modülüne bağlanması için (3.3V Tx Rx)  giriş çıkış pinlerine sahip soket bulunan EASYLCD ile gerçekleştirdim.
Sizler isterseniz seri port üzerinden ARDUINO , NODEMCU modül ya da başka bir işlemci ile gerçekleştirebilirsiniz.

Aşağıdaki resim EASYLCD ile bağlantısını göstermektedir. Programda 4*20 lcd kullanılacağı varsayılarak 4 satır yazması sağlandı. Sizler isterseniz Arduino ile OLED sistemlerini kullanabilirsiniz.

 

Sistemde bir de DS18B20 sensörü vardır. Sensör oda sıcaklığını gösterir. GPIO-0 ucu ile okunur.
Programın çalışmasına gelirsek, Proje bir bütün olarak (Nodemcu Lua programı) 3 dosyadan oluşur. Bunlardan biri devamlı çalışması gereken Rkur_saat_son.lc   programıdır. ( Bu program LUA programının complie edilerek HEX sistemine çevrilmiş halidir.)  Bunun yapılmasının sebebi LUA programı bellekte çok yer kapladığından bunu hex sistemine çevirerek bellek tasarrufu yapılmasıdır.
Diğer program ise Radjust_ssid.lua programıdır.  Bu projeyi yaparken siz kendi SSID ve PASSWORD unuzu yazdınız. Herşey çalışırken Modemin erişim şifresinizi değiştirdiniz. O zaman projeniz internete bağlanamayacaktır. Tekrar ESP modülünü programlamak gerekecektir.
Bunu önlemek için ESP modülün GPIO-2 ucuna bir buton bağlandı. Şayet devreye enerji verirken bu butona basarsanız ESP sizin değişiklik yapmak istediğinizi anlayıp Bu programı çalıştıracaktır. Bu program ESP içerisindeki SOFTAP yi devreye alır ve size easylcd isimli bir ağ ortamı hazırlar. şifresi “12345678” dir. bu ağa bağlandıktan sonra, internet sayfasını açıp adres çubuğuna
192.168.1.11/ssid=(yourssid)&pass=(yourpass)!
yazarak değerleri yenilemiş olursunuz. yourssid ve yourpass yerine  yeni ssid ve password’u yazın. İsterseniz sayfayı yenileyerek 2 kez de yazabilirsiniz.  Daha sonra butona basmadan devreyi açtığınızda yeni ağa bağlanarak çalışmasını yapacaktır. Program içerisine LCD ekrana yeni ssid ve passwordu yazan kısım konulmadı. program geliştirilirken bu da eklenebilir. Kullanıcıya işlemin başarılı olduğunu göstermiş olursunuz.  

Bunu sağlayan da 3. dosyadır. (protect.txt) Bu dosya ssid ve password kısmının yazıldığı txt dosyasıdır. Program bu dosyadan ssid ve password’u okur ve internete bağlanır.
Buradaki en önemli kısım ” ! ”  işaretidir. dosyadaki satırın sonunu belirtir. Bunu adres çubuğuna yazmayı unutursanız yeni ağa bağlanamazsınız. 

( Neden 2 ayrı program yapıldığı sorusu akla gelebilir. Bellek kapasitesini aşmayan tüm programlar ESP flash üzerinde durabilir fakat çalışabilecekleri bellek küçük olduğundan belli bir boyutun üzerindeki programları çalıştıramazlar. Videoda göreceğiniz üzere 3 program dışında büyük olan başka program daha var. Depolama alanı ESP nin bellek boyutu ile sınırlıdır. Birde çalışma kısmı vardır ki ancak 1 tek programı sığdırabildim, hem de complie yaparak. Programı büyütemiyor sanız programları bölebilirsiniz. Hatta arka planda başka bir program çalıştırıp sadece gereken parametreler alınabilir. Fakat LUA programları konusunda iyi olmadığımdan ancak bu kadar yapabildim. Programlar birbirini çağırdığında eski program hafızadan gider ve yeni program çalışmaya başlar.  )
Bu devre çalışırken dünya saatlerini nereden alıyor. Merkez bankası döviz kurlarını nereden alıyor. Bütün bu sorulara cevabım PHP dosyasıdır. Daha önceki yazımda PHP dosyalarını sitenize nasıl yerleştireceğinizi göstermiştim

Bu konuyu bilmiyorsanız öncelikle bu yazıyı okumanızı tavsiye ederim. 

Burada örnek verilen php kodları ile dünya saatlerini bulabilirsiniz. Çeşitli parametrelerle istediğiniz çıktıyı ayarlayabilirsiniz. Bu linkten kullanımını ve parametrelerini görebilirsiniz.
PHP Zaman sistemi
Döviz ise yine php kodlarıyla Merkez bankasının döviz sayfasındaki xml dosyasından okunur.
Bu adresten bakabilirsiniz. Google chrome da sayfayı görüntülerken sağ tuşla sayfa kaynağını görüntüleyi seçtiğinizde, değişkenleri görebilirsiniz. Bu dosya  php içinde, değişken isimlerine göre xml dosyası ayrıştırma işlemine tabi tutulur. İstenen sonuçlar çıktı olarak hazırlanır.

ESP ise sadece PHP dosyasındaki çıktıları okur. O bilgileri kendinize göre ayarlayabilirsiniz.
Bundan sonrası Modülde okunan bilgilerin belli sürelerde ekrana getirilmesidir.

Tüm dosyalara buradan ulaşabilirsiniz.

Easylcd hakkında detaylı bilgi.

Gerçek devre ile anlatım. 

Detaylandırılmış Anlatım. 

 

 

2 Comments

  1. Hocam selamlar;
    Elnize sağlık proje ilgimi çekt. Fakat nerden kod yazıyoruz videoyu izledim göremedim.
    Ben yazdıgım arduino yazılımını convert edip Esp8266 LuaLoader ile mi yuklüyoruz.
    Yada söyle söylüyeyim şu anda benim modbus ile haberleşip daha sonra gelen datayı p10 panellere aktaran bir esp8266 programım var bu LuaLoader a mı donüşmesi gerekiyor.

  2. Ben kodu lua loader ile yazdım. LUA programım dosyalar içerisindedir. Fakat benzer mantıkla siz de ESP yi arduino ile kodlayıp LUA programı gibi yükleyebilirsiniz. Bu sitedeki yazımda arduino ile esp programlamayı göstermiştim. oradan faydalanıp aynı şekilde esp8266-01 kartınızı nodemcu lua gibi programlayabilirsiniz. yine arduinoya ihtiyacı olmadan kendi başına çalışacaktır.
    https://www.mikrobotik.com/wp2/2020/02/28/arduino-usb-seri-cevirici-olarak-kullanmak/

ismail Erol için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak.