ESP01 ile HAVA DURUMU+SAAT+DÖVİZ PROJESİ

Bu projede ESP01 (ESP8266-01) Modülü ile Openweathermap sitesinden alınacak hava durumu bilgisi, Güncel zaman ve döviz kurlarını birlikte kullanıldığı bir programı anlatacağım.

Bir önceki yazımda ise UNIXTIME konusunu anlatmıştım. O yazıyı hazırlamaktaki amacım gelen verilerde UNIXTIME kodları bulunmasıydı. Bu kodları nasıl çözebilirim diye sorguladığımda sadece Arduinoda kütüphane desteği olabilir dedim. Fakat kütüphanesiz nasıl çözerim dedim ve bu yazıyı yazmıştım. 

Sonrasında bu projeye başladım. Tabii ki yol alırken farklı seçenekler olduğunu gördüm. Farklı seçenekleri yazıda göreceksiniz.
Hava durumu programı yapmak için bilgilerin internette abone olduğunuz bir siteden alınması yeterli oluyor. Bu sitelerin API destekleri var. Kullanıcılar bu işlem için siteye kayıt olurlar ve kendilerine bir güvenlik anahtarı verilir.
Bu bilgileri isterseniz WEB sitenizde, isterseniz de evde yapacağınız cihazlarda kullanabilirsiniz.
Genelde bu projeleri yapanlar ESP modüllerini kullanır. En küçük modül ESP01 denilen ESP8266-01 modülüdür.

Bu modülü direkt programlayarak kullanabildiğimiz gibi, Arduino ya da diğer mikrokontrolcülerle de kullanabiliriz. Sadece 4 adet GPIO kullanıma açıldığından bundan daha fazla giriş çıkış pimine ihtiyaç varsa o zaman bir arduino ya da diğer mikrokontrolcülerle kullanmanız yerinde olacaktır.
Arduino ile ESP modülleri programlamak için bu yazıma göz atmanız yerinde olacaktır.

Yapacağım projede EASYLCD 4×20 karakter LCD kullanacağımdan, sadece LCD kontrol için tek bir pim yeterli olacaktır, ESP01 modülünü kendi başına çalışacak şekilde ARDUINO IDE ile programlıyorum.
Bunun yanı sıra I2C OLED ya da başka ekranlar olursa, ESP01 modülü bunları da 2 pim ile kontrol edebilir.

Programlamada dikkat etmeniz gereken bir durum var. Bu da ESP01 kullanırken, HTTP ya da HTTPS olan sitelere bağlantı farkı. Şayet HTTPS kullanılacaksa, ESP security kütüphanesini kullanmanız gerekir. Bu kütüphaneyle ilgili örnekler internette bulunmaktadır.

Openweathermap sitesinden bilgi alıyorum. Bu site HTTP ve HTTPS olarak API KEY ile bilgi gönderebiliyor. Bundan dolayı SECURITY kütüphanesini kullanmayacağım.

Bu site zaman bilgisi olarak bulunduğunuz zamanı vermiyor. Sadece bilgi güncelleme zamanını ve gün doğumu ile gün batımı zamanlarını veriyor.
Yani bir de gerçek anlık zamanı almanız gerekebiliyor. Bunu da genellikle bu tip projelerde NTP üzerinden alınan anlık zaman bilgisi ile sağlıyorlar.

Öncelikle Projemde neler var bunları görelim.
1-) Openweathermap sitesinden anlık hava durumu bilgisini almak. ( Bu site free limiti dakikada 60 iletişim hakkıdır. Arka arkaya bundan daha hızlı bir iletişim kurarsanız bilgi gelmeyecektir. Ya da site tarafından ikaz edileceksiniz bunu da algılamazsanız api devre dışı kalabilir. )

2-) Zaman bilgisi. NTP den alınan zaman bilgisi olabilir ama ben kendi PHP sunucumun zaman bilgisini aldım. (Her sunucu zaten kendi saatini devamlı güncel tutar.)

3-) TCMB kur bilgileri : TCMB den XML formatında alınan döviz bilgilerinden istediğimi yansıtabilirim.
(Fakat ben buna ESP ile direkt ulaşmayacağım PHP üzerinden yapacağım. )

Projede ESP ile Önce Openweathermap sitesine bağlanıp gelen bilgiyi parçalarım. Sonrasında NTP den gelen zaman bilgisini çözerim. Sonrasında ise TCMB ye bağlanıp kur bilgilerini alabilirim. Bu bilgileri de parçalayıp değişkenlere aktarabilirim.
Bunu yapmak için 3 kez internete bağlanıp bu bilgileri alıp bunları parçalayarak değişkenlere koymam gerek. ESP programım oldukça şişecek ve bunları çözmek için çok çaba harcayacak.
Ayrıca gelen bilgideki UNIXTIME kodlarını da çözmem gerekecek. Bunu da ya kütüphaneyle ya da internetten otomatik çevirerek yapmam gerek. ( UNIXTIME yazımda seçeneklerinizi görebilirsiniz. )

Ben de tüm bu adımları PHP dosyasına yaptırıp, sonrasında istediğim bilgileri göndermesini söyledim. Hem de istediğim formatta. Bilgileri kolay olsun diye JSON formatında istedim ve ayırarak değişkenlere aktardım. ESP programım oldukça basit ve rahat oldu.

Sizlere videoda her iki durumu da göstermeye çalışacağım.

Daha önce openweathermap sitesinin http ile bilgi gönderebildiğini yazmıştım. Ayrıca bu yazılan adres linkinde bazı ayarlanmalar da yapabilirsiniz.

https://api.openweathermap.org/data/2.5/weather?q=izmir,TR&appid=c593dca9f1e67108b4a0aa1b670e72fc

yukarıdaki link ile bilgi almak isterseniz size JSON formatında ve Sıcaklıkların Fahrenhayt   olarak geldiğini görebilirsiniz. En sade hali budur.
Gelen bilgi şöyledir:
{“coord”:{“lon”:27.0923,”lat”:38.4622},”weather”:[{“id”:802,”main”:”Clouds”,”description”:”scattered clouds“,”icon”:”03d”}],”base”:”stations”,”main”:{“temp”:288.12,“feels_like”:287.11,”temp_min”:288.12,”temp_max”:288.88,”pressure”:1013,”humidity”:55},”visibility”:10000,”wind”:{“speed”:7.2,”deg”:330},”clouds”:{“all”:40},”dt”:1650381970,”sys”:{“type”:1,”id”:6979,”country”:”TR”,”sunrise”:1650339014,”sunset”:1650387056},”timezone”:10800,”id”:311044,”name”:”İzmir”,”cod”:200}

https://api.openweathermap.org/data/2.5/weather?q=manisa,TR&appid=c593dca9f1e67108b4a0aa1b670e72fc&units=metric

Yukarıdaki link ile sondaki UNITS parametresi, size bilgilerin metrik olarak geldiğini ve Santigrat olarak sıcaklık derecesinin geldiğini gösterecektir.
Yukarıdaki her iki link de İngilizce olarak gelecektir. Özellikle DESCRIPTION kısmı bulut durumunu İngilizce verir. (Zaten gelen bilgide komutlar hep İngilizcedir. Sadece tanımlamalar Türkçeye çevrilir.)
Gelen bilgi :
{“coord”:{“lon”:28.1667,”lat”:38.8333},”weather”:[{“id”:800,”main”:”Clear”,”description”:”clear sky“,”icon”:”01n”}],”base”:”stations”,”main”:{“temp”:3.43,“feels_like”:2.38,”temp_min”:3.43,”temp_max”:3.43,”pressure”:1017,”humidity”:81,”sea_level”:1017,”grnd_level”:947},”visibility”:10000,”wind”:{“speed”:1.35,”deg”:26,”gust”:1.36},”clouds”:{“all”:8},”dt”:1650408347,”sys”:{“country”:”TR”,”sunrise”:1650425043,”sunset”:1650473287},”timezone”:10800,”id”:304825,”name”:”Manisa Province”,”cod”:200}

 

https://api.openweathermap.org/data/2.5/weather?q=izmir,TR&appid=c593dca9f1e67108b4a0aa1b670e72fc&units=metric&lang=tr

Yukarıdaki link de ise son kısımdaki LANG parametresi gelen açıklama bilgilerinin Türkçe gelmesini sağlar. Mesela parçalı bulutlu gibi. Komutlar hep İngilizcedir.
Gelen bilgi :

{“coord”:{“lon”:27.0923,”lat”:38.4622},”weather”:[{“id”:800,”main”:”Clear”,”description”:”açık“,”icon”:”01n”}],”base”:”stations”,”main”:{“temp”:7.12,”feels_like”:7.12,”temp_min”:6.97,”temp_max”:10.15,”pressure”:1016,”humidity”:89},”visibility”:10000,”wind”:{“speed”:0.51,”deg”:310},”clouds”:{“all”:0},”dt”:1650408127,”sys”:{“type”:1,”id”:6979,”country”:”TR”,”sunrise”:1650425332,”sunset”:1650473514},”timezone”:10800,”id”:311044,”name”:”İzmir”,”cod”:200}

 

Ayrıca gelen bilginin JSON formatımı yoksa XML formatında mı gelmesini seçebiliyorsunuz.

https://api.openweathermap.org/data/2.5/weather?q=izmir,TR&appid=c593dca9f1e67108b4a0aa1b670e72fc&units=metric&lang=tr&mode=xml

Yukarıdaki komutta son parametre MODE parametresidir. Bu olmazsa JSON formatında bilgi gelir. Burada XML formatı istersek, O zaman MODE parametresini kullanabiliriz. Bu mod kullanıldığında zaman bilgisi tarih formatında gelir. JSON formatında ise UNIXTIME kodu olarak gelir.
Gelen bilgi :

<current>
<city id=”311044″ name=”İzmir”>
<coord lon=”27.0923″ lat=”38.4622″/>
<country>TR</country>
<timezone>10800</timezone>
<sun rise=”2022-04-19T03:30:14″ set=”2022-04-19T16:50:56″/>
</city>
<temperature value=”14.97″ min=”14.97″ max=”15.73″ unit=”celsius”/>
<feels_like value=”13.96″ unit=”celsius”/>
<humidity value=”55″ unit=”%”/>
<pressure value=”1013″ unit=”hPa”/>
<wind>
<speed value=”7.2″ unit=”m/s” name=”Moderate breeze”/>
<gusts/>
<direction value=”330″ code=”NNW” name=”North-northwest”/>
</wind>
<clouds value=”40″ name=”parçalı az bulutlu”/>
<visibility value=”10000″/>
<precipitation mode=”no”/>
<weather number=”802″ value=”parçalı az bulutlu” icon=”03d”/>
<lastupdate value=”2022-04-19T15:26:39″/>
</current>

Yukarıdaki örnekler direkt olarak Openweathermap sitesinden geliyor. Ayrıca HTTPS olarak link gönderildiğine de dikkat edin. Bundan dolayı ESP için SECURITY kütüphanesine ihtiyaç olacaktır. Fakat HTTP modunda da openweathermap sitesine istek yollayableceğinizden dolayı, ESP security kütüphanesini kullanmadım.

Openweathermap sitesi size küçük icon lar da sağlıyor. Programlarınızda bu iconları hava durumunu göstermek için kullanabilirsiniz.
Bu sayfada seçenekleri görebilirsiniz. 

Bununla birlikte gelen bilginin WIND bölümünde Speed rüzgar hızı ve “W_deg”:”330″ gibi bir rüzgar yönü derece olarak bulunur. Bu rüzgar yönünü ise aşağıdaki resme göre sizler yön bilgisi olarak çevirebilirsiniz.


Bununla birlikte bunların hepsini ESP ile ayırmak yerine, PHP içerisinde bunları yaptırıp, ESP programımızı daha sade tutabiliriz demiştim.
Aşağıda da bu linkleri bulacaksınız.

http://mikrobotikradyo.ml/api/openweather/indextr.php

Yukarıdaki link internetten aldığım örnek bir php dosyasıdır. Bu dosya openweathermap sitesinden bilgiyi alıp, nasıl kendi sitenizde kullanabilirsiniz bunu gösteriyor.

http://mikrobotikradyo.ml/api/openweather/clocksade.php

Yukarıdaki link PHP dosyasından nasıl istediğimiz formatta anlık zamanı öğrenebiliriz bunu gösteriyor. NTP sunucuları yerine, kendi sitenizin PHP sunucusunu kullanabilirsiniz.

http://mikrobotikradyo.ml/api/openweather/clocksade1.php?ut=1650366316

Yukarıdaki link ise openweathermap sitesinden JSON formatında aldığınız bilgilerde bulunan UNIXTIME kodlarını size tarih formatında gönderen bir programı çağırır. Bu program PHP ile yazılmıştır. UNIXTIME kodunuzu link sonuna ekleyerek istek yaparsanız dönen bilgi istediğiniz tarih formatında ve GMT dediğimiz saat diliminde olacaktır.
Aşağıdaki bilgi Türkiye için GMT eklenmiş saat bilgisidir. Başka ülkeye göre denenecekse PHP dosyasında ülke seçimi yapılmalıdır.

1650366316 = 19-04-2022 14:05:16 +0300

http://mikrobotikradyo.ml/api/openweather/openweather3.php

Yukarıdaki link ile XML formatında openweathermap sitesinden alınan bilgi ile TCMB dan XML formatında alınan bilginin işlenmesini gösterir.
Bu link sonuçları çok yer kapladığından sayfaya yapıştırmadım. Gelen bilgide, En üstteki bölüm Openweathermap sitesinden gelen bilginin tamamıdır. XML formatındadır.
2. Bölüm ise örnek değişken aktarımıdır.
3. Bölüm ise TCMB den gelen XML formatındaki KUR bilgilerinin tamamıdır.
4. Ve son bölüm istek sonucunda geri dönen bilgidir. JSON formatındadır.

Yukarıdaki link XML işleyişini görmeniz için örnek olarak verildi.

http://mikrobotikradyo.ml/api/openweather/openweather_json1.php

Yukarıdaki link ise gelen bilgileri düzenleyerek size geri dönen bilgiyi gösterir. Bu bilgi ESP JSON kütüphanesi ile parçalanır, değişkenlere aktarılır. Sadece istediklerimiz geldiği için PHP deki kalabalık, ESP programında olmaz.

Not: PHP dosyalarında bir problem görebilirsiniz. Mesela City parametresini İzmir seçtiniz. Size gelen bilgi İzmir olarak gelecektir. Fakat geri dönen bilgi İzmir bilgisi olsa da PHP de Türkçe karakter sorunu olabiliyor. Bu karakterin küçük harfini istediğinizde ise “ı” harfini getiriyor ki bu da Türkçe karakter olduğundan sorun yaratıyor. Son PHP dosyasında gelen CITY parametresinde “İ” harfi varsa bunu “I” ile değiştir diye bir komut yapısı eklendi. Bu da ESP ye doğru karakter gitsin diye yapıldı. Türkçe karakter ESP de de sorun yaratacaktı. Aynı zamanda LCD ekranda da sorun yaratacaktı.

Bu linklerin nasıl çalıştığı videoda görülecektir.

PHP dosyalarından, (openweather_json1.php)  Json formatında istek yapan dosya CURL programlama örneğini içinde barındırıyor. CURL fonksiyonu, sadece bilgiyi almak için istek yapmada kullanılır ve gelen bilgi PHP dosyasında işlenmeye başlar.
CURL function :

function WeatherUrl($url){
                              $cn = curl_init();
                              curl_setopt($cn, CURLOPT_RETURNTRANSFER, 1);
                              curl_setopt($cn, CURLOPT_URL, $url);    // get the contents using url
                              $weatherdata = curl_exec($cn); // execute the curl request
                              curl_close($cn); //close the cURL
                              return $weatherdata;
}

PHP içerisinde “İ” harfini “i” harfine çevirmede kullanılan program parçası budur.

// alt satırlarda “İ” harfini “i” harfine çeviriyorum.
$searchchar   = ‘İ’;
$konum = strpos($city, $searchchar);
if ($konum === false) {
//  echo “‘$city’ dizgesi içinde ‘$searchchar’ dizgesi yok”;
$bak=$city;
} else {
// echo “‘$city’ dizgesi içinde ‘$searchchar’ dizgesi var”;
//  echo ” ve $konum. karakterden başlıyor”;
$bak=str_replace(“İ”,”I”,$city);// burada İ harfi i harfine çevriliyor.
}
$city=$bak;

Ayrıca şuna da dikkat etmelisiniz. UNIXTIME size GMT+0 zaman bölgesindeki zamanı verir. Fakat siz Türkiye için zaman isteyecekseniz GMT +3 zamanına sahip olmalısınız. PHP içerisinde bir komutla bunu yapabilirsiniz. Bu komut TIMEZONE denilen zaman bölgesini ayarlar. Gelen bilgi sizin zaman bölgenize göre gelir.
Komut: date_default_timezone_set(“Europe/istanbul”);

Desteklenen zaman bölgelerinin listesi için bu siteye bakabilirsiniz.
https://www.php.net/manual/tr/timezones.php

PHP dosyasında DATE formatında kullanılan karakterler, sizin istediğiniz formatta zamanı almanızı sağlar. PHP dosyasını incelerken bu formatı göreceksiniz. Mesela “h” ile “H” harfinin farklı anlama geldiğini görebilirsiniz. Bu tip karakterlerin listesini de buradan alabilirsiniz.
https://www.w3schools.com/php/func_date_date.asp

PHP dosyaları için benim sitem yok diyorsanız BEDAVA olarak kendi sitenize sahip olabilirsiniz. (000webhost sitesi ayda bir kere dosya güncellemesi yapmanızı ister. Bu yapılmazsa o sitenin kullanılmadığını düşünüp otomatik kapatır. )
Kendi sitenize sahip olmak için bu yazımı okuyabilirsiniz. 

TÜM dosyalara buradan ulaşabilirsiniz. 

Arduino programlarının açıklaması : 

1-) json_ayirma_openweathermap programı openweathermap sitesinden direkt olarak bilgiyi alır ve json olarak parçalar, değişkenlere aktarır. (Örnek amaçlı yapıldı)

2-) json_ayirma_php programı PHP sitesinden gelen JSON formatındaki bilgileri parçalar ve değişkenlere aktarır.

3-) json_ayirma_easylcd programı 2. program ile aynıdır. Tek fark EASYLCD karakter LCD ye yazmasıdır.

4-) xml_ayirma_kutuphanesiz programı ise XML formatında openweathermap sitesinden gelen bilgiyi ayıklar ve değişkenlere aktarır. Aynı zamanda PHP sunucusundan da geçerli zamanı alır ve ekrana yansıtır. (Örnek amaçlı yapıldı)

Aşağıda ESP programının son versiyonu var. ( Tüm dosyalar arasından da alabilirsiniz. )

//{"USD":{"buying":14.6079,"selling":14.6664,"cross":0,"CR1":"USD","CR2":"USD"},"EURO":{"buying":15.7945,"selling":15.8578,"cross":1.0812,"CR1":"EURO","CR2":"USD"},
//"openweathermap":{"Temperature":"22.97","Min_Temp":"22.97","Max_Temp":"23.73","Feels_Like":"22.37","Pressure":"1017","Humidity":"40","Country":"TR","City":"Izmir",
//"Clouds":"0","Speed":"6.17","W_deg":"360","update":"15-04-2022 16:40:37 +0300","sunrise":"15-04-2022 06:35:52 +0300","sunset":"15-04-2022 19:47:08 +0300","Cdate":"15-04-2022  16:40:37 +0300"}}

/**************************************************************************************

Internet weather station using ESP8266 Wi-Fi module
This is a free software with NO WARRANTY.
http://simple-circuit.com/

***************************************************************************************/

#include
#include // http web access library
#include // JSON decoding library

const char *ssid = "ZYXEL_SAF";
const char *password = "5f7JXDQeeYzT";
int sat=0;
int sut=0;

void setup() {

Serial.begin(115200);
delay(500);
//Serial.print("Connecting.");
//Serial.println(ssid);
//Serial.println(password);
WiFi.begin(ssid, password); // access Wi-FI point

while ( WiFi.status() != WL_CONNECTED ) {
delay(500);
// Serial.print(".");
}
// Serial.println("connected\r\n");
Serial.print("LCDSC 12,3-");
delay(500);

}

void loop() {

if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status

HTTPClient http; //Declare an object of class HTTPClient

// specify request destination
//http.begin("http://api.openweathermap.org/data/2.5/weather?q=London,uk&APPID=1041444a18cfb8448343254a45721b1d");
http.begin("http://mikrobotikradyo.ml/api/openweather/openweather_json1.php");
int httpCode = http.GET(); // send the request

if (httpCode > 0) { // check the returning code

String payload = http.getString(); //Get the request response payload
// Serial.println(payload);

DynamicJsonBuffer jsonBuffer(512);

// Parse JSON object
JsonObject& root = jsonBuffer.parseObject(payload);
if (!root.success()) {
Serial.print(F("LCDDD"));
delay(300);
Serial.print(F("LCDWR 1,3- JSON HATASI"));
delay(60000);
return;
}
// geri dönen bilgi örnektir.
//{"USD":{"buying":14.6079,"selling":14.6664,"cross":0,"CR1":"USD","CR2":"USD"},"EURO":{"buying":15.7945,"selling":15.8578,"cross":1.0812,"CR1":"EURO","CR2":"USD"},
//"openweathermap":{"Temperature":"19.73","Min_Temp":"19.73","Max_Temp":"20.97","Feels_Like":"20.25","Pressure":"1002","Humidity":"43","Country":"TR","City":"Izmir",
//"Clouds":"75","Speed":"10.8","W_deg":"120","update":"17-04-2022 15:36:52 +0300","sunrise":"17-04-2022 06:33:01 +0300","sunset":"17-04-2022 19:49:02 +0300",
//"Cdate":"17-04-2022 15:42:58 +0300","CMname":"Apr","CWno":"15","CDno":"0","CDname":"Sun","CMday":"30","datesh":"17-04-2022","hoursh":"15:42","CMno":"17"}}

float temp = (float)(root["openweathermap"]["Temperature"]) ;
float min_temp = (float)(root["openweathermap"]["Temperature"]) ;
float max_temp = (float)(root["openweathermap"]["Temperature"]) ;
float feels_like = (float)(root["openweathermap"]["Temperature"]) ;
int hhumidity = root["openweathermap"]["Humidity"];
float pressure = (float)(root["openweathermap"]["Pressure"]) / 1000;
float wind_speed = root["openweathermap"]["Speed"];
int wind_degree = root["openweathermap"]["W_deg"];
String city=root["openweathermap"]["City"];
String country=root["openweathermap"]["Country"];
int clouds = root["openweathermap"]["Clouds"];
String Sunrise=root["openweathermap"]["sunrise"];
String Sunset=root["openweathermap"]["sunset"];
String Cdate=root["openweathermap"]["Cdate"];
float dolar_alis = (float)(root["USD"]["buying"]) ;
float dolar_satis = (float)(root["USD"]["selling"]) ;
float euro_alis = (float)(root["EURO"]["buying"]) ;
float euro_satis = (float)(root["EURO"]["selling"]) ;
float euro_dolar = (float)(root["EURO"]["cross"]) ;
String datesh=root["openweathermap"]["datesh"];
String hoursh=root["openweathermap"]["hoursh"];
String CMname=root["openweathermap"]["CMname"];
String CWno=root["openweathermap"]["CWno"];
String CDname=root["openweathermap"]["CDname"];
String CMno=root["openweathermap"]["CMno"];
String CMday=root["openweathermap"]["CMday"];

Serial.print ("LCDDD");
delay(200);
Serial.print ("LCDWR 1,1"+String("-")+"SICAKLIK: "+temp+" ");Serial.write(0x03);Serial.print("C");// .write(0x03) 3. yeni karakter. başlarken sc ile 3. karaktere derece işareti koy.
delay(200);
Serial.print ("LCDWR 2,5"+String("-")+"NEM: "+hhumidity+" ");Serial.print("%");
delay(200);
Serial.print ("LCDWR 3,5"+String("-")+"BULUT: "+clouds+" ");Serial.print("%");
delay(200);
Serial.print ("LCDWR 4,1"+String("-")+"RUZGAR: "+wind_speed+"");Serial.print("kmh ");Serial.print(wind_degree);Serial.write(0x03);

delay(10000);

Serial.print ("LCDDD");// Bu komutlar EASYLCD seri haberleşmeli LCD içindir.
delay(200);
Serial.print ("LCDWR 1,1"+String("-")+"USD AL: "+dolar_alis+" TL");
delay(200);
Serial.print ("LCDWR 2,1"+String("-")+"USD SAT: "+dolar_satis+" TL");
delay(200);
Serial.print ("LCDWR 3,1"+String("-")+"EURO AL: "+euro_alis+" TL");
delay(200);
Serial.print ("LCDWR 4,1"+String("-")+"EURO SAT: "+euro_satis+" TL");
delay(200);
// Serial.print ("LCDWR 4,1"+String("-")+"Euro/$: "+euro_dolar);
// delay(100);

delay(10000);

Serial.print ("LCDDD");
delay(200);

Serial.print ("LCDWR 1,6"+String("-")+datesh);
delay(200);
Serial.print ("LCDWR 2,8"+String("-")+hoursh);
delay(200);
Serial.print ("LCDWR 3,5"+String("-")+CMname+" WEEK:"+CWno);
delay(200);
Serial.print ("LCDWR 4,5"+String("-")+CDname+" "+CMno+"/"+CMday );
delay(200);

delay(40000);

}

http.end(); //Close connection

}

//delay(60000); // wait 1 minute

}
// End of code.

 

Bu uygulamayı gerçekleştirdiğim devre budur. Programlama yapılırken GPIO-0 ucu şaseye bağlanır. ESP yüksek akım çektiğinden FT232RL kartından beslenmemeli. Ayrı bir güç kaynağı gerekiyor. Ben 5V powerbank kullandım. FT232RL kartı mutlaka 3.3V jumper konumuna getirilmeli.

 

Tüm ayrıntıları gösteren video: 

JSON ve XML olarak nasıl bilgi alabiliriz. 2 ayrı ESP01 programı olarak çalışması.
 

 

1 Comment

Bir cevap yazın

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