ESP8266 ile Sunucuya Javascript Kodu Ekleme

Arkadaşlar bu yazımızda ESP8266 ile yapılmış bir webservera JAVASCRIPT kodlarını ekleme ve çalışmasından bahsetmek istiyorum. Bu yazımda belirttiğim gibi herhangi bir ESP8266 çipli geliştirme kartı işinizi görecektir.

Javascript kodunu ekleyerek REAL TIME (gerçek zamanlı ) bağlantı olmasının önü açılıyor . Eğer JavaScript kullanılmasaydı html kodlarına her 3-5 sn de kendisini yenileme kodunu girmemiz ve gereksiz bir iş yükünü geliştirme kartına yüklememiz gerekecekti.

Projelerinize ekleyeceğiniz JavaScript kodları ile kontrol etmek istediğiniz yada gerçek zamanlı değerlerini tarayıcınız kendini yenilemeden gösterecektir.

Bu yazımızda derlediğim kodu ESP8266 lı geliştirme kartına yüklediğinizde seri ekrandan Network ağına bağlandığını gösteren aşağıdaki pencereyi görürsünüz.

webserverjavascript

Daha sonrasında ise IP adresinizi herhangi bir tarayıcıya kopyalayıp bağlantıyı sağlayın.

javascript

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

ESP8266WebServer server(80);
const char* ssid="agadinigirin";
const char* password="agsifresinigirin";
String webSite,javaScript,XML;

void buildWebsite(){
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="<BR>www.arduinom.org tarafından yayınlanmış bir örnektir ...<BR>\n";
  webSite+="Çalıştığı Zaman   = <A id='runtime'></A>\n";
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="var xmlHttp=createXmlHttpObject();\n";

  javaScript+="function createXmlHttpObject(){\n";
  javaScript+=" if(window.XMLHttpRequest){\n";
  javaScript+="    xmlHttp=new XMLHttpRequest();\n";
  javaScript+=" }else{\n";
  javaScript+="    xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');\n";
  javaScript+=" }\n";
  javaScript+=" return xmlHttp;\n";
  javaScript+="}\n";

  javaScript+="function process(){\n";
  javaScript+=" if(xmlHttp.readyState==0 || xmlHttp.readyState==4){\n";
  javaScript+="   xmlHttp.open('PUT','xml',true);\n";
  javaScript+="   xmlHttp.onreadystatechange=handleServerResponse;\n"; // no brackets?????
  javaScript+="   xmlHttp.send(null);\n";
  javaScript+=" }\n";
  javaScript+=" setTimeout('process()',1000);\n";
  javaScript+="}\n";
  
  javaScript+="function handleServerResponse(){\n";
  javaScript+=" if(xmlHttp.readyState==4 && xmlHttp.status==200){\n";
  javaScript+="   xmlResponse=xmlHttp.responseXML;\n";
  javaScript+="   xmldoc = xmlResponse.getElementsByTagName('response');\n";
  javaScript+="   message = xmldoc[0].firstChild.nodeValue;\n";
  javaScript+="   document.getElementById('runtime').innerHTML=message;\n";
  javaScript+=" }\n";
  javaScript+="}\n";
  javaScript+="</SCRIPT>\n";
}

void buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<response>";
  XML+=millis2time();
  XML+="</response>";
}
String millis2time(){
  String Time="";
  unsigned long ss;
  byte mm,hh;
  ss=millis()/1000;
  hh=ss/3600;
  mm=(ss-hh*3600)/60;
  ss=(ss-hh*3600)-mm*60;
  if(hh<10)Time+="0";
  Time+=(String)hh+":";
  if(mm<10)Time+="0";
  Time+=(String)mm+":";
  if(ss<10)Time+="0";
  Time+=(String)ss;
  return Time;
}

void handleWebsite(){
  buildWebsite();
  server.send(200,"text/html",webSite);
}

void handleXML(){
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {
  Serial.begin(115200);  
  WiFi.begin(ssid,password);
  while(WiFi.status()!=WL_CONNECTED)delay(500);
  WiFi.mode(WIFI_STA);
  Serial.println("\n\nESP8266 BAGLANIYOR ...");
  Serial.print("Baglandigi Ag : ");
  Serial.println(ssid);
  Serial.print("Ip adresiniz: ");
  Serial.println(WiFi.localIP());
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.begin();  
}

void loop() {
  server.handleClient();
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.