{"id":393,"date":"2018-08-10T09:25:24","date_gmt":"2018-08-10T09:25:24","guid":{"rendered":"http:\/\/mikrobotik.com\/wp2\/?p=393"},"modified":"2023-04-03T13:27:06","modified_gmt":"2023-04-03T10:27:06","slug":"esp8266-01-ile-dunyadan-evinize-web-sitenizle-baglanti-kurun","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2018\/08\/10\/esp8266-01-ile-dunyadan-evinize-web-sitenizle-baglanti-kurun\/","title":{"rendered":"ESP8266-01 ile T\u00fcm D\u00fcnyadan Evinize web sitenizle ba\u011flant\u0131 kurun."},"content":{"rendered":"<p>ESP8266-01 + Arduino ile T\u00fcm D\u00fcnyadan Evinize web sitenizle ba\u011flant\u0131 kurun. (ESP K\u00fct\u00fcphanesine ve Ger\u00e7ek IP adresinize ihtiyac\u0131n\u0131z olmadan). Hem evinizdeki b\u00fct\u00fcn al\u0131c\u0131lar\u0131n durumlar\u0131n\u0131 kontrol edin. Hem de evinizdeki ayg\u0131tlar\u0131 web siteniz \u00fczerinden \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<p>Daha \u00f6nceki yaz\u0131mda internete bilgi g\u00f6ndermeyi g\u00f6stermi\u015ftim.<strong>\u00a0<a href=\"https:\/\/www.mikrobotik.com\/wp2\/2018\/06\/03\/esp8266-01_client\/\" target=\"_blank\" rel=\"noopener\">thingspeak \u00f6rne\u011fi<\/a> <\/strong>gibi.<\/p>\n<p>\u015eimdi ise kendi web sitenizi kullanarak ya da \u00fccretsiz web sitesi yaparak evinize ba\u011flanmay\u0131 g\u00f6sterece\u011fim. Burada PHP kullan\u0131m\u0131 \u00f6n planda olsa da kullan\u0131lan dosyalar anla\u015f\u0131labilir ve geli\u015ftirilebilir oldu\u011fundan az bir bilgi ile kendinize g\u00f6re de\u011fi\u015ftirebilirsiniz.(<strong>Benim PHP bilgim hi\u00e7 yoktu. Yine de standart komutlarla bir \u015feyler de\u011fi\u015ftirebildim. Sizlerde k\u00fc\u00e7\u00fck bir \u00e7abayla \u00f6rnekleri istedi\u011finiz \u015fekilde de\u011fi\u015ftirebilirsiniz.<\/strong>)<\/p>\n<p><strong>MQTT<\/strong> sistemini bilmiyorum. \u0130lk izlenimlerime g\u00f6re bu sistemin MQTT benzeri bir sisteme benzedi\u011fini s\u00f6yleyebilirim. MQTT sisteminde broker denilen arac\u0131 var t\u00fcm vericiler buraya bilgileri b\u0131rak\u0131r ve t\u00fcm al\u0131c\u0131larda buradan bilgileri al\u0131rlar. Burada anlataca\u011f\u0131m konu da benzer bir sistem. Web sitenizi broker olarak kullanman\u0131z\u0131 sa\u011flayacak. G\u00dcVENL\u0130 M\u0130? Bu haliyle g\u00fcvenli de\u011fil. <strong>G\u00fcvenli hale gelebilir mi. <span style=\"color: #ff0000;\">Evet<\/span><\/strong> bir anahtar kelime belirlersiniz ve bu anahtar kelime olmadan web siteniz bile a\u00e7\u0131lamaz.\u00a0<span style=\"color: #ff6600;\"><strong>Ben g\u00fcvenlik taraf\u0131na girmeyece\u011fim.<\/strong><\/span><\/p>\n<p>Sistem kafan\u0131zda canlans\u0131n diye yukar\u0131daki resmi koydum. Broker yazan yer WEB S\u0130TEN\u0130Z olacak. Resimdeki gibi bir web sitesinde al\u0131c\u0131 ve vericileri bulu\u015fturabileceksiniz.( Tabii ki \u015fimdilik g\u00fcvenli anahtar olmayacak. )<\/p>\n<p>Ayr\u0131ca evinize ba\u011flanmak i\u00e7in Modeminizin ger\u00e7ek IP sini bile bilmenize gerek yok. ( <span style=\"color: #ff6600;\">Bu konuya da ileride de\u011finece\u011fiz. ESP8266-01 ile Ger\u00e7ek IP nizi nas\u0131l bulacaks\u0131n\u0131z ve daima g\u00fcncel olacak. istedi\u011finizde sanki ev a\u011f\u0131n\u0131z\u0131 kullan\u0131yormu\u015f gibi ba\u011flanabileceksiniz.<\/span> )<\/p>\n<p><strong>Art\u0131k konumuza ge\u00e7elim.<\/strong><\/p>\n<p>\u00d6ncelikle 1. videoda \u00e7al\u0131\u015fma sistemini g\u00f6receksiniz. Bunu arduino ile g\u00f6steremiyorum \u00e7\u00fcnk\u00fc b\u00fct\u00fcn \u00e7\u0131kt\u0131lar\u0131 bir arada g\u00f6rebilmeniz gerekiyor. Bunu da proteus simulat\u00f6r ve seri port&#8217;a ba\u011fl\u0131 ger\u00e7ek ESP8266-01 mod\u00fcl\u00fcyle g\u00f6sterebiliyorum. <span style=\"color: #ff6600;\">ESP k\u00fct\u00fcphanelerinin kullan\u0131lmas\u0131na gerek yok. ya da ESP ye program y\u00fcklemenize gerek yok.<\/span><br \/>\nZaten ESP mod\u00fcl sat\u0131n al\u0131nd\u0131\u011f\u0131nda 115200 baud h\u0131z\u0131nda AT komut seti kullan\u0131labilir olarak geliyor. Sadece arduino nun TX ve RX u\u00e7lar\u0131n\u0131 ba\u011flaman\u0131z yetiyor. (<span style=\"color: #ff9900;\"><strong>Tecr\u00fcbesiz olanlar i\u00e7in uyar\u0131. TX RX u\u00e7lar\u0131 ba\u011fl\u0131yken arduinoya program y\u00fckleyemeyebilirsiniz. TX RX u\u00e7lar\u0131n\u0131 program\u0131n\u0131z\u0131 y\u00fckledikten sonra ba\u011flay\u0131n<\/strong>.<\/span>)<br \/>\nProgramda <strong>F komutlar\u0131<\/strong> g\u00f6receksiniz. Bunlar sadece de\u011fi\u015fkenlerin az olan data belle\u011finde de\u011fil program belle\u011finde saklanmas\u0131 i\u00e7indir. Data belle\u011fini verimli kullanmak i\u00e7in bunu yap\u0131yorum.<br \/>\nArduino Nano yada Uno kullan\u0131labilir. DHT22 k\u00fct\u00fcphanesi mevcut oldu\u011fundan programda DHT22 k\u00fct\u00fcphanesini kulland\u0131m. Bu sens\u00f6r yerine DHT11 ve benzeri s\u0131cakl\u0131k ve nem sens\u00f6rleri kullan\u0131labilir. (<span style=\"color: #ff6600;\"> program i\u00e7erisinde sens\u00f6roku k\u0131sm\u0131n\u0131 dht11 e g\u00f6re revize etmeniz gerekebilir.<\/span> )<span style=\"color: #ff9900;\"><strong><br \/>\n<\/strong><\/span>ESP k\u00fct\u00fcphanelerine ihtiyac\u0131n\u0131z yok fakat<strong> <a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP8266-01_Tum_Dunyadan\/DHT-sensor-library-master.rar\" target=\"_blank\" rel=\"noopener\">DHT-sensor-library-master<\/a>,<\/strong> ve o k\u00fct\u00fcphanenin kullan\u0131lmas\u0131nda gereken,\u00a0<strong><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP8266-01_Tum_Dunyadan\/Adafruit_Sensor-master.rar\" target=\"_blank\" rel=\"noopener\">Adafruit_Sensor-master<\/a> <\/strong>k\u00fct\u00fcphaneleri ile birlikte JSON format\u0131n\u0131 \u00e7\u00f6z\u00fcmleyen\u00a0<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP8266-01_Tum_Dunyadan\/ArduinoJson-master.rar\" target=\"_blank\" rel=\"noopener\"><strong>ArduinoJson-master<\/strong><\/a> k\u00fct\u00fcphanelerini buradan indirebilirsiniz.<\/p>\n<p>Normalde sistem 3 \u0131\u015f\u0131k kontrol\u00fcne g\u00f6re yap\u0131lsa da proteus ta 4 temsili led g\u00f6receksiniz.<br \/>\nSens\u00f6r say\u0131s\u0131nda yada kontrol edece\u011finiz lamba r\u00f6le gibi cihazlar\u0131n say\u0131s\u0131nda s\u0131n\u0131rlama yok. Bu s\u0131n\u0131r ancak web sitesinde kullanaca\u011f\u0131n\u0131z MYSQL denilen veritaban\u0131 s\u0131n\u0131rlar\u0131na kadar kullan\u0131labilir, ki bu kadar sens\u00f6r\u00fc bir yerde toplaman\u0131z \u00e7ok zordur. \u00e7\u00fcnk\u00fc veritabanlar\u0131 binlerce bilgi al\u0131r. Tabii ki bir de\u00a0\u00a0Arduino nun kontrol kapasitesine ba\u011fl\u0131d\u0131r. <strong><span style=\"color: #ff6600;\">Dosyalar\u0131 anlad\u0131\u011f\u0131n\u0131zda bunun bir sorun olmad\u0131\u011f\u0131n\u0131 g\u00f6receksiniz.<\/span><\/strong><\/p>\n<p>Sistemin mant\u0131\u011f\u0131 : \u00a0ESP, sens\u00f6r bilgilerini arduino ile okuduktan sonra verileri web sitemizdeki veritaban\u0131na iletir. Bizim web sitemizden g\u00f6nderdi\u011fimiz komutlar\u0131 ise php dosyalar\u0131 veritaban\u0131na yazar. ESP veritaban\u0131na yazd\u0131\u011f\u0131m\u0131z komutlar\u0131 okuyup arduinoya iletir ve arduino bu bilgileri JSON k\u00fct\u00fcphanesiyle ayr\u0131\u015ft\u0131r\u0131p, uygulamaya koyar. PHP dosyalar\u0131 da arduinonun kaydetti\u011fi sens\u00f6r bilgilerini web sitesinden bize g\u00f6sterir.<br \/>\n<span style=\"color: #ff0000;\"><strong>\u00d6rnek senaryo:<\/strong> <\/span>Evimizde yokken bir duman sens\u00f6r\u00fc aktif oldu. bunu arduino ile hissedip veritaban\u0131na yazd\u0131k. Veri taban\u0131na biz okuyuncaya kadar haberdar olamay\u0131z. Bu durumda haberdar olmam\u0131z i\u00e7in PHP dosyas\u0131na bir kontrol mekanizmas\u0131 olu\u015fturup acil durumlarda sms atmas\u0131n\u0131 s\u00f6yleyebiliriz. Ya da ESP burada devreye girerek hem bilgileri veritaban\u0131na iletir ve hem de SMS ile bizi bilgilendirir. Kullan\u0131c\u0131 acil mesaj\u0131 al\u0131r almaz web sitesini a\u00e7ar ve duruma m\u00fcdahale etmek i\u00e7in evin elektri\u011fini keser. Ayr\u0131ca yang\u0131n sistemi varsa yang\u0131n sistemini \u00e7al\u0131\u015ft\u0131rabilir. Bu yang\u0131n sadece bir odadaysa o zaman kullan\u0131c\u0131 sadece o odan\u0131n s\u00f6nd\u00fcrme sistemine komut verebilir. Kamera olmadan sens\u00f6rlerin durumuna g\u00f6re karar verebilir ya da internete ba\u011fl\u0131 kameras\u0131 varsa evin i\u00e7erisini g\u00f6r\u00fcp web sayfas\u0131ndan komut vererek problemi \u00e7\u00f6zmeye \u00e7al\u0131\u015f\u0131r.<br \/>\nBu sistem acil durum haricinde her 30sn de bir kullan\u0131c\u0131 komutu var m\u0131 diye veritaban\u0131n\u0131 okumaya gidecek \u015feklinde ayarlanabilir. ben videoda s\u00fcreklilik olsun diye 3-5 saniye kadar ayarlad\u0131m.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>video sistemin proteusta \u00e7al\u0131\u015fmas\u0131n\u0131 g\u00f6steren k\u00fc\u00e7\u00fck bir video.<\/strong><\/span><\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/0xtRyWF2Lho\" width=\"480\" height=\"270\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><strong>\u015eimdi bu videodaki sistemin arka plan\u0131n\u0131 inceleyelim.<\/strong> Sistemin mant\u0131\u011f\u0131n\u0131 yukar\u0131da okudunuz. Bu i\u015flemi\u00a02 \u015fekilde yapaca\u011f\u0131z.<\/p>\n<p><strong>1.yol :<\/strong> Web sitemiz yoksa 000webhost.com adresinden web sitemizi olu\u015fturarak .<br \/>\n<strong>2.yol :<\/strong> \u00d6nceden Web sitemiz varsa ve PHP destekliyorsa kendi web sitemizi kullanmak.<\/p>\n<p><strong>Burada g\u00f6stermek istedi\u011fim birinci yol<\/strong> free hosting veren <strong>000webhost<\/strong> sitesinden ba\u011flant\u0131. (2017 y\u0131l\u0131nda bu site kendi domainini vermeyi durdurdu\u011fundan farkl\u0131 bir \u00fccretsiz domain alman\u0131z ve bu siteye videodaki gibi ba\u011flaman\u0131z gerekecek. <span style=\"color: #ff6600;\"><strong>Unutmay\u0131n domain, ald\u0131ktan 1-2 g\u00fcn sonra sisteme girer. bu s\u00fcre\u00e7te webhost k\u0131sm\u0131n\u0131 ayarlay\u0131p beklemelisiniz.<\/strong> )<\/span> <span style=\"color: #ff0000;\"><strong>Domain nedir derseniz: K\u0131saca sitenizin ismi olarak s\u00f6yleyebilirim.<\/strong><\/span><br \/>\n<strong>Free domain<\/strong> her yerden alabilirsiniz.<br \/>\nben,\u00a0(<span style=\"color: #0000ff;\"><strong>http:\/\/www.freenom.com\/tr\/index.html?lang=tr<\/strong><\/span>) adresinden 3 ayl\u0131k \u00fccretsiz ald\u0131m. Uzun s\u00fcre kullanmak isterseniz buradan ya da ba\u015fka bir yerden paral\u0131 almal\u0131s\u0131n\u0131z.<br \/>\nDomain a\u00e7\u0131ld\u0131 m\u0131 diye kontrol etmek i\u00e7in 000webhost da \u00f6rnek web sitelerinden birini \u00fccretsiz olarak kendi alan\u0131ma y\u00fckledim.<span style=\"color: #ff0000;\"><strong> web sitesi yay\u0131ndaysa art\u0131k domain hayata ge\u00e7mi\u015ftir.<\/strong><\/span><br \/>\nWebhost k\u0131sm\u0131 2. videoda ayr\u0131nt\u0131l\u0131 anlat\u0131laca\u011f\u0131ndan burada yazmak istemiyorum.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>2. video webhost kurulumu:<\/strong><\/span><\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/2pZJg4W34Jw\" width=\"480\" height=\"270\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><strong>Bu 000webhost sistemindeki dosyalar\u0131 ben yapmad\u0131m.<\/strong> Bunlar\u0131n orjinal adresi buras\u0131d\u0131r. Yabanc\u0131 bir kaynakt\u0131r. Ben bu kayna\u011fa g\u00f6re kendim tecr\u00fcbe ederek videoda anlatt\u0131m. <strong>\u00c7\u00fcnk\u00fc video eski oldu\u011fundan ayn\u0131 \u015feyleri yapsan\u0131z da ba\u015far\u0131l\u0131 olam\u0131yorsunuz. \u00a0000WEBHOST baz\u0131 sistematik de\u011fi\u015fiklikler yapm\u0131\u015f.<\/strong>\u00a0Videoda g\u00f6rece\u011finiz gibi sadece<span style=\"color: #ff6600;\"><strong> veritaban\u0131 ba\u011flant\u0131 parametresi de\u011fi\u015ftirmek i\u00e7in config.php dosyas\u0131nda bilgiler de\u011fi\u015fecek.<\/strong><\/span> di\u011fer dosyalar\u0131 de\u011fi\u015fiklik yapmadan kullanabilirsiniz.<br \/>\n<a href=\"http:\/\/iotmonk.com\/courses\/creating-iot-cloud-scratch-using-php-mysql-esp12e\/\" target=\"_blank\" rel=\"noopener\"><strong><span style=\"color: #ff6600;\">000webhost sitesindeki Programlar\u0131n orjinal sahibi :<\/span>\u00a0<\/strong>http:\/\/iotmonk.com\/courses\/creating-iot-cloud-scratch-using-php-mysql-esp12e\/<\/a><\/p>\n<p><strong>NOT: bu dosyalar <span style=\"color: #ff0000;\">PHP 5.2<\/span> kulland\u0131\u011f\u0131ndan ve yeni web siteleri ise PHP 7.0 a geldi\u011finden verilen kodlar sadece 000webhost gibi yerlerde php5.2 nin bulundu\u011fu yerlerde ge\u00e7erli olacakt\u0131r.Videoda belirtildi\u011fi gibi ayarlar b\u00f6l\u00fcm\u00fcnden genel k\u0131sm\u0131 se\u00e7ip PHP versiyonunu de\u011fi\u015ftirebilirsiniz.<br \/>\n<span style=\"color: #ff0000;\">www.mikrobotik.com sitemde yeni versiyonlar\u0131 nas\u0131l kullanabilece\u011finizi g\u00f6rebileceksiniz.\u00a0<\/span><\/strong><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP8266-01_Tum_Dunyadan\/webhost_php_5_2.rar\" target=\"_blank\" rel=\"noopener\"><strong>000WEBHOST \u00a0 php dosyalar\u0131.\u00a0<\/strong><\/a><\/p>\n<p>Birde denemelerinizi yapabilece\u011finiz google eklentisi var.<strong> POSTMAN.<\/strong> Bu program sitenize ula\u015f\u0131p PHP dosyalar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131p sonu\u00e7lar\u0131 g\u00f6rmenizi sa\u011flar. <strong>Bu sadece bilgisayarda denemelerinizi yapabilmeniz i\u00e7indir.<\/strong> Postman kullan\u0131m\u0131 <strong>4<\/strong>. videoda anlat\u0131lacakt\u0131r.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>\u015eimdi gelelim kendi sitemde kulland\u0131\u011f\u0131m metotlara.<\/strong> <\/span>Burada ki dosyalar\u0131 da indirebilirsiniz. \u00a0kendi sitenizde kullan\u0131ma a\u00e7abilirsiniz. <strong>Kendi php programlar\u0131n\u0131zda de\u011fi\u015fecek olan tek yer. veritaban\u0131 ismi veri taban\u0131 kullan\u0131c\u0131 ad\u0131, veri taban\u0131 \u015fifresidir.<\/strong> Bunlar\u0131 de\u011fi\u015ftirdikten sonra t\u00fcm dosyalar\u0131 rahatl\u0131kla kullanabilirsiniz. Videoda dizin yap\u0131s\u0131 mevcuttur.<br \/>\n<strong>Burada benim PHP versiyonum 5.5 olarak ayarl\u0131. videoda Cpanelde nas\u0131l yap\u0131laca\u011f\u0131n\u0131 g\u00f6sterdim. Sizlerde sitelerinizde bu ayar\u0131 yapabilirsiniz.\u00a0<\/strong><br \/>\n<strong>POSTMAN<\/strong> program\u0131yla <strong>PHP<\/strong> sisteminizin ve <strong>MYSQL<\/strong> sisteminizin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kontrol edin. Daha sonra web sitesi arac\u0131l\u0131\u011f\u0131yla kullan\u0131lacak olan program\u0131 da kurup deneyin.<br \/>\n<span style=\"color: #ff6600;\"><strong>Dosyalar yakla\u015f\u0131k 2 ay boyunca test ama\u00e7l\u0131 kullan\u0131labilir. Postman vas\u0131tas\u0131yla verileri g\u00f6r\u00fcp de\u011fi\u015ftirebilirsiniz.\u00a0<\/strong><\/span><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP8266-01_Tum_Dunyadan\/mikrobotik_php_5_5.rar\" target=\"_blank\" rel=\"noopener\"><strong>Mikrobotik_php_dosyalar.\u00a0<\/strong><\/a><\/p>\n<p><span style=\"color: #ff9900;\"><strong>3. video mikrobotik sitesindeki kullan\u0131m.\u00a0<\/strong><\/span><\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/WCZs4I4vKX8\" width=\"480\" height=\"270\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Art\u0131k Arduino ile ESP8266-01 kullan\u0131m\u0131na s\u0131ra geldi.<\/strong> Burada da ESP nin <strong>AT<\/strong> komutlar\u0131n\u0131 kullanaca\u011f\u0131z. Bunlar i\u00e7in hi\u00e7 bir k\u00fct\u00fcphaneye ihtiyac\u0131n\u0131z olmayacak. zaten 3-5 komut ile internete ba\u011flanabileceksiniz.(baud h\u0131z\u0131 115200 olarak ayarlanacak. \u00c7\u00fcnk\u00fc ESP8266-01 mod\u00fcller genellikle 115200baud h\u0131z\u0131nda \u00e7al\u0131\u015facak \u015fekilde geliyor. \u00a0 \u015eayet ilk ba\u011flant\u0131 durumunu test etmek isterseniz bu sitede <a href=\"https:\/\/www.mikrobotik.com\/wp2\/2018\/06\/03\/esp8266-01e-giris\/\" target=\"_blank\" rel=\"noopener\"><strong>ESP 8266 giri\u015f yaz\u0131s\u0131 var<\/strong><\/a>. o yaz\u0131daki programla ve usb seri \u00e7evirici kullanarak ilk testlerinizi yapabilirsiniz. )<\/p>\n<p>Arduino program\u0131nda Modeminizin ba\u011flant\u0131 kurmas\u0131 i\u00e7in gerekli olan <strong>SSID ve password<\/strong>\u00a0yazd\u0131\u011f\u0131n\u0131zda ESP01, modeminize ba\u011flan\u0131p internete \u00e7\u0131kmaya haz\u0131r olacak. Ayn\u0131 postman daki gibi verileri web sitenize g\u00f6nderecek. Web sitenizde \u0131s\u0131 ve nem de\u011ferlerini kay\u0131t edecek, Lamba durumunu da web sitenizdeki veri taban\u0131ndan al\u0131p uygulayacak. B\u00fct\u00fcn bu datalar\u0131 kaydederken ve okurken kullan\u0131c\u0131n\u0131n web sitesi \u00fczerinden g\u00f6nderdi\u011fi light on ve off komutlar\u0131n\u0131 alarak gerekli i\u015flemleri yapabilecek. <strong>K\u00fct\u00fcphane kullanmadan derken ESP ile ilgili k\u00fct\u00fcphaneyi kastettim.<\/strong> Fakat gelen bilgi <strong>JSON<\/strong> format\u0131nda geldi\u011finden bunu ayr\u0131\u015ft\u0131rmak i\u00e7in <strong>arduino json<\/strong> k\u00fct\u00fcphanesini kulland\u0131m. Json format\u0131 art\u0131k g\u00fcn\u00fcm\u00fczde bir \u00e7ok yerde programlar aras\u0131 data aktar\u0131m\u0131 i\u00e7in kullan\u0131lmaktad\u0131r.<br \/>\n<span style=\"color: #ff6600;\">Json format\u0131 hakk\u0131nda geni\u015f bilgiyi bu siteden elde edebilirsiniz.<\/span> <a href=\"https:\/\/www.w3schools.com\/js\/js_json_intro.asp\" target=\"_blank\" rel=\"noopener\"><strong>Json site<\/strong><\/a><br \/>\nbu format\u0131 de\u011fi\u015ftirirken hata yaparsan\u0131z t\u00fcm dizi \u00e7al\u0131\u015fmaz.<br \/>\n<span style=\"color: #ff6600;\">bundan dolay\u0131 format\u0131 de\u011fi\u015ftirdi\u011finizde format\u0131 bir<\/span> <a href=\"https:\/\/www.freeformatter.com\/json-formatter.html\" target=\"_blank\" rel=\"noopener\"><strong>format kontrol noktas\u0131nda deneyebilirsiniz.<\/strong><\/a><br \/>\n<span style=\"color: #ff6600;\">Ayr\u0131ca Arduino i\u00e7in kendi format\u0131n\u0131z\u0131n<\/span> <a href=\"https:\/\/arduinojson.org\/v5\/assistant\/\" target=\"_blank\" rel=\"noopener\"><strong>JSON par\u00e7alamas\u0131na ait kodlamay\u0131<\/strong><\/a> <span style=\"color: #ff6600;\">da bu siteden alabilirsiniz.<\/span><\/p>\n<p><strong><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP8266-01_Tum_Dunyadan\/arduino_json.ino\" target=\"_blank\" rel=\"noopener\">Arduino program link:<\/a><\/strong>Programda <span style=\"color: #ff6600;\">delay s\u00fcreleri proteusa g\u00f6re verildi<\/span> kendinize g\u00f6re ayarlayabilirsiniz.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-title=\"esp8266-01_webkontrol\" data-enlighter-group=\"1\" data-enlighter-theme=\"beyond\"> \r\n#include &lt;ArduinoJson.h&gt;\r\n\r\n#include \"DHT.h\"\r\n\r\n#include &lt;SoftwareSerial.h&gt;    \/\/ ************  SADECE PROTEUSTA G\u00d6STER\u0130LS\u0130N D\u0130YE KULLANILIYOR GER\u00c7EK PROGRAMDA OLMASINA GEREK YOK\r\n\r\nSoftwareSerial mySerial(10, 11); \/\/ RX, TX\r\n\r\n#define DHTPIN 2     \/\/ what digital pin we're connected to\r\n#define DHTTYPE DHT22   \/\/ DHT 22  (AM2302), AM2321\r\nDHT dht(DHTPIN, DHTTYPE);\r\n\r\n__FlashStringHelper *srv1 ;\r\n__FlashStringHelper *srv2 ;\r\n__FlashStringHelper *srv3 ;\r\n__FlashStringHelper *srv4 ;\r\n__FlashStringHelper *srv5 ;\r\n__FlashStringHelper *srv6 ;\r\n__FlashStringHelper *srv7 ;\r\n__FlashStringHelper *srv8 ;\r\n__FlashStringHelper *srv9 ;\r\n__FlashStringHelper *srv10 ;\r\n__FlashStringHelper *srv11 ;\r\n__FlashStringHelper *srv12 ;\r\n__FlashStringHelper *srv13 ;\r\n\r\nString idstr=\"1\";\r\nString tempstr;\r\nString humstr;\r\nString subindata ;\r\nString indata ;\r\nString strdata ;\r\nint say=0;\r\nint say2=0;\r\nint findstart;\r\nint findend;\r\nint incomingByte = 0;\r\nlong unsigned int milissay;\r\nint kont=0;\r\n \r\n\/\/ ******   BU SENSOR NUMARASINA G\u00d6RE DE\u011e\u0130\u015eECEK.\r\nvoid sensoku() {\r\n   delay(100);\r\n\r\n  \/\/ Reading temperature or humidity takes about 250 milliseconds!\r\n  \/\/ Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)\r\n  float h = dht.readHumidity();\r\n  \/\/ Read temperature as Celsius (the default)\r\n  float t = dht.readTemperature();\r\n  \/\/ Read temperature as Fahrenheit (isFahrenheit = true)\r\n  float f = dht.readTemperature(true);\r\n      tempstr=String(t);\r\n      humstr=String(h);\r\n\r\n  \/\/ Check if any reads failed and exit early (to try again).\r\n  if (isnan(h) || isnan(t) || isnan(f)) {\r\n    mySerial.println(\"Failed to read from DHT sensor!\");\r\n    return;\r\n  }\r\n\r\n  \r\n  mySerial.print(\"Humidity: \");\r\n  mySerial.print(h);\r\n  mySerial.println(\" %\\t\");\r\n  mySerial.print(\"Temperature: \");\r\n  mySerial.print(t);\r\n  mySerial.println(\" *C \");\r\n  \r\n}\r\n\r\nvoid bakgel(){        \/\/ bekleme komutunu tekrar tekrar kullanmak yerine bu \u015fekilde yap\u0131ld\u0131 haf\u0131za kaplamas\u0131n diye. \r\n  \r\n  while(Serial.available() &gt; 0)\r\n    {\r\n        subindata = Serial.read();\r\n\r\n    }\r\n  delay(100); \/\/ 1000 delay ver. esp datas\u0131 yollan\u0131rken kullan\u0131l\u0131yor. \r\n  \r\n  \r\n}\r\n\r\n\r\nvoid setup() {\r\n  \/\/ Initialize serial port\r\n  Serial.begin(9600);\r\n  mySerial.begin(9600);\r\n  mySerial.println(\"STARTUP\");\r\n dht.begin();\r\npinMode(6, OUTPUT);\r\n  pinMode(3, OUTPUT);\r\n  pinMode(4, OUTPUT);\r\n  pinMode(5, OUTPUT);\r\n\/\/  Serial.println(\"SSIDNO\");\r\n\/\/  Serial.println(\"PASSNO\");\r\n      espready();    \/\/ *************** son halinde \r\n} \r\n\r\n\/\/ ***** ESP 8266-01 AT KOMUTLARIYLA MODEME BA\u011eLANTI **********************\r\n\r\nvoid espready() {\r\nsrv1=F(\"AT+CWMODE=3\");        \/\/ F fonksiyonu ile program belle\u011fine g\u00f6nderildi bu de\u011fi\u015fkenler. \r\nsrv2=F(\"AT+CIPMODE=0\");\r\nsrv3=F(\"AT+CIPMUX=1\");\r\nsrv4=F(\"AT+CWDHCP=1,0\");\r\nsrv5=F(\"AT+CIPSTA=\\\"192.168.1.140\\\"\");\r\nsrv6=F(\"AT+CWJAP=\\\"Guest_SSID_1_4A09\\\",\\\"misafir1234\\\"\");\r\nsrv7=F(\"AT+CIPSTART=0,\\\"TCP\\\",\\\"www.mikrobotik.com\\\",80\");\r\nsrv8=F(\"AT+CIPSEND=0,66\");\r\nsrv9=F(\"GET \/api\/led\/Lreadmysql.php HTTP\/1.1\");\r\nsrv10=F(\"Host: www.mikrobotik.com\");\r\nsrv11=F(\"GET \/api\/weather\/wupdate.php?id=1&amp;hum=28 HTTP\/1.1\");\r\nsrv12=F(\"Host: www.mikrobotik.com\");\r\n  \r\n\/\/ Serial.println(\"AT+RST\");  \/\/3000 delay ver\r\n\/\/  delay(2000);\r\n  Serial.println(srv1);\r\n bakgel();delay(500);\r\n Serial.println(srv2);\r\n bakgel();delay(500);\r\n  Serial.println(srv3);\r\nbakgel();delay(500);\r\n  Serial.println(srv4);\r\n  bakgel();delay(500);\r\n Serial.println(srv5);\r\n  bakgel();delay(500);\r\n  Serial.println(srv6);\r\n  delay(3000);\r\n  bakgel();\r\n  \r\n  \r\n       \r\n}\r\n\r\n\/\/ **************  GELEN JSON FORMATLI B\u0130LG\u0130N\u0130N AYRI\u015eTIRILMASI VE UYGULANMASI\r\n \r\nvoid jsonpar() {\r\n mySerial.println(\"GELEN JSON FORMATLI BiLGi AYRISTIRILIYOR\"); \r\ndelay(1000);\r\n  findstart=indata.indexOf(\"[\");\r\n  findend=indata.indexOf(\"]\");\r\n  if (findstart&gt;0){\r\n  subindata=indata.substring(findstart, findend+1);\r\n  indata=subindata;\r\n \r\n  }\r\n  \r\n\/\/char responseBody[] = R\"raw([{\"id\":\"1\",\"status\":\"on\"},{\"id\":\"2\",\"status\":\"off\"},{\"id\":\"3\",\"status\":\"on\"},{\"id\":\"4\",\"status\":\"on\"}],0 closed)raw\";  \/\/ jsonda kullan\u0131lacak format\u0131n t\u0131rnak i\u015faretlerini \\\" yazmaktan kurtar\u0131yor.\r\n\/\/ *********************** \u015fayet standart json format\u0131n\u0131 kopyalay\u0131p g\u00f6nderme yap\u0131lacaksa kullan\u0131labilir.\r\n\/\/\"[{\\\"id\\\":\\\"1\\\",\\\"status\\\":\\\"on\\\"},{\\\"id\\\":\\\"2\\\",\\\"status\\\":\\\"off\\\"},{\\\"id\\\":\\\"3\\\",\\\"status\\\":\\\"on\\\"}]\"; ** arduinonun anlad\u0131\u011f\u0131 format\r\nchar responseBody[150] ;\r\nindata.toCharArray(responseBody, 150); \/\/ seri porttan gelen string datay\u0131 chararray \u015fekline d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. data eklendik\u00e7e karakter say\u0131s\u0131n\u0131 y\u00fckselt.*****\r\n\r\n\/\/____________________________________     \r\nconst size_t bufferSize = JSON_ARRAY_SIZE(4) + 4*JSON_OBJECT_SIZE(2) + 70;  \/\/ BU L\u0130NKTEN FORMATINIZI KONTROL ED\u0130N VE BU SATIRI DE\u011e\u0130\u015eT\u0130R\u0130N https:\/\/arduinojson.org\/v5\/assistant\/\r\nDynamicJsonBuffer jsonBuffer(bufferSize);\r\n\r\nconst char* json = responseBody;\r\nJsonArray&amp; root = jsonBuffer.parseArray(json);\r\nJsonArray&amp; root_ = root;\r\n\r\n\/\/ ****************************************************\r\nconst char* root_0_id = root_[0][\"id\"]; \/\/ \"1\"\r\nmySerial.println(root_0_id);\r\nsay=atoi(root_0_id);\r\nconst char* root_0_status = root_[0][\"status\"]; \/\/ \"on\"\r\nmySerial.println(root_0_status);\r\nstrdata=String(root_0_status);\r\nif (say==1 &amp;&amp; strdata==\"on\"){\r\n  mySerial.println(\"LIGHT_1 ON\");\r\n  digitalWrite(6, HIGH);\r\n}else if (say==1 &amp;&amp; strdata==\"off\" ){\r\n  mySerial.println(\"LIGHT_1 OFF\");\r\n digitalWrite(6, LOW);\r\n}\r\n\/\/ ****************************************************\r\nconst char* root_1_id = root_[1][\"id\"]; \/\/ \"2\"\r\nsay=atoi(root_1_id);\r\nmySerial.println(root_1_id);\r\nconst char* root_1_status = root_[1][\"status\"]; \/\/ \"off\"\r\nmySerial.println(root_1_status);\r\nstrdata=String(root_1_status);\r\nif (say==2 &amp;&amp; strdata==\"on\"){\r\n  mySerial.println(\"LIGHT_2 ON\");\r\n  digitalWrite(3, HIGH);\r\n}else if (say==2 &amp;&amp; strdata==\"off\" ){\r\n  mySerial.println(\"LIGHT_2 OFF\");\r\n  digitalWrite(3, LOW);\r\n}\r\n\/\/ ****************************************************\r\nconst char* root_2_id = root_[2][\"id\"]; \/\/ \"3\"\r\nsay=atoi(root_2_id);\r\nmySerial.println(root_2_id);\r\nconst char* root_2_status = root_[2][\"status\"]; \/\/ \"off\"\r\nmySerial.println(root_2_status);\r\nstrdata=String(root_2_status);\r\nif (say==3 &amp;&amp; strdata==\"on\"){\r\n  mySerial.println(\"LIGHT_3 ON\");\r\n  digitalWrite(4, HIGH);\r\n}else if (say==3 &amp;&amp; strdata==\"off\" ){\r\n  mySerial.println(\"LIGHT_3 OFF\");\r\n  digitalWrite(4, LOW);\r\n}\r\n\/\/ ****************************************************   4 TEN FAZLA I\u015eIK VARSA BU KISMI KOPYALAYIP AYARLARINI YAP. **********************\r\n const char* root_3_id = root_[3][\"id\"]; \/\/ \"4\"\r\n say=atoi(root_3_id);\r\nmySerial.println(root_3_id);\r\nconst char* root_3_status = root_[3][\"status\"]; \/\/ \"on\"\r\nmySerial.println(root_3_status);\r\nstrdata=String(root_3_status);\r\nif (say==4 &amp;&amp; strdata==\"on\"){\r\n  mySerial.println(\"LIGHT_4 ON\");\r\n  digitalWrite(5, HIGH);\r\n}else if (say==4 &amp;&amp; strdata==\"off\" ){\r\n  mySerial.println(\"LIGHT_4 OFF\");\r\n  digitalWrite(5, LOW);\r\n}\r\n}\r\n\r\nvoid weatherkontrol() {\r\n\r\nsrv11=F(\"GET \/api\/weather\/wupdate.php?id=1&amp;hum=28&amp;temp=34 HTTP\/1.1\");\r\n\r\nidstr=\"1\";    \/\/ ******************** SENSOR NUMARASINA GORE DE\u011e\u0130\u015eECEK ****************************\r\n\/\/tempstr=\"10\";\r\n\/\/humstr=\"100\";\r\n subindata=\"GET \/api\/weather\/wupdate.php?id=\"+idstr+\"&amp;temp=\"+tempstr+\" HTTP\/1.1\";\r\n strdata=subindata;\r\n say=subindata.length()+30;\r\n indata=String (say);\r\n indata=\"AT+CIPSEND=0,\"+indata;\r\n\r\n mySerial.println(subindata);\r\n mySerial.println(indata);\r\ndelay(200);\r\n  Serial.println(srv7);\r\n  bakgel();delay(1000);\r\n  Serial.println(indata);\r\n   bakgel();delay(500);\r\n    Serial.println(strdata);\r\n   delay(500);\r\n  Serial.println(srv10);\r\n   bakgel();delay(500);\r\n Serial.println(\"\");\r\n delay(1500);\r\n subindata=\"GET \/api\/weather\/wupdate.php?id=\"+idstr+\"&amp;hum=\"+humstr+\" HTTP\/1.1\";\r\n strdata=subindata;\r\n say=subindata.length()+30;\r\n indata=String (say);\r\n indata=\"AT+CIPSEND=0,\"+indata;\r\n\r\n mySerial.println(subindata);\r\n mySerial.println(indata);\r\ndelay(500);\r\n  Serial.println(srv7);\r\n  bakgel();delay(1000);\r\n  Serial.println(indata);\r\n   bakgel();delay(500);\r\n    Serial.println(strdata);\r\n   delay(500);\r\n  Serial.println(srv10);\r\n   bakgel();delay(500);\r\n Serial.println(\"\");\r\n delay(500);\r\n\/\/ Serial.println(\"\");\r\nbakgel();\r\n\r\n}\r\n\r\n\r\nvoid webkontrol() {\r\n  kont=0;\r\n \r\ndelay(200);\r\n  Serial.println(srv7);\r\n  bakgel();delay(500);\r\n  Serial.println(srv8);\r\n   bakgel();delay(500);\r\n  Serial.println(srv9);\r\n   bakgel();delay(500);\r\n  Serial.println(srv10);\r\n bakgel();delay(500);\r\n Serial.println(\"\");\r\n \/\/delay(200);\r\n\/\/ Serial.println(\"\");\r\n\r\n\r\n\r\nwhile (kont&lt;1){\r\n \r\nif(Serial.available() &gt; 0)\r\n    {\r\n        indata = Serial.readStringUntil (']');\r\n       \/\/Serial.println(indata);\r\n       indata =indata+\"]\";\r\n       \r\n    jsonpar();\r\n       indata=\"\";kont=1;\r\n     }\r\n     \r\n } \r\n mySerial.println (\"WEB UZERINDEN KOMUT ALINDI UYGULANDI\");\r\n\r\n}\r\n\r\nvoid loop() {\r\nmilissay=millis();\r\nwhile (milissay+1000&gt;=millis()){\r\n\r\n}\r\nmySerial.println (\"\");\r\nmySerial.println(\"WEB SAYFASINDAN BiLGi AL\");\r\nwebkontrol();\r\ndelay(3000);\r\nmySerial.println (\"SENSOR OKUNUYOR VE GONDERiLiYOR\");\r\n\r\nsensoku();\r\ndelay(3000);\r\nweatherkontrol();\r\ndelay(3000);\r\n\r\n\r\n\r\n\r\n}\r\n<\/pre>\n<p>Programda <span style=\"color: #ff6600;\">bakgel<\/span> alt program\u0131 sadece esp den d\u00f6nen bilgileri bufferdan siler. ve ortalama gecikmeyi sa\u011flar.<br \/>\n<span style=\"color: #ff6600;\">espready<\/span> alt program\u0131 ESP nin g\u00f6ndermesi gereken bilgileri g\u00f6ndermek i\u00e7in haf\u0131zaya al\u0131r ve ilk komutlar\u0131 yollar.<br \/>\n<span style=\"color: #ff6600;\">Jsonpar<\/span> alt program\u0131 JSON dizisini par\u00e7alar ve komutlar\u0131 uygular.<br \/>\n<span style=\"color: #ff6600;\">Weatherkontrol<\/span> alt program\u0131 temp ve hum de\u011fi\u015fkenlerindeki \u0131s\u0131 ve nem de\u011ferlerini g\u00f6nderir.<br \/>\n<span style=\"color: #ff6600;\">webkontrol<\/span> alt program\u0131 kullan\u0131c\u0131dan gelen bilgileri okuyup json par\u00e7alamaya g\u00f6nderir.<br \/>\n( burada <span style=\"color: #ff6600;\">readstring<\/span> json son karakteri olan <span style=\"color: #ff6600;\">&#8220;]&#8221;<\/span> parantezi arar ve buldu\u011funda al\u0131m\u0131 durdurur. bundan dolay\u0131 son parantezi bir alt sat\u0131rda ekleme yap\u0131yoruz.)<br \/>\n<span style=\"color: #ff6600;\">loop<\/span> alt program\u0131 ise gerekli ara gecikmeyi verip organizasyonu ba\u015flat\u0131r.<\/p>\n<h2><span style=\"color: #ff0000;\"><strong>NOT: program i\u00e7erisinde 155. sat\u0131rda bir not var. I\u015f\u0131k say\u0131s\u0131 artt\u0131r\u0131ld\u0131\u011f\u0131nda bu say\u0131y\u0131 de\u011fi\u015ftirmeniz gerekir. bunu da oradaki linkten alabilirsiniz. Ayr\u0131ca gelen data b\u00fcy\u00fcd\u00fck\u00e7e 151 ve 152. sat\u0131rlardaki numaralar\u0131da de\u011fi\u015ftirmeniz gerekecektir. sistem \u015fu an 4 \u0131\u015f\u0131\u011fa kadar kullan\u0131labilecek durumdad\u0131r.\u00a0<\/strong><\/span><\/h2>\n<p><strong>WEB sayfas\u0131 olu\u015fumu<\/strong> ise yine PHP dosyas\u0131d\u0131r. Herhangi bir cihazdan google gibi bir internet g\u00f6stericisinden web sitesi olarak \u00e7a\u011f\u0131rabilirsiniz. Gelen sistemde <strong>1. videoda<\/strong> g\u00f6sterildi\u011fi gibi light butonlar\u0131 ve sens\u00f6r kontrolleri vard\u0131r. bu dosya veri taban\u0131na ula\u015f\u0131p ESP den gelen verileri kontrol eder ve g\u00f6sterir. Ayr\u0131ca kullan\u0131c\u0131n\u0131n komutlar\u0131n\u0131 veri taban\u0131na kay\u0131t eder ve ESP nin almas\u0131n\u0131 uygulamas\u0131n\u0131 bekler.<br \/>\n\u0130sterseniz daha da geli\u015ftirerek, <span style=\"color: #ff6600;\">uygulad\u0131m mesaj\u0131n\u0131<\/span> da veri taban\u0131na yaz\u0131p kullan\u0131c\u0131ya iletebilirsiniz. Program kolayl\u0131kla geli\u015ftirilebilir.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"lua\" data-enlighter-title=\"webuygun.php\" data-enlighter-group=\"2\" data-enlighter-theme=\"beyond\"> \r\n?php\r\n $conn=\"\";\r\n $dene=\"\";\r\n \r\n $bak=$GLOBALS[\"webid\"];  \/\/ bir \u00f6nceki dosyadan gelen istek id numaras\u0131. \r\n \r\n\r\n\r\n\r\n $dbhost = \"localhost\";   \/\/ don't change, de\u011fi\u015fmeeyecek\r\n $dbuser = \"database user\";  \/\/ veritaban\u0131 kullan\u0131c\u0131 ismi\r\n $dbpass = \"password\";      \/\/ sifre\r\n $dbname = \"database name\"; \/\/ veritaban\u0131 ismi\r\n\r\n \r\n $conn = new mysqli($dbhost, $dbuser, $dbpass,$dbname);\r\n\r\n\r\nif ($conn-&gt;connect_error) {\r\n    die('Connect Error (' . $conn-&gt;connect_errno . ') '\r\n            . $conn-&gt;connect_error);\r\n}\r\n\r\nif (mysqli_connect_error()) {\r\n    die('Connect Error (' . mysqli_connect_errno() . ') '\r\n            . mysqli_connect_error());\r\n}\r\n\r\n\r\n\/\/  mysql database ba\u011flant\u0131 sa\u011fland\u0131\u011f\u0131nda bu sat\u0131ra gelir.  **********************\r\n\r\n\r\n \/*   if (isset($_GET['id'])) {\r\n \r\n    $id = $_GET['id'];\r\n    }\r\n*\/\r\n$sql = \"SELECT id, temp , hum FROM weather\"; \/\/ ****************  Bu sat\u0131r a\u00e7\u0131ld\u0131\u011f\u0131nda weather k\u0131sm\u0131 \u00e7al\u0131\u015f\u0131yor\r\n\r\n \/\/ $sql = \"SELECT id, status FROM led\"; \/\/  ***************  bu sat\u0131r a\u00e7\u0131ld\u0131\u011f\u0131nda LED k\u0131sm\u0131 \u00e7al\u0131\u015f\u0131yor\r\n\r\n       $result =mysqli_query($conn,$sql);\r\n\r\n     if (mysqli_num_rows($result) &gt; 0) {\r\n         \r\n\/\/   echo \" WEATHER TABLE     \"   ;\r\nwhile($row = mysqli_fetch_array($result)) {\r\n\/\/  echo \"&lt;br&gt; id: \". $row[\"id\"]. \" - temp: \". $row[\"temp\"]. \"  hum:  \" . $row[\"hum\"] . \"&lt;br&gt;\";\/\/ ****************  Bu sat\u0131r a\u00e7\u0131ld\u0131\u011f\u0131nda weather k\u0131sm\u0131 \u00e7al\u0131\u015f\u0131yor\r\nif ($row[\"id\"]==1)\r\n{\r\n$webid1=$row[\"id\"];\r\n$webhum1=$row[\"hum\"];\r\n$webtemp1=$row[\"temp\"];\r\n}\r\nif ($row[\"id\"]==2)\r\n{\r\n$webid2=$row[\"id\"];\r\n$webhum2=$row[\"hum\"];\r\n$webtemp2=$row[\"temp\"];\r\n}\r\nif ($row[\"id\"]==3)\r\n{\r\n$webid3=$row[\"id\"];\r\n$webhum3=$row[\"hum\"];\r\n$webtemp3=$row[\"temp\"];\r\n}\r\n\r\n\/\/echo \"&lt;br&gt; id: \". $row[\"id\"]. \" - status: \". $row[\"status\"]. \"&lt;br&gt;\";   \/\/  ***************  bu sat\u0131r a\u00e7\u0131ld\u0131\u011f\u0131nda LED k\u0131sm\u0131 \u00e7al\u0131\u015f\u0131yor  \r\n}\r\n} else {\r\necho \"0 results&lt;br&gt;\".mysqli_error($conn);\r\n}       \r\n\r\n  $sql = \"SELECT id, status FROM led\"; \/\/  ***************  bu sat\u0131r a\u00e7\u0131ld\u0131\u011f\u0131nda LED k\u0131sm\u0131 \u00e7al\u0131\u015f\u0131yor\r\n\r\n       $result =mysqli_query($conn,$sql);\r\n\r\n     if (mysqli_num_rows($result) &gt; 0) {\r\n         \r\n\/\/   echo \" LED TABLE     \"   ;\r\nwhile($row = mysqli_fetch_array($result)) {\r\n\/\/ ****************** ka\u00e7 adet light varsa o kadar if c\u00fcmlesini kopyalay\u0131p de\u011fi\u015fken numaras\u0131 verilecek. *********************\r\nif ($row[\"id\"]==1)\r\n{\r\n$webid1=$row[\"id\"];\r\n$webstatus1=$row[\"status\"];\r\n}\r\nif ($row[\"id\"]==2)\r\n{\r\n$webid2=$row[\"id\"];\r\n$webstatus2=$row[\"status\"];\r\n}\r\nif ($row[\"id\"]==3)\r\n{\r\n$webid3=$row[\"id\"];\r\n$webstatus3=$row[\"status\"];\r\n}\r\n\r\n\/\/echo \"&lt;br&gt; id: \". $row[\"id\"]. \" - status: \". $row[\"status\"]. \"&lt;br&gt;\";   \/\/  ***************  bu sat\u0131r a\u00e7\u0131ld\u0131\u011f\u0131nda LED k\u0131sm\u0131 \u00e7al\u0131\u015f\u0131yor  \r\n}\r\n} else {\r\necho \"0 results&lt;br&gt;\".mysqli_error($conn);\r\n}       \r\n\r\n\r\n\r\n    \/\/ $conn= $GLOBALS [dene];\r\n     \r\n   \r\n \/\/echo \"Connected  SON&lt;br&gt;\";\r\n \r\n $conn -&gt; close();\r\n\r\n   \r\n?&gt;<\/pre>\n<p>WEB \u00fczerinde siz <a href=\"https:\/\/www.mikrobotik.com\/api\/webbutton.php\" target=\"_blank\" rel=\"noopener\">www.mikrobotik.com\/api\/webbutton.php<\/a> olarak \u00e7a\u011f\u0131rd\u0131\u011f\u0131n\u0131zda bu program yukar\u0131daki <strong>webuygun.php<\/strong> dosyas\u0131n\u0131 \u00e7a\u011f\u0131r\u0131r. \u00c7a\u011f\u0131r\u0131rken de hangi butona bast\u0131ysan\u0131z o butonu webuygun.php ye aktar\u0131r. Program\u0131 takip etti\u011finizde ka\u00e7 sens\u00f6r ya da <span style=\"color: #ff6600;\">light buton<\/span> varsa o sens\u00f6r numaras\u0131na kadar ve <span style=\"color: #ff6600;\">light numaras\u0131na kadar artt\u0131rmal\u0131s\u0131n\u0131z<\/span>. sat\u0131r kopyalayarak yapabilirsiniz.<br \/>\nBir de 1<span style=\"color: #ff6600;\">1-13 sat\u0131rlar<\/span> aras\u0131ndaki bilgileri veritaban\u0131n\u0131za g\u00f6re doldurman\u0131z gerekir ki veritaban\u0131n\u0131 a\u00e7abilsin.<br \/>\n<span style=\"color: #ff6600;\"><strong style=\"line-height: 1.6471;\">webbutton.php<\/strong><\/span><span style=\"line-height: 1.6471;\"> de ise yine sat\u0131r kopyalayarak sens\u00f6r ve lamba sistemini artt\u0131rabilirsiniz.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/ESP8266-01_Tum_Dunyadan\" target=\"_blank\" rel=\"noopener\"><strong>T\u00dcM DOSYALARI BURADAN ALAB\u0130L\u0130RS\u0130N\u0130Z.\u00a0<\/strong><\/a><\/p>\n<p>Not: mikrobotik.com sitemdeki Sistem kurulurken 3 sens\u00f6r ve 3 \u0131\u015f\u0131k \u00fczerine kuruldu. bunlar kolayl\u0131kla artt\u0131r\u0131labilir. Hatta 000webhost taki gibi insert.php yap\u0131l\u0131p, datalog olu\u015fturulabilir ve daha sonra bu listeler analiz edilebilir. Ayn\u0131 <strong>thingspeak<\/strong> \u00a0yaz\u0131mdaki gibi.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>POSTMAN V\u0130DEOSU :<br \/>\n<iframe data-src=\"https:\/\/www.youtube.com\/embed\/gUMgwiEK42c\" width=\"480\" height=\"270\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><br \/>\n<\/strong><\/span><\/p>\n<p>Ba\u015fta da dedi\u011fim gibi G\u00fcvenlik herkesin kendi sorunudur. ben bunlar\u0131 deneme olarak kullanaca\u011f\u0131m diyorsan\u0131z veriler de \u00e7ok \u00f6nemli veriler de\u011fil diyorsan\u0131z rahatl\u0131kla denemelerinizi yapabilirsiniz. Ben dosyalar\u0131n isimlerini de\u011fi\u015ftirece\u011fim derseniz de\u011fi\u015ftirebilirsiniz fakat <strong>baz\u0131 php dosyalar\u0131n\u0131n i\u00e7erisinde<\/strong> bulunan isimleri de de\u011fi\u015ftirmeniz gerekecektir. <strong>\u00d6zellikle web \u00fczerinden ayar yapan programa bir \u015fifre ilave ederseniz sizden ba\u015fkas\u0131 bu web sayfas\u0131na ba\u011flanamaz.<\/strong><\/p>\n<p>Videodaki bilgiler \u0131\u015f\u0131\u011f\u0131nda ve buradaki bilgiler \u0131\u015f\u0131\u011f\u0131nda hala sorun varsa buradan bana ula\u015fabilirsiniz. <strong>PHP bilgim var m\u0131 diye sorarsan\u0131z hi\u00e7 yok.<\/strong> Yine de kullan\u0131lan komutlar standart oldu\u011fundan sizlerde benim gibi k\u00fc\u00e7\u00fck bir \u00e7abayla de\u011fi\u015fiklik yapabilirsiniz.<\/p>\n<p>POSTMAN denemelerinizde kullan\u0131lacak linkler. 2 ay boyunca orjinal dosyalar\u0131 kontrol edebilirsiniz.<\/p>\n<p>http:\/\/phpdene.tk\/api\/led\/read_all.php<br \/>\nhttp:\/\/phpdene.tk\/api\/led\/update.php?id=2&#038;status=on<br \/>\nhttp:\/\/phpdene.tk\/api\/weather\/read_all.php<br \/>\nhttp:\/\/phpdene.tk\/api\/weather\/update.php?id=1&#038;temp=21<\/p>\n<p>http:\/\/www.mikrobotik.com\/api\/led\/Lreadmysql.php<br \/>\nhttp:\/\/www.mikrobotik.com\/api\/led\/Lupdate.php?id=2&amp;status=&#8221;off&#8221;<br \/>\nhttp:\/\/www.mikrobotik.com\/api\/weather\/wreadmysql.php<br \/>\nhttp:\/\/www.mikrobotik.com\/api\/weather\/wupdate.php?id=1&#038;hum=35&#038;temp=20<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Dosyalar yakla\u015f\u0131k 2 ay boyunca test ama\u00e7l\u0131 kullan\u0131labilir. Postman vas\u0131tas\u0131yla verileri g\u00f6r\u00fcp de\u011fi\u015ftirebilirsiniz.\u00a0<\/strong><\/span><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Bu sistemin ger\u00e7ekle\u015ftirilmesinde bana yard\u0131mc\u0131 olan arkada\u015flara te\u015fekk\u00fcr ederim.<\/strong><\/span><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Thank you for your valuable assistance.<\/strong><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ESP8266-01 + Arduino ile T\u00fcm D\u00fcnyadan Evinize web sitenizle ba\u011flant\u0131 kurun. (ESP K\u00fct\u00fcphanesine ve Ger\u00e7ek IP adresinize ihtiyac\u0131n\u0131z olmadan). Hem evinizdeki b\u00fct\u00fcn al\u0131c\u0131lar\u0131n durumlar\u0131n\u0131 kontrol edin. Hem de evinizdeki ayg\u0131tlar\u0131&#8230; <\/p>\n","protected":false},"author":1,"featured_media":414,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7,3,5],"tags":[],"class_list":["post-393","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-esp","category-pic","category-raspi"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/393","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=393"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/393\/revisions"}],"predecessor-version":[{"id":2540,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/393\/revisions\/2540"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/414"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}