{"id":1609,"date":"2020-01-10T15:47:53","date_gmt":"2020-01-10T15:47:53","guid":{"rendered":"http:\/\/mikrobotik.com\/wp2\/?p=1609"},"modified":"2023-03-31T15:44:26","modified_gmt":"2023-03-31T12:44:26","slug":"esp8266-01_-arduino_pic_tcpserver_xml_datalog_excel_grafik","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2020\/01\/10\/esp8266-01_-arduino_pic_tcpserver_xml_datalog_excel_grafik\/","title":{"rendered":"ESP8266-01_ Arduino_Pic_TCPserver_XML_datalog_excel_grafik"},"content":{"rendered":"<p>Bu konumuzda Arduino veya PIC ile yap\u0131lm\u0131\u015f devrelerimizden, kablosuz olarak datalog olu\u015fturmak. XML ile olu\u015fturulan bu dosyalar\u0131n EXCEL \u00fczerine aktar\u0131lmas\u0131 ve analiz i\u00e7in grafi\u011finin \u00e7\u0131kar\u0131lmas\u0131n\u0131 g\u00f6rece\u011fiz.<\/p>\n<p>Datalog iki \u015fekilde olu\u015fabilir. SD kart \u00fczerinde olu\u015fturup bilgisayara ta\u015f\u0131yabilirsiniz. Ya da ger\u00e7ek zamanl\u0131 olsun derseniz, kablosuz olarak PC ye aktarabilirsiniz.<br \/>\nPC ye nas\u0131l aktaraca\u011f\u0131z derseniz de, PC \u00fczerinde bir TCP server program\u0131 olacak. Bu program VB6 ile yap\u0131ld\u0131. XP gibi eski bilgisayarlarda \u00e7al\u0131\u015ft\u0131\u011f\u0131 gibi WIN10 bilgisayarlarda da \u00e7al\u0131\u015fabilmektedir. Bu program gelen bilgileri bir txt dosyas\u0131na kaydeder. Bu dosya uzant\u0131s\u0131 xml olarak de\u011fi\u015ftirilerek, XML dosyas\u0131 olu\u015fturulur.<\/p>\n<p><span style=\"color: #ff6600;\">\u00d6ncelikle Arduino ya da PIC ile yap\u0131lm\u0131\u015f program\u0131n, sat\u0131n alm\u0131\u015f oldu\u011funuz ESP8266-01 ile nas\u0131l haberle\u015fti\u011fini g\u00f6relim.<\/span><br \/>\n( \u015eayet ESP8266-01 mod\u00fcl\u00fcn\u00fcz\u00fc AT komutundan farkl\u0131 bir \u015fekilde kulland\u0131ysan\u0131z, i\u00e7erisindeki SDK program\u0131 Yenilemek isteyebilirsiniz. Bu sayfadan faydalan\u0131p SDK yani AT komut setine cevap verecek duruma getirmeniz gerek. )<\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/2019\/03\/25\/esp8266-01-sdk-ve-nodemcu-flash-program-yukleme-2\/\" target=\"_blank\" rel=\"noopener\"><strong>Bu linkten ESP01 mod\u00fcl\u00fcn\u00fcz\u00fc AT komut seti olarak nas\u0131l \u00e7al\u0131\u015ft\u0131raca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenebilirsiniz.\u00a0<\/strong><\/a><\/p>\n<p><strong><a href=\"https:\/\/www.mikrobotik.com\/wp2\/2018\/06\/03\/esp8266-01e-giris\/\" target=\"_blank\" rel=\"noopener\">Bu linkten ESP01 ile ilk defa \u00e7al\u0131\u015f\u0131yorsan\u0131z, Nas\u0131l ba\u015flayabilirsiniz bunu \u00f6\u011frenebilirsiniz.<\/a><\/strong><\/p>\n<p>ESP01 mod\u00fcl\u00fcn\u00fcz\u00fc AT komut setiyle \u00e7al\u0131\u015ft\u0131rd\u0131ysan\u0131z, Art\u0131k deneme program\u0131n\u0131z\u0131 Arduinoya ya da PIC i\u015flemcinize y\u00fckleyebilirsiniz.<br \/>\n<a href=\"https:\/\/github.com\/espressif\/ESP8266_AT\/wiki\/AT_Description\" target=\"_blank\" rel=\"noopener\"><strong>AT komut seti hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgiyi buradan alabilirsiniz.\u00a0<\/strong><\/a><br \/>\nHer iki program da benzer programlard\u0131r.<br \/>\n\u00d6nce ESP01 mod\u00fcl\u00fcn\u00fc istemci olarak ayarlamak i\u00e7in AT komutlar\u0131n\u0131 yollar.<br \/>\nAT+RST \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <strong>E<\/strong>SP01 reset atar.<br \/>\nAT \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <strong>B<\/strong>u komut haz\u0131r m\u0131 diye kontrol etmemizi sa\u011flar. Cevap &#8220;OK&#8221; dir.<br \/>\nAT+CWMODE=3 \u00a0<strong>M<\/strong>od\u00fcl\u00fcn STA,AP,SAT+AP \u015feklinde \u00e7al\u0131\u015fmas\u0131 gerekti\u011fini belirtiriz.<br \/>\nAT+CIPMODE=0 \u00a0<strong>M<\/strong>od\u00fclde Transfer modudur. 0=Normal mod.<br \/>\nAT+CIPMUX=1 \u00a0 \u00a0 <strong>M<\/strong>od\u00fclde sunucu a\u00e7\u0131lacaksa \u00e7oklu ba\u011flant\u0131ya izin vermesi.<br \/>\nAT+CWJAP=&#8221;SSID ismi&#8221;,&#8221;\u015fifre&#8221; \u00a0 <strong>M<\/strong>odeminize ba\u011flanmak i\u00e7in gereken kullan\u0131c\u0131 ismi ve \u015fifre.<br \/>\nAT+CIPSTART=0,&#8221;TCP&#8221;,&#8221;192.168.1.102&#8243;,1001 \u00a0 \u00a0<strong>PC<\/strong> deki sunucunun IP adresi ve PORT adresi.<br \/>\n<span style=\"color: #ff6600;\">Buraya kadar olan komutlarla PC ba\u011flant\u0131m\u0131z\u0131 kurmu\u015f olduk. \u015eimdi de bilgi g\u00f6nderme k\u0131sm\u0131n\u0131 olu\u015ftural\u0131m<\/span>.<br \/>\nAT+CIPSEND=0,8 \u00a0 Bu komut ile ka\u00e7 karakter bilgi g\u00f6nderece\u011fimizi ESP ye s\u00f6yleriz. ESP bize \u00a0 \u00a0AT+CIPSEND=0,8 \u00a0 \u00a0\u00a0OK \u00a0 cevab\u0131n\u0131 verdikten sonra 8 karakterlik bilgimizi g\u00f6ndeririz. <span style=\"color: #ff6600;\">\u00d6rnek:<\/span>\u00a0<strong>deneme<\/strong> \u00a0 <span style=\"color: #ff6600;\"><strong>Bu 6 karakter ediyor diye d\u00fc\u015f\u00fcn\u00fcyorsunuzdur.<\/strong><\/span> Evet 6 karakter. Biz 8 karaktere tamamlamak i\u00e7in ENTER ve Line Feed ( CR+LF ) denilen 2 karakteri g\u00f6nderiyoruz. PICbasic ile yap\u0131lan programda Hserout sat\u0131r\u0131n\u0131n sonunda 13,10 karakterleri yer almaktad\u0131r.<br \/>\nArduino program\u0131nda ise bir karakter yaz\u0131lmam\u0131\u015ft\u0131r. Sadece Serial.print<span style=\"color: #ff6600;\"><strong>ln<\/strong><\/span> ile g\u00f6nderilmesi yeterlidir.<br \/>\n<span style=\"color: #ff6600;\">Bunun sebebi ise<\/span> ESP8266-01 mod\u00fcl\u00fc, gelen bilgilerin sonunda bu karakterleri arar, bulunca son karakter oldu\u011funu anlar.<\/p>\n<p>Arduino program\u0131nda ba\u015ftaki AT haz\u0131rl\u0131k komutlar\u0131n\u0131n baz\u0131lar\u0131nda sadece bilgi g\u00f6nderdim cevap beklemedim. Cevap yerine DELAY komutuyla bekleme yapt\u0131m.<br \/>\nBu \u015fekilde <strong>AT+CIPSEND=0,8<\/strong> gibi bir komut g\u00f6nderdi\u011fimde <strong>OK<\/strong> cevab\u0131n\u0131 ald\u0131\u011f\u0131mda, bilgiyi hemen g\u00f6nderip al\u0131nd\u0131 bilgisini de Espnin g\u00f6nderdi\u011fi <strong>SEND OK<\/strong> bilgisinden anl\u0131yorum. Sonras\u0131nda yeni bilgi i\u00e7in yine <strong>AT+CIPSEND=0,?<\/strong> komutu yolluyorum. Programlarda bu iki de\u011fi\u015fik geri bildirimi yakalamak i\u00e7in bir de\u011fi\u015fken kulland\u0131m. Hangisini bekleyecek isem, o de\u011fi\u015fkene <strong>OK<\/strong> ya da <strong>SEND OK<\/strong> yaz\u0131yorum ve o cevab\u0131 bekliyorum.<\/p>\n<p><span style=\"color: #ff6600;\">Programlar basit oldu\u011fundan anla\u015f\u0131lmas\u0131 zor olmayacakt\u0131r. Farkl\u0131 olan k\u0131sm\u0131 XML \u015feklinde yazd\u0131rmakt\u0131r.<\/span><br \/>\n<strong>XML i\u00e7in gereken yaz\u0131l\u0131m \u015fekli a\u015fa\u011f\u0131dad\u0131r.<br \/>\n<\/strong>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt; \u00a0 \u00a0<span style=\"color: #ff6600;\">: standart bildirim sat\u0131r\u0131<\/span><br \/>\n&lt;?xml-stylesheet type=&#8221;text\/css&#8221; href=&#8221;datalog.css&#8221;?&gt; \u00a0 <span style=\"color: #ff6600;\">: internet sayfas\u0131 olarak g\u00f6stermek i\u00e7in sayfa stilini ayarlayan dosya ad\u0131.<\/span><br \/>\n&lt;DATALOG&gt; \u00a0 <span style=\"color: #ff6600;\">: ba\u015fl\u0131k k\u0131sm\u0131d\u0131r.<\/span><br \/>\n&lt;tempretures&gt; <span style=\"color: #ff6600;\">: konu k\u0131sm\u0131d\u0131r<\/span><br \/>\n&lt;SENS_NO&gt;<strong>01<\/strong>&lt;\/SENS_NO&gt; \u00a0 <span style=\"color: #ff6600;\">:di\u011ferleri verilerdir.<\/span><br \/>\n&lt;Temp&gt;<strong>001<\/strong>&lt;\/Temp&gt;<br \/>\n&lt;Date&gt;<strong>03.05.2020<\/strong>&lt;\/Date&gt;<br \/>\n&lt;Hour&gt;<strong>09:25:30<\/strong>&lt;\/Hour&gt;<br \/>\n&lt;\/tempretures&gt;<br \/>\n&lt;tempretures&gt; <span style=\"color: #ff6600;\">: konu k\u0131sm\u0131d\u0131r<\/span><br \/>\n&lt;SENS_NO&gt;<strong>01<\/strong>&lt;\/SENS_NO&gt; \u00a0 <span style=\"color: #ff6600;\">:di\u011ferleri verilerdir.<\/span><br \/>\n&lt;Temp&gt;<strong>002<\/strong>&lt;\/Temp&gt;<br \/>\n&lt;Date&gt;<strong>03.05.2020<\/strong>&lt;\/Date&gt;<br \/>\n&lt;Hour&gt;<strong>09:25:30<\/strong>&lt;\/Hour&gt;<br \/>\n&lt;\/tempretures&gt;<br \/>\n&lt;\/DATALOG&gt;<br \/>\nBu \u015fekilde yazd\u0131r\u0131rken, aradaki de\u011ferleri de yazd\u0131rmadan \u00f6nce sizin hesaplaman\u0131z gerekiyor. Mesela birden fazla sens\u00f6r\u00fcn\u00fcz var. Bu sens\u00f6r\u00fcn numaras\u0131n\u0131 gerekli yere yazd\u0131rmak i\u00e7in haz\u0131rlaman\u0131z gerek. Sonras\u0131nda sens\u00f6r de\u011ferlerini kontrol etmeniz gerek. RTC varsa saat bilgisini de alarak bu bilgileri tamamlay\u0131p ESP01 ile PC ye g\u00f6nderebilirsiniz. &lt; &gt; bu karakterler aras\u0131 g\u00f6r\u00fcnen yaz\u0131lar zaten de\u011fi\u015fmez.<br \/>\nBu \u015fekilde g\u00f6nderirken her sat\u0131r\u0131n sonunda CR+LF oldu\u011funu da dikkate alman\u0131z gerek.<br \/>\nArduino da komut olarak dizinin karakter say\u0131s\u0131n\u0131 hesaplayan<strong> LENGTH<\/strong> komutunu kulland\u0131m. Bu say\u0131 bana, g\u00f6nderilecek karakter say\u0131s\u0131n\u0131 verecektir. PICBASIC \u00a0te ise bu tip bir komut olmad\u0131\u011f\u0131ndan ben de g\u00f6nderilen karakter say\u0131s\u0131 de\u011fi\u015fmesin diye 15 g\u00f6ndermek yerine 015 g\u00f6nderecek \u015fekilde DEC3 belirtecini kulland\u0131m.<br \/>\n<span style=\"color: #ff6600;\">Arduinoda AT+CIPSEND i\u00e7in karakter say\u0131s\u0131 her defas\u0131nda hesaplan\u0131yor PICBASIC te ise hep sabit olarak g\u00f6nderiliyor.<\/span><br \/>\nBu sens\u00f6r bilgilerini temsil etmek i\u00e7in bir saya\u00e7 koydum. Her defas\u0131nda 1 artarak bilgi g\u00f6nderiliyor. Sizler bu saya\u00e7 yerine, kendi sens\u00f6r de\u011ferlerinizi koyup, g\u00f6nderecek \u015fekilde programda de\u011fi\u015fiklik yapabilirsiniz.<\/p>\n<p><strong><span style=\"color: #ff0000;\">Arduino program\u0131nda 179. ve 180. ve 185. sat\u0131rdaki komutlar ESP8266-01 in yaz\u0131l\u0131msal seri port ile \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 esnas\u0131nda sorun yaratmas\u0131n diye, haberle\u015fme h\u0131z\u0131n\u0131 ge\u00e7ici \u015fekilde 9600 baud olarak ayarlamak i\u00e7indir. Bu komut ile ESP01 mod\u00fcl\u00fcne bundan sonra reset at\u0131las\u0131ya kadar, haberle\u015fme h\u0131z\u0131n 9600 baud olsun demi\u015f oluyoruz. Tekrar RESET at\u0131l\u0131rsa veya yada yeniden enerji verilirse 115200 baud haberle\u015fme h\u0131z\u0131na ge\u00e7er. \u00a0\u0130stenirse Kal\u0131c\u0131 olarak da 9600 baud h\u0131z\u0131na ayarlanabilir. Bunun i\u00e7in yukar\u0131da linkini vermi\u015f oldu\u011fum AT komut setine bakman\u0131z san\u0131r\u0131m yeterli olacakt\u0131r.<br \/>\n<\/span><\/strong>Yaz\u0131l\u0131msal seri port kullan\u0131yorsan\u0131z, 9600 baud gibi d\u00fc\u015f\u00fck h\u0131zlar\u0131 kullanman\u0131z, haberle\u015fme hatalar\u0131n\u0131 en aza indirecektir.<\/p>\n<pre class=\"height-set:true height:300 lang:arduino decode:true\" title=\"Arduino DATALOG program\u0131\">\/*  3.3V seviye d\u00f6n\u00fc\u015f\u00fcm yaparak esp Rx e ver. ayr\u0131ca gnd yi pc gnd ye tak. ayr\u0131 power kullan\u0131ld\u0131\u011f\u0131nda.\r\n ESP8266-01_ istemci (client) \u00e7al\u0131\u015fmas\u0131\r\n A\u015fa\u011f\u0131daki bilgiler ESP ye g\u00f6nderilen komutlar ve al\u0131nan geri bildirimlerdir. \r\n Bunlara bakarak ger\u00e7ekte nas\u0131l bir geri bildirim gelmesi gerekti\u011fini g\u00f6rebilirsiniz. \r\n\r\n AT+CWJAP=\"Guest_SSID_1_4A09\",\"guest1997\"\r\n0,CLOSED\r\nWIFI DISCONNECT\r\nWIFI CONNECTED\r\nWIFI GOT IP\r\n\r\nOK\r\n\r\nAT+CIPSTART=0,\"TCP\",\"192.168.1.102\",1001\r\n0,CONNECT\r\n\r\nOK\r\n\r\nAT+CIPSEND=0,21\r\n\r\nOK\r\n&gt; \r\nRecv 21 bytes\r\n\r\nSEND OK\r\n\r\n+IPD,0,9:send dataAT+CIPSEND=0,466\r\n\r\nOK\r\n&gt; \r\nRecv 466 bytes\r\n\r\nSEND OK\r\n\r\n+IPD,0,24:send data   sdfsdfsdfsdf\r\n\r\nAT+CIPSEND=0,10\r\ndeneme esp\r\n***************************************************\r\nserverden gelen bilgi a\u015fa\u011f\u0131da OK yok IPD kontrol et. \r\n+IPD,0,26:2,GONDERiLECEK BiLGiYi YAZ\r\n**********************************************\r\n=================================================================\r\nclient servere g\u00f6nderirken\r\nAT+CIPSEND=0,12\r\n\r\nOK\r\n&gt;\r\ndeneme esp  g\u00f6nderilir ama esp bunu g\u00f6stermez. sadece recv 12 bytes yazar. ve g\u00f6nderme tamamland\u0131\u011f\u0131nda SEND OK bilgisini d\u00f6nd\u00fcr\u00fcr.  \r\nRecv 12 bytes\r\n\r\nSEND OK\r\n==============================================================\r\n----------------------------------------------------------------\r\nClient ba\u011flant\u0131s\u0131 kuruldu\u011funda \r\nAT+CIPSTART=0,\"TCP\",\"192.168.1.102\",1001  \/\/ 0 esp nin servere ba\u011flant\u0131 yapt\u0131\u011f\u0131 kanal 3 e kadar farkl\u0131 kanallardan g\u00f6nderebilir. \r\n                                          \/\/  bu 0 sunucunun ba\u011flant\u0131 numaras\u0131n\u0131 etkilemez. sunucu hangi s\u0131rada ba\u011fland\u0131ysa o numaray\u0131 atar\r\n                                          \/\/   aradaki haberle\u015fme i\u00e7in. \r\n0,CONNECT\r\n\r\nOK\r\n---------------------------------------------\r\n *\/\r\n#include &lt;SoftwareSerial.h&gt;\r\nSoftwareSerial mySerial(10, 11); \/\/ RX, TX\r\n \r\n String readString;\r\nString bak[5]=\"\";\r\nString denek = \"\";\r\nString gonderbilgi=\"\";\r\n\r\n\r\n\/\/__FlashStringHelper *gonderbilgi ;   \r\n__FlashStringHelper *srv1 ;    \/\/ __FlashStringHelper komutuyla srv1 e ait bilgilerin program belle\u011fine y\u00fcklenmesi i\u00e7in yer ayr\u0131l\u0131r. \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\nchar * kont;\r\nchar * pch;\r\nchar * str;\r\nint say=0;\r\nint say2=0;\r\nint prob=0;\r\nint hata=0;\r\n\r\nvoid bakgel(){        \/\/ bekleme komutunu tekrar tekrar kullanmak yerine bu \u015fekilde yap\u0131ld\u0131 haf\u0131za kaplamas\u0131n diye. \r\n hata=0;\r\n delay(100);\r\n\/\/ Serial.print(\"string \");Serial.println(\"*********************************\");\r\n  while  (mySerial.available()){\r\n        char c = mySerial.read();\r\n        readString += c;\r\n  }  \r\n  bak[1]=readString;\r\n  denek=readString;\r\n   Serial.print(\"Gelen : \");Serial.println(denek);\r\n   readString=\"\";\r\n   str = bak[1].c_str(); \r\n  pch=strstr (str,kont);    \/\/ OK den sonra ne varsa onu pch olarak tutar \r\n   denek=pch;               \/\/ pch taki char de\u011ferleri string e \u00e7evirerek al\u0131r. \r\n   say=denek.indexOf(kont);  \/\/ denek dizisi i\u00e7erisinde OK ka\u00e7\u0131nc\u0131 karakter. \r\n   if (kont==\"OK\"){\r\n    denek=denek.substring(say,say+2);\r\n   }\r\n   if (kont==\"SEND OK\"){\r\n    denek=denek.substring(say,say+7);\r\n   }\r\n      \r\nif (denek==\"OK\" || denek==\"SEND OK\"){\r\n  hata=0;\r\n }else{\r\n  hata=1;  \r\n}\r\n  \/\/delay(1000);\r\n}\r\n\r\nvoid istemciac(){          \/\/ ******istemciyi haz\u0131rla ve g\u00f6nder. ****************\r\nsrv1=F(\"AT+CWMODE=3\");        \/\/ F fonksiyonu ile program belle\u011fine g\u00f6nderildi bu de\u011fi\u015fkenler. Sebep data belle\u011finde yer a\u00e7mak.\r\nsrv2=F(\"AT+CIPMODE=0\");\r\nsrv3=F(\"AT+CIPMUX=1\");\r\nsrv6=F(\"AT+CIPSTART=0,\\\"TCP\\\",\\\"192.168.1.102\\\",1001\"); \/\/ gelen bilgi 0,CONNECT OK\r\nsrv4=F(\"AT+CWJAP=\\\"Guest_SSID_1_4A09\\\",\\\"guest1997\\\"\"); \/\/ gelen bilgi WIFI CONNECTED   WIFI GOT IP   OK   \r\n\r\n  kont=\"OK\";\r\n \/\/RST:         \/\/***********  AT+RST uygula ve 3000ms bekle. **************** kullan\u0131lm\u0131yor zaten ilk enerji verildi\u011finde bunu yap\u0131yor. \r\n\/\/ Serial.println(\"AT+RST\");\/\/ denemeOK\r\n\/\/delay(3000);\r\n\/\/  bakgel();\r\n  \/\/Serial.print(\"HATA : \"); Serial.println(hata,DEC);\r\n\/\/    if (hata==1){\r\n\/\/    goto RST;\r\n\/\/  }\r\n  CWMODE:\r\n  mySerial.println(srv1);\r\n delay(100);\r\n  bakgel();\r\n  Serial.print(\"HATA : \"); Serial.println(hata,DEC);\r\n  if (hata==1){\r\n    goto CWMODE;\r\n  }\r\n  CIPMODE:\r\n  mySerial.println(srv2);\r\n delay(100);\r\n  bakgel();\r\n  if (hata==1){\r\n    goto CIPMODE;\r\n  }\r\n  CIPMUX:\r\n  mySerial.println(srv3);\r\n delay(100);\r\n  bakgel();\r\n  if (hata==1){\r\n    goto CIPMUX;\r\n  }\r\n  STA_AC:\r\n  mySerial.println(srv4);\r\n delay(500);\r\n  bakgel();\r\n  bakgel();         \/\/ kontrol yap\u0131lm\u0131yor sadece buffer daki bilgiler temizleniyor. \r\n \r\n  ISTEMCI_AC:\r\n  mySerial.println(srv6);\r\n\r\n  delay(500);\r\n  bakgel();\r\n  bakgel();       \/\/ kontrol yap\u0131lm\u0131yor sadece buffer daki bilgiler temizleniyor.\r\n delay(1000);\r\n\r\n}\r\n\r\n\r\nvoid setup() {\r\n  Serial.begin(9600);        \r\n   delay(500);\r\n \r\nmySerial.begin(115200);\r\nmySerial.println(\"AT+UART_CUR=9600,8,1,0,0\");    \/\/ softserial 115200 kullanamad\u0131\u011f\u0131 i\u00e7in a\u00e7\u0131l\u0131\u015fta ESP8266-01 haberle\u015fmesi\r\n                                                 \/\/ 9600 olarak \u00e7evrilip bundan sonra \r\n                                                \/\/ 9600 olarak haberle\u015filir. KApat\u0131l\u0131p a\u00e7\u0131l\u0131nca yine 115200 e d\u00f6ner. \r\n                                                \/\/ kal\u0131c\u0131 yap\u0131lmak istenirse AT+UART_DEF=9600,8,1,0,0 yap\u0131l\u0131r ama tavsiye etmem \r\n                                                \/\/ kapat\u0131p a\u00e7\u0131nca 9600 de kal\u0131r ve sonras\u0131nda unuttu\u011funuzda problem var diye d\u00fc\u015f\u00fcn\u00fcp ar\u0131zal\u0131 diyebilirsiniz.                         \r\nmySerial.begin(9600);\r\ndelay(200);\r\nmySerial.println(\"AT\");\r\ndelay(100);\r\nbakgel();         \/\/ sadece AT komutu g\u00f6nderiliyor kontrol yap\u0131lm\u0131yor. \r\n\r\n  say2=1;\r\n  prob=0;\r\n \r\n  istemciac();\r\n  \r\n}\r\n\r\n\r\nvoid loop() {       \/\/ ***********  Art\u0131k ESP istemci olarak ayarlanm\u0131\u015ft\u0131r. sadece datalar\u0131 ESP ye yollamaya ba\u015flar. \r\nsay2=say2+1;        \/\/ sanki s\u0131cakl\u0131k \u00f6l\u00e7\u00fcm de\u011feri gibi bu de\u011fer de\u011fi\u015fkenlik sa\u011flay\u0131p PC ye g\u00f6nderiliyor. \r\n\r\nTEKRAR_GONDER:          \/\/ \u015eayet AT+CIPSEND hata verirse buraya d\u00f6ner. ayn\u0131 bilgiyi g\u00f6ndermeye \u00e7al\u0131\u015f\u0131r. \r\n\r\n\r\ngonderbilgi=\"&lt;tempretures&gt;\\r\\n&lt;Temp&gt;\"+String(say2)+\"&lt;\/Temp&gt;\\r\\n\"+\"&lt;Date&gt;\"+String(say2+1)+\"&lt;\/Date&gt;\\r\\n\"+\"&lt;Hour&gt;\"+String(say2+2)+\"&lt;\/Hour&gt;\\r\\n&lt;\/tempretures&gt;\\r\\n\"; \r\ndelay(200);\r\nsay=gonderbilgi.length();\r\nif (say==0){    \/\/ normalde olmamas\u0131 gereken bir kontrol fakat bazen sabit bilgi bile olsa gonderbilgi bo\u015f olabiliyor. kontrol edip kald\u0131rabilirsiniz. \r\n  delay(2000);    \/\/ atmega168 haf\u0131zas\u0131ndan dolay\u0131 hata yapm\u0131\u015f olabilir. \r\n    goto TEKRAR_GONDER;\r\n}\r\n\r\nmySerial.print(\"AT+CIPSEND=0,\");mySerial.println(say);  \/\/ bu komut ka\u00e7 karakter g\u00f6nderilece\u011fini ESP ye bildiriyor. \r\ndelay(500);\r\nkont=\"OK\";  \/\/ bu komuttan sonra OK bekleniyor. \r\nbakgel();   \/\/ geri bildirim alma k\u0131sm\u0131na gidiyor. \r\n if (hata==1){\r\n    \r\n    delay(2000);\r\n    Serial.println(\"CIPSEND HATA***********************\");\r\n    goto TEKRAR_GONDER;       \/\/ sunucu a\u00e7\u0131k de\u011filse hata verir. burada 5 kez deneyip  hata verirse, sonras\u0131nda kullan\u0131c\u0131y\u0131 uyar diyebilirsiniz. \r\n  }\r\nkont=\"SEND OK\";       \/\/  g\u00f6nderilen karakterler g\u00f6nderildi\u011finde OK de\u011fil SEND OK ya da SEND FAIL d\u00f6nd\u00fcr\u00fcr. SEND OK kontrol edilir. \r\nmySerial.print(gonderbilgi);\r\n         delay(500);\r\n  bakgel();   \r\n\r\n  Serial.print(\"HATA ve kont: \"); Serial.print(hata,DEC);Serial.println(kont);\r\n    if (hata==1){\r\n    \/\/  Serial.println(\"Tekrar gonderiliyor\");\r\n    delay(2000);\r\n    goto TEKRAR_GONDER;\r\n  }\r\n\r\n  \/\/ D\u0130KKAT Program ve data haf\u0131zas\u0131na ihtiya\u00e7 duyuluyorsa Serial print ile g\u00f6sterilen anl\u0131k bilgi sat\u0131rlar\u0131 iptal edilebilir. \r\n  \/\/ Bu sat\u0131rlar data haf\u0131zas\u0131n\u0131 olduk\u00e7a dolduruyor. \r\n  \r\n  \r\n}\r\n<\/pre>\n<p><strong>Arduino BA\u011flant\u0131 \u015femas\u0131<\/strong> :<br \/>\n<a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/01\/esp_client.jpg\" rel=\"lightbox[1609]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1619 size-full lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/01\/esp_client.jpg\" alt=\"\" width=\"2572\" height=\"1992\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2572px; --smush-placeholder-aspect-ratio: 2572\/1992;\" \/><\/a><\/p>\n<p>A\u015fa\u011f\u0131daki PICBASIC program\u0131 PIC12F1822 entegresine aittir. \u0130\u00e7 osilat\u00f6r\u00fc 32Mhz h\u0131z\u0131nda kullan\u0131lm\u0131\u015ft\u0131r. 271. 272. sat\u0131rlardaki komutlar WHILE d\u00f6ng\u00fcn\u00fczde bir saya\u00e7 de\u011feri kadar ESP den geri bildirim beklesin. Geri bildirim istenildi\u011fi gibi gelmezse, hata versin diye yaz\u0131lm\u0131\u015ft\u0131r. Bu sat\u0131rlar olmasa hata verdi\u011finde while d\u00f6ng\u00fcn\u00fczde kilitlenir ve hata d\u00fczeltilemezdi.<br \/>\nWHILE d\u00f6ng\u00fclerinde b\u00f6yle bir teknik kullan\u0131lmas\u0131 laz\u0131m yoksa sonsuz d\u00f6ng\u00fcye girer program\u0131n\u0131z reset at\u0131lmad\u0131k\u00e7a normale d\u00f6nemezdi. PIC program\u0131nda donan\u0131msal seri port ESP01 in haberle\u015fmesinde kullan\u0131l\u0131yor. Yaz\u0131l\u0131msal seri port ise EASYLCD kontroll\u00fc LCD de bilgileri yazd\u0131rmak i\u00e7in kullan\u0131lmaktad\u0131r.<\/p>\n<pre class=\"height-set:true height:300 lang:default decode:true\" title=\"PICBASIC 12F1822 entegre ESP01 DATALOG\">'****************************************************************\r\n'*  Name    : ESP01_DATALOG                                     *\r\n'*  Author  : [select VIEW...EDITOR OPTIONS]                    *\r\n'*  Notice  : Copyright (c) 2020                                *\r\n'*          : All Rights Reserved                               *\r\n'*  Date    : 08.02.2020                                        *\r\n'*  Version : 1.0                                               *\r\n'*  Notes   :                                                   *\r\n'*          :                                                   *\r\n'****************************************************************\r\n\r\nDEFINE OSC 32\r\n OSCCON = %11110000        '32mhz\r\n\r\n#config    \r\n  __config _CONFIG1, _FOSC_INTOSC &amp; _WDTE_OFF &amp; _PWRTE_ON &amp; _MCLRE_OFF &amp; _CP_OFF &amp; _CPD_OFF &amp; _BOREN_OFF &amp; _CLKOUTEN_OFF &amp; _IESO_OFF &amp; _FCMEN_OFF\r\n  __config _CONFIG2, _WRT_OFF &amp; _PLLEN_OFF &amp; _LVP_OFF &amp; _STVREN_OFF\r\n#ENDCONFIG\r\n\r\nCM1CON0 = 0\r\n\r\nADCON0=%00000000\r\nADCON1=%00000000 \r\nANSELA=0 ;ADC ler iptal\r\n TRISA=%00100000\r\n APFCON=%10000100\r\n \r\npause 500\r\n\r\nSYMBOL RXPIN=porta.4 \r\nSYMBOL TXPIN=porta.5\r\nSYMBOL GIE  =INTCON.7   'genel interruptlar\u0131 a\u00e7\u0131yor\r\nSYMBOL PEIE =INTCON.6   'peripheralinterruptlar\u0131 a\u00e7\u0131yor\r\nSYMBOL RCIE =PIE1.5     'USART Recive interrupt enable bit\r\nSYMBOL RCIF =PIR1.5     'USART Receive interrupt flag bit\r\n\r\n\r\ntemp var byte\r\n  sayhata   var word\r\nsens_no    var byte\r\nD var byte[40]\r\n\r\nT   var byte\r\nTMP_1   var byte\r\nd1  var byte\r\nd2  var byte\r\nd3  var byte\r\nh1  var byte\r\nh2  var byte\r\nh3  var byte\r\nkont_kar    var byte\r\nsay2        var byte\r\ndon     var     byte\r\nPS      var     byte\r\ndon=0\r\n say2=0\r\n; donan\u0131msal eusart 8mhz 9600 baud\r\n;DEFINE HSER_RCSTA 90h ' Enable serial port &amp; continuous receive\r\n;DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0\r\n;DEFINE HSER_CLROERR 1 ' Clear overflow automatically\r\n;DEFINE HSER_SPBRG 51  ' 9600 Baud @ SPBRGH = 0\r\n;BAUDCON.3 = 1         ' Enable 16 bit baudrate generator\r\n\r\n; ********  32 mhz de   9600 baud 8 N 1 ****************\r\n;DEFINE HSER_RCSTA 90h ; Enable serial port &amp; continuous receive\r\n;DEFINE HSER_TXSTA 24h ;' Enable transmit, BRGH = 0\r\n;DEFINE HSER_CLROERR 1 ;' Clear overflow automatically\r\n;DEFINE HSER_SPBRGH 3\r\n;DEFINE HSER_SPBRGL 64         ;++++++++++++  SPBRG  L olmal\u0131 +++++++++++++++++++++\r\n;BAUDCON= %01001000         ' Enable 16 bit baudrate generator\r\n\r\n; ********  32 mhz de   115200 baud 8 N 1 ESP8266-01 i\u00e7in ****************\r\n\r\nDEFINE HSER_RCSTA 90h ' Enable serial port &amp; continuous receive\r\nDEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1\r\nDEFINE HSER_CLROERR 1 ' Clear overflow automatically\r\nDEFINE HSER_SPBRG 68  ' 115200 Baud @ SPBRGH = 0\r\nBAUDCON.3 = 1         ' Enable 16 bit baudrate generator\r\n\r\n\r\n ;goto yazdir\r\nserOut2 porta.0,84, [\"LCDDD\"] \r\npause 300\r\n \r\nRCIE=1\r\nPEIE=1\r\nGIE=1\r\nTEMP=RCREG\r\n\r\nON INTERRUPT GOTO KESME \r\n \r\nbasla:\r\nkont_kar=0\r\nATRST:\r\nps=1\r\nhserout [\"AT+RST\" ,13,10] \r\n;call kontrol\r\npause 5000\r\n;if don=0 then goto ATRST\r\n\r\npause 300\r\n;call kesme\r\ndon=0\r\n \r\nAT_code:\r\nps=2\r\nserOut2 porta.0,84, [\"LCDWR 2,3-SIRA:  \",DEC2 PS]\r\npause 200\r\n hserout [\"AT\",13,10]\r\n call kontrol\r\n if don=0 then \r\n; call kesme\r\n pause 300\r\n goto AT_code\r\n endif\r\n \r\n don=0\r\n pause 300\r\n\r\nCWMODE:\r\nps=3 \r\nserOut2 porta.0,84, [\"LCDWR 2,3-SIRA:  \",DEC2 PS]\r\npause 200\r\n hserout [\"AT+CWMODE=3\",13,10]\r\n call kontrol\r\n  if don=0 then goto CWMODE\r\n  don=0\r\n   pause 300\r\n\r\nCIPMODE:\r\nps=4\r\nserOut2 porta.0,84, [\"LCDWR 2,3-SIRA:  \",DEC2 PS]\r\npause 200\r\n hserout [\"AT+CIPMODE=0\",13,10]\r\n call kontrol\r\n if don=0 then goto CIPMODE \r\n don=0\r\n     pause 300\r\n\r\nCIPMUX;\r\nps=5 \r\nserOut2 porta.0,84, [\"LCDWR 2,3-SIRA:  \",DEC2 PS]\r\npause 200\r\n hserout [\"AT+CIPMUX=1\",13,10]\r\n call kontrol\r\n  if don=0 then goto CIPMUX\r\n  don=0\r\n    pause 300\r\n\r\nCWJAP:\r\nPS=6\r\nserOut2 porta.0,84, [\"LCDWR 2,3-SIRA:  \",DEC2 PS]\r\npause 200\r\nhserout [\"AT+CWJAP=\",34,\"Guest_SSID_1_4A09\",34,\",\",34,\"guest1997\",34,13,10]\r\n;AT+CWJAP=\"Guest_SSID_1_4A09\",\"guest1997\"\r\n  call kontrol\r\n  if don=0 then goto CWJAP\r\n  don=0\r\n    pause 300\r\n\r\nCIPSTART:\r\nPS=7 \r\nserOut2 porta.0,84, [\"LCDWR 2,3-SIRA:  \",DEC2 PS]\r\npause 200 \r\nhserout [\"AT+CIPSTART=0\",\",\",34,\"TCP\",34,\",\",34,\"192.168.1.102\",34,\",\",\"1001\",13,10]\r\n \r\n call kontrol\r\n  if don=0 then \r\n  pause 200\r\n   serOut2 porta.0,84, [\"LCDWR 1,1-NO TCP SERVER\"]   ; eklendi\r\n   pause 1000     ;eklendi\r\n  goto CIPSTART\r\n  endif        ;eklendi\r\n  \r\n  don=0\r\n  serOut2 porta.0,84, [\"LCDWR 1,1-TCP SRV CONNECT\"]  ;eklendi\r\n  pause 300\r\n\r\nyazdir:\r\nkont_kar=0\r\nPS=8\r\n;serOut2 porta.0,84, [\"LCDWR 2,3-SIRA:  \",DEC2 PS]\r\n say2=say2+1\r\n d1=3\r\n d2=5\r\n d3=20\r\n \r\n h1=9\r\n h2=25\r\n h3=30\r\n sens_no=1\r\n                                                                 \r\n tekrar:  \r\n ;mySerial.print(\"AT+CIPSEND=0,\");mySerial.println(say);\r\nHserout [\"AT+CIPSEND=0,\",dec3 114,13,10] \r\n call kontrol\r\n  if don=0 then \r\n     pause 300\r\n    goto tekrar ; bu tekrar say\u0131s\u0131na g\u00f6re sorun varsa close yap\u0131p lcd ye hata yazd\u0131rabilirsiniz. \r\n  endif\r\n    don=0\r\n ;                     23          2                            17        3                               2     1   2       3     2                      14      2     1   2       1    2                             23\r\nkont_kar=1\r\nHserout [\"&lt;tempretures&gt;\",13,\"&lt;SENS_NO&gt;\",dec2 sens_no,\"&lt;\/SENS_NO&gt;\",13,\"&lt;Temp&gt;\",dec3 say2,\"&lt;\/Temp&gt;\",13,\"&lt;Date&gt;\",dec2 d1,\".\",dec2 d2,\".20\",dec2 d3,\"&lt;\/Date&gt;\",13,\"&lt;Hour&gt;\",dec2 h1,\":\",dec2 h2,\":\",dec2 h3,\"&lt;\/Hour&gt;\",13,\"&lt;\/tempretures&gt;\",13]\r\n; burada g\u00f6nderirken sens\u00f6r numaras\u0131n\u0131 da g\u00f6nder. hangi sens\u00f6rden gelirse gelsin kay\u0131t yaps\u0131n. \r\n;hangi clienttan gelirse gelsin i\u015flemler sens\u00f6r numaras\u0131na g\u00f6re i\u015flenir ve rapor \u00e7\u0131kar\u0131l\u0131r. \r\n\r\ncall kontrol\r\n  if don=0 then \r\n  goto tekrar\r\n  endif\r\n  \r\n  don=0\r\n  pause 200\r\nserOut2 porta.0,84, [\"LCDWR 2,1-Sensor: \",dec2 sens_no,\"  \",DEC3 say2]\r\npause 300\r\n\r\ngoto yazdir  \r\n \r\n \r\n \r\n  \r\nDISABLE\r\nKESME:  ; SER\u0130 PORT KESMES\u0130\r\nGIE=0\r\ndon=0\r\nif kont_kar=0 then \r\nHSERIN 300,atla2, [WAIT(\"OK\")] \r\nendif  \r\n;  bu \u015fekilde OK bekle geldiyse devam et. gelmediyse tekrar g\u00f6nder. \r\n; 3 kez tekrarla \u015fayet hala bozuksa problem bildir. \r\nif kont_kar=1 then \r\nHSERIN 300,atla2,[WAIT(\"SEND O\"),D[0]]\r\nendif\r\n\r\ndon=1\r\nfor t=1 to 40    ; bufferda kalanlar\u0131 temizliyor. \r\n HSERIN 300,atla2,[D[t]]\r\n  \r\nnext t\r\n \r\n \r\n ;hserout [\"don\",dec don,13,10]\r\natla2:\r\n ; hserout [\"kesmede \",dec don,13,10]\r\n    ;serOut2 porta.0,84, [\"LCDWR 2,1-don:  \",dec1 don,HEX2 TMP_1]\r\nTEMP=RCREG\r\nGIE=1\r\nreturn\r\nenable\r\n\r\n\r\nkontrol:\r\nsayhata=0\r\n;pause 100\r\n\r\n  while don=0\r\n sayhata=sayhata+1\r\n if sayhata=65000 then return\r\n   wend\r\n\r\n ;serOut2 porta.0,84, [ \"LCDWR 1,1-\",D[0],D[1],D[2],D[3],D[4],D[5],D[6],D[7],D[8],D[9],D[10],D[11],D[12],D[13],D[14],D[15],D[16],D[17],D[18],D[19],D[20],D[21],D[22],D[23],D[24],D[25],D[26],D[27],D[28],D[29],D[30],D[31],D[32],D[33],D[34],D[35],D[36],D[37],D[38],D[39],D[40]]\r\n; pause 500    ; eklendi. \r\nreturn\r\n\r\n\r\n\r\nend\r\n<\/pre>\n<p><strong>PIC12F1822 devre \u015femas\u0131:<\/strong><\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/01\/proteus-sema.jpg\" rel=\"lightbox[1609]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-2471 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/01\/proteus-sema.jpg\" alt=\"\" width=\"560\" height=\"284\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 560px; --smush-placeholder-aspect-ratio: 560\/284;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>V\u0130DEO L\u0130STES\u0130 : PIC videosunda xml ve tcpserver ayr\u0131nt\u0131l\u0131 a\u00e7\u0131klanm\u0131\u015ft\u0131r.<\/strong><\/span><br \/>\n<strong>1-)<\/strong> Arduino ile birlikte \u00e7al\u0131\u015fmas\u0131. <span style=\"color: #ff6600;\">Bu videodan sonra PIC videosunu da izleyerek ayr\u0131nt\u0131lar\u0131 g\u00f6rmelisiniz.<\/span><br \/>\n<strong>2-)<\/strong> PIC ile birlikte \u00e7al\u0131\u015fmas\u0131<br \/>\n<strong>3-)<\/strong> XML dosyalar\u0131 ve \u00a0excel&#8217;e aktar\u0131lmas\u0131. <span style=\"color: #ff6600;\">XML dosyalar\u0131n\u0131 excel&#8217;e aktarma ayr\u0131nt\u0131l\u0131 video.<\/span><br \/>\n<strong>4-)<\/strong> TCP server program\u0131n\u0131n \u00e7al\u0131\u015fmas\u0131. <span style=\"color: #ff6600;\">TCPserver program\u0131n\u0131n ayr\u0131nt\u0131l\u0131 \u00e7al\u0131\u015fmas\u0131.\u00a0<\/span><br \/>\n<strong>5-) Visual Basic 6<\/strong> ile yap\u0131lan program WIN8 ve WIN10 da nas\u0131l \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. TCP server program\u0131n\u0131n win10 da \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 i\u00e7in izlemeniz gerekli.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Not:<\/strong> <\/span>TCPserver program\u0131 VB6 ile yap\u0131lm\u0131\u015ft\u0131r. Bu program\u0131n EXE dosyas\u0131 baz\u0131 vir\u00fcs programlar\u0131nca vir\u00fcs olarak de\u011ferlendiriliyor. Kaynak dosyas\u0131 da elinizde olaca\u011f\u0131ndan bilgisayar\u0131n\u0131za VB6 program\u0131n\u0131 y\u00fckleyerek yeniden EXE \u015fekline \u00e7evirebilirsiniz.<br \/>\nAyr\u0131ca bu program datalog.txt dosyas\u0131n\u0131 olu\u015fturur. Bunu olu\u015fturmak i\u00e7in verilerin pencerede yaz\u0131lm\u0131\u015f olmas\u0131 gerekir. Pencereye gelen t\u00fcm datalar dosyaya yaz\u0131lmaktad\u0131r.<br \/>\nBu k\u0131s\u0131m PIC \u00e7al\u0131\u015fma videosunda g\u00f6sterilmi\u015ftir. \u0130stedi\u011finiz taktirde programda de\u011fi\u015fiklikler yaparak dosyan\u0131z\u0131n ismini de\u011fi\u015ftirebilirsiniz. Baz\u0131 ek bilgiler girebilirsiniz. Ben saat bilgilerini arduino okur dedim. Fakat RTC kullanmayacaksan\u0131z datan\u0131n geldi\u011fi bilgiye ek olarak PC nin saatini okuyup koyabilirsiniz. RTC ye ihtiyac\u0131n\u0131z kalmaz.<br \/>\n<span style=\"line-height: 1.6471;\">Arduino ve PIC program\u0131nda isterseniz I2C harici eprom kullan\u0131p, sunucuya ula\u015f\u0131lamad\u0131\u011f\u0131nda bilgileri bu eproma yazmak ve sonras\u0131nda sunucu ba\u011flant\u0131s\u0131 sa\u011fland\u0131\u011f\u0131nda bu bilgileri PC ye aktarmak gibi bir de\u011fi\u015fiklik yapabilirsiniz. Bunu yapacaksan\u0131z RTC nin arduino ile birlikte kullan\u0131lmas\u0131 ka\u00e7\u0131n\u0131lmazd\u0131r.<\/span><\/p>\n<p>Not: VB6 programlar\u0131 32 bit eski windowslara g\u00f6redir. Bunu WIN10 ile \u00e7al\u0131\u015ft\u0131rmak i\u00e7in 3 dosyay\u0131 C:\\windows\\system32 dizinine kopyalay\u0131p a\u015fa\u011f\u0131daki \u00f6rnekteki gibi regsrv32 ile win 10 sisteminizin i\u00e7ine al\u0131nmas\u0131 gerekir. <span style=\"color: #ff6600;\">32 bit standart olmayan OCX ve DLL programlar\u0131n\u0131n win 8 ve \u00fcst\u00fcne tan\u0131t\u0131lmas\u0131 bu \u015fekildedir.<br \/>\n<\/span><a href=\"https:\/\/mywindowshub.com\/how-to-register-unregister-re-register-dll-or-ocx-files-in-windows-10\/\" target=\"_blank\" rel=\"noopener\"><strong>Buradan regsvr32 kullan\u0131m\u0131 i\u00e7in bilgi alabilirsiniz.<\/strong><\/a><\/p>\n<p><strong><a href=\"https:\/\/drive.google.com\/open?id=1xpCQcS13Pe3UWPcjcm2AWLCZMGLWkh-q\" target=\"_blank\" rel=\"noopener\">T\u00fcm gerekli dosyalara buradan ula\u015fabilirsiniz.\u00a0<\/a><\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Arduino ile \u00e7al\u0131\u015fma :\u00a0<\/strong><\/span><iframe data-src=\"https:\/\/www.youtube.com\/embed\/ndmcKGY3GV8\" width=\"640\" height=\"360\" 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>PIC ile \u00e7al\u0131\u015fma :\u00a0<\/strong><\/span><br \/>\n<iframe data-src=\"https:\/\/www.youtube.com\/embed\/TdM8kFhlkgM\" width=\"640\" height=\"360\" 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>XML Videosu :\u00a0<\/strong><\/span><br \/>\n<iframe data-src=\"https:\/\/www.youtube.com\/embed\/iGH5y86V0sc\" width=\"640\" height=\"360\" 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>TCP SERVER Videosu :<\/strong><\/span><br \/>\n<iframe data-src=\"https:\/\/www.youtube.com\/embed\/ZlOhwLjREhs\" width=\"640\" height=\"360\" 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>VB6 ile yap\u0131lan TCP server program\u0131n\u0131n WIN 10 ile \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 i\u00e7in izlenecek yol.\u00a0<\/strong><\/span><iframe data-src=\"https:\/\/www.youtube.com\/embed\/AGK3IJUW7OI\" width=\"640\" height=\"360\" 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>Bu konumuzda Arduino veya PIC ile yap\u0131lm\u0131\u015f devrelerimizden, kablosuz olarak datalog olu\u015fturmak. XML ile olu\u015fturulan bu dosyalar\u0131n EXCEL \u00fczerine aktar\u0131lmas\u0131 ve analiz i\u00e7in grafi\u011finin \u00e7\u0131kar\u0131lmas\u0131n\u0131 g\u00f6rece\u011fiz. Datalog iki \u015fekilde olu\u015fabilir&#8230;. <\/p>\n","protected":false},"author":1,"featured_media":1620,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12,14,7,3],"tags":[],"class_list":["post-1609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-pcprog","category-easylcd","category-esp","category-pic"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1609","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=1609"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1609\/revisions"}],"predecessor-version":[{"id":2472,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1609\/revisions\/2472"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/1620"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=1609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=1609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=1609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}