EASYLCD/ESP8266-01/Nodemcu/PHP ile Maillerinizin kontrolü.

Yeni mailleriniz var mı diye, bilgisayarınızdan ya da telefonunuzdan program açmanıza gerek kalmadan, devamlı sizin yerinize ESP8266-01 Kontrol etsin. EASYLCD modül kullanan LCD nize, okunmamış maillerinizin, hem adedini hem de konu başlıklarını yazsın ister misiniz?

Not: Bu mail hesabı deneme olarak açılmıştır. 1 aylığına açık kalacaktır. Yanlış kullanımlardan, Kullanan kişiler sorumludur. Sadece şunu hatırlatmak isterim. iyi niyetle bile olsa birilerine, bu e-maili kullanarak mesaj gönderirseniz, Mutlaka kullandığınız zaman parametrelerine bakıp sizi bulacaklardır. Bundan dolayı Lütfen iyi niyeti suistimal etmeyin.

Burada açıklamaya çalışacağım sistem, PC nize bağlı kalmaksızın PHP dosyasını yükleyebileceğiniz bir siteniz varsa, mail kontrolünü nasıl yapabileceğinizi gösterecek.
Öncelikle ESP8266-01 modülünüzü buradaki yazı ile NODEMCU moduna geçirmelisiniz.
Ayrıca ESP8266-01 modülünün bağlantı şeması için bu yazıma bakabilirsiniz.

Aklınıza şu gelebilir. Neden PHP ye ihtiyacımız olsun. O olmadan da ESP bu işi çözebilir. Ben de başlarken bu şekilde başladım. Fakat e-mail sunucuları gibi güvenli sitelerden bilgi almak çok kolay olmuyor. Araştırdım, Nodemcu LUA olarak program yazarken ESP-01 ile yapılamayacağı konusuna kanaat getirdim. Belki arduino ve esp kullanılarak çözümler bulabilirsiniz. Fakat nodemcu olarak ben çalışan örneklere rastlayamadım. Hatta bunun yapılamayacağı yönünde bilgiler de okudum. Belki yeni versiyonlarda bu düzeltilmiş olabilir.
Tabii ki PHP kullanmamın bir başka amacı daha var. LCD yi koyup sadece mail mi kontrol edeyim.
Tabii ki HAYIR. Gelecekte, bu php dosyasına mail bilgilerini, döviz bilgilerini ,hava durumu gibi bilgileri aktarıp, hepsini bu LCD de ya da farklı bir görüntüleme cihazında, sadece ESP-01 kullanarak gösterebileyim diye düşündüm.

Buraya kadar hazırlıkları yaptıktan sonra bir de PHP kısmına bakalım.
1. program mail sunucusundan toplam mail ve toplam okunmamış mail adetlerini alır. Buradaki imap_open satırı şifreleri verdiğimiz gmail sunucusundan bilgiyi almamızı sağlar. 993 veya bazen 443 gibi port numaraları görürsünüz bunlar. POP ve IMAP port numaralarıdır. Bunlar hangi şekilde bilgiyi alacağınıza göre değişecektir.

2. program ise mail sunucusundan okunmamış maillerinizin konu başlıklarını alır.
Burada dikkat edeceğiniz kısım, gelen maillerde konularda görünen türkçe karakterler LCD ye gönderilirse sorun olacağından, baştaki $bulunacak, ve $değiştir tabloları arasında türkçe karakterleri ingilizce karakterlere dönüştürmemiz gerekir. Bunu yapmak için 60. ve 62. satıra bakınız. Artık türkçe karakter sorunu da kalmadı.
Ayrıca 20. satırla başlayan parametreler mail alırken size yardımcı olacaktır. Ben sadece okunmamışları istediğim için “UNSEEN” parametresini kullandım. Sizler diğer parametreleri de kullanabilirsiniz. 46. satırda bu parametreyi görebilirsiniz.

Nodemcu programı ile de gelen bilgileri alıp LCD ye yazdırmamız lazım. Tabii ki LCD 2 satır veya 4 satır olabilir. Ben 2 satıra göre ayarladım. Sizler 4 satıra göre verileri yazdırabilirsiniz. LCD nin sütun ayarı ise 16 karakter 20 karakter ya da daha fazla olabilir.
İsterseniz gelen konu başlıklarını direkt yazdırabilirsiniz. Fakat uzun satırlar sorun olabileceğinden, Nodemcu programında ilk 20 karakteri ayırarak LCD ye gönderdim.

Bu şekilde ekranda daha düzgün bir görünüm elde edildi. Ekranınız 16 sütundan oluşuyorsa 16 karakter görürsünüz, 20 karakterden oluşuyorsa 20 karakter görürsünüz. Daha fazla sütun isterseniz programdan kolaylıkla ayarlayabilirsiniz.
Değiştirmeniz gereken satırlar.
160. ve 161. satırlarda modeminizin internet adı ve şifresi. Ayrıca 187 ve 191. satırlardaki bilgiler benim PHP dosyamın bulunduğu yerdir. Buraya sizin PHP dosyanızın bulunduğu yeri yazmalısınız. 196. satıra ise bulunduğu sunucunun ismi yazılacak.
NOT: LCD ile başlayan tüm LCD komutları EASYLCD komutlarıdır.
EASYLCD kullanmayacaksanız kendi LCD modülünüze göre komutları değiştirirsiniz.

Yukarıdaki programlardaki değişiklikleri yapmak kolaydır. PHP IMAP örnekleri internette mevcuttur.
Herkes Gmail kullanmıyordur. Kendi e-mail sunucunuza PHP olarak nasıl bağlanacağınızı bulduğunuzda, Nodemcu programınızla, tüm e-mail hesaplarınızı,PHP ile kontrol edebilirsiniz.

Ayrıca çalışma sırasında gelen verileri neye göre ayıkladığımı belirtmek istiyorum.
ESP nin aldığı veri aşağıdaki gibidir. 12e kısmından sonra <br/> dizilimini arıyorum. Bu şekilde 2 <br/> dizilimi arasındaki veriyi ayıklamış oluyorum. Başlangıçta <br/> dizilimi yok. Bundan dolayı PHP dosyasına “basla” diye bir dizilim verdim. ilk kelime bu olduğu için basla kelimesini bulacak, sonrasında <br/> dizilimini arayıp “basla” ve <br/> arasındaki kayıt başlangıç kaydı olacaktır.
NOT : <br/> dizilimi HTML ve PHP dosyalarında, satır sonu enter ve line feed görevi görür. Yani arduinoya göre karşılaştırırsak. Bu komuta karşılık gelir.
\n = LF (Line Feed)  Bundan dolayı aşağıdaki web sayfasından alınan çıktılar satır şeklinde görünmüştür.
=======================================

+IPD,0,465:HTTP/1.1 200 OK
Date: Sat, 16 Mar 2019 21:47:18 GMT
Server: Apache
X-Powered-By: PHP/5.5.38
Transfer-Encoding: chunked
Content-Type: text/html

12e
mail 1 ornek<br/>date<br/>
===============================================

Tabii ki tüm mail konuları gönderilirken aşağıdaki şekilde olduğu gibi “basla “kelimesi ile başlayacaktır. Bu da ayrı maillerdeki konu bilgisini ayrı ayrı alabilmemizi sağlayacaktır. Sizler de verilerinizi düzenlerken PHP dosyasına belirteç koyabilirsiniz.

Aşağıda PHP dosyasından gelen veri görünmektedir. 
email_check.php web sayfası çıktısı.
============================
basla
Messages: 4
Unread: 4
Wed, 20 Mar 2019 18:23:19 +0300 (+03)
===================================
Mail2.php web sayfası çıktısı.
==============================
basla
mail_php_dene
Fri, 15 Mar 2019 12:46:23 +0000
basla
e-mail_1_ornek
Wed, 20 Mar 2019 14:22:58 +0200
basla
E-MAIL_2_Ornek
Wed, 20 Mar 2019 14:24:06 +0200
basla
EASYLCD_Ornek_3
Wed, 20 Mar 2019 14:24:46 +0200
================================

UYARI : 
Bu program eski nodemcu programı ile çalışabilmektedir. Fakat Nodemcu programındaki hata nedeniyle bazı özellikler devre dışı bırakılmıştır. Bu özellikleri görüp, yeni Nodemcu programını yüklemek için Bu adrese gidip okumanızı tavsiye ederim. 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir