{"id":1687,"date":"2020-04-12T06:02:08","date_gmt":"2020-04-12T06:02:08","guid":{"rendered":"http:\/\/mikrobotik.com\/wp2\/?p=1687"},"modified":"2020-04-17T22:05:50","modified_gmt":"2020-04-17T19:05:50","slug":"esp8266-01-nodemcu-i2c-eeprom-kullanimi","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2020\/04\/12\/esp8266-01-nodemcu-i2c-eeprom-kullanimi\/","title":{"rendered":"ESP8266-01 Nodemcu I2C EEPROM KULLANIMI"},"content":{"rendered":"<p>ESP8266-01 kendi k\u00fc\u00e7\u00fck fakat i\u015flevi b\u00fcy\u00fck bir mod\u00fcld\u00fcr. Nodemcu modunda kendi ba\u015f\u0131na, ba\u015fka bir i\u015flemciye ihtiyac\u0131 olmayacak \u015fekilde \u00e7al\u0131\u015fabilen bir mod\u00fcld\u00fcr. \u0130sterseniz AT modunda SDK olarak da \u00e7al\u0131\u015ft\u0131rabilirsiniz. <span style=\"color: #ff6600;\">Ayr\u0131ca SDK modunda<strong> Arduino ile ESP8266-01<\/strong> kullan\u0131p benzer mant\u0131\u011f\u0131 olu\u015fturabilirsiniz.\u00a0<\/span>Nodemcu&#8217;nun faydas\u0131 Arduino ya da ba\u015fka bir i\u015flemciye gereksinim duymamas\u0131. Ayr\u0131ca ESP8266-01 kullanmak da zorunda de\u011filsiniz. Nodemcu modul de kullanabilirsiniz. Ayr\u0131ca ESP8266-01 mod\u00fcl\u00fcn\u00fc, Arduino IDE kullanarak nodemcu mod olarak programlayabilirsiniz.<br \/>\nESP8266-01 mod\u00fcl\u00fcn\u00fcn\u00fcn\u00a0\u00dczerinde Tx,Rx,GPIO.0 , GPIO.2 pimlerle kullan\u0131m\u0131n\u0131za ayr\u0131lm\u0131\u015ft\u0131r.\u00a0Bizler bu projede, I2C EEPROM 24C16 entegresini kullanaca\u011f\u0131z.<br \/>\nGPIO.0 =SDA , GPIO.2 = SCK olarak kullan\u0131lacak. ( istenirse Tx ve RX pinleri gpio olarak kullan\u0131labilir. )<\/p>\n<figure id=\"attachment_1689\" aria-describedby=\"caption-attachment-1689\" style=\"width: 201px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-1689 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/24c16.png\" alt=\"\" width=\"201\" height=\"255\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 201px; --smush-placeholder-aspect-ratio: 201\/255;\" \/><figcaption id=\"caption-attachment-1689\" class=\"wp-caption-text\"><span style=\"color: #ff6600;\">24C16 EEPROM ba\u011flant\u0131 \u015fekli<\/span><\/figcaption><\/figure>\n<p>24C16 eeprom entegresi I2C olarak haberle\u015fir. I2C adresleri de\u011fi\u015ftirilebiliyor olsa da, bu proje de A0,A1,A2 u\u00e7lar\u0131 ve WP ucu GND ye ba\u011flad\u0131m. Standart adresini kulland\u0131m. Resimdeki 1K yerine 10K kulland\u0131m. Pull Up diren\u00e7leri olarak.<\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/nodemcu_eeprom.jpg\" rel=\"lightbox[1687]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1690 size-full lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/nodemcu_eeprom.jpg\" alt=\"\" width=\"922\" height=\"459\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 922px; --smush-placeholder-aspect-ratio: 922\/459;\" \/><\/a><\/p>\n<p>Yukar\u0131daki devre \u00e7al\u0131\u015fan devredir. ESP8266-01 3.3V kulland\u0131\u011f\u0131 i\u00e7in ve 24C16 entegresi de 3V3 kulland\u0131\u011f\u0131 i\u00e7in devrenin tamam\u0131n\u0131 AMS1117 3V3 reg\u00fcle entegresi ile besledim. T\u00fcm sistemi ise Powerbank 5V ile besledim.<\/p>\n<p><strong><span style=\"color: #ff6600;\">ESP8266-01 mod\u00fcl\u00fcm\u00fc nas\u0131l nodemcu yapabilirim diyenler<\/span><\/strong> <a href=\"https:\/\/www.mikrobotik.com\/wp2\/2019\/03\/25\/esp8266-01-sdk-ve-nodemcu-flash-program-yukleme-2\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>bu sayfaya bakabilirler<\/strong><\/a>.<\/p>\n<p><span style=\"color: #ff6600;\">EEProm neden kullan\u0131l\u0131r. Neden kullanmak isteyelim.<\/span><br \/>\nBir \u00e7ok sebebi olabilir. Mesela datalog olarak kullan\u0131labilir. Ba\u011flad\u0131\u011f\u0131n\u0131z bir s\u0131cakl\u0131k sens\u00f6r\u00fc, anl\u0131k bilgileri eepromda toplar. Belli s\u00fcrelerle, \u0130nternetteki bilgi deponuza yollar. Her dakikada internete ba\u011flanmak zorunda kalmaz. Ya da internet yoksa verileri kay\u0131t etmeye devam eder. \u0130nternet geldi\u011finde, internetteki bilgi deponuza yollar. Bir di\u011fer kullan\u0131m \u015fekli ise merkez \u015feklinde \u00e7al\u0131\u015f\u0131r. Anahtara bas\u0131ld\u0131\u011f\u0131nda, hangi anahtara bas\u0131ld\u0131ysa o anahtar bilgisi eeproma yaz\u0131l\u0131r. Ayn\u0131 zamanda anahtar\u0131n kontrol edece\u011fi lamba devresine bilgiyi yollar. Elektrik kesilip geldi\u011finde, eepromdaki bilgilere g\u00f6re, son kald\u0131\u011f\u0131 yerden devam eder.<br \/>\n<strong><span style=\"color: #ff6600;\">Benim akl\u0131ma gelmeyen bir \u00e7ok proje yap\u0131labilir.<\/span><\/strong><br \/>\nI2C kullanabilece\u011finiz i\u00e7in, I2C kullanan sens\u00f6r ya da ba\u015fka kartlar\u0131 da kullanabilirsiniz. Mesela I2C kullanan LCD mod\u00fcl\u00fc ya da I2C kullanan sens\u00f6r ya da I2C kullanan port \u00e7oklay\u0131c\u0131.gibi mod\u00fclleri kullanabilirsiniz.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Gelelim bu projede ne yapt\u0131\u011f\u0131m\u0131za.<\/span><\/strong><br \/>\nBu projede esp8266-01 in soft AP dedi\u011fimiz k\u0131sm\u0131n\u0131 kullanaca\u011f\u0131z. Bunu kullan\u0131rken, TCP server ve TCP client olarak birlikte kullan\u0131yoruz. TCP server k\u0131sm\u0131 gelen bilgileri al\u0131yor. Yani bir kablosuz anahtara bast\u0131\u011f\u0131m\u0131zda bu mod\u00fcle AN,1,0- ya da AN,1,255- gibi bilgi yollar. Bu bilgiyi a\u00e7arsak AN=anahtar, 1=anahtar numaras\u0131( ayn\u0131 zamanda eeprom bellek adresi, 0-255 aras\u0131 ise PWM olarak kullanabilece\u011finiz bir say\u0131d\u0131r. \u015eayet sadece ON &#8211; OFF olarak kullanacaksan\u0131z OFF=0 ON=255 yapabilirsiniz. Fakat bazen dimerli lamba kontrol edilmek istenir. Bu kodlamada 0-255 aras\u0131 say\u0131yla PWM \u00e7al\u0131\u015fma sa\u011flanarak lamba k\u0131s\u0131labilir. \u0130sterseniz RGB lambalar i\u00e7in kodlaman\u0131z\u0131 geli\u015ftirip, AN,1,Rsay,Gsay,Bsay \u015fekline getirebilirsiniz. virg\u00fclleri bulmak i\u00e7in izlenen yol program i\u00e7erisinde var. Ayn\u0131 yolu kullanabilirsiniz.<\/p>\n<p><span style=\"color: #ff6600;\">Pratikte bu sistem tasarruf ama\u00e7l\u0131 kullan\u0131l\u0131yor<\/span>. Gece herkesin oldu\u011fu zaman t\u00fcm lambalar en y\u00fcksek ayd\u0131nl\u0131kta kullan\u0131l\u0131r. Gece belli bir saatten sonra sadece pilot lambalar kalacaksa bu lambalar i\u00e7in bilgisayar otomatik olarak lamba numaras\u0131 ve PWM kodunu yollar. istediklerini kapat\u0131r, istediklerini k\u0131smak suretiyle tasarruf sa\u011flam\u0131\u015f olur.<br \/>\nKontrol nas\u0131l olacak derseniz, isterseniz ANDROID program yapabilirsiniz. \u0130sterseniz Bilgisayara otomatik \u00e7al\u0131\u015fma i\u00e7in program yazars\u0131n\u0131z. Bilgisayar g\u00fcn\u00fcn belli saatlerine g\u00f6re kablosuz olarak g\u00f6nderdi\u011fi komutlarla lambalar\u0131 kontrol eder. Ya da kablosuz duvar anahtar\u0131 kullanabilirsiniz. Bir pot \u00e7evirerek PWM kodunu ESP mod\u00fcle, oradan da lamba k\u0131sm\u0131na ula\u015ft\u0131rm\u0131\u015f olursunuz.<\/p>\n<p>Anahtara bast\u0131\u011f\u0131n\u0131zda 1000ms yani 1sn. sonra merkez mod\u00fcl, gelen \u00e7a\u011fr\u0131y\u0131 i\u015flemi\u015f oldu\u011fundan, yeni \u00e7a\u011fr\u0131 i\u00e7in gelen hatt\u0131 kapat\u0131r ve yeni sinyal dinlemeye ba\u015flar.<br \/>\nBirden fazla verici anahtar olabilir. Tabii ki android program ve PC program\u0131 da olabilir. Her biri bilgi g\u00f6nderir. Fakat bu bilgi <span style=\"color: #ff6600;\">\u00e7ak\u0131\u015fmadan dolay\u0131 i\u015flenemez<\/span>. Bunu engellemek i\u00e7in <span style=\"color: #ff6600;\">Geri bildirim<\/span> yap\u0131l\u0131yor. Yani anahtara bast\u0131\u011f\u0131n\u0131zda mod\u00fcl\u00fcm\u00fcz ald\u0131\u011f\u0131 bilgiyi geri yolluyor. \u015eayet g\u00f6nderici bu bilgiyi alamad\u0131ysa 1sn sonra tekrar ediyor olacakt\u0131r. Bu \u015fekilde \u00e7ak\u0131\u015fmalar\u0131n problem olmas\u0131 \u00f6nlenecektir.<\/p>\n<p>Anahtarlar merkez mod\u00fcle ait tek bir IP ye ba\u011flanaca\u011f\u0131ndan, sorun olmayacakt\u0131r. Fakat lamba devrelerinin her birinin IP adresi de\u011fi\u015fik olaca\u011f\u0131ndan bir standart saptamak laz\u0131m. Her bellek adresi belirtildi\u011finden, Lamba al\u0131c\u0131lar\u0131n\u0131n IP adresleri bellek adresine g\u00f6re verilmeli. <span style=\"color: #ff6600;\">\u00d6rnek vermek gerekirse \u015funu s\u00f6yleyebiliriz.<\/span><br \/>\n192.168.4.1 merkez mod\u00fcl\u00fcn adresidir. lambalar\u0131n 1. lamba 2. lamba olarak verilmesi durumunda 1. lamban\u0131n IP adresi: 192.168.4.2 olacakt\u0131r. AN,1,255- dedi\u011fimizde 1. lamba yans\u0131n istiyoruz ve 1. bellek adresi kullan\u0131lacak. IP adres k\u0131sm\u0131ndaki bilgileri 192.168.4.1+1 olarak degerlendirebiliriz. Yani 1. lamba IP adresi : 192.168.4.2 olacakt\u0131r. buna g\u00f6re ister eepromun 2. adresinden ba\u015flay\u0131n isterseniz eeprom adresine 1 ekleyerek devam edin. \u0130ste\u011finize kalm\u0131\u015f bir durumdur. <span style=\"color: #ff6600;\">IP adresi nerede kullan\u0131lacak<\/span>. Merkez mod\u00fcl lambalara komut verebilmek i\u00e7in IP adresini biliyor olmas\u0131 laz\u0131m. \u0130stemci ( client ) olarak ba\u011flanacakt\u0131r. Her lambada bulunan ESP8266-01 mod\u00fcl\u00fcne tcp server kurulacak. bunu kurduktan sonra onlar sadece dinlemede kalacak. Merkezden \u00e7al\u0131\u015f ya da dur diye komut ald\u0131\u011f\u0131nda geri bildirim verebilirse iyi olacakt\u0131r. merkez emrinin uyguland\u0131\u011f\u0131ndan emin olmal\u0131. <span style=\"color: #ff6600;\">\u015eu anda bu \u00f6zellik bu programda yok, ekleyebilirsiniz.<\/span><\/p>\n<p>Normalde IP adresinin son k\u0131sm\u0131n\u0131 de\u011fi\u015ftirerek 255 adres verilebilir. Yani 127 anahtar 127 lamba olacakt\u0131r. Bu devre do\u011fru programland\u0131\u011f\u0131nda 127 lambaya kadar kullan\u0131labilir. <span style=\"color: #ff6600;\">Tabii ki teoride<\/span>.<\/p>\n<p>Program LUA program\u0131d\u0131r. Bu program\u0131 ise LUA loader kullanarak ESP mod\u00fcle g\u00f6nderebilirsiniz. LUA LOADER program\u0131n\u0131<a href=\"http:\/\/benlo.com\/esp8266\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong> \u015fu linkten alabilirsiniz<\/strong><\/a>.<br \/>\n\u0130sterseniz ESPLORER program\u0131n\u0131 da kullanabilirsiniz.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">wifi.setmode(wifi.SOFTAP)\r\nwifi.ap.config({ssid=\"ESP8266\",pwd=\"12345678\"})\r\nwifi.ap.setip({ip=\"192.168.4.1\",netmask=\"255.255.255.0\",gateway=\"192.168.4.1\"})\r\nid  = 0\r\nsda = 3\t\t-- GPIO.0 esp 8266 da 2 tane var di\u011ferlerinde 2 den fazla port var. \r\nscl = 4\t\t-- GPIO.2    port isimlerini buradan g\u00f6rebilirsiniz. https:\/\/nodemcu.readthedocs.io\/en\/master\/modules\/gpio\/\r\n\r\n-- initialize i2c, set pin 1 as sda, set pin 2 as scl\r\ni2c.setup(id, sda, scl, i2c.SLOW)\r\nuart.setup(0,9600,8,0,1,0)\r\n\r\n\r\nsv=net.createServer(net.TCP, 10) -- \u00e7al\u0131\u015fan hali 20 sn. gerekirse de\u011fi\u015ftir. **************************************\r\n\r\nglobal_c = nil\r\nglobal_sck = nil\t-- her fonksiyonda ortak kullan\u0131ls\u0131n\r\n\r\nprint ( \"ESP8266-01 Sizi Dinliyor \")\r\n\r\n\r\nsv:listen(3000, function(c)\r\n    if global_c~=nil then\r\n        global_c:close()\r\n    end\r\n    global_c=c\r\n    c:on(\"receive\",function(sck,pl)\r\n\r\n            feedback(pl,sck)\t\r\n\r\n    end)\r\nend)\r\n\r\nfunction feedback(data,sck)  \r\nokuadres=0\r\n \r\n        sck:send(data, function()-- parantez i\u00e7ine sk yaz. sk close k\u0131sm\u0131n\u0131 a\u00e7.\r\n                --sk:close()  -- bu sat\u0131r ba\u011flant\u0131 i\u015fini bitirince hemen kapanmas\u0131 i\u00e7in.\r\n        end)\r\n\r\n                    reg=data\r\nif string.find(reg,\"AN,\") then\t\t\r\n        local startfind\r\n        if string.find(reg,\"-\") then\r\n       startfind = string.find(reg, \"AN,\") + 3 \r\n       local endfind  = string.find(reg, \",\",startfind)-1 \r\n       anah = string.sub(reg, startfind, endfind)  --look for ssid in http call\r\n       --print(\"newssid \"..newssid)  --prints to serial, for testing mostly\r\n    --\tprint ( startfind,\"  \",endfind,\"  \",anah)\r\n        startfind=endfind+2\r\n        endfind= string.find(reg,\"-\",startfind-1)\r\n        deger = string.sub(reg, startfind, endfind-1)\r\n        \r\n\r\n        anah=tonumber(anah)\r\n        deger= tonumber(deger)\r\n        count = write_reg(id, 0x50, anah, deger)\r\n        count=tonumber(count)\r\n\r\n    \r\n        print(\" \")\r\n        reg = read_reg(id, 0x50, anah,count)\r\n        \r\n        print(\" Lamba Numarasi : \",anah)\r\n        \r\n        print(\" Lamba seviyesi : \",deger)\r\n        \r\n        end\r\n        \r\nend\t\r\n                        \r\nif string.find(data,\"OKU,\") then\t\t\r\n        local startfind\r\n        if string.find(data,\"-\") then\r\n       startfind = string.find(data, \"OKU,\") + 4\r\n       local endfind  = string.find(data, \"-\",startfind)-1 \r\n       okuadres = string.sub(data, startfind, endfind)  --look for ssid in http call\r\n       okuadres=tonumber(okuadres)\r\n    \r\n        end\r\nend\t\t\r\n        \r\nsendlamp(data,okuadres)\t\t\r\nend\r\n\r\n\r\n\r\nfunction sendlamp(data,okuadres) \r\n\r\nIP=\"192.168.4.2\"\r\nport=3000\r\n        \r\n        istemciac(port,IP)\r\n        \r\nif string.find(data,\"AN,\") then\t\t\r\n        sk:send(\"LAMP,\")\r\n        sk:send(anah)\r\n        sk:send(\",\")\r\n        sk:send(deger)\r\n        sk:send(\"-\")\r\nend\t\t\r\nif string.find(data,\"OKU,\") then\r\n    for i = 1, okuadres do  \r\n    \r\n    deger = read_reg(id, 0x50, i,1) \r\npwmdeger=string.byte(deger)\r\n        sk:send(i)\r\n        sk:send(\". adres , \")\r\n        sk:send(pwmdeger)\r\n        sk:send(\" - \"..\"\\r\\n\")\r\n    end\r\nend\r\n        tmr.alarm(0, 1000, 1, function ()\r\n        sk:close()\r\n        end)\r\nend\r\n\r\n\r\nfunction istemciac(port,IP)\r\n        sk = net.createConnection(net.TCP, 0)\r\n        sk:connect(port, IP) \r\nend\r\n\r\n\r\nfunction write_reg(id, dev_addr, reg_addr, data1)\r\n    i2c.start(id)\r\n    i2c.address(id, dev_addr, i2c.TRANSMITTER)\r\n    i2c.write(id, reg_addr)\r\n    c = i2c.write(id, data1)\r\n    i2c.stop(id)\r\n    return c\r\nend\r\n\r\n\r\nfunction read_reg(id, dev_addr, reg_addr,count)\r\nreg_addr=tonumber(reg_addr)\r\n    i2c.start(id)\r\n    i2c.address(id, dev_addr, i2c.TRANSMITTER)\r\n    i2c.write(id, reg_addr)\r\n    i2c.stop(id)\r\n    i2c.start(id)\r\n    i2c.address(id, dev_addr, i2c.RECEIVER)\r\n    c = i2c.read(id, count)\t\t-- ka\u00e7 karakter okunacaksa. yani ka\u00e7 bellek adresi ba\u015flang\u0131\u00e7 adresinden itibaren okunacak. \r\n    i2c.stop(id)\r\n    return c\r\nend<\/pre>\n<p>&nbsp;<\/p>\n<p>Yukar\u0131daki programda\u00a0write_reg fonksiyonu ve\u00a0read_reg fonksiyonu I2C i\u00e7in kullan\u0131lmaktad\u0131r. Program\u0131n en ba\u015f\u0131nda ise <span style=\"color: #ff6600;\">SOFTAP<\/span> nin a\u00e7\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcyorsunuz.<br \/>\n<span style=\"color: #ff6600;\">sv:listen<\/span> sat\u0131rlar\u0131 ise WI-FI \u00fczerinden gelen bilgi var m\u0131 diye dinledi\u011fi yerdir.<br \/>\n<span style=\"color: #ff6600;\">function istemciac<\/span> ise Lambalara ba\u011flant\u0131 yapmak i\u00e7in istemci olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Burada IP adresi \u00f6nemlidir. Lambalar\u0131n IP adresini yukar\u0131daki bilgilere g\u00f6re d\u00fczeltebilirsiniz.<br \/>\nA\u015fa\u011f\u0131daki 2 adet ekran g\u00f6r\u00fcnt\u00fcs\u00fcnden biri, AN ile verilen, bir ka\u00e7 tane anahtar bilgisini g\u00f6sterir. Di\u011fer resim ise EPROM i\u00e7eri\u011fini g\u00f6stermek ama\u00e7l\u0131d\u0131r.<br \/>\nEpromun i\u00e7eri\u011fini g\u00f6rmek isterseniz <strong><span style=\"color: #ff6600;\">OKU,15-<\/span><\/strong> yazabilirsiniz. 0. adresten ba\u015flayarak 15 adet bellek adresinin tamam\u0131n\u0131 size g\u00f6nderir.( isterseniz 15 say\u0131s\u0131n\u0131 lamba say\u0131s\u0131na kadar \u00e7\u0131karabilirsiniz. ) \u00a0Son durumu kontrol etmek i\u00e7in b\u00f6yle bir komut kullan\u0131ld\u0131. \u0130stemezseniz bu k\u0131sm\u0131 iptal edebilirsiniz.<\/p>\n<p><strong>(<span style=\"color: #ff6600;\">&#8211;<\/span>) i\u015fareti komut sonuna neden kondu.<\/strong> Programa g\u00f6nderdi\u011fimiz komutlar bir katar \u015feklindedir ve virg\u00fcllerle ayr\u0131lm\u0131\u015ft\u0131r. <span style=\"color: #ff6600;\">String.find<\/span> komutu, gelen bilgi i\u00e7erisinde virg\u00fcl aray\u0131p, 2 virg\u00fcl aras\u0131ndaki bilgiye ula\u015fmay\u0131 sa\u011flar. Bu bilgi katar\u0131n\u0131n sonuna hi\u00e7 bir i\u015faret koymazsan\u0131z, bu ayr\u0131m\u0131 yine de yapabilirsiniz. Fakat ba\u015fka i\u015flemlerle tabii ki. Bilgi katar\u0131n\u0131n uzunlu\u011funu elde etmeniz gerekecektir. Son par\u00e7ay\u0131 da \u00f6yle alabilirsiniz.<br \/>\nBen ise nas\u0131l virg\u00fcl buluyorsam <span style=\"color: #ff6600;\"><strong>&#8211;<\/strong><\/span> i\u015faretini de koydu\u011fum i\u00e7in o \u015fekilde <span style=\"color: #ff6600;\"><strong>&#8211;<\/strong><\/span> i\u015faretini bulup, son nokta oldu\u011funu g\u00f6r\u00fcyorum.<\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/resim_3.jpg\" rel=\"lightbox[1687]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1693 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/resim_3.jpg\" alt=\"\" width=\"447\" height=\"267\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 447px; --smush-placeholder-aspect-ratio: 447\/267;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/resim_4.jpg\" rel=\"lightbox[1687]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1694 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/resim_4.jpg\" alt=\"\" width=\"451\" height=\"267\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 451px; --smush-placeholder-aspect-ratio: 451\/267;\" \/><\/a><\/p>\n<p>LUA program\u0131n\u0131 yaparken yard\u0131m alaca\u011f\u0131n\u0131z <a href=\"https:\/\/www.lua.org\/pil\/20.html\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>site buras\u0131 olabilir.<\/strong><\/a><\/p>\n<p>Nodemcu Lua program\u0131n\u0131n komutlar dahil bilgilerini g\u00f6rmek i\u00e7in, <strong><a href=\"https:\/\/nodemcu.readthedocs.io\/en\/master\/\" target=\"_blank\" rel=\"noopener noreferrer\">bu link&#8217;i ziyaret<\/a><\/strong> etmelisiniz.<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #ff6600;\"><strong>Ger\u00e7ek devre resimleri :<\/strong><\/span><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/20200410_155615-0.jpg\" rel=\"lightbox[1687]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1698 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/20200410_155615-0.jpg\" alt=\"\" width=\"455\" height=\"221\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 455px; --smush-placeholder-aspect-ratio: 455\/221;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/20200410_155416-0.jpg\" rel=\"lightbox[1687]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1699 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/04\/20200410_155416-0.jpg\" alt=\"\" width=\"444\" height=\"216\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 444px; --smush-placeholder-aspect-ratio: 444\/216;\" \/><\/a><\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/wk-iQOurFm0\" width=\"900\" height=\"506\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ESP8266-01 kendi k\u00fc\u00e7\u00fck fakat i\u015flevi b\u00fcy\u00fck bir mod\u00fcld\u00fcr. Nodemcu modunda kendi ba\u015f\u0131na, ba\u015fka bir i\u015flemciye ihtiyac\u0131 olmayacak \u015fekilde \u00e7al\u0131\u015fabilen bir mod\u00fcld\u00fcr. \u0130sterseniz AT modunda SDK olarak da \u00e7al\u0131\u015ft\u0131rabilirsiniz. Ayr\u0131ca SDK&#8230; <\/p>\n","protected":false},"author":1,"featured_media":1690,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-1687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1687","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=1687"}],"version-history":[{"count":10,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1687\/revisions"}],"predecessor-version":[{"id":1705,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1687\/revisions\/1705"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/1690"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=1687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=1687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=1687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}