{"id":2291,"date":"2022-04-23T02:29:07","date_gmt":"2022-04-22T23:29:07","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=2291"},"modified":"2022-09-23T16:24:40","modified_gmt":"2022-09-23T13:24:40","slug":"esp01-ile-hava-durumusaatdoviz-projesi","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2022\/04\/23\/esp01-ile-hava-durumusaatdoviz-projesi\/","title":{"rendered":"ESP01 ile HAVA DURUMU+SAAT+D\u00d6V\u0130Z PROJES\u0130"},"content":{"rendered":"<p>Bu projede ESP01 (ESP8266-01) Mod\u00fcl\u00fc ile Openweathermap sitesinden al\u0131nacak hava durumu bilgisi, G\u00fcncel zaman ve d\u00f6viz kurlar\u0131n\u0131 birlikte kullan\u0131ld\u0131\u011f\u0131 bir program\u0131 anlataca\u011f\u0131m.<\/p>\n<p>Bir \u00f6nceki yaz\u0131mda ise UNIXTIME konusunu anlatm\u0131\u015ft\u0131m. O yaz\u0131y\u0131 haz\u0131rlamaktaki amac\u0131m gelen verilerde UNIXTIME kodlar\u0131 bulunmas\u0131yd\u0131. Bu kodlar\u0131 nas\u0131l \u00e7\u00f6zebilirim diye sorgulad\u0131\u011f\u0131mda sadece Arduinoda k\u00fct\u00fcphane deste\u011fi olabilir dedim. Fakat k\u00fct\u00fcphanesiz nas\u0131l \u00e7\u00f6zerim dedim ve <a href=\"https:\/\/www.mikrobotik.com\/wp2\/2022\/04\/13\/unixtime-timestamp-nedir-ve-kutuphanesiz-olarak-nasil-cozumlenir\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>bu yaz\u0131y\u0131 yazm\u0131\u015ft\u0131m.\u00a0<\/strong><\/a><\/p>\n<p>Sonras\u0131nda bu projeye ba\u015flad\u0131m. Tabii ki yol al\u0131rken farkl\u0131 se\u00e7enekler oldu\u011funu g\u00f6rd\u00fcm. Farkl\u0131 se\u00e7enekleri yaz\u0131da g\u00f6receksiniz.<br \/>\nHava durumu program\u0131 yapmak i\u00e7in bilgilerin internette abone oldu\u011funuz bir siteden al\u0131nmas\u0131 yeterli oluyor. Bu sitelerin API destekleri var. Kullan\u0131c\u0131lar bu i\u015flem i\u00e7in siteye kay\u0131t olurlar ve kendilerine bir g\u00fcvenlik anahtar\u0131 verilir.<br \/>\nBu bilgileri isterseniz WEB sitenizde, isterseniz de evde yapaca\u011f\u0131n\u0131z cihazlarda kullanabilirsiniz.<br \/>\nGenelde bu projeleri yapanlar ESP mod\u00fcllerini kullan\u0131r. En k\u00fc\u00e7\u00fck mod\u00fcl ESP01 denilen ESP8266-01 mod\u00fcl\u00fcd\u00fcr.<\/p>\n<p>Bu mod\u00fcl\u00fc direkt programlayarak kullanabildi\u011fimiz gibi, Arduino ya da di\u011fer mikrokontrolc\u00fclerle de kullanabiliriz. Sadece 4 adet GPIO kullan\u0131ma a\u00e7\u0131ld\u0131\u011f\u0131ndan bundan daha fazla giri\u015f \u00e7\u0131k\u0131\u015f pimine ihtiya\u00e7 varsa o zaman bir arduino ya da di\u011fer mikrokontrolc\u00fclerle kullanman\u0131z yerinde olacakt\u0131r.<br \/>\nArduino ile ESP mod\u00fclleri programlamak i\u00e7in <a href=\"https:\/\/www.mikrobotik.com\/wp2\/2020\/02\/28\/arduino-usb-seri-cevirici-olarak-kullanmak\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>bu yaz\u0131ma g\u00f6z atman\u0131z yerinde olacakt\u0131r.<\/strong><\/a><\/p>\n<p>Yapaca\u011f\u0131m projede <span style=\"color: #ff0000;\"><strong>EASYLCD<\/strong><\/span> 4&#215;20 karakter LCD kullanaca\u011f\u0131mdan, sadece LCD kontrol i\u00e7in tek bir pim yeterli olacakt\u0131r, ESP01 mod\u00fcl\u00fcn\u00fc kendi ba\u015f\u0131na \u00e7al\u0131\u015facak \u015fekilde ARDUINO IDE ile programl\u0131yorum.<br \/>\nBunun yan\u0131 s\u0131ra I2C OLED ya da ba\u015fka ekranlar olursa, ESP01 mod\u00fcl\u00fc bunlar\u0131 da 2 pim ile kontrol edebilir.<\/p>\n<p>Programlamada dikkat etmeniz gereken bir durum var. Bu da ESP01 kullan\u0131rken, <span style=\"color: #ff6600;\">HTTP<\/span> ya da <span style=\"color: #ff6600;\">HTTPS<\/span> olan sitelere ba\u011flant\u0131 fark\u0131. \u015eayet <span style=\"color: #ff6600;\">HTTPS kullan\u0131lacaksa, ESP security k\u00fct\u00fcphanesini<\/span> kullanman\u0131z gerekir. Bu k\u00fct\u00fcphaneyle ilgili \u00f6rnekler internette bulunmaktad\u0131r.<\/p>\n<p>Openweathermap sitesinden bilgi al\u0131yorum. Bu site <span style=\"color: #ff6600;\">HTTP<\/span> ve <span style=\"color: #ff6600;\">HTTPS<\/span> olarak <span style=\"color: #ff6600;\">API KEY<\/span> ile bilgi g\u00f6nderebiliyor. Bundan dolay\u0131 SECURITY k\u00fct\u00fcphanesini kullanmayaca\u011f\u0131m.<\/p>\n<p>Bu site zaman bilgisi olarak bulundu\u011funuz<strong><span style=\"color: #ff6600;\"> zaman\u0131 vermiyor.<\/span><\/strong> Sadece bilgi g\u00fcncelleme zaman\u0131n\u0131 ve g\u00fcn do\u011fumu ile g\u00fcn bat\u0131m\u0131 zamanlar\u0131n\u0131 veriyor.<br \/>\nYani bir de ger\u00e7ek anl\u0131k zaman\u0131 alman\u0131z gerekebiliyor. Bunu da genellikle bu tip projelerde NTP \u00fczerinden al\u0131nan anl\u0131k zaman bilgisi ile sa\u011fl\u0131yorlar.<\/p>\n<p><strong><span style=\"color: #ff6600;\">\u00d6ncelikle Projemde neler var bunlar\u0131 g\u00f6relim.<\/span><\/strong><br \/>\n1-) Openweathermap sitesinden anl\u0131k hava durumu bilgisini almak. ( Bu site free limiti dakikada 60 ileti\u015fim hakk\u0131d\u0131r. Arka arkaya bundan daha h\u0131zl\u0131 bir ileti\u015fim kurarsan\u0131z bilgi gelmeyecektir. Ya da site taraf\u0131ndan ikaz edileceksiniz bunu da alg\u0131lamazsan\u0131z api devre d\u0131\u015f\u0131 kalabilir. )<\/p>\n<p>2-) Zaman bilgisi. NTP den al\u0131nan zaman bilgisi olabilir ama ben kendi PHP sunucumun zaman bilgisini ald\u0131m. (Her sunucu zaten kendi saatini devaml\u0131 g\u00fcncel tutar.)<\/p>\n<p>3-) TCMB kur bilgileri : TCMB den XML format\u0131nda al\u0131nan d\u00f6viz bilgilerinden istedi\u011fimi yans\u0131tabilirim.<br \/>\n(Fakat ben buna ESP ile direkt ula\u015fmayaca\u011f\u0131m PHP \u00fczerinden yapaca\u011f\u0131m. )<\/p>\n<p>Projede ESP ile \u00d6nce Openweathermap sitesine ba\u011flan\u0131p gelen bilgiyi par\u00e7alar\u0131m. Sonras\u0131nda NTP den gelen zaman bilgisini \u00e7\u00f6zerim. Sonras\u0131nda ise TCMB ye ba\u011flan\u0131p kur bilgilerini alabilirim. Bu bilgileri de par\u00e7alay\u0131p de\u011fi\u015fkenlere aktarabilirim.<br \/>\nBunu yapmak i\u00e7in 3 kez internete ba\u011flan\u0131p bu bilgileri al\u0131p bunlar\u0131 par\u00e7alayarak de\u011fi\u015fkenlere koymam gerek. ESP program\u0131m olduk\u00e7a \u015fi\u015fecek ve bunlar\u0131 \u00e7\u00f6zmek i\u00e7in \u00e7ok \u00e7aba harcayacak.<br \/>\nAyr\u0131ca gelen bilgideki UNIXTIME kodlar\u0131n\u0131 da \u00e7\u00f6zmem gerekecek. Bunu da ya k\u00fct\u00fcphaneyle ya da internetten otomatik \u00e7evirerek yapmam gerek. ( <span style=\"color: #ff6600;\">UNIXTIME yaz\u0131mda se\u00e7eneklerinizi g\u00f6rebilirsiniz.<\/span> )<\/p>\n<p>Ben de t\u00fcm bu ad\u0131mlar\u0131 PHP dosyas\u0131na yapt\u0131r\u0131p, sonras\u0131nda istedi\u011fim bilgileri g\u00f6ndermesini s\u00f6yledim. Hem de istedi\u011fim formatta. Bilgileri kolay olsun diye JSON format\u0131nda istedim ve ay\u0131rarak de\u011fi\u015fkenlere aktard\u0131m. ESP program\u0131m olduk\u00e7a basit ve rahat oldu.<\/p>\n<p><span style=\"color: #ff6600;\">Sizlere videoda her iki durumu da g\u00f6stermeye \u00e7al\u0131\u015faca\u011f\u0131m.<\/span><\/p>\n<p>Daha \u00f6nce openweathermap sitesinin http ile bilgi g\u00f6nderebildi\u011fini yazm\u0131\u015ft\u0131m. Ayr\u0131ca bu yaz\u0131lan adres linkinde baz\u0131 ayarlanmalar da yapabilirsiniz.<\/p>\n<p><strong><a href=\"https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=izmir,TR&amp;appid=c593dca9f1e67108b4a0aa1b670e72fc\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=izmir,TR&amp;appid=c593dca9f1e67108b4a0aa1b670e72fc<\/a><\/strong><\/p>\n<p>yukar\u0131daki link ile bilgi almak isterseniz size JSON format\u0131nda ve S\u0131cakl\u0131klar\u0131n Fahrenhayt \u00a0\u00a0olarak geldi\u011fini g\u00f6rebilirsiniz. En sade hali budur.<br \/>\n<strong><span style=\"color: #ff0000;\">Gelen bilgi \u015f\u00f6yledir:<\/span><\/strong><br \/>\n<strong>{&#8220;coord&#8221;:{&#8220;lon&#8221;:27.0923,&#8221;lat&#8221;:38.4622},&#8221;weather&#8221;:[{&#8220;id&#8221;:802,&#8221;main&#8221;:&#8221;Clouds&#8221;,&#8221;description&#8221;:&#8221;<span style=\"color: #ff6600;\">scattered clouds<\/span>&#8220;,&#8221;icon&#8221;:&#8221;03d&#8221;}],&#8221;base&#8221;:&#8221;stations&#8221;,&#8221;main&#8221;:{&#8220;<span style=\"color: #ff6600;\">temp&#8221;:288.12,<\/span>&#8220;feels_like&#8221;:287.11,&#8221;temp_min&#8221;:288.12,&#8221;temp_max&#8221;:288.88,&#8221;pressure&#8221;:1013,&#8221;humidity&#8221;:55},&#8221;visibility&#8221;:10000,&#8221;wind&#8221;:{&#8220;speed&#8221;:7.2,&#8221;deg&#8221;:330},&#8221;clouds&#8221;:{&#8220;all&#8221;:40},&#8221;dt&#8221;:1650381970,&#8221;sys&#8221;:{&#8220;type&#8221;:1,&#8221;id&#8221;:6979,&#8221;country&#8221;:&#8221;TR&#8221;,&#8221;sunrise&#8221;:1650339014,&#8221;sunset&#8221;:1650387056},&#8221;timezone&#8221;:10800,&#8221;id&#8221;:311044,&#8221;name&#8221;:&#8221;\u0130zmir&#8221;,&#8221;cod&#8221;:200}<\/strong><\/p>\n<p><strong><a href=\"https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=manisa,TR&amp;appid=c593dca9f1e67108b4a0aa1b670e72fc&amp;units=metric\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=manisa,TR&amp;appid=c593dca9f1e67108b4a0aa1b670e72fc&amp;units=metric<\/a><\/strong><\/p>\n<p>Yukar\u0131daki link ile sondaki UNITS parametresi, size bilgilerin metrik olarak geldi\u011fini ve Santigrat olarak s\u0131cakl\u0131k derecesinin geldi\u011fini g\u00f6sterecektir.<br \/>\nYukar\u0131daki her iki link de \u0130ngilizce olarak gelecektir. \u00d6zellikle DESCRIPTION k\u0131sm\u0131 bulut durumunu \u0130ngilizce verir. (Zaten gelen bilgide komutlar hep \u0130ngilizcedir. Sadece tan\u0131mlamalar T\u00fcrk\u00e7eye \u00e7evrilir.)<br \/>\n<span style=\"color: #ff0000;\"><strong>Gelen bilgi :<\/strong><\/span><br \/>\n<strong>{&#8220;coord&#8221;:{&#8220;lon&#8221;:28.1667,&#8221;lat&#8221;:38.8333},&#8221;weather&#8221;:[{&#8220;id&#8221;:800,&#8221;main&#8221;:&#8221;Clear&#8221;,&#8221;description&#8221;:&#8221;<span style=\"color: #ff6600;\">clear sky<\/span>&#8220;,&#8221;icon&#8221;:&#8221;01n&#8221;}],&#8221;base&#8221;:&#8221;stations&#8221;,&#8221;main&#8221;:{<span style=\"color: #ff6600;\">&#8220;temp&#8221;:3.43,<\/span>&#8220;feels_like&#8221;:2.38,&#8221;temp_min&#8221;:3.43,&#8221;temp_max&#8221;:3.43,&#8221;pressure&#8221;:1017,&#8221;humidity&#8221;:81,&#8221;sea_level&#8221;:1017,&#8221;grnd_level&#8221;:947},&#8221;visibility&#8221;:10000,&#8221;wind&#8221;:{&#8220;speed&#8221;:1.35,&#8221;deg&#8221;:26,&#8221;gust&#8221;:1.36},&#8221;clouds&#8221;:{&#8220;all&#8221;:8},&#8221;dt&#8221;:1650408347,&#8221;sys&#8221;:{&#8220;country&#8221;:&#8221;TR&#8221;,&#8221;sunrise&#8221;:1650425043,&#8221;sunset&#8221;:1650473287},&#8221;timezone&#8221;:10800,&#8221;id&#8221;:304825,&#8221;name&#8221;:&#8221;Manisa Province&#8221;,&#8221;cod&#8221;:200}<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong><a href=\"https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=izmir,TR&amp;appid=c593dca9f1e67108b4a0aa1b670e72fc&amp;units=metric&amp;lang=tr\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=izmir,TR&amp;appid=c593dca9f1e67108b4a0aa1b670e72fc&amp;units=metric&amp;lang=tr<\/a><\/strong><\/p>\n<p>Yukar\u0131daki link de ise son k\u0131s\u0131mdaki LANG parametresi gelen a\u00e7\u0131klama bilgilerinin T\u00fcrk\u00e7e gelmesini sa\u011flar. Mesela par\u00e7al\u0131 bulutlu gibi. Komutlar hep \u0130ngilizcedir.<br \/>\n<span style=\"color: #ff0000;\"><strong>Gelen bilgi :<\/strong><\/span><\/p>\n<p><strong>{&#8220;coord&#8221;:{&#8220;lon&#8221;:27.0923,&#8221;lat&#8221;:38.4622},&#8221;weather&#8221;:[{&#8220;id&#8221;:800,&#8221;main&#8221;:&#8221;Clear&#8221;,&#8221;description&#8221;:&#8221;<span style=\"color: #ff6600;\">a\u00e7\u0131k<\/span>&#8220;,&#8221;icon&#8221;:&#8221;01n&#8221;}],&#8221;base&#8221;:&#8221;stations&#8221;,&#8221;main&#8221;:{&#8220;temp&#8221;:7.12,&#8221;feels_like&#8221;:7.12,&#8221;temp_min&#8221;:6.97,&#8221;temp_max&#8221;:10.15,&#8221;pressure&#8221;:1016,&#8221;humidity&#8221;:89},&#8221;visibility&#8221;:10000,&#8221;wind&#8221;:{&#8220;speed&#8221;:0.51,&#8221;deg&#8221;:310},&#8221;clouds&#8221;:{&#8220;all&#8221;:0},&#8221;dt&#8221;:1650408127,&#8221;sys&#8221;:{&#8220;type&#8221;:1,&#8221;id&#8221;:6979,&#8221;country&#8221;:&#8221;TR&#8221;,&#8221;sunrise&#8221;:1650425332,&#8221;sunset&#8221;:1650473514},&#8221;timezone&#8221;:10800,&#8221;id&#8221;:311044,&#8221;name&#8221;:&#8221;\u0130zmir&#8221;,&#8221;cod&#8221;:200}<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Ayr\u0131ca gelen bilginin <span style=\"color: #ff6600;\">JSON format\u0131m\u0131 yoksa XML format\u0131nda<\/span> m\u0131 gelmesini se\u00e7ebiliyorsunuz.<\/p>\n<p><strong><a href=\"https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=izmir,TR&amp;appid=c593dca9f1e67108b4a0aa1b670e72fc&amp;units=metric&amp;lang=tr&amp;mode=xml\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=izmir,TR&amp;appid=c593dca9f1e67108b4a0aa1b670e72fc&amp;units=metric&amp;lang=tr&amp;mode=xml<\/a><\/strong><\/p>\n<p>Yukar\u0131daki komutta son parametre <span style=\"color: #ff6600;\">MODE<\/span> parametresidir. Bu olmazsa JSON format\u0131nda bilgi gelir. Burada XML format\u0131 istersek, O zaman MODE parametresini kullanabiliriz. <strong><span style=\"color: #ff6600;\">Bu mod kullan\u0131ld\u0131\u011f\u0131nda zaman bilgisi tarih format\u0131nda gelir. JSON format\u0131nda ise UNIXTIME kodu olarak gelir.<br \/>\n<\/span><span style=\"color: #ff0000;\">Gelen bilgi :<br \/>\n<\/span><br \/>\n<\/strong><strong>&lt;current&gt;<br \/>\n<\/strong><strong>&lt;city\u00a0id=&#8221;311044&#8243;\u00a0name=&#8221;\u0130zmir&#8221;&gt;<br \/>\n<\/strong><strong>&lt;coord\u00a0lon=&#8221;27.0923&#8243;\u00a0lat=&#8221;38.4622&#8243;\/&gt;<br \/>\n<\/strong><strong>&lt;country&gt;<\/strong><strong>TR<\/strong><strong>&lt;\/country&gt;<br \/>\n<\/strong><strong>&lt;timezone&gt;<\/strong><strong>10800<\/strong><strong>&lt;\/timezone&gt;<br \/>\n<\/strong><strong>&lt;sun\u00a0rise=&#8221;2022-04-19T03:30:14&#8243;\u00a0set=&#8221;2022-04-19T16:50:56&#8243;\/&gt;<br \/>\n<\/strong><strong>&lt;\/city&gt;<br \/>\n<\/strong><strong>&lt;temperature\u00a0value=&#8221;14.97&#8243;\u00a0min=&#8221;14.97&#8243;\u00a0max=&#8221;15.73&#8243;\u00a0unit=&#8221;celsius&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;feels_like\u00a0value=&#8221;13.96&#8243;\u00a0unit=&#8221;celsius&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;humidity\u00a0value=&#8221;55&#8243;\u00a0unit=&#8221;%&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;pressure\u00a0value=&#8221;1013&#8243;\u00a0unit=&#8221;hPa&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;wind&gt;<br \/>\n<\/strong><strong>&lt;speed\u00a0value=&#8221;7.2&#8243;\u00a0unit=&#8221;m\/s&#8221;\u00a0name=&#8221;Moderate breeze&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;gusts\/&gt;<br \/>\n<\/strong><strong>&lt;direction\u00a0value=&#8221;330&#8243;\u00a0code=&#8221;NNW&#8221;\u00a0name=&#8221;North-northwest&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;\/wind&gt;<br \/>\n<\/strong><strong>&lt;clouds\u00a0value=&#8221;40&#8243;\u00a0name=&#8221;par\u00e7al\u0131 az bulutlu&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;visibility\u00a0value=&#8221;10000&#8243;\/&gt;<br \/>\n<\/strong><strong>&lt;precipitation\u00a0mode=&#8221;no&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;weather\u00a0number=&#8221;802&#8243;\u00a0value=&#8221;par\u00e7al\u0131 az bulutlu&#8221;\u00a0icon=&#8221;03d&#8221;\/&gt;<br \/>\n<\/strong><strong>&lt;lastupdate\u00a0value=&#8221;2022-04-19T15:26:39&#8243;\/&gt;<br \/>\n<\/strong><strong>&lt;\/current&gt;<\/strong><\/p>\n<p>Yukar\u0131daki \u00f6rnekler direkt olarak Openweathermap sitesinden geliyor. Ayr\u0131ca <strong>HTTPS<\/strong> olarak link g\u00f6nderildi\u011fine de dikkat edin. Bundan dolay\u0131 ESP i\u00e7in SECURITY k\u00fct\u00fcphanesine ihtiya\u00e7 olacakt\u0131r. Fakat <span style=\"color: #ff6600;\">HTTP modunda<\/span> da openweathermap sitesine istek yollayablece\u011finizden dolay\u0131, <strong><span style=\"color: #ff0000;\">ESP security k\u00fct\u00fcphanesini kullanmad\u0131m.<\/span><\/strong><\/p>\n<p><strong>Openweathermap<\/strong> sitesi size k\u00fc\u00e7\u00fck <strong><span style=\"color: #ff6600;\">icon lar da sa\u011fl\u0131yor.<\/span><\/strong> Programlar\u0131n\u0131zda bu iconlar\u0131 hava durumunu g\u00f6stermek i\u00e7in kullanabilirsiniz.<br \/>\n<a href=\"https:\/\/openweathermap.org\/weather-conditions\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Bu sayfada se\u00e7enekleri g\u00f6rebilirsiniz.\u00a0<\/strong><\/a><\/p>\n<p>Bununla birlikte gelen bilginin WIND b\u00f6l\u00fcm\u00fcnde Speed r\u00fczgar h\u0131z\u0131 ve <strong><span style=\"color: #ff6600;\">&#8220;W_deg&#8221;:&#8221;330&#8243;<\/span><\/strong> gibi bir r\u00fczgar y\u00f6n\u00fc derece olarak bulunur. Bu r\u00fczgar y\u00f6n\u00fcn\u00fc ise a\u015fa\u011f\u0131daki resme g\u00f6re sizler y\u00f6n bilgisi olarak \u00e7evirebilirsiniz.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP01_openweathermap\/wind_directions.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP01_openweathermap\/wind_directions.png?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><br \/>\nBununla birlikte bunlar\u0131n hepsini <span style=\"color: #ff6600;\">ESP ile ay\u0131rmak yerine<\/span>, PHP i\u00e7erisinde bunlar\u0131 yapt\u0131r\u0131p, ESP program\u0131m\u0131z\u0131 daha sade tutabiliriz demi\u015ftim.<br \/>\nA\u015fa\u011f\u0131da da bu linkleri bulacaks\u0131n\u0131z.<\/p>\n<p><strong><a href=\"http:\/\/mikrobotikradyo.tk\/api\/openweather\/indextr.php\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/mikrobotikradyo.tk\/api\/openweather\/indextr.php<\/a><\/strong><\/p>\n<p>Yukar\u0131daki link internetten ald\u0131\u011f\u0131m \u00f6rnek bir php dosyas\u0131d\u0131r. Bu dosya openweathermap sitesinden bilgiyi al\u0131p, nas\u0131l kendi sitenizde kullanabilirsiniz bunu g\u00f6steriyor.<\/p>\n<p><strong><a href=\"http:\/\/mikrobotikradyo.tk\/api\/openweather\/clocksade.php\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/mikrobotikradyo.tk\/api\/openweather\/clocksade.php<\/a><\/strong><\/p>\n<p>Yukar\u0131daki link PHP dosyas\u0131ndan nas\u0131l istedi\u011fimiz formatta anl\u0131k zaman\u0131 \u00f6\u011frenebiliriz bunu g\u00f6steriyor. <span style=\"color: #ff6600;\">NTP sunucular\u0131 yerine, kendi sitenizin PHP sunucusunu kullanabilirsiniz.<\/span><\/p>\n<p><strong><a href=\"http:\/\/mikrobotikradyo.tk\/api\/openweather\/clocksade1.php?ut=1650366316\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/mikrobotikradyo.tk\/api\/openweather\/clocksade1.php?ut=1650366316<\/a><\/strong><\/p>\n<p>Yukar\u0131daki link ise openweathermap sitesinden JSON format\u0131nda ald\u0131\u011f\u0131n\u0131z bilgilerde bulunan UNIXTIME kodlar\u0131n\u0131 size tarih format\u0131nda g\u00f6nderen bir program\u0131 \u00e7a\u011f\u0131r\u0131r. Bu program PHP ile yaz\u0131lm\u0131\u015ft\u0131r. <span style=\"color: #ff6600;\">UNIXTIME kodunuzu link sonuna ekleyerek istek yaparsan\u0131z d\u00f6nen bilgi istedi\u011finiz tarih format\u0131nda ve GMT dedi\u011fimiz saat diliminde olacakt\u0131r.<br \/>\n<\/span><strong>A\u015fa\u011f\u0131daki bilgi T\u00fcrkiye i\u00e7in GMT eklenmi\u015f saat bilgisidir. Ba\u015fka \u00fclkeye g\u00f6re denenecekse PHP dosyas\u0131nda \u00fclke se\u00e7imi yap\u0131lmal\u0131d\u0131r.<\/strong><\/p>\n<p><strong>1650366316 = 19-04-2022 14:05:16 +0300<\/strong><\/p>\n<p><strong><a href=\"http:\/\/mikrobotikradyo.tk\/api\/openweather\/openweather3.php\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/mikrobotikradyo.tk\/api\/openweather\/openweather3.php<\/a><\/strong><\/p>\n<p>Yukar\u0131daki link ile <strong><span style=\"color: #ff6600;\">XML format\u0131nda<\/span><\/strong> openweathermap sitesinden al\u0131nan bilgi ile <strong><span style=\"color: #ff6600;\">TCMB dan XML format\u0131nda<\/span> <\/strong>al\u0131nan bilginin i\u015flenmesini g\u00f6sterir.<br \/>\nBu link sonu\u00e7lar\u0131 \u00e7ok yer kaplad\u0131\u011f\u0131ndan sayfaya yap\u0131\u015ft\u0131rmad\u0131m. Gelen bilgide, En \u00fcstteki b\u00f6l\u00fcm Openweathermap sitesinden gelen bilginin tamam\u0131d\u0131r. XML format\u0131ndad\u0131r.<br \/>\n<strong>2. B\u00f6l\u00fcm<\/strong> ise \u00f6rnek de\u011fi\u015fken aktar\u0131m\u0131d\u0131r.<br \/>\n<strong>3. B\u00f6l\u00fcm<\/strong> ise TCMB den gelen XML format\u0131ndaki KUR bilgilerinin tamam\u0131d\u0131r.<br \/>\n<strong>4. Ve son<\/strong> b\u00f6l\u00fcm istek sonucunda geri d\u00f6nen bilgidir. <span style=\"color: #ff6600;\">JSON format\u0131ndad\u0131r.<\/span><\/p>\n<p><strong><span style=\"color: #ff6600;\">Yukar\u0131daki link XML i\u015fleyi\u015fini g\u00f6rmeniz i\u00e7in \u00f6rnek olarak verildi.<\/span><\/strong><\/p>\n<p><strong><a href=\"http:\/\/mikrobotikradyo.tk\/api\/openweather\/openweather_json1.php\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/mikrobotikradyo.tk\/api\/openweather\/openweather_json1.php<\/a><\/strong><\/p>\n<p>Yukar\u0131daki link ise gelen bilgileri d\u00fczenleyerek size geri d\u00f6nen bilgiyi g\u00f6sterir. Bu bilgi ESP JSON k\u00fct\u00fcphanesi ile par\u00e7alan\u0131r, de\u011fi\u015fkenlere aktar\u0131l\u0131r. Sadece istediklerimiz geldi\u011fi i\u00e7in PHP deki kalabal\u0131k, ESP program\u0131nda olmaz.<\/p>\n<p><strong>Not:<\/strong> PHP dosyalar\u0131nda bir problem g\u00f6rebilirsiniz. Mesela City parametresini \u0130zmir se\u00e7tiniz. Size gelen bilgi \u0130zmir olarak gelecektir. Fakat geri d\u00f6nen bilgi \u0130zmir bilgisi olsa da PHP de T\u00fcrk\u00e7e karakter sorunu olabiliyor. Bu karakterin k\u00fc\u00e7\u00fck harfini istedi\u011finizde ise <strong><span style=\"color: #ff6600;\">&#8220;\u0131&#8221;<\/span><\/strong> harfini getiriyor ki bu da T\u00fcrk\u00e7e karakter oldu\u011fundan sorun yarat\u0131yor. Son PHP dosyas\u0131nda gelen CITY parametresinde <span style=\"color: #ff6600;\"><strong>\u201c\u0130\u201d<\/strong><\/span> harfi varsa bunu <strong><span style=\"color: #ff6600;\">\u201cI\u201d<\/span><\/strong> ile de\u011fi\u015ftir diye bir komut yap\u0131s\u0131 eklendi. Bu da ESP ye do\u011fru karakter gitsin diye yap\u0131ld\u0131. T\u00fcrk\u00e7e karakter ESP de de sorun yaratacakt\u0131. Ayn\u0131 zamanda LCD ekranda da sorun yaratacakt\u0131.<\/p>\n<p><span style=\"color: #ff6600;\">Bu linklerin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131 videoda g\u00f6r\u00fclecektir. <\/span><\/p>\n<p>PHP dosyalar\u0131ndan, <span style=\"color: #ff6600;\"><strong>(openweather_json1.php)\u00a0<\/strong><\/span> Json format\u0131nda istek yapan dosya CURL programlama \u00f6rne\u011fini i\u00e7inde bar\u0131nd\u0131r\u0131yor. CURL fonksiyonu, sadece bilgiyi almak i\u00e7in istek yapmada kullan\u0131l\u0131r ve gelen bilgi PHP dosyas\u0131nda i\u015flenmeye ba\u015flar.<br \/>\n<strong>CURL function : <\/strong><\/p>\n<p><strong>function WeatherUrl($url){<br \/>\n<\/strong><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $cn = curl_init();<br \/>\n<\/strong><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 curl_setopt($cn, CURLOPT_RETURNTRANSFER, 1);<br \/>\n<\/strong><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 curl_setopt($cn, CURLOPT_URL, $url);\u00a0\u00a0\u00a0 \/\/ get the contents using url<br \/>\n<\/strong><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $weatherdata = curl_exec($cn); \/\/ execute the curl request<br \/>\n<\/strong><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 curl_close($cn); \/\/close the cURL<br \/>\n<\/strong><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return $weatherdata;<br \/>\n<\/strong><strong>}<\/strong><\/p>\n<p>PHP i\u00e7erisinde <span style=\"color: #ff6600;\"><strong>\u201c\u0130\u201d<\/strong><\/span> harfini <strong><span style=\"color: #ff6600;\">\u201ci\u201d <\/span><\/strong>harfine \u00e7evirmede kullan\u0131lan program par\u00e7as\u0131 budur.<\/p>\n<p>\/\/ alt sat\u0131rlarda <span style=\"color: #ff6600;\">&#8220;\u0130&#8221;<\/span> harfini <span style=\"color: #ff6600;\">&#8220;i&#8221;<\/span> harfine \u00e7eviriyorum.<br \/>\n$searchchar\u00a0\u00a0 = &#8216;\u0130&#8217;;<br \/>\n$konum = strpos($city, $searchchar);<br \/>\nif ($konum === false) {<br \/>\n\/\/\u00a0 echo &#8220;&#8216;$city&#8217; dizgesi i\u00e7inde &#8216;$searchchar&#8217; dizgesi yok&#8221;;<br \/>\n$bak=$city;<br \/>\n} else {<br \/>\n\/\/ echo &#8220;&#8216;$city&#8217; dizgesi i\u00e7inde &#8216;$searchchar&#8217; dizgesi var&#8221;;<br \/>\n\/\/\u00a0 echo &#8221; ve $konum. karakterden ba\u015fl\u0131yor&#8221;;<br \/>\n$bak=str_replace(&#8220;\u0130&#8221;,&#8221;I&#8221;,$city);\/\/ burada \u0130 harfi i harfine \u00e7evriliyor.<br \/>\n}<br \/>\n$city=$bak;<\/p>\n<p><span style=\"color: #ff6600;\">Ayr\u0131ca \u015funa da dikkat etmelisiniz.<\/span> UNIXTIME size GMT+0 zaman b\u00f6lgesindeki zaman\u0131 verir. Fakat siz T\u00fcrkiye i\u00e7in zaman isteyecekseniz GMT +3 zaman\u0131na sahip olmal\u0131s\u0131n\u0131z. PHP i\u00e7erisinde bir komutla bunu yapabilirsiniz. Bu komut TIMEZONE denilen zaman b\u00f6lgesini ayarlar. Gelen bilgi sizin zaman b\u00f6lgenize g\u00f6re gelir.<br \/>\n<strong>Komut:<\/strong> <span style=\"color: #ff6600;\">date_default_timezone_set(&#8220;Europe\/istanbul&#8221;);<\/span><\/p>\n<p><span style=\"color: #ff6600;\">Desteklenen zaman b\u00f6lgelerinin listesi<\/span> i\u00e7in bu siteye bakabilirsiniz.<br \/>\n<strong><a href=\"https:\/\/www.php.net\/manual\/tr\/timezones.php\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.php.net\/manual\/tr\/timezones.php<\/a><\/strong><\/p>\n<p><span style=\"color: #ff6600;\">PHP dosyas\u0131nda DATE format\u0131nda<\/span> kullan\u0131lan karakterler, sizin istedi\u011finiz formatta zaman\u0131 alman\u0131z\u0131 sa\u011flar. PHP dosyas\u0131n\u0131 incelerken bu format\u0131 g\u00f6receksiniz. Mesela \u201ch\u201d ile \u201cH\u201d harfinin farkl\u0131 anlama geldi\u011fini g\u00f6rebilirsiniz. Bu tip karakterlerin listesini de buradan alabilirsiniz.<br \/>\n<strong><a href=\"https:\/\/www.w3schools.com\/php\/func_date_date.asp\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.w3schools.com\/php\/func_date_date.asp<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff6600;\">PHP dosyalar\u0131 i\u00e7in benim sitem yok diyorsan\u0131z<\/span> <\/strong>BEDAVA olarak kendi sitenize sahip olabilirsiniz. (000webhost sitesi ayda bir kere dosya g\u00fcncellemesi yapman\u0131z\u0131 ister. Bu yap\u0131lmazsa o sitenin kullan\u0131lmad\u0131\u011f\u0131n\u0131 d\u00fc\u015f\u00fcn\u00fcp otomatik kapat\u0131r. )<br \/>\n<strong><span style=\"color: #ff6600;\">Kendi sitenize sahip olmak i\u00e7in<\/span> <a href=\"https:\/\/www.mikrobotik.com\/wp2\/2021\/05\/12\/bedava-website-kur_google-drive_-dosya-kullan_html_javascript_php_sql_kullanimi\/\" target=\"_blank\" rel=\"noopener noreferrer\">bu yaz\u0131m\u0131 okuyabilirsiniz.\u00a0<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff6600;\">T\u00dcM dosyalara <\/span><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/ESP01_openweathermap\" target=\"_blank\" rel=\"noopener noreferrer\">buradan ula\u015fabilirsiniz.\u00a0<\/a><\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Arduino programlar\u0131n\u0131n a\u00e7\u0131klamas\u0131 :\u00a0<\/strong><\/span><\/p>\n<p><strong><span style=\"color: #ff0000;\">1-)<\/span> json_ayirma_openweathermap<\/strong> program\u0131 openweathermap sitesinden direkt olarak bilgiyi al\u0131r ve json olarak par\u00e7alar, de\u011fi\u015fkenlere aktar\u0131r. (<span style=\"color: #ff6600;\">\u00d6rnek ama\u00e7l\u0131 yap\u0131ld\u0131<\/span>)<\/p>\n<p><strong><span style=\"color: #ff0000;\">2-)<\/span> json_ayirma_php<\/strong> program\u0131 PHP sitesinden gelen JSON format\u0131ndaki bilgileri par\u00e7alar ve de\u011fi\u015fkenlere aktar\u0131r.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>3-)<\/strong><\/span> <strong>json_ayirma_easylcd<\/strong> program\u0131 2. program ile ayn\u0131d\u0131r. Tek fark EASYLCD karakter LCD ye yazmas\u0131d\u0131r.<\/p>\n<p><strong><span style=\"color: #ff0000;\">4-)<\/span> xml_ayirma_kutuphanesiz<\/strong> program\u0131 ise XML format\u0131nda openweathermap sitesinden gelen bilgiyi ay\u0131klar ve de\u011fi\u015fkenlere aktar\u0131r. Ayn\u0131 zamanda PHP sunucusundan da ge\u00e7erli zaman\u0131 al\u0131r ve ekrana yans\u0131t\u0131r. (<span style=\"color: #ff6600;\">\u00d6rnek ama\u00e7l\u0131 yap\u0131ld\u0131<\/span>)<\/p>\n<p>A\u015fa\u011f\u0131da ESP program\u0131n\u0131n son versiyonu var. ( <strong><span style=\"color: #ff6600;\">T\u00fcm dosyalar aras\u0131ndan da alabilirsiniz.<\/span> <\/strong>)<\/p>\n<pre style=\"background: #ddd; width: 500; padding: 20px; font-size: 16px;\">\/\/{\"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\"},\r\n\/\/\"openweathermap\":{\"Temperature\":\"22.97\",\"Min_Temp\":\"22.97\",\"Max_Temp\":\"23.73\",\"Feels_Like\":\"22.37\",\"Pressure\":\"1017\",\"Humidity\":\"40\",\"Country\":\"TR\",\"City\":\"Izmir\",\r\n\/\/\"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\"}}\r\n\r\n\/**************************************************************************************\r\n\r\nInternet weather station using ESP8266 Wi-Fi module\r\nThis is a free software with NO WARRANTY.\r\nhttp:\/\/simple-circuit.com\/\r\n\r\n***************************************************************************************\/\r\n\r\n#include\r\n#include \/\/ http web access library\r\n#include \/\/ JSON decoding library\r\n\r\nconst char *ssid = \"ZYXEL_SAF\";\r\nconst char *password = \"5f7JXDQeeYzT\";\r\nint sat=0;\r\nint sut=0;\r\n\r\nvoid setup() {\r\n\r\nSerial.begin(115200);\r\ndelay(500);\r\n\/\/Serial.print(\"Connecting.\");\r\n\/\/Serial.println(ssid);\r\n\/\/Serial.println(password);\r\nWiFi.begin(ssid, password); \/\/ access Wi-FI point\r\n\r\nwhile ( WiFi.status() != WL_CONNECTED ) {\r\ndelay(500);\r\n\/\/ Serial.print(\".\");\r\n}\r\n\/\/ Serial.println(\"connected\\r\\n\");\r\nSerial.print(\"LCDSC 12,3-\");\r\ndelay(500);\r\n\r\n}\r\n\r\nvoid loop() {\r\n\r\nif (WiFi.status() == WL_CONNECTED) { \/\/Check WiFi connection status\r\n\r\nHTTPClient http; \/\/Declare an object of class HTTPClient\r\n\r\n\/\/ specify request destination\r\n\/\/http.begin(\"http:\/\/api.openweathermap.org\/data\/2.5\/weather?q=London,uk&amp;APPID=1041444a18cfb8448343254a45721b1d\");\r\nhttp.begin(\"<span style=\"color: #ff6600;\">http:\/\/mikrobotikradyo.tk\/api\/openweather\/openweather_json1.php<\/span>\");\r\nint httpCode = http.GET(); \/\/ send the request\r\n\r\nif (httpCode &gt; 0) { \/\/ check the returning code\r\n\r\nString payload = http.getString(); \/\/Get the request response payload\r\n\/\/ Serial.println(payload);\r\n\r\nDynamicJsonBuffer jsonBuffer(512);\r\n\r\n\/\/ Parse JSON object\r\nJsonObject&amp; root = jsonBuffer.parseObject(payload);\r\nif (!root.success()) {\r\nSerial.print(F(\"LCDDD\"));\r\ndelay(300);\r\nSerial.print(F(\"LCDWR 1,3- JSON HATASI\"));\r\ndelay(60000);\r\nreturn;\r\n}\r\n\/\/ <span style=\"color: #ff6600;\">geri d\u00f6nen bilgi \u00f6rnektir.<\/span>\r\n\/\/{\"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\"},\r\n\/\/\"openweathermap\":{\"Temperature\":\"19.73\",\"Min_Temp\":\"19.73\",\"Max_Temp\":\"20.97\",\"Feels_Like\":\"20.25\",\"Pressure\":\"1002\",\"Humidity\":\"43\",\"Country\":\"TR\",\"City\":\"Izmir\",\r\n\/\/\"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\",\r\n\/\/\"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\"}}\r\n\r\nfloat temp = (float)(root[\"openweathermap\"][\"Temperature\"]) ;\r\nfloat min_temp = (float)(root[\"openweathermap\"][\"Temperature\"]) ;\r\nfloat max_temp = (float)(root[\"openweathermap\"][\"Temperature\"]) ;\r\nfloat feels_like = (float)(root[\"openweathermap\"][\"Temperature\"]) ;\r\nint hhumidity = root[\"openweathermap\"][\"Humidity\"];\r\nfloat pressure = (float)(root[\"openweathermap\"][\"Pressure\"]) \/ 1000;\r\nfloat wind_speed = root[\"openweathermap\"][\"Speed\"];\r\nint wind_degree = root[\"openweathermap\"][\"W_deg\"];\r\nString city=root[\"openweathermap\"][\"City\"];\r\nString country=root[\"openweathermap\"][\"Country\"];\r\nint clouds = root[\"openweathermap\"][\"Clouds\"];\r\nString Sunrise=root[\"openweathermap\"][\"sunrise\"];\r\nString Sunset=root[\"openweathermap\"][\"sunset\"];\r\nString Cdate=root[\"openweathermap\"][\"Cdate\"];\r\nfloat dolar_alis = (float)(root[\"USD\"][\"buying\"]) ;\r\nfloat dolar_satis = (float)(root[\"USD\"][\"selling\"]) ;\r\nfloat euro_alis = (float)(root[\"EURO\"][\"buying\"]) ;\r\nfloat euro_satis = (float)(root[\"EURO\"][\"selling\"]) ;\r\nfloat euro_dolar = (float)(root[\"EURO\"][\"cross\"]) ;\r\nString datesh=root[\"openweathermap\"][\"datesh\"];\r\nString hoursh=root[\"openweathermap\"][\"hoursh\"];\r\nString CMname=root[\"openweathermap\"][\"CMname\"];\r\nString CWno=root[\"openweathermap\"][\"CWno\"];\r\nString CDname=root[\"openweathermap\"][\"CDname\"];\r\nString CMno=root[\"openweathermap\"][\"CMno\"];\r\nString CMday=root[\"openweathermap\"][\"CMday\"];\r\n\r\nSerial.print (\"LCDDD\");\r\ndelay(200);\r\nSerial.print (\"LCDWR 1,1\"+String(\"-\")+\"SICAKLIK: \"+temp+\" \");Serial.write(0x03);Serial.print(\"C\");\/\/ .write(0x03) 3. yeni karakter. ba\u015flarken sc ile 3. karaktere derece i\u015fareti koy.\r\ndelay(200);\r\nSerial.print (\"LCDWR 2,5\"+String(\"-\")+\"NEM: \"+hhumidity+\" \");Serial.print(\"%\");\r\ndelay(200);\r\nSerial.print (\"LCDWR 3,5\"+String(\"-\")+\"BULUT: \"+clouds+\" \");Serial.print(\"%\");\r\ndelay(200);\r\nSerial.print (\"LCDWR 4,1\"+String(\"-\")+\"RUZGAR: \"+wind_speed+\"\");Serial.print(\"kmh \");Serial.print(wind_degree);Serial.write(0x03);\r\n\r\ndelay(10000);\r\n\r\nSerial.print (\"LCDDD\");\/\/ <span style=\"color: #ff6600;\"><strong>Bu komutlar EASYLCD seri haberle\u015fmeli LCD i\u00e7indir.<\/strong><\/span>\r\ndelay(200);\r\nSerial.print (\"LCDWR 1,1\"+String(\"-\")+\"USD AL: \"+dolar_alis+\" TL\");\r\ndelay(200);\r\nSerial.print (\"LCDWR 2,1\"+String(\"-\")+\"USD SAT: \"+dolar_satis+\" TL\");\r\ndelay(200);\r\nSerial.print (\"LCDWR 3,1\"+String(\"-\")+\"EURO AL: \"+euro_alis+\" TL\");\r\ndelay(200);\r\nSerial.print (\"LCDWR 4,1\"+String(\"-\")+\"EURO SAT: \"+euro_satis+\" TL\");\r\ndelay(200);\r\n\/\/ Serial.print (\"LCDWR 4,1\"+String(\"-\")+\"Euro\/$: \"+euro_dolar);\r\n\/\/ delay(100);\r\n\r\ndelay(10000);\r\n\r\nSerial.print (\"LCDDD\");\r\ndelay(200);\r\n\r\nSerial.print (\"LCDWR 1,6\"+String(\"-\")+datesh);\r\ndelay(200);\r\nSerial.print (\"LCDWR 2,8\"+String(\"-\")+hoursh);\r\ndelay(200);\r\nSerial.print (\"LCDWR 3,5\"+String(\"-\")+CMname+\" WEEK:\"+CWno);\r\ndelay(200);\r\nSerial.print (\"LCDWR 4,5\"+String(\"-\")+CDname+\" \"+CMno+\"\/\"+CMday );\r\ndelay(200);\r\n\r\ndelay(40000);\r\n\r\n}\r\n\r\nhttp.end(); \/\/Close connection\r\n\r\n}\r\n\r\n\/\/delay(60000); \/\/ wait 1 minute\r\n\r\n}\r\n\/\/ End of code.\r\n<\/pre>\n<p>&nbsp;<\/p>\n<figure style=\"width: 740px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/08\/esp-01-esp8266_ft232rl_baglanti-740x414.png\" alt=\"\" width=\"740\" height=\"414\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 740px; --smush-placeholder-aspect-ratio: 740\/414;\" \/><figcaption class=\"wp-caption-text\"><span style=\"color: #ff0000;\">Bu uygulamay\u0131 ger\u00e7ekle\u015ftirdi\u011fim devre budur. <strong>Programlama yap\u0131l\u0131rken GPIO-0 ucu \u015faseye ba\u011flan\u0131r.<\/strong> ESP y\u00fcksek ak\u0131m \u00e7ekti\u011finden FT232RL kart\u0131ndan beslenmemeli. Ayr\u0131 bir g\u00fc\u00e7 kayna\u011f\u0131 gerekiyor. Ben 5V powerbank kulland\u0131m. <strong>FT232RL kart\u0131 mutlaka 3.3V jumper konumuna getirilmeli. <\/strong><\/span><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>T\u00fcm ayr\u0131nt\u0131lar\u0131 g\u00f6steren video:\u00a0<\/strong><\/span><\/p>\n<p><iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/WZICLd_x2ss\" width=\"956\" height=\"538\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><span style=\"color: #ff0000;\"><strong>JSON ve XML olarak nas\u0131l bilgi alabiliriz. 2 ayr\u0131 ESP01 program\u0131 olarak \u00e7al\u0131\u015fmas\u0131.<\/strong><\/span><iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/vZ0JVTWqzYs\" width=\"956\" height=\"538\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu projede ESP01 (ESP8266-01) Mod\u00fcl\u00fc ile Openweathermap sitesinden al\u0131nacak hava durumu bilgisi, G\u00fcncel zaman ve d\u00f6viz kurlar\u0131n\u0131 birlikte kullan\u0131ld\u0131\u011f\u0131 bir program\u0131 anlataca\u011f\u0131m. Bir \u00f6nceki yaz\u0131mda ise UNIXTIME konusunu anlatm\u0131\u015ft\u0131m. O&#8230; <\/p>\n","protected":false},"author":1,"featured_media":2304,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,14,7,39],"tags":[],"class_list":["post-2291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino_pic_digerleri","category-easylcd","category-esp","category-website_kur"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/comments?post=2291"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2291\/revisions"}],"predecessor-version":[{"id":2408,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2291\/revisions\/2408"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/2304"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=2291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=2291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=2291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}