ESP8266-TANK WEBSERVER

ЕСП8266 и примеры прошивок
Аватар пользователя
admin
Администратор
Сообщений: 341
Зарегистрирован: 10 июн 2017, 16:49
Откуда: Rakun City @GanstaParadise-Telegram
Контактная информация:

ESP8266-TANK WEBSERVER

Сообщение admin » 25 июл 2018, 06:51

с ручкой газа
tank8266.png



super cool buttons

Код: Выбрать все




#include <Wire.h>


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





#define LEVO1 D8 ////
#define LEVO2 D7 ////
#define PRAVO1 D6 ///
#define PRAVO2 D5 ///
#define DETECTOR D0 ///
//#define tonePin D2 //d5

int deluha=300;
////ultra datch


//int echoPin = D2;
//int trigPin = D1;
/////

ESP8266WebServer server(80);
const char* ssid2="TANK8266"; //название точки доступа
const char* password2=""; // пароль не будем писать
const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
const char* password="123412345"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;

int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;



int stoppriem=1;


int muzi ;

int pir = 0;

int alarma = 0;

int alarmaoff =-1;

int vlazh = 0;


 int starres = 0;

int pakiweb = 0;
int bitnumber = 0;
int shirt = 0;

//wifii&server end/////////////////////////////////////

//menu

boolean backlight = true;
int contrast=50;
int kiop=0;
int menuitem = 1;
int page = 1;

int pagero = 0;

int smena = 1;//smena sig

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0; 
int selectButtonState = 0;         
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;





//menu end








int ing = 0;
int starlineCounter = 0;
int starlinePreambula = 0;
static long StarLineCode1 = 0; // first part
static long StarLineCode2 = 0; // last part
static long invertStarLineCode1 = 0; // first part
static long invertStarLineCode2 = 0; // last part
String code = "";
boolean bValidPacket=false;
int decodeMethod = 1;
int lastRxValue = 0;
int tempRxValue = 0;
unsigned long lastRxTime = 0;
unsigned long tempTime = 0;
 
//keeloq
int keeloqHeader=0;

int keeloqCounter = 0;

int starlineZCounter = 0;

int starlineZpreambulaCounter = 0;
int keeloqPreambula = 0;

int stralineHeader=0;


static long keeloqCode1 = 0; // first part
static long keeloqCode2 = 0; // last part
static long invertkeeloqCode1 = 0; // first part
static long invertkeeloqCode2 = 0; // last part
String keecode = "";


boolean keebValidPacket=false;

int keelastRxValue = 0;
int keetempRxValue = 0;
unsigned long keelastRxTime = 0;
unsigned long keetempTime = 0;

//пробуем выброс
//keelog start
unsigned long difTime = 0;
unsigned long difTime2 = 0;
int keelog_state = 0;
int keelogCounter = 0;
byte keelog_code[9];
byte keelog_codePAK2[9];
byte keelog_codePAK1[9];
byte hugaz[9];
byte hugazk[9];
byte hugazi[9];
byte starline_code[9];
byte starline_codePAK2[9];
byte starline_codePAK1[9];



byte webpak2[9];
byte webpak1[9];



int starline_state = 0;
byte kefang[9];


byte starline_codePAK2zapis[9];
byte starline_codePAK1zapis[9];

byte starline_codePAK2zapisSBTR[9];
byte starline_codePAK1zapisSBTR[9];


byte keelog_codePAK2zapis[9];
byte keelog_codePAK1zapis[9];


byte keelog_codePAK2zapisSBTR[9];
byte keelog_codePAK1zapisSBTR[9];

byte hugazS[9];
byte hugaziS[9];

byte hugazK[9];
byte hugaziK[9];

int zoro=1;

/////////////////////////////////////////////////VVODNIE

byte VVOD1[9];
byte VVOD2[9];

String readString;
// --------------------
byte CODE[8];
int x=0;

int k=0;//schet keeloq 
int kk  =0; //shet star line

int starkk = 0;

String codan ="Scanning begin";

volatile static long codsh;
String codan2 ="not code";

String codan1 ="not code";

String sending ="nothing no send";

String button ="";
String gasa="zagasa";


int shlakoffpriem=1;
int stopsigi =1;
///////////sensor vlazhnosti
float temperature;
float humundity;
int schetvl=0;

///////////////
void codanz(){

codan;

 
}

void Batare(){
 /// Batareya = 333666;         // Меряем напряжение батареи
 
}
void SilaWifi(){
  Sila = WiFi.RSSI();  // Меряем силу сигнала WiFi
  if (Sila < SilaLow){
    SilaW = "          Сигнал слабый";
  }
  else{
    SilaW = "";
  }
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="var voh=1;var voh1=1;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.onreadystatechange=function(){\n";
  javaScript+="      if(xmlHttp.readyState==4&&xmlHttp.status==200){\n";
  javaScript+="        xmlDoc=xmlHttp.responseXML;\n";
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('millistime')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('runtime').innerHTML=xmlmsg;\n";               // Добавляем наши данные
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
  javaScript+="        document.getElementById('Sila').innerHTML=xmlmsg;\n";                  // Сила сигнала WiFi

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila2')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
   javaScript+="        document.getElementById('progbar').value=-xmlmsg;\n";                  // Сила сигнала WiFi

   
 
 
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи





javaScript+="   document.getElementById('vnizon').onclick = function (nizon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZON',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vnizoff').onclick = function (nizoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhon').onclick = function (vverhon) {voh++;if(voh>1){document.getElementById('vverhon').style.backgroundColor='red';xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VONN',true);xmlhttp.send();};if(voh>2){document.getElementById('vverhon').style.backgroundColor='green';voh=1;xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};};\n" ;
javaScript+="   document.getElementById('vverhoff').onclick = function (vverhoff) {voh1++;if(voh1>1){document.getElementById('vverhoff').style.backgroundColor='red'; xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VOFF',true);xmlhttp.send();};if(voh1>2){document.getElementById('vverhoff').style.backgroundColor='green';voh1=1;xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};};\n" ;

javaScript+="   document.getElementById('vlevo').onclick = function (vlevo) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VLEVO',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('bumer').onclick = function (bumer) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BUMER',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('kasta').onclick = function (kasta) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/KASTA',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('dasboot').onclick = function (dasboot) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/DASBOOT',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('sirena').onclick = function (sirena) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SIRENA',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('ala').onclick = function (ala) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/AlarmOff',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('bethoven').onclick = function (bethoven) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BETHOVEN',true);xmlhttp.send();};" ;

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('sending')[0].firstChild.nodeValue;\n";//
  javaScript+="        document.getElementById('sending').innerHTML=xmlmsg;\n";                  // посылка кода

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket').innerHTML=xmlmsg;\n";     

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket1')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket1').innerHTML=xmlmsg;\n";   



 javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('valBox').innerHTML=xmlmsg;\n";                  // deluha

  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('slidr').value=xmlmsg;\n";                  // deluha


/////javaScript+="   document.getElementById('button').onclick = function (button) { alert('Сюрприз!');" ;
//// javaScript+="  var button =1; if (button==1){alert('Пошел на хуй');button++;alert(button);} };";
 
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',100);\n";
  javaScript+="}\n";





javaScript+="function slid(newVal){\n";
  javaScript+="  document.getElementById('valBox').innerHTML=newVal;\n";
  javaScript+="  xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SLID?val='+newVal,true);xmlhttp.send();";
 /// javaScript+="  document.getElementById('ESPval'+cnt).innerHTML=9*(100-sliderVal)+100;\n";
 /// javaScript+="  if(xmlHttp.readyState==0||xmlHttp.readyState==4){\n";
 /// javaScript+="    xmlHttp.open('PUT','setESPval?cnt='+cnt+'&val='+sliderVal,true);\n";
  //javaScript+="    xmlHttp.send(null);\n";
 /// javaScript+="  }\n";
  javaScript+="}\n";

 
 
  javaScript+="</SCRIPT>\n";




}
void buildWebsite(){    // Создаём страницу с элементами управления
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+="<META name='viewport' content='width=device-width, initial-scale=1', charset=\"utf-8\">\n";
   webSite+="<link rel='shortcut icon' type='image/x-icon' href='http://gansta-paradise.com/favicon.ico'>";

      webSite+="<style>input#slidr {    width: 100%;} progress#temperaturepb {background: green;} progress::-webkit-progress-bar { background: red; } #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 150px;}input#button_s {border: double;border-color: green;  border-radius: 30px;} input#input1 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}input#input2 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}progress#progbar {  background: #551be2;}</style>";



   
   


     
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="ТАНК\n<br>";
  webSite+="Время работы = <A ID='runtime'></A>\n<br>";
  webSite+="Сила сигнала <A ID='Sila'></A>\n<br>";              // Сила сигнала WiFi
  webSite+="ДАННЫЕ ТАНКА<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
   webSite+="Алярма:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
    webSite+="Напруга:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи

 

            webSite+="<div id='sending'>\n";

              webSite+="</div>\n";

 
 webSite+="<p>Сила Сигнала</p>";
 webSite+="<div class='progress'>";
  webSite+="   <progress id='progbar' max='100' value='0'></progress>";
   webSite+="  <div class='progress-value'></div>";
  webSite+="   <div class='progress-bg'><div class='progress-bar'></div></div>";
 webSite+="</div>";
 webSite+="<br><span id='valBox'></span><input width='100%' type='range' min='0' max='5000' step='1' id='slidr'  oninput='slid(this.value)' onchange='slid(this.value)'>\n";  // это пример слайдера
webSite+="<br><br><br><table id='cepka' align='center'><tr>";
   webSite+="<td><button id='vverhon' onclick='doFunction();'>VPERED";
    webSite+="</button></td><td></td>";
    webSite+="<td><button id='vverhoff' onclick='doFunction();'>NAZAD</button></td></tr><br><br><tr><td></td><td><h4 align='center'>✵✵✵РУЛЬ✵✵✵</h4></td></tr>";


     webSite+="<tr><td><button id='vlevo' onclick='doFunction();'>☜ VLEVO</button>";
         webSite+="</td><td></td><td><button id='vnizon' onclick='doFunction();'>VPRAVO ☞</button></td></tr>";
     webSite+="<tr></tr><tr><td></td><td><button id='vnizoff' onclick='doFunction();'>STOP";
   
       webSite+="</button></td></tr></table><br>";





             


webSite+="<table id='bumerang'><tr>";
   webSite+="<td><button id='bumer' onclick='doFunction();'>Bumer";
    webSite+="</button></td>";
    webSite+="<td><button id='dasboot' onclick='doFunction();'>Dasboot</button></td></tr>";
   


     webSite+="<tr><td><button id='kasta' onclick='doFunction();'>Kasta";
    webSite+="</button></td>";
     webSite+="<td><button id='sirena' onclick='doFunction();'>Sirena";
   
       webSite+="</button></td></tr></table><br>";

       

webSite+="<table id='ala'><tr>";
   webSite+="<td><button id='ala' onclick='doFunction();'>Alarm-on-off";
    webSite+="</button></td>";

    webSite+="<td><button id='bethoven' onclick='doFunction();'>Bethoven</button></td></tr>";



   
       webSite+="</td></tr></table><br>";

         
         
            webSite+="<p>ФУНКЦИИ ЗАПАСНЫЕ</p><br>  <a href=\"ShlakOn\"><button>Reboot</button></a>&nbsp;<a href=\"TEMPERATURE\"><button>DATCHIK VLAZHNOSTY</button></a><br>";




           
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";




 
}
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 buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<xml>";
  XML+="<millistime>";
  XML+=millis2time();
  XML+="</millistime>";   // Добавляем наши данные
  SilaWifi();             // Здесь измеряем силу сигнала
  XML+="<Sila>";          // Сила сигнала WiFi
  XML+=String(Sila)+SilaW;// Сила сигнала WiFi
  XML+="</Sila>";         // Сила сигнала WiFi

   XML+="<Sila2>";          // Сила сигнала WiFi
  XML+=String(Sila);// Сила сигнала WiFi
  XML+="</Sila2>";         // Сила сигнала WiFi

   codanz();
 ///  startgrabber(); ////code
  XML+="<Batareya>";       
 ////XML+="<br>";
   XML+=String(codan);
  XML+="</Batareya>";




     
    XML+="<Paket>";       
   XML+=String(codan2);
  XML+="</Paket>";   


       XML+="<Paket1>";       
   XML+=String(codan1);
  XML+="</Paket1>";   



    XML+="<button>";         

   XML+=String(button)+"button send";
  XML+="</button>";       

    XML+="<button2>";         

   XML+=String(button)+"button send";
  XML+="</button2>";         




    XML+="<sending>";         

   XML+=String(sending);
   
  XML+="</sending>";   




    XML+="<deluha>";         

   XML+=String(deluha);
   
  XML+="</deluha>";   

 
  XML+="</xml>";
}

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

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

void handleESPval(){


/// int sliderCNT=server.arg("Batareya");
  String button3243=server.arg("codan");

  Serial.println(button3243);
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {


  ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
 
    EEPROM.begin(3512);
  Serial.begin(115200);
    // call sensor.begin() to initialize the library
 

  //////////sensor
    pinMode(LEVO1, OUTPUT);
      pinMode(LEVO2, OUTPUT);
     pinMode(PRAVO1, OUTPUT);
      pinMode(PRAVO2, OUTPUT);
//      pinMode(tonePin, OUTPUT);

  pinMode(DETECTOR,INPUT);

  digitalWrite(DETECTOR,LOW);
//    digitalWrite(tonePin,LOW);


 
//  pinMode(trigPin, OUTPUT);
//  pinMode(echoPin, INPUT);


  WiFi.softAP(ssid2, password2); // Создаём точку доступа
WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
while(WiFi.status()!=WL_CONNECTED){Serial.print(".");delay(500);}
WiFi.mode(WIFI_STA);

while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Establishing connection to WiFi..");
  }

 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP   sensor.begin();
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);




   server.on("/TEMPERATURE", [](){
 server.send(200, "text/html", webSite);
     Serial.println("GET TEMPERATURE ...");
 
    sending="GET TEMPERATURE";
   
  vlazh=1;
 
   
  });



 server.on("/SLID", [](){
 server.send(200, "text/html", webSite);
   String message = "";
message +=server.arg(0);

Serial.println(message);
const int n = 10;
char *z = new char[n];
message.toCharArray(z,n);

deluha=atoi(z);


Serial.println(deluha);
   
  });


   server.on("/NIZON", [](){
 server.send(200, "text/html", webSite);
     Serial.println("PRAVO...");
   digitalWrite (LEVO1, HIGH);
digitalWrite (LEVO2, LOW);
///digitalWrite (PRAVO1,HIGH);
///  digitalWrite (PRAVO2,LOW);
    sending="PRAVO";
    delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);

 
   
  });

   server.on("/VLEVO", [](){
 server.send(200, "text/html", webSite);
     Serial.println("LEVO...");
  //// digitalWrite (LEVO1, HIGH);
///digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,HIGH);
 digitalWrite (PRAVO2,LOW);
    sending="LEVO";

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 
   
  });
 
  server.on("/NIZOFF", [](){
     server.send(200, "text/html", webSite);
    Serial.println("STOP ...");
digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 sending="STOP";
    /////server.send(200, "text/html", webSite);


   
  });
  server.on("/VONN", [](){
     server.send(200, "text/html", webSite);

    Serial.println("VPERED...");
 digitalWrite (LEVO1,HIGH);
  digitalWrite (LEVO2,LOW);
   digitalWrite (PRAVO1,HIGH);
  digitalWrite (PRAVO2,LOW);
 sending="VPERED";
   ///////////// server.send(200, "text/html", webSite);
//
// delay(deluha);
//
//    digitalWrite (LEVO1, LOW);
//digitalWrite (LEVO2, LOW);
//digitalWrite (PRAVO1,LOW);
//  digitalWrite (PRAVO2,LOW);
   
  });
  server.on("/VOFF", [](){
     server.send(200, "text/html", webSite);

Serial.println(" NAZAD...");
 digitalWrite (LEVO1,LOW);
 digitalWrite (LEVO2,HIGH);
 digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,HIGH);
  sending="NAZAD";
   
   //////////////// server.send(200, "text/html", webSite);


 


// delay(deluha);
//
//    digitalWrite (LEVO1, LOW);
//digitalWrite (LEVO2, LOW);
//digitalWrite (PRAVO1,LOW);
//  digitalWrite (PRAVO2,LOW);
   
  });


    server.on("/BUMER", [](){
     
       sending="BUUMER";
    server.send(200, "text/html", webSite);
Serial.println("bumer");
// bumer();


   
  });
  server.on("/DASBOOT", [](){
   
     sending="DASBOOT";
    server.send(200, "text/html", webSite);
Serial.println(" DASBOOT");
// dasboot();

   
  });

///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
  server.on("/AlarmOff", [](){
    server.send(200, "text/html", webSite);
Serial.println("priem on");

if(alarmaoff==0){
sending ="ALARMA-OFF";}
else{
 sending ="ALARMA-ONN";
  }

alarmaoff = ~alarmaoff;

 Serial.println(alarmaoff);

   
  });

    server.on("/BETHOVEN", [](){
    server.send(200, "text/html", webSite);
Serial.println("DETHOV");
sending ="BETHOVEN-ONN";
//bet();
   
  });




 server.on("/KASTA", [](){
  sending="KASTA";


    server.send(200, "text/html", webSite);
//    muz();


   
  });

  //////////////////////////////

  ///////////brutshlak

 server.on("/ShlakOn", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Reboot");
    server.send(200, "text/html", webSite);
 
ESP.restart();

///ESP.reset() ;

/////BrutSh2
   
  });

 server.on("/BrutSh2", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Shlak code");
    server.send(200, "text/html", webSite);
 

/////BrutSh2
   
  });
  //////////////////

  //////////ShlakSendOff

 server.on("/SIRENA", [](){




 
    server.send(200, "text/html", webSite);
//    siren();
   



   
  });


  //////////////////
 

 
  server.begin();
}




void loop() {


 


   ESP.wdtFeed();

  server.handleClient();

// digitalWrite(tonePin,LOW);

 
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
//     digitalWrite(tonePin,LOW);
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
//     digitalWrite(tonePin,LOW);

 
 }



codan2 ="NO DETECT";














 
 
   

 
}



























old code


Код: Выбрать все





#include <Wire.h>


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





#define LEVO1 D8 ////
#define LEVO2 D7 ////
#define PRAVO1 D6 ///
#define PRAVO2 D5 ///
#define DETECTOR D0 ///
//#define tonePin D2 //d5

int deluha=300;
////ultra datch


//int echoPin = D2;
//int trigPin = D1;
/////

ESP8266WebServer server(80);
const char* ssid2="TANK8266"; //название точки доступа
const char* password2=""; // пароль не будем писать
const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
const char* password="123412345"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;

int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;



int stoppriem=1;


int muzi ;

int pir = 0;

int alarma = 0;

int alarmaoff =-1;

int vlazh = 0;


 int starres = 0;

int pakiweb = 0;
int bitnumber = 0;
int shirt = 0;

//wifii&server end/////////////////////////////////////

//menu

boolean backlight = true;
int contrast=50;
int kiop=0;
int menuitem = 1;
int page = 1;

int pagero = 0;

int smena = 1;//smena sig

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0; 
int selectButtonState = 0;         
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;





//menu end








int ing = 0;
int starlineCounter = 0;
int starlinePreambula = 0;
static long StarLineCode1 = 0; // first part
static long StarLineCode2 = 0; // last part
static long invertStarLineCode1 = 0; // first part
static long invertStarLineCode2 = 0; // last part
String code = "";
boolean bValidPacket=false;
int decodeMethod = 1;
int lastRxValue = 0;
int tempRxValue = 0;
unsigned long lastRxTime = 0;
unsigned long tempTime = 0;
 
//keeloq
int keeloqHeader=0;

int keeloqCounter = 0;

int starlineZCounter = 0;

int starlineZpreambulaCounter = 0;
int keeloqPreambula = 0;

int stralineHeader=0;


static long keeloqCode1 = 0; // first part
static long keeloqCode2 = 0; // last part
static long invertkeeloqCode1 = 0; // first part
static long invertkeeloqCode2 = 0; // last part
String keecode = "";


boolean keebValidPacket=false;

int keelastRxValue = 0;
int keetempRxValue = 0;
unsigned long keelastRxTime = 0;
unsigned long keetempTime = 0;

//пробуем выброс
//keelog start
unsigned long difTime = 0;
unsigned long difTime2 = 0;
int keelog_state = 0;
int keelogCounter = 0;
byte keelog_code[9];
byte keelog_codePAK2[9];
byte keelog_codePAK1[9];
byte hugaz[9];
byte hugazk[9];
byte hugazi[9];
byte starline_code[9];
byte starline_codePAK2[9];
byte starline_codePAK1[9];



byte webpak2[9];
byte webpak1[9];



int starline_state = 0;
byte kefang[9];


byte starline_codePAK2zapis[9];
byte starline_codePAK1zapis[9];

byte starline_codePAK2zapisSBTR[9];
byte starline_codePAK1zapisSBTR[9];


byte keelog_codePAK2zapis[9];
byte keelog_codePAK1zapis[9];


byte keelog_codePAK2zapisSBTR[9];
byte keelog_codePAK1zapisSBTR[9];

byte hugazS[9];
byte hugaziS[9];

byte hugazK[9];
byte hugaziK[9];

int zoro=1;

/////////////////////////////////////////////////VVODNIE

byte VVOD1[9];
byte VVOD2[9];

String readString;
// --------------------
byte CODE[8];
int x=0;

int k=0;//schet keeloq 
int kk  =0; //shet star line

int starkk = 0;

String codan ="Scanning begin";

volatile static long codsh;
String codan2 ="not code";

String codan1 ="not code";

String sending ="nothing no send";

String button ="";
String gasa="zagasa";


int shlakoffpriem=1;
int stopsigi =1;
///////////sensor vlazhnosti
float temperature;
float humundity;
int schetvl=0;

///////////////
void codanz(){

codan;

 
}

void Batare(){
 /// Batareya = 333666;         // Меряем напряжение батареи
 
}
void SilaWifi(){
  Sila = WiFi.RSSI();  // Меряем силу сигнала WiFi
  if (Sila < SilaLow){
    SilaW = "          Сигнал слабый";
  }
  else{
    SilaW = "";
  }
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="var voh=1;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.onreadystatechange=function(){\n";
  javaScript+="      if(xmlHttp.readyState==4&&xmlHttp.status==200){\n";
  javaScript+="        xmlDoc=xmlHttp.responseXML;\n";
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('millistime')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('runtime').innerHTML=xmlmsg;\n";               // Добавляем наши данные
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
  javaScript+="        document.getElementById('Sila').innerHTML=xmlmsg;\n";                  // Сила сигнала WiFi

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila2')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
   javaScript+="        document.getElementById('progbar').value=-xmlmsg;\n";                  // Сила сигнала WiFi

   
 
 
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи





javaScript+="   document.getElementById('vnizon').onclick = function (nizon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZON',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vnizoff').onclick = function (nizoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhon').onclick = function (vverhon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VONN',true);xmlhttp.send();voh++;if(voh>1){document.getElementById('vverhon').style.backgroundColor='red'};if(voh>2){document.getElementById('vverhon').style.backgroundColor='green';voh=1;};};\n" ;
javaScript+="   document.getElementById('vverhoff').onclick = function (vverhoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VOFF',true);xmlhttp.send();voh++;if(voh>1){document.getElementById('vverhoff').style.backgroundColor='red'};if(voh>2){document.getElementById('vverhoff').style.backgroundColor='green';voh=1;};};\n" ;

javaScript+="   document.getElementById('vlevo').onclick = function (vlevo) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VLEVO',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('bumer').onclick = function (bumer) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BUMER',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('kasta').onclick = function (kasta) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/KASTA',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('dasboot').onclick = function (dasboot) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/DASBOOT',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('sirena').onclick = function (sirena) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SIRENA',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('ala').onclick = function (ala) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/AlarmOff',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('bethoven').onclick = function (bethoven) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BETHOVEN',true);xmlhttp.send();};" ;

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('sending')[0].firstChild.nodeValue;\n";//
  javaScript+="        document.getElementById('sending').innerHTML=xmlmsg;\n";                  // посылка кода

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket').innerHTML=xmlmsg;\n";     

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket1')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket1').innerHTML=xmlmsg;\n";   



 javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('valBox').innerHTML=xmlmsg;\n";                  // deluha

  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('slidr').value=xmlmsg;\n";                  // deluha


/////javaScript+="   document.getElementById('button').onclick = function (button) { alert('Сюрприз!');" ;
//// javaScript+="  var button =1; if (button==1){alert('Пошел на хуй');button++;alert(button);} };";
 
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',100);\n";
  javaScript+="}\n";





javaScript+="function slid(newVal){\n";
  javaScript+="  document.getElementById('valBox').innerHTML=newVal;\n";
  javaScript+="  xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SLID?val='+newVal,true);xmlhttp.send();";
 /// javaScript+="  document.getElementById('ESPval'+cnt).innerHTML=9*(100-sliderVal)+100;\n";
 /// javaScript+="  if(xmlHttp.readyState==0||xmlHttp.readyState==4){\n";
 /// javaScript+="    xmlHttp.open('PUT','setESPval?cnt='+cnt+'&val='+sliderVal,true);\n";
  //javaScript+="    xmlHttp.send(null);\n";
 /// javaScript+="  }\n";
  javaScript+="}\n";

 
 
  javaScript+="</SCRIPT>\n";




}
void buildWebsite(){    // Создаём страницу с элементами управления
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+="<META name='viewport' content='width=device-width, initial-scale=1', charset=\"utf-8\">\n";
   webSite+="<link rel='shortcut icon' type='image/x-icon' href='http://gansta-paradise.com/favicon.ico'>";

      webSite+="<style>input#slidr {    width: 100%;} progress#temperaturepb {background: green;} progress::-webkit-progress-bar { background: red; } #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 150px;}input#button_s {border: double;border-color: green;  border-radius: 30px;} input#input1 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}input#input2 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}progress#progbar {  background: #551be2;}</style>";



   
   


     
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="ТАНК\n<br>";
  webSite+="Время работы = <A ID='runtime'></A>\n<br>";
  webSite+="Сила сигнала <A ID='Sila'></A>\n<br>";              // Сила сигнала WiFi
  webSite+="ДАННЫЕ ТАНКА<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
   webSite+="Алярма:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
    webSite+="Напруга:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи

 

            webSite+="<div id='sending'>\n";

              webSite+="</div>\n";

 
 webSite+="<p>Сила Сигнала</p>";
 webSite+="<div class='progress'>";
  webSite+="   <progress id='progbar' max='100' value='0'></progress>";
   webSite+="  <div class='progress-value'></div>";
  webSite+="   <div class='progress-bg'><div class='progress-bar'></div></div>";
 webSite+="</div>";
 webSite+="<br><span id='valBox'></span><input width='100%' type='range' min='0' max='5000' step='1' id='slidr'  oninput='slid(this.value)' onchange='slid(this.value)'>\n";  // это пример слайдера
webSite+="<br><br><br><table id='cepka' align='center'><tr>";
   webSite+="<td><button id='vverhon' onclick='doFunction();'>VPERED";
    webSite+="</button></td><td></td>";
    webSite+="<td><button id='vverhoff' onclick='doFunction();'>NAZAD</button></td></tr><br><br><tr><td></td><td><h4 align='center'>✵✵✵РУЛЬ✵✵✵</h4></td></tr>";


     webSite+="<tr><td><button id='vlevo' onclick='doFunction();'>☜ VLEVO</button>";
         webSite+="</td><td></td><td><button id='vnizon' onclick='doFunction();'>VPRAVO ☞</button></td></tr>";
     webSite+="<tr></tr><tr><td></td><td><button id='vnizoff' onclick='doFunction();'>STOP";
   
       webSite+="</button></td></tr></table><br>";





             


webSite+="<table id='bumerang'><tr>";
   webSite+="<td><button id='bumer' onclick='doFunction();'>Bumer";
    webSite+="</button></td>";
    webSite+="<td><button id='dasboot' onclick='doFunction();'>Dasboot</button></td></tr>";
   


     webSite+="<tr><td><button id='kasta' onclick='doFunction();'>Kasta";
    webSite+="</button></td>";
     webSite+="<td><button id='sirena' onclick='doFunction();'>Sirena";
   
       webSite+="</button></td></tr></table><br>";

       

webSite+="<table id='ala'><tr>";
   webSite+="<td><button id='ala' onclick='doFunction();'>Alarm-on-off";
    webSite+="</button></td>";

    webSite+="<td><button id='bethoven' onclick='doFunction();'>Bethoven</button></td></tr>";



   
       webSite+="</td></tr></table><br>";

         
         
            webSite+="<p>ФУНКЦИИ ЗАПАСНЫЕ</p><br>  <a href=\"ShlakOn\"><button>Reboot</button></a>&nbsp;<a href=\"TEMPERATURE\"><button>DATCHIK VLAZHNOSTY</button></a><br>";




           
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";




 
}
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 buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<xml>";
  XML+="<millistime>";
  XML+=millis2time();
  XML+="</millistime>";   // Добавляем наши данные
  SilaWifi();             // Здесь измеряем силу сигнала
  XML+="<Sila>";          // Сила сигнала WiFi
  XML+=String(Sila)+SilaW;// Сила сигнала WiFi
  XML+="</Sila>";         // Сила сигнала WiFi

   XML+="<Sila2>";          // Сила сигнала WiFi
  XML+=String(Sila);// Сила сигнала WiFi
  XML+="</Sila2>";         // Сила сигнала WiFi

   codanz();
 ///  startgrabber(); ////code
  XML+="<Batareya>";       
 ////XML+="<br>";
   XML+=String(codan);
  XML+="</Batareya>";




     
    XML+="<Paket>";       
   XML+=String(codan2);
  XML+="</Paket>";   


       XML+="<Paket1>";       
   XML+=String(codan1);
  XML+="</Paket1>";   



    XML+="<button>";         

   XML+=String(button)+"button send";
  XML+="</button>";       

    XML+="<button2>";         

   XML+=String(button)+"button send";
  XML+="</button2>";         




    XML+="<sending>";         

   XML+=String(sending);
   
  XML+="</sending>";   




    XML+="<deluha>";         

   XML+=String(deluha);
   
  XML+="</deluha>";   

 
  XML+="</xml>";
}

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

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

void handleESPval(){


/// int sliderCNT=server.arg("Batareya");
  String button3243=server.arg("codan");

  Serial.println(button3243);
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {


  ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
 
    EEPROM.begin(3512);
  Serial.begin(115200);
    // call sensor.begin() to initialize the library
 

  //////////sensor
    pinMode(LEVO1, OUTPUT);
      pinMode(LEVO2, OUTPUT);
     pinMode(PRAVO1, OUTPUT);
      pinMode(PRAVO2, OUTPUT);
//      pinMode(tonePin, OUTPUT);

  pinMode(DETECTOR,INPUT);

  digitalWrite(DETECTOR,LOW);
//    digitalWrite(tonePin,LOW);


 
//  pinMode(trigPin, OUTPUT);
//  pinMode(echoPin, INPUT);


  WiFi.softAP(ssid2, password2); // Создаём точку доступа
WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
while(WiFi.status()!=WL_CONNECTED){Serial.print(".");delay(500);}
WiFi.mode(WIFI_STA);

while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Establishing connection to WiFi..");
  }

 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP   sensor.begin();
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);




   server.on("/TEMPERATURE", [](){
 server.send(200, "text/html", webSite);
     Serial.println("GET TEMPERATURE ...");
 
    sending="GET TEMPERATURE";
   
  vlazh=1;
 
   
  });



 server.on("/SLID", [](){
 server.send(200, "text/html", webSite);
   String message = "";
message +=server.arg(0);

Serial.println(message);
const int n = 10;
char *z = new char[n];
message.toCharArray(z,n);

deluha=atoi(z);


Serial.println(deluha);
   
  });


   server.on("/NIZON", [](){
 server.send(200, "text/html", webSite);
     Serial.println("PRAVO...");
   digitalWrite (LEVO1, HIGH);
digitalWrite (LEVO2, LOW);
///digitalWrite (PRAVO1,HIGH);
///  digitalWrite (PRAVO2,LOW);
    sending="PRAVO";
    delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);

 
   
  });

   server.on("/VLEVO", [](){
 server.send(200, "text/html", webSite);
     Serial.println("LEVO...");
  //// digitalWrite (LEVO1, HIGH);
///digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,HIGH);
 digitalWrite (PRAVO2,LOW);
    sending="LEVO";

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 
   
  });
 
  server.on("/NIZOFF", [](){
     server.send(200, "text/html", webSite);
    Serial.println("STOP ...");
digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 sending="STOP";
    /////server.send(200, "text/html", webSite);


   
  });
  server.on("/VONN", [](){
     server.send(200, "text/html", webSite);

    Serial.println("VPERED...");
 digitalWrite (LEVO1,HIGH);
  digitalWrite (LEVO2,LOW);
   digitalWrite (PRAVO1,HIGH);
  digitalWrite (PRAVO2,LOW);
 sending="VPERED";
   ///////////// server.send(200, "text/html", webSite);

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });
  server.on("/VOFF", [](){
     server.send(200, "text/html", webSite);

Serial.println(" NAZAD...");
 digitalWrite (LEVO1,LOW);
 digitalWrite (LEVO2,HIGH);
 digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,HIGH);
  sending="NAZAD";
   
   //////////////// server.send(200, "text/html", webSite);


 


 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });


    server.on("/BUMER", [](){
     
       sending="BUUMER";
    server.send(200, "text/html", webSite);
Serial.println("bumer");
// bumer();


   
  });
  server.on("/DASBOOT", [](){
   
     sending="DASBOOT";
    server.send(200, "text/html", webSite);
Serial.println(" DASBOOT");
// dasboot();

   
  });

///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
  server.on("/AlarmOff", [](){
    server.send(200, "text/html", webSite);
Serial.println("priem on");

if(alarmaoff==0){
sending ="ALARMA-OFF";}
else{
 sending ="ALARMA-ONN";
  }

alarmaoff = ~alarmaoff;

 Serial.println(alarmaoff);

   
  });

    server.on("/BETHOVEN", [](){
    server.send(200, "text/html", webSite);
Serial.println("DETHOV");
sending ="BETHOVEN-ONN";
//bet();
   
  });




 server.on("/KASTA", [](){
  sending="KASTA";


    server.send(200, "text/html", webSite);
//    muz();


   
  });

  //////////////////////////////

  ///////////brutshlak

 server.on("/ShlakOn", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Reboot");
    server.send(200, "text/html", webSite);
 
ESP.restart();

///ESP.reset() ;

/////BrutSh2
   
  });

 server.on("/BrutSh2", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Shlak code");
    server.send(200, "text/html", webSite);
 

/////BrutSh2
   
  });
  //////////////////

  //////////ShlakSendOff

 server.on("/SIRENA", [](){




 
    server.send(200, "text/html", webSite);
//    siren();
   



   
  });


  //////////////////
 

 
  server.begin();
}




void loop() {


 


   ESP.wdtFeed();

  server.handleClient();

// digitalWrite(tonePin,LOW);

 
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
//     digitalWrite(tonePin,LOW);
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
//     digitalWrite(tonePin,LOW);

 
 }



codan2 ="NO DETECT";














 
 
   

 
}



























old

Код: Выбрать все





#include <Wire.h>


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





#define LEVO1 D8 ////
#define LEVO2 D7 ////
#define PRAVO1 D6 ///
#define PRAVO2 D5 ///
#define DETECTOR D0 ///
//#define tonePin D2 //d5

int deluha=300;
////ultra datch


//int echoPin = D2;
//int trigPin = D1;
/////

ESP8266WebServer server(80);
const char* ssid2="TANK8266"; //название точки доступа
const char* password2=""; // пароль не будем писать
const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
const char* password="123412345"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;

int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;



int stoppriem=1;


int muzi ;

int pir = 0;

int alarma = 0;

int alarmaoff =-1;

int vlazh = 0;


 int starres = 0;

int pakiweb = 0;
int bitnumber = 0;
int shirt = 0;

//wifii&server end/////////////////////////////////////

//menu

boolean backlight = true;
int contrast=50;
int kiop=0;
int menuitem = 1;
int page = 1;

int pagero = 0;

int smena = 1;//smena sig

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0; 
int selectButtonState = 0;         
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;





//menu end








int ing = 0;
int starlineCounter = 0;
int starlinePreambula = 0;
static long StarLineCode1 = 0; // first part
static long StarLineCode2 = 0; // last part
static long invertStarLineCode1 = 0; // first part
static long invertStarLineCode2 = 0; // last part
String code = "";
boolean bValidPacket=false;
int decodeMethod = 1;
int lastRxValue = 0;
int tempRxValue = 0;
unsigned long lastRxTime = 0;
unsigned long tempTime = 0;
 
//keeloq
int keeloqHeader=0;

int keeloqCounter = 0;

int starlineZCounter = 0;

int starlineZpreambulaCounter = 0;
int keeloqPreambula = 0;

int stralineHeader=0;


static long keeloqCode1 = 0; // first part
static long keeloqCode2 = 0; // last part
static long invertkeeloqCode1 = 0; // first part
static long invertkeeloqCode2 = 0; // last part
String keecode = "";


boolean keebValidPacket=false;

int keelastRxValue = 0;
int keetempRxValue = 0;
unsigned long keelastRxTime = 0;
unsigned long keetempTime = 0;

//пробуем выброс
//keelog start
unsigned long difTime = 0;
unsigned long difTime2 = 0;
int keelog_state = 0;
int keelogCounter = 0;
byte keelog_code[9];
byte keelog_codePAK2[9];
byte keelog_codePAK1[9];
byte hugaz[9];
byte hugazk[9];
byte hugazi[9];
byte starline_code[9];
byte starline_codePAK2[9];
byte starline_codePAK1[9];



byte webpak2[9];
byte webpak1[9];



int starline_state = 0;
byte kefang[9];


byte starline_codePAK2zapis[9];
byte starline_codePAK1zapis[9];

byte starline_codePAK2zapisSBTR[9];
byte starline_codePAK1zapisSBTR[9];


byte keelog_codePAK2zapis[9];
byte keelog_codePAK1zapis[9];


byte keelog_codePAK2zapisSBTR[9];
byte keelog_codePAK1zapisSBTR[9];

byte hugazS[9];
byte hugaziS[9];

byte hugazK[9];
byte hugaziK[9];

int zoro=1;

/////////////////////////////////////////////////VVODNIE

byte VVOD1[9];
byte VVOD2[9];

String readString;
// --------------------
byte CODE[8];
int x=0;

int k=0;//schet keeloq 
int kk  =0; //shet star line

int starkk = 0;

String codan ="Scanning begin";

volatile static long codsh;
String codan2 ="not code";

String codan1 ="not code";

String sending ="nothing no send";

String button ="";
String gasa="zagasa";


int shlakoffpriem=1;
int stopsigi =1;
///////////sensor vlazhnosti
float temperature;
float humundity;
int schetvl=0;

///////////////
void codanz(){

codan;

 
}

void Batare(){
 /// Batareya = 333666;         // Меряем напряжение батареи
 
}
void SilaWifi(){
  Sila = WiFi.RSSI();  // Меряем силу сигнала WiFi
  if (Sila < SilaLow){
    SilaW = "          Сигнал слабый";
  }
  else{
    SilaW = "";
  }
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="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.onreadystatechange=function(){\n";
  javaScript+="      if(xmlHttp.readyState==4&&xmlHttp.status==200){\n";
  javaScript+="        xmlDoc=xmlHttp.responseXML;\n";
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('millistime')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('runtime').innerHTML=xmlmsg;\n";               // Добавляем наши данные
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
  javaScript+="        document.getElementById('Sila').innerHTML=xmlmsg;\n";                  // Сила сигнала WiFi

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila2')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
   javaScript+="        document.getElementById('progbar').value=-xmlmsg;\n";                  // Сила сигнала WiFi

   
 
 
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи





javaScript+="   document.getElementById('vnizon').onclick = function (nizon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZON',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vnizoff').onclick = function (nizoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhon').onclick = function (vverhon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VONN',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhoff').onclick = function (vverhoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VOFF',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('vlevo').onclick = function (vlevo) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VLEVO',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('bumer').onclick = function (bumer) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BUMER',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('kasta').onclick = function (kasta) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/KASTA',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('dasboot').onclick = function (dasboot) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/DASBOOT',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('sirena').onclick = function (sirena) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SIRENA',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('ala').onclick = function (ala) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/AlarmOff',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('bethoven').onclick = function (bethoven) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BETHOVEN',true);xmlhttp.send();};" ;

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('sending')[0].firstChild.nodeValue;\n";//
  javaScript+="        document.getElementById('sending').innerHTML=xmlmsg;\n";                  // посылка кода

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket').innerHTML=xmlmsg;\n";     

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket1')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket1').innerHTML=xmlmsg;\n";   



 javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('valBox').innerHTML=xmlmsg;\n";                  // deluha

  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('slidr').value=xmlmsg;\n";                  // deluha


/////javaScript+="   document.getElementById('button').onclick = function (button) { alert('Сюрприз!');" ;
//// javaScript+="  var button =1; if (button==1){alert('Пошел на хуй');button++;alert(button);} };";
 
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',100);\n";
  javaScript+="}\n";





javaScript+="function slid(newVal){\n";
  javaScript+="  document.getElementById('valBox').innerHTML=newVal;\n";
  javaScript+="  xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SLID?val='+newVal,true);xmlhttp.send();";
 /// javaScript+="  document.getElementById('ESPval'+cnt).innerHTML=9*(100-sliderVal)+100;\n";
 /// javaScript+="  if(xmlHttp.readyState==0||xmlHttp.readyState==4){\n";
 /// javaScript+="    xmlHttp.open('PUT','setESPval?cnt='+cnt+'&val='+sliderVal,true);\n";
  //javaScript+="    xmlHttp.send(null);\n";
 /// javaScript+="  }\n";
  javaScript+="}\n";

 
 
  javaScript+="</SCRIPT>\n";




}
void buildWebsite(){    // Создаём страницу с элементами управления
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+="<META name='viewport' content='width=device-width, initial-scale=1', charset=\"utf-8\">\n";
   webSite+="<link rel='shortcut icon' type='image/x-icon' href='http://gansta-paradise.com/favicon.ico'>";

      webSite+="<style>input#slidr {    width: 100%;} progress#temperaturepb {background: green;} progress::-webkit-progress-bar { background: red; } #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 150px;}input#button_s {border: double;border-color: green;  border-radius: 30px;} input#input1 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}input#input2 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}progress#progbar {  background: #551be2;}</style>";



   
   


     
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="ТАНК\n<br>";
  webSite+="Время работы = <A ID='runtime'></A>\n<br>";
  webSite+="Сила сигнала <A ID='Sila'></A>\n<br>";              // Сила сигнала WiFi
  webSite+="ДАННЫЕ ТАНКА<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
   webSite+="Алярма:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
    webSite+="Напруга:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи

 

            webSite+="<div id='sending'>\n";

              webSite+="</div>\n";

 
 webSite+="<p>Сила Сигнала</p>";
 webSite+="<div class='progress'>";
  webSite+="   <progress id='progbar' max='100' value='0'></progress>";
   webSite+="  <div class='progress-value'></div>";
  webSite+="   <div class='progress-bg'><div class='progress-bar'></div></div>";
 webSite+="</div>";
 webSite+="<br><span id='valBox'></span><input width='100%' type='range' min='0' max='5000' step='1' id='slidr'  oninput='slid(this.value)' onchange='slid(this.value)'>\n";  // это пример слайдера
webSite+="<br><br><br><table id='cepka' align='center'><tr>";
   webSite+="<td><button id='vverhon' onclick='doFunction();'>VPERED";
    webSite+="</button></td><td></td>";
    webSite+="<td><button id='vverhoff' onclick='doFunction();'>NAZAD</button></td></tr><br><br><tr><td></td><td><h4 align='center'>✵✵✵РУЛЬ✵✵✵</h4></td></tr>";


     webSite+="<tr><td><button id='vlevo' onclick='doFunction();'>☜ VLEVO</button>";
         webSite+="</td><td></td><td><button id='vnizon' onclick='doFunction();'>VPRAVO ☞</button></td></tr>";
     webSite+="<tr></tr><tr><td></td><td><button id='vnizoff' onclick='doFunction();'>STOP";
   
       webSite+="</button></td></tr></table><br>";





             


webSite+="<table id='bumerang'><tr>";
   webSite+="<td><button id='bumer' onclick='doFunction();'>Bumer";
    webSite+="</button></td>";
    webSite+="<td><button id='dasboot' onclick='doFunction();'>Dasboot</button></td></tr>";
   


     webSite+="<tr><td><button id='kasta' onclick='doFunction();'>Kasta";
    webSite+="</button></td>";
     webSite+="<td><button id='sirena' onclick='doFunction();'>Sirena";
   
       webSite+="</button></td></tr></table><br>";

       

webSite+="<table id='ala'><tr>";
   webSite+="<td><button id='ala' onclick='doFunction();'>Alarm-on-off";
    webSite+="</button></td>";

    webSite+="<td><button id='bethoven' onclick='doFunction();'>Bethoven</button></td></tr>";



   
       webSite+="</td></tr></table><br>";

         
         
            webSite+="<p>ФУНКЦИИ ЗАПАСНЫЕ</p><br>  <a href=\"ShlakOn\"><button>Reboot</button></a>&nbsp;<a href=\"TEMPERATURE\"><button>DATCHIK VLAZHNOSTY</button></a><br>";




           
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";




 
}
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 buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<xml>";
  XML+="<millistime>";
  XML+=millis2time();
  XML+="</millistime>";   // Добавляем наши данные
  SilaWifi();             // Здесь измеряем силу сигнала
  XML+="<Sila>";          // Сила сигнала WiFi
  XML+=String(Sila)+SilaW;// Сила сигнала WiFi
  XML+="</Sila>";         // Сила сигнала WiFi

   XML+="<Sila2>";          // Сила сигнала WiFi
  XML+=String(Sila);// Сила сигнала WiFi
  XML+="</Sila2>";         // Сила сигнала WiFi

   codanz();
 ///  startgrabber(); ////code
  XML+="<Batareya>";       
 ////XML+="<br>";
   XML+=String(codan);
  XML+="</Batareya>";




     
    XML+="<Paket>";       
   XML+=String(codan2);
  XML+="</Paket>";   


       XML+="<Paket1>";       
   XML+=String(codan1);
  XML+="</Paket1>";   



    XML+="<button>";         

   XML+=String(button)+"button send";
  XML+="</button>";       

    XML+="<button2>";         

   XML+=String(button)+"button send";
  XML+="</button2>";         




    XML+="<sending>";         

   XML+=String(sending);
   
  XML+="</sending>";   




    XML+="<deluha>";         

   XML+=String(deluha);
   
  XML+="</deluha>";   

 
  XML+="</xml>";
}

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

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

void handleESPval(){


/// int sliderCNT=server.arg("Batareya");
  String button3243=server.arg("codan");

  Serial.println(button3243);
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {


  ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
 
    EEPROM.begin(3512);
  Serial.begin(115200);
    // call sensor.begin() to initialize the library
 

  //////////sensor
    pinMode(LEVO1, OUTPUT);
      pinMode(LEVO2, OUTPUT);
     pinMode(PRAVO1, OUTPUT);
      pinMode(PRAVO2, OUTPUT);
//      pinMode(tonePin, OUTPUT);

  pinMode(DETECTOR,INPUT);

  digitalWrite(DETECTOR,LOW);
//    digitalWrite(tonePin,LOW);


 
//  pinMode(trigPin, OUTPUT);
//  pinMode(echoPin, INPUT);


  WiFi.softAP(ssid2, password2); // Создаём точку доступа
WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
while(WiFi.status()!=WL_CONNECTED){Serial.print(".");delay(500);}
WiFi.mode(WIFI_STA);

while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Establishing connection to WiFi..");
  }

 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP   sensor.begin();
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);




   server.on("/TEMPERATURE", [](){
 server.send(200, "text/html", webSite);
     Serial.println("GET TEMPERATURE ...");
 
    sending="GET TEMPERATURE";
   
  vlazh=1;
 
   
  });



 server.on("/SLID", [](){
 server.send(200, "text/html", webSite);
   String message = "";
message +=server.arg(0);

Serial.println(message);
const int n = 10;
char *z = new char[n];
message.toCharArray(z,n);

deluha=atoi(z);


Serial.println(deluha);
   
  });


   server.on("/NIZON", [](){
 server.send(200, "text/html", webSite);
     Serial.println("PRAVO...");
   digitalWrite (LEVO1, HIGH);
digitalWrite (LEVO2, LOW);
///digitalWrite (PRAVO1,HIGH);
///  digitalWrite (PRAVO2,LOW);
    sending="PRAVO";
    delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);

 
   
  });

   server.on("/VLEVO", [](){
 server.send(200, "text/html", webSite);
     Serial.println("LEVO...");
  //// digitalWrite (LEVO1, HIGH);
///digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,HIGH);
 digitalWrite (PRAVO2,LOW);
    sending="LEVO";

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 
   
  });
 
  server.on("/NIZOFF", [](){
     server.send(200, "text/html", webSite);
    Serial.println("STOP ...");
digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 sending="STOP";
    /////server.send(200, "text/html", webSite);


   
  });
  server.on("/VONN", [](){
     server.send(200, "text/html", webSite);

    Serial.println("VPERED...");
 digitalWrite (LEVO1,HIGH);
  digitalWrite (LEVO2,LOW);
   digitalWrite (PRAVO1,HIGH);
  digitalWrite (PRAVO2,LOW);
 sending="VPERED";
   ///////////// server.send(200, "text/html", webSite);

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });
  server.on("/VOFF", [](){
     server.send(200, "text/html", webSite);

Serial.println(" NAZAD...");
 digitalWrite (LEVO1,LOW);
 digitalWrite (LEVO2,HIGH);
 digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,HIGH);
  sending="NAZAD";
   
   //////////////// server.send(200, "text/html", webSite);


 


 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });


    server.on("/BUMER", [](){
     
       sending="BUUMER";
    server.send(200, "text/html", webSite);
Serial.println("bumer");
// bumer();


   
  });
  server.on("/DASBOOT", [](){
   
     sending="DASBOOT";
    server.send(200, "text/html", webSite);
Serial.println(" DASBOOT");
// dasboot();

   
  });

///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
  server.on("/AlarmOff", [](){
    server.send(200, "text/html", webSite);
Serial.println("priem on");

if(alarmaoff==0){
sending ="ALARMA-OFF";}
else{
 sending ="ALARMA-ONN";
  }

alarmaoff = ~alarmaoff;

 Serial.println(alarmaoff);

   
  });

    server.on("/BETHOVEN", [](){
    server.send(200, "text/html", webSite);
Serial.println("DETHOV");
sending ="BETHOVEN-ONN";
//bet();
   
  });




 server.on("/KASTA", [](){
  sending="KASTA";


    server.send(200, "text/html", webSite);
//    muz();


   
  });

  //////////////////////////////

  ///////////brutshlak

 server.on("/ShlakOn", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Reboot");
    server.send(200, "text/html", webSite);
 
ESP.restart();

///ESP.reset() ;

/////BrutSh2
   
  });

 server.on("/BrutSh2", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Shlak code");
    server.send(200, "text/html", webSite);
 

/////BrutSh2
   
  });
  //////////////////

  //////////ShlakSendOff

 server.on("/SIRENA", [](){




 
    server.send(200, "text/html", webSite);
//    siren();
   



   
  });


  //////////////////
 

 
  server.begin();
}




void loop() {


 


   ESP.wdtFeed();

  server.handleClient();

// digitalWrite(tonePin,LOW);

 
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
//     digitalWrite(tonePin,LOW);
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
//     digitalWrite(tonePin,LOW);

 
 }



codan2 ="NO DETECT";














 
 
   

 
}


























usrar

Код: Выбрать все




#include <Wire.h>


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





#define LEVO1 D8 ////
#define LEVO2 D7 ////
#define PRAVO1 D6 ///
#define PRAVO2 D5 ///
#define DETECTOR D0 ///
//#define tonePin D2 //d5

int deluha=300;
////ultra datch


//int echoPin = D2;
//int trigPin = D1;
/////

ESP8266WebServer server(80);
const char* ssid2="TANK8266"; //название точки доступа
const char* password2=""; // пароль не будем писать
const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
const char* password="123412345"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;

int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;



int stoppriem=1;


int muzi ;

int pir = 0;

int alarma = 0;

int alarmaoff =-1;

int vlazh = 0;


 int starres = 0;

int pakiweb = 0;
int bitnumber = 0;
int shirt = 0;

//wifii&server end/////////////////////////////////////

//menu

boolean backlight = true;
int contrast=50;
int kiop=0;
int menuitem = 1;
int page = 1;

int pagero = 0;

int smena = 1;//smena sig

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0; 
int selectButtonState = 0;         
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;





//menu end








int ing = 0;
int starlineCounter = 0;
int starlinePreambula = 0;
static long StarLineCode1 = 0; // first part
static long StarLineCode2 = 0; // last part
static long invertStarLineCode1 = 0; // first part
static long invertStarLineCode2 = 0; // last part
String code = "";
boolean bValidPacket=false;
int decodeMethod = 1;
int lastRxValue = 0;
int tempRxValue = 0;
unsigned long lastRxTime = 0;
unsigned long tempTime = 0;
 
//keeloq
int keeloqHeader=0;

int keeloqCounter = 0;

int starlineZCounter = 0;

int starlineZpreambulaCounter = 0;
int keeloqPreambula = 0;

int stralineHeader=0;


static long keeloqCode1 = 0; // first part
static long keeloqCode2 = 0; // last part
static long invertkeeloqCode1 = 0; // first part
static long invertkeeloqCode2 = 0; // last part
String keecode = "";


boolean keebValidPacket=false;

int keelastRxValue = 0;
int keetempRxValue = 0;
unsigned long keelastRxTime = 0;
unsigned long keetempTime = 0;

//пробуем выброс
//keelog start
unsigned long difTime = 0;
unsigned long difTime2 = 0;
int keelog_state = 0;
int keelogCounter = 0;
byte keelog_code[9];
byte keelog_codePAK2[9];
byte keelog_codePAK1[9];
byte hugaz[9];
byte hugazk[9];
byte hugazi[9];
byte starline_code[9];
byte starline_codePAK2[9];
byte starline_codePAK1[9];



byte webpak2[9];
byte webpak1[9];



int starline_state = 0;
byte kefang[9];


byte starline_codePAK2zapis[9];
byte starline_codePAK1zapis[9];

byte starline_codePAK2zapisSBTR[9];
byte starline_codePAK1zapisSBTR[9];


byte keelog_codePAK2zapis[9];
byte keelog_codePAK1zapis[9];


byte keelog_codePAK2zapisSBTR[9];
byte keelog_codePAK1zapisSBTR[9];

byte hugazS[9];
byte hugaziS[9];

byte hugazK[9];
byte hugaziK[9];

int zoro=1;

/////////////////////////////////////////////////VVODNIE

byte VVOD1[9];
byte VVOD2[9];

String readString;
// --------------------
byte CODE[8];
int x=0;

int k=0;//schet keeloq 
int kk  =0; //shet star line

int starkk = 0;

String codan ="Scanning begin";

volatile static long codsh;
String codan2 ="not code";

String codan1 ="not code";

String sending ="nothing no send";

String button ="";
String gasa="zagasa";


int shlakoffpriem=1;
int stopsigi =1;
///////////sensor vlazhnosti
float temperature;
float humundity;
int schetvl=0;

///////////////
void codanz(){

codan;

 
}

void Batare(){
 /// Batareya = 333666;         // Меряем напряжение батареи
 
}
void SilaWifi(){
  Sila = WiFi.RSSI();  // Меряем силу сигнала WiFi
  if (Sila < SilaLow){
    SilaW = "          Сигнал слабый";
  }
  else{
    SilaW = "";
  }
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="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.onreadystatechange=function(){\n";
  javaScript+="      if(xmlHttp.readyState==4&&xmlHttp.status==200){\n";
  javaScript+="        xmlDoc=xmlHttp.responseXML;\n";
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('millistime')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('runtime').innerHTML=xmlmsg;\n";               // Добавляем наши данные
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
  javaScript+="        document.getElementById('Sila').innerHTML=xmlmsg;\n";                  // Сила сигнала WiFi

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila2')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
   javaScript+="        document.getElementById('progbar').value=-xmlmsg;\n";                  // Сила сигнала WiFi

   
 
 
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи





javaScript+="   document.getElementById('vnizon').onclick = function (nizon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZON',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vnizoff').onclick = function (nizoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhon').onclick = function (vverhon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VONN',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhoff').onclick = function (vverhoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VOFF',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('vlevo').onclick = function (vlevo) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VLEVO',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('bumer').onclick = function (bumer) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BUMER',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('kasta').onclick = function (kasta) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/KASTA',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('dasboot').onclick = function (dasboot) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/DASBOOT',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('sirena').onclick = function (sirena) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SIRENA',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('ala').onclick = function (ala) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/AlarmOff',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('bethoven').onclick = function (bethoven) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BETHOVEN',true);xmlhttp.send();};" ;

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('sending')[0].firstChild.nodeValue;\n";//
  javaScript+="        document.getElementById('sending').innerHTML=xmlmsg;\n";                  // посылка кода

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket').innerHTML=xmlmsg;\n";     

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket1')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket1').innerHTML=xmlmsg;\n";   



 javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('valBox').innerHTML=xmlmsg;\n";                  // deluha

  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('slidr').value=xmlmsg;\n";                  // deluha


/////javaScript+="   document.getElementById('button').onclick = function (button) { alert('Сюрприз!');" ;
//// javaScript+="  var button =1; if (button==1){alert('Пошел на хуй');button++;alert(button);} };";
 
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',100);\n";
  javaScript+="}\n";





javaScript+="function slid(newVal){\n";
  javaScript+="  document.getElementById('valBox').innerHTML=newVal;\n";
  javaScript+="  xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SLID?val='+newVal,true);xmlhttp.send();";
 /// javaScript+="  document.getElementById('ESPval'+cnt).innerHTML=9*(100-sliderVal)+100;\n";
 /// javaScript+="  if(xmlHttp.readyState==0||xmlHttp.readyState==4){\n";
 /// javaScript+="    xmlHttp.open('PUT','setESPval?cnt='+cnt+'&val='+sliderVal,true);\n";
  //javaScript+="    xmlHttp.send(null);\n";
 /// javaScript+="  }\n";
  javaScript+="}\n";

 
 
  javaScript+="</SCRIPT>\n";




}
void buildWebsite(){    // Создаём страницу с элементами управления
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+="<META name='viewport' content='width=device-width, initial-scale=1', charset=\"utf-8\">\n";
   webSite+="<link rel='shortcut icon' type='image/x-icon' href='http://gansta-paradise.com/favicon.ico'>";

      webSite+="<style>input#slidr {    width: 100%;} progress#temperaturepb {background: green;} progress::-webkit-progress-bar { background: red; } #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 150px;}input#button_s {border: double;border-color: green;  border-radius: 30px;} input#input1 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}input#input2 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}progress#progbar {  background: #551be2;}</style>";



   
   


     
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="ТАНК\n<br>";
  webSite+="Время работы = <A ID='runtime'></A>\n<br>";
  webSite+="Сила сигнала <A ID='Sila'></A>\n<br>";              // Сила сигнала WiFi
  webSite+="ДАННЫЕ ТАНКА<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
   webSite+="Алярма:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
    webSite+="Напруга:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи

 

            webSite+="<div id='sending'>\n";

              webSite+="</div>\n";

 
 webSite+="<p>Сила Сигнала</p>";
 webSite+="<div class='progress'>";
  webSite+="   <progress id='progbar' max='100' value='0'></progress>";
   webSite+="  <div class='progress-value'></div>";
  webSite+="   <div class='progress-bg'><div class='progress-bar'></div></div>";
 webSite+="</div>";
 webSite+="<br><span id='valBox'></span><input width='100%' type='range' min='0' max='5000' step='1' id='slidr'  oninput='slid(this.value)' onchange='slid(this.value)'>\n";  // это пример слайдера
webSite+="<br><br><br><table id='cepka' align='center'><tr>";
   webSite+="<td><button id='vverhon' onclick='doFunction();'>VPERED";
    webSite+="</button></td><td></td>";
    webSite+="<td><button id='vverhoff' onclick='doFunction();'>NAZAD</button></td></tr><br><br><tr><td></td><td><h4 align='center'>✵✵✵РУЛЬ✵✵✵</h4></td></tr>";


     webSite+="<tr><td><button id='vnizon' onclick='doFunction();'>VPRAVO ☞";
         webSite+="</button></td><td></td><td><button id='vlevo' onclick='doFunction();'>☜ VLEVO</button></td></tr>";
     webSite+="<tr></tr><tr><td></td><td><button id='vnizoff' onclick='doFunction();'>STOP";
   
       webSite+="</button></td></tr></table><br>";





             


webSite+="<table id='bumerang'><tr>";
   webSite+="<td><button id='bumer' onclick='doFunction();'>Bumer";
    webSite+="</button></td>";
    webSite+="<td><button id='dasboot' onclick='doFunction();'>Dasboot</button></td></tr>";
   


     webSite+="<tr><td><button id='kasta' onclick='doFunction();'>Kasta";
    webSite+="</button></td>";
     webSite+="<td><button id='sirena' onclick='doFunction();'>Sirena";
   
       webSite+="</button></td></tr></table><br>";

       

webSite+="<table id='ala'><tr>";
   webSite+="<td><button id='ala' onclick='doFunction();'>Alarm-on-off";
    webSite+="</button></td>";

    webSite+="<td><button id='bethoven' onclick='doFunction();'>Bethoven</button></td></tr>";



   
       webSite+="</td></tr></table><br>";

         
         
            webSite+="<p>ФУНКЦИИ ЗАПАСНЫЕ</p><br>  <a href=\"ShlakOn\"><button>Reboot</button></a>&nbsp;<a href=\"TEMPERATURE\"><button>DATCHIK VLAZHNOSTY</button></a><br>";




           
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";




 
}
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 buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<xml>";
  XML+="<millistime>";
  XML+=millis2time();
  XML+="</millistime>";   // Добавляем наши данные
  SilaWifi();             // Здесь измеряем силу сигнала
  XML+="<Sila>";          // Сила сигнала WiFi
  XML+=String(Sila)+SilaW;// Сила сигнала WiFi
  XML+="</Sila>";         // Сила сигнала WiFi

   XML+="<Sila2>";          // Сила сигнала WiFi
  XML+=String(Sila);// Сила сигнала WiFi
  XML+="</Sila2>";         // Сила сигнала WiFi

   codanz();
 ///  startgrabber(); ////code
  XML+="<Batareya>";       
 ////XML+="<br>";
   XML+=String(codan);
  XML+="</Batareya>";




     
    XML+="<Paket>";       
   XML+=String(codan2);
  XML+="</Paket>";   


       XML+="<Paket1>";       
   XML+=String(codan1);
  XML+="</Paket1>";   



    XML+="<button>";         

   XML+=String(button)+"button send";
  XML+="</button>";       

    XML+="<button2>";         

   XML+=String(button)+"button send";
  XML+="</button2>";         




    XML+="<sending>";         

   XML+=String(sending);
   
  XML+="</sending>";   




    XML+="<deluha>";         

   XML+=String(deluha);
   
  XML+="</deluha>";   

 
  XML+="</xml>";
}

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

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

void handleESPval(){


/// int sliderCNT=server.arg("Batareya");
  String button3243=server.arg("codan");

  Serial.println(button3243);
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {


  ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
 
    EEPROM.begin(3512);
  Serial.begin(115200);
    // call sensor.begin() to initialize the library
 

  //////////sensor
    pinMode(LEVO1, OUTPUT);
      pinMode(LEVO2, OUTPUT);
     pinMode(PRAVO1, OUTPUT);
      pinMode(PRAVO2, OUTPUT);
//      pinMode(tonePin, OUTPUT);

  pinMode(DETECTOR,INPUT);

  digitalWrite(DETECTOR,LOW);
//    digitalWrite(tonePin,LOW);


 
//  pinMode(trigPin, OUTPUT);
//  pinMode(echoPin, INPUT);


  WiFi.softAP(ssid2, password2); // Создаём точку доступа
WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
while(WiFi.status()!=WL_CONNECTED){Serial.print(".");delay(500);}
WiFi.mode(WIFI_STA);

while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Establishing connection to WiFi..");
  }

 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP   sensor.begin();
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);




   server.on("/TEMPERATURE", [](){
 server.send(200, "text/html", webSite);
     Serial.println("GET TEMPERATURE ...");
 
    sending="GET TEMPERATURE";
   
  vlazh=1;
 
   
  });



 server.on("/SLID", [](){
 server.send(200, "text/html", webSite);
   String message = "";
message +=server.arg(0);

Serial.println(message);
const int n = 10;
char *z = new char[n];
message.toCharArray(z,n);

deluha=atoi(z);


Serial.println(deluha);
   
  });


   server.on("/NIZON", [](){
 server.send(200, "text/html", webSite);
     Serial.println("PRAVO...");
   digitalWrite (LEVO1, HIGH);
digitalWrite (LEVO2, LOW);
///digitalWrite (PRAVO1,HIGH);
///  digitalWrite (PRAVO2,LOW);
    sending="PRAVO";
    delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);

 
   
  });

   server.on("/VLEVO", [](){
 server.send(200, "text/html", webSite);
     Serial.println("LEVO...");
  //// digitalWrite (LEVO1, HIGH);
///digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,HIGH);
 digitalWrite (PRAVO2,LOW);
    sending="LEVO";

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 
   
  });
 
  server.on("/NIZOFF", [](){
     server.send(200, "text/html", webSite);
    Serial.println("STOP ...");
digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 sending="STOP";
    /////server.send(200, "text/html", webSite);


   
  });
  server.on("/VONN", [](){
     server.send(200, "text/html", webSite);

    Serial.println("VPERED...");
 digitalWrite (LEVO1,HIGH);
  digitalWrite (LEVO2,LOW);
   digitalWrite (PRAVO1,HIGH);
  digitalWrite (PRAVO2,LOW);
 sending="VPERED";
   ///////////// server.send(200, "text/html", webSite);

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });
  server.on("/VOFF", [](){
     server.send(200, "text/html", webSite);

Serial.println(" NAZAD...");
 digitalWrite (LEVO1,LOW);
 digitalWrite (LEVO2,HIGH);
 digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,HIGH);
  sending="NAZAD";
   
   //////////////// server.send(200, "text/html", webSite);


 


 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });


    server.on("/BUMER", [](){
     
       sending="BUUMER";
    server.send(200, "text/html", webSite);
Serial.println("bumer");
// bumer();


   
  });
  server.on("/DASBOOT", [](){
   
     sending="DASBOOT";
    server.send(200, "text/html", webSite);
Serial.println(" DASBOOT");
// dasboot();

   
  });

///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
  server.on("/AlarmOff", [](){
    server.send(200, "text/html", webSite);
Serial.println("priem on");

if(alarmaoff==0){
sending ="ALARMA-OFF";}
else{
 sending ="ALARMA-ONN";
  }

alarmaoff = ~alarmaoff;

 Serial.println(alarmaoff);

   
  });

    server.on("/BETHOVEN", [](){
    server.send(200, "text/html", webSite);
Serial.println("DETHOV");
sending ="BETHOVEN-ONN";
//bet();
   
  });




 server.on("/KASTA", [](){
  sending="KASTA";


    server.send(200, "text/html", webSite);
//    muz();


   
  });

  //////////////////////////////

  ///////////brutshlak

 server.on("/ShlakOn", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Reboot");
    server.send(200, "text/html", webSite);
 
ESP.restart();

///ESP.reset() ;

/////BrutSh2
   
  });

 server.on("/BrutSh2", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Shlak code");
    server.send(200, "text/html", webSite);
 

/////BrutSh2
   
  });
  //////////////////

  //////////ShlakSendOff

 server.on("/SIRENA", [](){




 
    server.send(200, "text/html", webSite);
//    siren();
   



   
  });


  //////////////////
 

 
  server.begin();
}




void loop() {


 


   ESP.wdtFeed();

  server.handleClient();

// digitalWrite(tonePin,LOW);

 
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
//     digitalWrite(tonePin,LOW);
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
//     digitalWrite(tonePin,LOW);

 
 }



codan2 ="NO DETECT";














 
 
   

 
}

























устарел

Код: Выбрать все






#include <Wire.h>


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





#define LEVO1 D8 ////
#define LEVO2 D7 ////
#define PRAVO1 D6 ///
#define PRAVO2 D5 ///
#define DETECTOR D0 ///
//#define tonePin D2 //d5

int deluha=300;
////ultra datch


//int echoPin = D2;
//int trigPin = D1;
/////

ESP8266WebServer server(80);
const char* ssid2="TANK8266"; //название точки доступа
const char* password2=""; // пароль не будем писать
const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
const char* password="123412345"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;

int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;



int stoppriem=1;


int muzi ;

int pir = 0;

int alarma = 0;

int alarmaoff =-1;

int vlazh = 0;


 int starres = 0;

int pakiweb = 0;
int bitnumber = 0;
int shirt = 0;

//wifii&server end/////////////////////////////////////

//menu

boolean backlight = true;
int contrast=50;
int kiop=0;
int menuitem = 1;
int page = 1;

int pagero = 0;

int smena = 1;//smena sig

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0; 
int selectButtonState = 0;         
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;





//menu end








int ing = 0;
int starlineCounter = 0;
int starlinePreambula = 0;
static long StarLineCode1 = 0; // first part
static long StarLineCode2 = 0; // last part
static long invertStarLineCode1 = 0; // first part
static long invertStarLineCode2 = 0; // last part
String code = "";
boolean bValidPacket=false;
int decodeMethod = 1;
int lastRxValue = 0;
int tempRxValue = 0;
unsigned long lastRxTime = 0;
unsigned long tempTime = 0;
 
//keeloq
int keeloqHeader=0;

int keeloqCounter = 0;

int starlineZCounter = 0;

int starlineZpreambulaCounter = 0;
int keeloqPreambula = 0;

int stralineHeader=0;


static long keeloqCode1 = 0; // first part
static long keeloqCode2 = 0; // last part
static long invertkeeloqCode1 = 0; // first part
static long invertkeeloqCode2 = 0; // last part
String keecode = "";


boolean keebValidPacket=false;

int keelastRxValue = 0;
int keetempRxValue = 0;
unsigned long keelastRxTime = 0;
unsigned long keetempTime = 0;

//пробуем выброс
//keelog start
unsigned long difTime = 0;
unsigned long difTime2 = 0;
int keelog_state = 0;
int keelogCounter = 0;
byte keelog_code[9];
byte keelog_codePAK2[9];
byte keelog_codePAK1[9];
byte hugaz[9];
byte hugazk[9];
byte hugazi[9];
byte starline_code[9];
byte starline_codePAK2[9];
byte starline_codePAK1[9];



byte webpak2[9];
byte webpak1[9];



int starline_state = 0;
byte kefang[9];


byte starline_codePAK2zapis[9];
byte starline_codePAK1zapis[9];

byte starline_codePAK2zapisSBTR[9];
byte starline_codePAK1zapisSBTR[9];


byte keelog_codePAK2zapis[9];
byte keelog_codePAK1zapis[9];


byte keelog_codePAK2zapisSBTR[9];
byte keelog_codePAK1zapisSBTR[9];

byte hugazS[9];
byte hugaziS[9];

byte hugazK[9];
byte hugaziK[9];

int zoro=1;

/////////////////////////////////////////////////VVODNIE

byte VVOD1[9];
byte VVOD2[9];

String readString;
// --------------------
byte CODE[8];
int x=0;

int k=0;//schet keeloq 
int kk  =0; //shet star line

int starkk = 0;

String codan ="Scanning begin";

volatile static long codsh;
String codan2 ="not code";

String codan1 ="not code";

String sending ="nothing no send";

String button ="";
String gasa="zagasa";


int shlakoffpriem=1;
int stopsigi =1;
///////////sensor vlazhnosti
float temperature;
float humundity;
int schetvl=0;

///////////////
void codanz(){

codan;

 
}

void Batare(){
 /// Batareya = 333666;         // Меряем напряжение батареи
 
}
void SilaWifi(){
  Sila = WiFi.RSSI();  // Меряем силу сигнала WiFi
  if (Sila < SilaLow){
    SilaW = "          Сигнал слабый";
  }
  else{
    SilaW = "";
  }
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="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.onreadystatechange=function(){\n";
  javaScript+="      if(xmlHttp.readyState==4&&xmlHttp.status==200){\n";
  javaScript+="        xmlDoc=xmlHttp.responseXML;\n";
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('millistime')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('runtime').innerHTML=xmlmsg;\n";               // Добавляем наши данные
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
  javaScript+="        document.getElementById('Sila').innerHTML=xmlmsg;\n";                  // Сила сигнала WiFi

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila2')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
   javaScript+="        document.getElementById('progbar').value=-xmlmsg;\n";                  // Сила сигнала WiFi

   
 
 
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи





javaScript+="   document.getElementById('vnizon').onclick = function (nizon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZON',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vnizoff').onclick = function (nizoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhon').onclick = function (vverhon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VONN',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhoff').onclick = function (vverhoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VOFF',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('vlevo').onclick = function (vlevo) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VLEVO',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('bumer').onclick = function (bumer) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BUMER',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('kasta').onclick = function (kasta) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/KASTA',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('dasboot').onclick = function (dasboot) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/DASBOOT',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('sirena').onclick = function (sirena) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SIRENA',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('ala').onclick = function (ala) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/AlarmOff',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('bethoven').onclick = function (bethoven) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BETHOVEN',true);xmlhttp.send();};" ;

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('sending')[0].firstChild.nodeValue;\n";//
  javaScript+="        document.getElementById('sending').innerHTML=xmlmsg;\n";                  // посылка кода

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket').innerHTML=xmlmsg;\n";     

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket1')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket1').innerHTML=xmlmsg;\n";   



 javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('valBox').innerHTML=xmlmsg;\n";                  // deluha

  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('slidr').value=xmlmsg;\n";                  // deluha


/////javaScript+="   document.getElementById('button').onclick = function (button) { alert('Сюрприз!');" ;
//// javaScript+="  var button =1; if (button==1){alert('Пошел на хуй');button++;alert(button);} };";
 
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',100);\n";
  javaScript+="}\n";





javaScript+="function slid(newVal){\n";
  javaScript+="  document.getElementById('valBox').innerHTML=newVal;\n";
  javaScript+="  xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SLID?val='+newVal,true);xmlhttp.send();";
 /// javaScript+="  document.getElementById('ESPval'+cnt).innerHTML=9*(100-sliderVal)+100;\n";
 /// javaScript+="  if(xmlHttp.readyState==0||xmlHttp.readyState==4){\n";
 /// javaScript+="    xmlHttp.open('PUT','setESPval?cnt='+cnt+'&val='+sliderVal,true);\n";
  //javaScript+="    xmlHttp.send(null);\n";
 /// javaScript+="  }\n";
  javaScript+="}\n";

 
 
  javaScript+="</SCRIPT>\n";




}
void buildWebsite(){    // Создаём страницу с элементами управления
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+="<META name='viewport' content='width=device-width, initial-scale=1', charset=\"utf-8\">\n";
   webSite+="<link rel='shortcut icon' type='image/x-icon' href='http://gansta-paradise.com/favicon.ico'>";

      webSite+="<style>input#slidr {    width: 100%;} progress#temperaturepb {background: green;} progress::-webkit-progress-bar { background: red; } #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 150px;}input#button_s {border: double;border-color: green;  border-radius: 30px;} input#input1 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}input#input2 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}progress#progbar {  background: #551be2;}</style>";



   
   


     
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="ТАНК\n<br>";
  webSite+="Время работы = <A ID='runtime'></A>\n<br>";
  webSite+="Сила сигнала <A ID='Sila'></A>\n<br>";              // Сила сигнала WiFi
  webSite+="ДАННЫЕ ТАНКА<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
   webSite+="Алярма:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
    webSite+="Напруга:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи

 

            webSite+="<div id='sending'>\n";

              webSite+="</div>\n";

 
 webSite+="<p>Сила Сигнала</p>";
 webSite+="<div class='progress'>";
  webSite+="   <progress id='progbar' max='100' value='0'></progress>";
   webSite+="  <div class='progress-value'></div>";
  webSite+="   <div class='progress-bg'><div class='progress-bar'></div></div>";
 webSite+="</div>";
 webSite+="<br><span id='valBox'></span><input width='100%' type='range' min='0' max='5000' step='1' id='slidr'  oninput='slid(this.value)' onchange='slid(this.value)'>\n";  // это пример слайдера
webSite+="<br><br><br><table id='cepka'><tr>";
   webSite+="<td><button id='vverhon' onclick='doFunction();'>VPERED";
    webSite+="</button></td><td></td>";
    webSite+="<td><button id='vverhoff' onclick='doFunction();'>NAZAD</button></td></tr><br><br><tr><td></td><td><h1>✵✵✵РУЛЬ✵✵✵</h1></td></tr>";


     webSite+="<tr><td><button id='vnizon' onclick='doFunction();'>VPRAVO";
         webSite+="</button></td><td></td><td><button id='vlevo' onclick='doFunction();'>VLEVO</button></td></tr>";
     webSite+="<tr><td></td><td><button id='vnizoff' onclick='doFunction();'>STOP";
   
       webSite+="</button></td></tr></table><br>";





             


webSite+="<table id='bumerang'><tr>";
   webSite+="<td><button id='bumer' onclick='doFunction();'>Bumer";
    webSite+="</button></td>";
    webSite+="<td><button id='dasboot' onclick='doFunction();'>Dasboot</button></td></tr>";
   


     webSite+="<tr><td><button id='kasta' onclick='doFunction();'>Kasta";
    webSite+="</button></td>";
     webSite+="<td><button id='sirena' onclick='doFunction();'>Sirena";
   
       webSite+="</button></td></tr></table><br>";

       

webSite+="<table id='ala'><tr>";
   webSite+="<td><button id='ala' onclick='doFunction();'>Alarm-on-off";
    webSite+="</button></td>";

    webSite+="<td><button id='bethoven' onclick='doFunction();'>Bethoven</button></td></tr>";



   
       webSite+="</td></tr></table><br>";

         
         
            webSite+="<p>ФУНКЦИИ ЗАПАСНЫЕ</p><br>  <a href=\"ShlakOn\"><button>Reboot</button></a>&nbsp;<a href=\"TEMPERATURE\"><button>DATCHIK VLAZHNOSTY</button></a><br>";




           
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";




 
}
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 buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<xml>";
  XML+="<millistime>";
  XML+=millis2time();
  XML+="</millistime>";   // Добавляем наши данные
  SilaWifi();             // Здесь измеряем силу сигнала
  XML+="<Sila>";          // Сила сигнала WiFi
  XML+=String(Sila)+SilaW;// Сила сигнала WiFi
  XML+="</Sila>";         // Сила сигнала WiFi

   XML+="<Sila2>";          // Сила сигнала WiFi
  XML+=String(Sila);// Сила сигнала WiFi
  XML+="</Sila2>";         // Сила сигнала WiFi

   codanz();
 ///  startgrabber(); ////code
  XML+="<Batareya>";       
 ////XML+="<br>";
   XML+=String(codan);
  XML+="</Batareya>";




     
    XML+="<Paket>";       
   XML+=String(codan2);
  XML+="</Paket>";   


       XML+="<Paket1>";       
   XML+=String(codan1);
  XML+="</Paket1>";   



    XML+="<button>";         

   XML+=String(button)+"button send";
  XML+="</button>";       

    XML+="<button2>";         

   XML+=String(button)+"button send";
  XML+="</button2>";         




    XML+="<sending>";         

   XML+=String(sending);
   
  XML+="</sending>";   




    XML+="<deluha>";         

   XML+=String(deluha);
   
  XML+="</deluha>";   

 
  XML+="</xml>";
}

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

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

void handleESPval(){


/// int sliderCNT=server.arg("Batareya");
  String button3243=server.arg("codan");

  Serial.println(button3243);
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {


  ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
 
    EEPROM.begin(3512);
  Serial.begin(115200);
    // call sensor.begin() to initialize the library
 

  //////////sensor
    pinMode(LEVO1, OUTPUT);
      pinMode(LEVO2, OUTPUT);
     pinMode(PRAVO1, OUTPUT);
      pinMode(PRAVO2, OUTPUT);
//      pinMode(tonePin, OUTPUT);

  pinMode(DETECTOR,INPUT);

  digitalWrite(DETECTOR,LOW);
//    digitalWrite(tonePin,LOW);


 
//  pinMode(trigPin, OUTPUT);
//  pinMode(echoPin, INPUT);


  WiFi.softAP(ssid2, password2); // Создаём точку доступа
WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
while(WiFi.status()!=WL_CONNECTED){Serial.print(".");delay(500);}
WiFi.mode(WIFI_STA);

while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Establishing connection to WiFi..");
  }

 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP   sensor.begin();
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);




   server.on("/TEMPERATURE", [](){
 server.send(200, "text/html", webSite);
     Serial.println("GET TEMPERATURE ...");
 
    sending="GET TEMPERATURE";
   
  vlazh=1;
 
   
  });



 server.on("/SLID", [](){
 server.send(200, "text/html", webSite);
   String message = "";
message +=server.arg(0);

Serial.println(message);
const int n = 10;
char *z = new char[n];
message.toCharArray(z,n);

deluha=atoi(z);


Serial.println(deluha);
   
  });


   server.on("/NIZON", [](){
 server.send(200, "text/html", webSite);
     Serial.println("PRAVO...");
   digitalWrite (LEVO1, HIGH);
digitalWrite (LEVO2, LOW);
///digitalWrite (PRAVO1,HIGH);
///  digitalWrite (PRAVO2,LOW);
    sending="PRAVO";
    delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);

 
   
  });

   server.on("/VLEVO", [](){
 server.send(200, "text/html", webSite);
     Serial.println("LEVO...");
  //// digitalWrite (LEVO1, HIGH);
///digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,HIGH);
 digitalWrite (PRAVO2,LOW);
    sending="LEVO";

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 
   
  });
 
  server.on("/NIZOFF", [](){
     server.send(200, "text/html", webSite);
    Serial.println("STOP ...");
digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 sending="STOP";
    /////server.send(200, "text/html", webSite);


   
  });
  server.on("/VONN", [](){
     server.send(200, "text/html", webSite);

    Serial.println("VPERED...");
 digitalWrite (LEVO1,HIGH);
  digitalWrite (LEVO2,LOW);
   digitalWrite (PRAVO1,HIGH);
  digitalWrite (PRAVO2,LOW);
 sending="VPERED";
   ///////////// server.send(200, "text/html", webSite);

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });
  server.on("/VOFF", [](){
     server.send(200, "text/html", webSite);

Serial.println(" NAZAD...");
 digitalWrite (LEVO1,LOW);
 digitalWrite (LEVO2,HIGH);
 digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,HIGH);
  sending="NAZAD";
   
   //////////////// server.send(200, "text/html", webSite);


 


 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });


    server.on("/BUMER", [](){
     
       sending="BUUMER";
    server.send(200, "text/html", webSite);
Serial.println("bumer");
// bumer();


   
  });
  server.on("/DASBOOT", [](){
   
     sending="DASBOOT";
    server.send(200, "text/html", webSite);
Serial.println(" DASBOOT");
// dasboot();

   
  });

///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
  server.on("/AlarmOff", [](){
    server.send(200, "text/html", webSite);
Serial.println("priem on");

if(alarmaoff==0){
sending ="ALARMA-OFF";}
else{
 sending ="ALARMA-ONN";
  }

alarmaoff = ~alarmaoff;

 Serial.println(alarmaoff);

   
  });

    server.on("/BETHOVEN", [](){
    server.send(200, "text/html", webSite);
Serial.println("DETHOV");
sending ="BETHOVEN-ONN";
//bet();
   
  });




 server.on("/KASTA", [](){
  sending="KASTA";


    server.send(200, "text/html", webSite);
//    muz();


   
  });

  //////////////////////////////

  ///////////brutshlak

 server.on("/ShlakOn", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Reboot");
    server.send(200, "text/html", webSite);
 
ESP.restart();

///ESP.reset() ;

/////BrutSh2
   
  });

 server.on("/BrutSh2", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Shlak code");
    server.send(200, "text/html", webSite);
 

/////BrutSh2
   
  });
  //////////////////

  //////////ShlakSendOff

 server.on("/SIRENA", [](){




 
    server.send(200, "text/html", webSite);
//    siren();
   



   
  });


  //////////////////
 

 
  server.begin();
}




void loop() {


 


   ESP.wdtFeed();

  server.handleClient();

// digitalWrite(tonePin,LOW);

 
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
//     digitalWrite(tonePin,LOW);
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
//     digitalWrite(tonePin,LOW);

 
 }



codan2 ="NO DETECT";














 
 
   

 
}


























устаревший

Код: Выбрать все




#include <Wire.h>


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





#define LEVO1 D8 ////
#define LEVO2 D7 ////
#define PRAVO1 D6 ///
#define PRAVO2 D5 ///
#define DETECTOR D0 ///
//#define tonePin D2 //d5

int deluha=300;
////ultra datch


//int echoPin = D2;
//int trigPin = D1;
/////

ESP8266WebServer server(80);
const char* ssid2="TANK8266"; //название точки доступа
const char* password2=""; // пароль не будем писать
const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
const char* password="123412345"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;

int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;



int stoppriem=1;


int muzi ;

int pir = 0;

int alarma = 0;

int alarmaoff =-1;

int vlazh = 0;


 int starres = 0;

int pakiweb = 0;
int bitnumber = 0;
int shirt = 0;

//wifii&server end/////////////////////////////////////

//menu

boolean backlight = true;
int contrast=50;
int kiop=0;
int menuitem = 1;
int page = 1;

int pagero = 0;

int smena = 1;//smena sig

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0; 
int selectButtonState = 0;         
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;





//menu end








int ing = 0;
int starlineCounter = 0;
int starlinePreambula = 0;
static long StarLineCode1 = 0; // first part
static long StarLineCode2 = 0; // last part
static long invertStarLineCode1 = 0; // first part
static long invertStarLineCode2 = 0; // last part
String code = "";
boolean bValidPacket=false;
int decodeMethod = 1;
int lastRxValue = 0;
int tempRxValue = 0;
unsigned long lastRxTime = 0;
unsigned long tempTime = 0;
 
//keeloq
int keeloqHeader=0;

int keeloqCounter = 0;

int starlineZCounter = 0;

int starlineZpreambulaCounter = 0;
int keeloqPreambula = 0;

int stralineHeader=0;


static long keeloqCode1 = 0; // first part
static long keeloqCode2 = 0; // last part
static long invertkeeloqCode1 = 0; // first part
static long invertkeeloqCode2 = 0; // last part
String keecode = "";


boolean keebValidPacket=false;

int keelastRxValue = 0;
int keetempRxValue = 0;
unsigned long keelastRxTime = 0;
unsigned long keetempTime = 0;

//пробуем выброс
//keelog start
unsigned long difTime = 0;
unsigned long difTime2 = 0;
int keelog_state = 0;
int keelogCounter = 0;
byte keelog_code[9];
byte keelog_codePAK2[9];
byte keelog_codePAK1[9];
byte hugaz[9];
byte hugazk[9];
byte hugazi[9];
byte starline_code[9];
byte starline_codePAK2[9];
byte starline_codePAK1[9];



byte webpak2[9];
byte webpak1[9];



int starline_state = 0;
byte kefang[9];


byte starline_codePAK2zapis[9];
byte starline_codePAK1zapis[9];

byte starline_codePAK2zapisSBTR[9];
byte starline_codePAK1zapisSBTR[9];


byte keelog_codePAK2zapis[9];
byte keelog_codePAK1zapis[9];


byte keelog_codePAK2zapisSBTR[9];
byte keelog_codePAK1zapisSBTR[9];

byte hugazS[9];
byte hugaziS[9];

byte hugazK[9];
byte hugaziK[9];

int zoro=1;

/////////////////////////////////////////////////VVODNIE

byte VVOD1[9];
byte VVOD2[9];

String readString;
// --------------------
byte CODE[8];
int x=0;

int k=0;//schet keeloq 
int kk  =0; //shet star line

int starkk = 0;

String codan ="Scanning begin";

volatile static long codsh;
String codan2 ="not code";

String codan1 ="not code";

String sending ="nothing no send";

String button ="";
String gasa="zagasa";


int shlakoffpriem=1;
int stopsigi =1;
///////////sensor vlazhnosti
float temperature;
float humundity;
int schetvl=0;

///////////////
void codanz(){

codan;

 
}

void Batare(){
 /// Batareya = 333666;         // Меряем напряжение батареи
 
}
void SilaWifi(){
  Sila = WiFi.RSSI();  // Меряем силу сигнала WiFi
  if (Sila < SilaLow){
    SilaW = "          Сигнал слабый";
  }
  else{
    SilaW = "";
  }
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="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.onreadystatechange=function(){\n";
  javaScript+="      if(xmlHttp.readyState==4&&xmlHttp.status==200){\n";
  javaScript+="        xmlDoc=xmlHttp.responseXML;\n";
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('millistime')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('runtime').innerHTML=xmlmsg;\n";               // Добавляем наши данные
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
  javaScript+="        document.getElementById('Sila').innerHTML=xmlmsg;\n";                  // Сила сигнала WiFi

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila2')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
   javaScript+="        document.getElementById('progbar').value=-xmlmsg;\n";                  // Сила сигнала WiFi

   
 
 
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи





javaScript+="   document.getElementById('vnizon').onclick = function (nizon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZON',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vnizoff').onclick = function (nizoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhon').onclick = function (vverhon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VONN',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhoff').onclick = function (vverhoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VOFF',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('vlevo').onclick = function (vlevo) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VLEVO',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('bumer').onclick = function (bumer) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BUMER',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('kasta').onclick = function (kasta) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/KASTA',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('dasboot').onclick = function (dasboot) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/DASBOOT',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('sirena').onclick = function (sirena) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SIRENA',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('ala').onclick = function (ala) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/AlarmOff',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('bethoven').onclick = function (bethoven) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BETHOVEN',true);xmlhttp.send();};" ;

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('sending')[0].firstChild.nodeValue;\n";//
  javaScript+="        document.getElementById('sending').innerHTML=xmlmsg;\n";                  // посылка кода

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket').innerHTML=xmlmsg;\n";     

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket1')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket1').innerHTML=xmlmsg;\n";   



 ////javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('button')[0].firstChild.nodeValue;\n";// knop
 ////javaScript+="        document.getElementById('button').innerHTML=xmlmsg;\n";                  // knop

/////javaScript+="   document.getElementById('button').onclick = function (button) { alert('Сюрприз!');" ;
//// javaScript+="  var button =1; if (button==1){alert('Пошел на хуй');button++;alert(button);} };";
 
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',100);\n";
  javaScript+="}\n";





javaScript+="function slid(newVal){\n";
  javaScript+="  document.getElementById('valBox').innerHTML=newVal;\n";
  javaScript+="  xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SLID?val='+newVal,true);xmlhttp.send();";
 /// javaScript+="  document.getElementById('ESPval'+cnt).innerHTML=9*(100-sliderVal)+100;\n";
 /// javaScript+="  if(xmlHttp.readyState==0||xmlHttp.readyState==4){\n";
 /// javaScript+="    xmlHttp.open('PUT','setESPval?cnt='+cnt+'&val='+sliderVal,true);\n";
  //javaScript+="    xmlHttp.send(null);\n";
 /// javaScript+="  }\n";
  javaScript+="}\n";

 
 
  javaScript+="</SCRIPT>\n";




}
void buildWebsite(){    // Создаём страницу с элементами управления
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+="<META name='viewport' content='width=device-width, initial-scale=1', charset=\"utf-8\">\n";
   webSite+="<link rel='shortcut icon' type='image/x-icon' href='http://gansta-paradise.com/favicon.ico'>";

      webSite+="<style> progress#temperaturepb {background: green;} progress::-webkit-progress-bar { background: red; } #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 150px;}input#button_s {border: double;border-color: green;  border-radius: 30px;} input#input1 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}input#input2 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}progress#progbar {  background: #551be2;}</style>";



   
   


     
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="ТАНК\n<br>";
  webSite+="Время работы = <A ID='runtime'></A>\n<br>";
  webSite+="Сила сигнала <A ID='Sila'></A>\n<br>";              // Сила сигнала WiFi
  webSite+="ДАННЫЕ ТАНКА<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
   webSite+="Алярма:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
    webSite+="Напруга:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи

 

            webSite+="<div id='sending'>\n";

              webSite+="</div>\n";

 
 webSite+="<p>Сила Сигнала</p>";
 webSite+="<div class='progress'>";
  webSite+="   <progress id='progbar' max='100' value='0'></progress>";
   webSite+="  <div class='progress-value'></div>";
  webSite+="   <div class='progress-bg'><div class='progress-bar'></div></div>";
 webSite+="</div>";
 webSite+="<br><span id='valBox'></span><input type='range' min='0' max='1000' step='1'  oninput='slid(this.value)' onchange='slid(this.value)'>\n";  // это пример слайдера
webSite+="<br><table id='cepka'><tr>";
   webSite+="<td><button id='vverhon' onclick='doFunction();'>VPERED";
    webSite+="</button></td>";
    webSite+="<td><button id='vverhoff' onclick='doFunction();'>NAZAD</button></td></tr>";


     webSite+="<tr><td><button id='vnizon' onclick='doFunction();'>VPRAVO";
         webSite+="</button><button id='vlevo' onclick='doFunction();'>VLEVO</button></td>";
     webSite+="<td><button id='vnizoff' onclick='doFunction();'>STOP";
   
       webSite+="</button></td></tr></table><br>";





             


webSite+="<table id='bumerang'><tr>";
   webSite+="<td><button id='bumer' onclick='doFunction();'>Bumer";
    webSite+="</button></td>";
    webSite+="<td><button id='dasboot' onclick='doFunction();'>Dasboot</button></td></tr>";
   


     webSite+="<tr><td><button id='kasta' onclick='doFunction();'>Kasta";
    webSite+="</button></td>";
     webSite+="<td><button id='sirena' onclick='doFunction();'>Sirena";
   
       webSite+="</button></td></tr></table><br>";

       

webSite+="<table id='ala'><tr>";
   webSite+="<td><button id='ala' onclick='doFunction();'>Alarm-on-off";
    webSite+="</button></td>";
    webSite+="<td><button id='bethoven' onclick='doFunction();'>Bethoven</button></td></tr>";



   
       webSite+="</td></tr></table><br>";

         
         
            webSite+="<p>ФУНКЦИИ ЗАПАСНЫЕ</p><br>  <a href=\"ShlakOn\"><button>Reboot</button></a>&nbsp;<a href=\"TEMPERATURE\"><button>DATCHIK VLAZHNOSTY</button></a><br>";





           
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";




 
}
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 buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<xml>";
  XML+="<millistime>";
  XML+=millis2time();
  XML+="</millistime>";   // Добавляем наши данные
  SilaWifi();             // Здесь измеряем силу сигнала
  XML+="<Sila>";          // Сила сигнала WiFi
  XML+=String(Sila)+SilaW;// Сила сигнала WiFi
  XML+="</Sila>";         // Сила сигнала WiFi

   XML+="<Sila2>";          // Сила сигнала WiFi
  XML+=String(Sila);// Сила сигнала WiFi
  XML+="</Sila2>";         // Сила сигнала WiFi

   codanz();
 ///  startgrabber(); ////code
  XML+="<Batareya>";       
 ////XML+="<br>";
   XML+=String(codan);
  XML+="</Batareya>";




     
    XML+="<Paket>";       
   XML+=String(codan2);
  XML+="</Paket>";   


       XML+="<Paket1>";       
   XML+=String(codan1);
  XML+="</Paket1>";   



    XML+="<button>";         

   XML+=String(button)+"button send";
  XML+="</button>";       

    XML+="<button2>";         

   XML+=String(button)+"button send";
  XML+="</button2>";         




    XML+="<sending>";         

   XML+=String(sending);
   
  XML+="</sending>";   



 
  XML+="</xml>";
}

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

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

void handleESPval(){


/// int sliderCNT=server.arg("Batareya");
  String button3243=server.arg("codan");

  Serial.println(button3243);
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {


  ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
 
    EEPROM.begin(3512);
  Serial.begin(115200);
    // call sensor.begin() to initialize the library
 

  //////////sensor
    pinMode(LEVO1, OUTPUT);
      pinMode(LEVO2, OUTPUT);
     pinMode(PRAVO1, OUTPUT);
      pinMode(PRAVO2, OUTPUT);
//      pinMode(tonePin, OUTPUT);

  pinMode(DETECTOR,INPUT);

  digitalWrite(DETECTOR,LOW);
//    digitalWrite(tonePin,LOW);


 
//  pinMode(trigPin, OUTPUT);
//  pinMode(echoPin, INPUT);


  WiFi.softAP(ssid2, password2); // Создаём точку доступа
WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
while(WiFi.status()!=WL_CONNECTED){Serial.print(".");delay(500);}
WiFi.mode(WIFI_STA);

while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Establishing connection to WiFi..");
  }

 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP   sensor.begin();
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);




   server.on("/TEMPERATURE", [](){
 server.send(200, "text/html", webSite);
     Serial.println("GET TEMPERATURE ...");
 
    sending="GET TEMPERATURE";
   
  vlazh=1;
 
   
  });



 server.on("/SLID", [](){
 server.send(200, "text/html", webSite);
   String message = "";
message +=server.arg(0);

Serial.println(message);
const int n = 10;
char *z = new char[n];
message.toCharArray(z,n);

deluha=atoi(z);


Serial.println(deluha);
   
  });


   server.on("/NIZON", [](){
 server.send(200, "text/html", webSite);
     Serial.println("PRAVO...");
   digitalWrite (LEVO1, HIGH);
digitalWrite (LEVO2, LOW);
///digitalWrite (PRAVO1,HIGH);
///  digitalWrite (PRAVO2,LOW);
    sending="PRAVO";
    delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);

 
   
  });

   server.on("/VLEVO", [](){
 server.send(200, "text/html", webSite);
     Serial.println("LEVO...");
  //// digitalWrite (LEVO1, HIGH);
///digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,HIGH);
 digitalWrite (PRAVO2,LOW);
    sending="LEVO";

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 
   
  });
 
  server.on("/NIZOFF", [](){
     server.send(200, "text/html", webSite);
    Serial.println("STOP ...");
digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 sending="STOP";
    /////server.send(200, "text/html", webSite);


   
  });
  server.on("/VONN", [](){
     server.send(200, "text/html", webSite);

    Serial.println("VPERED...");
 digitalWrite (LEVO1,HIGH);
  digitalWrite (LEVO2,LOW);
   digitalWrite (PRAVO1,HIGH);
  digitalWrite (PRAVO2,LOW);
 sending="VPERED";
   ///////////// server.send(200, "text/html", webSite);

 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });
  server.on("/VOFF", [](){
     server.send(200, "text/html", webSite);

Serial.println(" NAZAD...");
 digitalWrite (LEVO1,LOW);
 digitalWrite (LEVO2,HIGH);
 digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,HIGH);
  sending="NAZAD";
   
   //////////////// server.send(200, "text/html", webSite);


 


 delay(deluha);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });


    server.on("/BUMER", [](){
     
       sending="BUUMER";
    server.send(200, "text/html", webSite);
Serial.println("bumer");
// bumer();


   
  });
  server.on("/DASBOOT", [](){
   
     sending="DASBOOT";
    server.send(200, "text/html", webSite);
Serial.println(" DASBOOT");
// dasboot();

   
  });

///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
  server.on("/AlarmOff", [](){
    server.send(200, "text/html", webSite);
Serial.println("priem on");

if(alarmaoff==0){
sending ="ALARMA-OFF";}
else{
 sending ="ALARMA-ONN";
  }

alarmaoff = ~alarmaoff;

 Serial.println(alarmaoff);

   
  });

    server.on("/BETHOVEN", [](){
    server.send(200, "text/html", webSite);
Serial.println("DETHOV");
sending ="BETHOVEN-ONN";
//bet();
   
  });




 server.on("/KASTA", [](){
  sending="KASTA";


    server.send(200, "text/html", webSite);
//    muz();


   
  });

  //////////////////////////////

  ///////////brutshlak

 server.on("/ShlakOn", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Reboot");
    server.send(200, "text/html", webSite);
 
ESP.restart();

///ESP.reset() ;

/////BrutSh2
   
  });

 server.on("/BrutSh2", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Shlak code");
    server.send(200, "text/html", webSite);
 

/////BrutSh2
   
  });
  //////////////////

  //////////ShlakSendOff

 server.on("/SIRENA", [](){




 
    server.send(200, "text/html", webSite);
//    siren();
   



   
  });


  //////////////////
 

 
  server.begin();
}




void loop() {


 


   ESP.wdtFeed();

  server.handleClient();

// digitalWrite(tonePin,LOW);

 
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
//     digitalWrite(tonePin,LOW);
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
//     digitalWrite(tonePin,LOW);

 
 }



codan2 ="NO DETECT";














 
 
   

 
}
























олд

Код: Выбрать все



#include <Wire.h>


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





#define LEVO1 D8 ////
#define LEVO2 D7 ////
#define PRAVO1 D6 ///
#define PRAVO2 D5 ///
#define DETECTOR D0 ///
#define tonePin D2 //d5

ESP8266WebServer server(80);
const char* ssid2="TANK8266"; //название точки доступа
const char* password2=""; // пароль не будем писать
//const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
//const char* password="123412345"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;

int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;



int stoppriem=1;


int muzi ;

int pir = 0;

int alarma = 0;

int alarmaoff =-1;

int vlazh = 0;


 int starres = 0;

int pakiweb = 0;
int bitnumber = 0;
int shirt = 0;

//wifii&server end/////////////////////////////////////

//menu

boolean backlight = true;
int contrast=50;
int kiop=0;
int menuitem = 1;
int page = 1;

int pagero = 0;

int smena = 1;//smena sig

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0; 
int selectButtonState = 0;         
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;





//menu end








int ing = 0;
int starlineCounter = 0;
int starlinePreambula = 0;
static long StarLineCode1 = 0; // first part
static long StarLineCode2 = 0; // last part
static long invertStarLineCode1 = 0; // first part
static long invertStarLineCode2 = 0; // last part
String code = "";
boolean bValidPacket=false;
int decodeMethod = 1;
int lastRxValue = 0;
int tempRxValue = 0;
unsigned long lastRxTime = 0;
unsigned long tempTime = 0;
 
//keeloq
int keeloqHeader=0;

int keeloqCounter = 0;

int starlineZCounter = 0;

int starlineZpreambulaCounter = 0;
int keeloqPreambula = 0;

int stralineHeader=0;


static long keeloqCode1 = 0; // first part
static long keeloqCode2 = 0; // last part
static long invertkeeloqCode1 = 0; // first part
static long invertkeeloqCode2 = 0; // last part
String keecode = "";


boolean keebValidPacket=false;

int keelastRxValue = 0;
int keetempRxValue = 0;
unsigned long keelastRxTime = 0;
unsigned long keetempTime = 0;

//пробуем выброс
//keelog start
unsigned long difTime = 0;
unsigned long difTime2 = 0;
int keelog_state = 0;
int keelogCounter = 0;
byte keelog_code[9];
byte keelog_codePAK2[9];
byte keelog_codePAK1[9];
byte hugaz[9];
byte hugazk[9];
byte hugazi[9];
byte starline_code[9];
byte starline_codePAK2[9];
byte starline_codePAK1[9];



byte webpak2[9];
byte webpak1[9];



int starline_state = 0;
byte kefang[9];


byte starline_codePAK2zapis[9];
byte starline_codePAK1zapis[9];

byte starline_codePAK2zapisSBTR[9];
byte starline_codePAK1zapisSBTR[9];


byte keelog_codePAK2zapis[9];
byte keelog_codePAK1zapis[9];


byte keelog_codePAK2zapisSBTR[9];
byte keelog_codePAK1zapisSBTR[9];

byte hugazS[9];
byte hugaziS[9];

byte hugazK[9];
byte hugaziK[9];

int zoro=1;

/////////////////////////////////////////////////VVODNIE

byte VVOD1[9];
byte VVOD2[9];

String readString;
// --------------------
byte CODE[8];
int x=0;

int k=0;//schet keeloq 
int kk  =0; //shet star line

int starkk = 0;

String codan ="Scanning begin";

volatile static long codsh;
String codan2 ="not code";

String codan1 ="not code";

String sending ="nothing no send";

String button ="";
String gasa="zagasa";


int shlakoffpriem=1;
int stopsigi =1;
///////////sensor vlazhnosti
float temperature;
float humundity;
int schetvl=0;

///////////////
void codanz(){

codan;

 
}

void Batare(){
 /// Batareya = 333666;         // Меряем напряжение батареи
 
}
void SilaWifi(){
  Sila = WiFi.RSSI();  // Меряем силу сигнала WiFi
  if (Sila < SilaLow){
    SilaW = "          Сигнал слабый";
  }
  else{
    SilaW = "";
  }
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="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.onreadystatechange=function(){\n";
  javaScript+="      if(xmlHttp.readyState==4&&xmlHttp.status==200){\n";
  javaScript+="        xmlDoc=xmlHttp.responseXML;\n";
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('millistime')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('runtime').innerHTML=xmlmsg;\n";               // Добавляем наши данные
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
  javaScript+="        document.getElementById('Sila').innerHTML=xmlmsg;\n";                  // Сила сигнала WiFi

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila2')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
   javaScript+="        document.getElementById('progbar').value=-xmlmsg;\n";                  // Сила сигнала WiFi

   
 
 
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи





javaScript+="   document.getElementById('vnizon').onclick = function (nizon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZON',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vnizoff').onclick = function (nizoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhon').onclick = function (vverhon) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VONN',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhoff').onclick = function (vverhoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VOFF',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('vlevo').onclick = function (vlevo) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VLEVO',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('bumer').onclick = function (bumer) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BUMER',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('kasta').onclick = function (kasta) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/KASTA',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('dasboot').onclick = function (dasboot) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/DASBOOT',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('sirena').onclick = function (sirena) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SIRENA',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('ala').onclick = function (ala) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/AlarmOff',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('bethoven').onclick = function (bethoven) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BETHOVEN',true);xmlhttp.send();};" ;

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('sending')[0].firstChild.nodeValue;\n";//
  javaScript+="        document.getElementById('sending').innerHTML=xmlmsg;\n";                  // посылка кода

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket').innerHTML=xmlmsg;\n";     

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket1')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket1').innerHTML=xmlmsg;\n";   



 ////javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('button')[0].firstChild.nodeValue;\n";// knop
 ////javaScript+="        document.getElementById('button').innerHTML=xmlmsg;\n";                  // knop

/////javaScript+="   document.getElementById('button').onclick = function (button) { alert('Сюрприз!');" ;
//// javaScript+="  var button =1; if (button==1){alert('Пошел на хуй');button++;alert(button);} };";
 
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',100);\n";
  javaScript+="}\n";



 
 
  javaScript+="</SCRIPT>\n";




}
void buildWebsite(){    // Создаём страницу с элементами управления
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+="<META name='viewport' content='width=device-width, initial-scale=1', charset=\"utf-8\">\n";
   webSite+="<link rel='shortcut icon' type='image/x-icon' href='http://gansta-paradise.com/favicon.ico'>";

      webSite+="<style> progress#temperaturepb {background: green;} progress::-webkit-progress-bar { background: red; } #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 150px;}input#button_s {border: double;border-color: green;  border-radius: 30px;} input#input1 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}input#input2 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}progress#progbar {  background: #551be2;}</style>";



   
   


     
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="ТАНК\n<br>";
  webSite+="Время работы = <A ID='runtime'></A>\n<br>";
  webSite+="Сила сигнала <A ID='Sila'></A>\n<br>";              // Сила сигнала WiFi
  webSite+="ДАННЫЕ ТАНКА<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
   webSite+="Алярма:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
    webSite+="Напруга:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи

 

            webSite+="<div id='sending'>\n";

              webSite+="</div>\n";

 
 webSite+="<p>Сила Сигнала</p>";
 webSite+="<div class='progress'>";
  webSite+="   <progress id='progbar' max='100' value='0'></progress>";
   webSite+="  <div class='progress-value'></div>";
  webSite+="   <div class='progress-bg'><div class='progress-bar'></div></div>";
 webSite+="</div>";
 
webSite+="<br><table id='cepka'><tr>";
   webSite+="<td><button id='vverhon' onclick='doFunction();'>VPERED";
    webSite+="</button></td>";
    webSite+="<td><button id='vverhoff' onclick='doFunction();'>NAZAD</button></td></tr>";


     webSite+="<tr><td><button id='vnizon' onclick='doFunction();'>VPRAVO";
         webSite+="</button><button id='vlevo' onclick='doFunction();'>VLEVO</button></td>";
     webSite+="<td><button id='vnizoff' onclick='doFunction();'>STOP";
   
       webSite+="</button></td></tr></table><br>";





             


webSite+="<table id='bumerang'><tr>";
   webSite+="<td><button id='bumer' onclick='doFunction();'>Bumer";
    webSite+="</button></td>";
    webSite+="<td><button id='dasboot' onclick='doFunction();'>Dasboot</button></td></tr>";
   


     webSite+="<tr><td><button id='kasta' onclick='doFunction();'>Kasta";
    webSite+="</button></td>";
     webSite+="<td><button id='sirena' onclick='doFunction();'>Sirena";
   
       webSite+="</button></td></tr></table><br>";

       

webSite+="<table id='ala'><tr>";
   webSite+="<td><button id='ala' onclick='doFunction();'>Alarm-on-off";
    webSite+="</button></td>";
    webSite+="<td><button id='bethoven' onclick='doFunction();'>Bethoven</button></td></tr>";



   
       webSite+="</td></tr></table><br>";

         
         
            webSite+="<p>ФУНКЦИИ ЗАПАСНЫЕ</p><br>  <a href=\"ShlakOn\"><button>Reboot</button></a>&nbsp;<a href=\"TEMPERATURE\"><button>DATCHIK VLAZHNOSTY</button></a><br>";





           
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";




 
}
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 buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<xml>";
  XML+="<millistime>";
  XML+=millis2time();
  XML+="</millistime>";   // Добавляем наши данные
  SilaWifi();             // Здесь измеряем силу сигнала
  XML+="<Sila>";          // Сила сигнала WiFi
  XML+=String(Sila)+SilaW;// Сила сигнала WiFi
  XML+="</Sila>";         // Сила сигнала WiFi

   XML+="<Sila2>";          // Сила сигнала WiFi
  XML+=String(Sila);// Сила сигнала WiFi
  XML+="</Sila2>";         // Сила сигнала WiFi

   codanz();
 ///  startgrabber(); ////code
  XML+="<Batareya>";       
 ////XML+="<br>";
   XML+=String(codan);
  XML+="</Batareya>";




     
    XML+="<Paket>";       
   XML+=String(codan2);
  XML+="</Paket>";   


       XML+="<Paket1>";       
   XML+=String(codan1);
  XML+="</Paket1>";   



    XML+="<button>";         

   XML+=String(button)+"button send";
  XML+="</button>";       

    XML+="<button2>";         

   XML+=String(button)+"button send";
  XML+="</button2>";         




    XML+="<sending>";         

   XML+=String(sending);
   
  XML+="</sending>";   



 
  XML+="</xml>";
}

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

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

void handleESPval(){


/// int sliderCNT=server.arg("Batareya");
  String button3243=server.arg("codan");

  Serial.println(button3243);
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {


  ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
 
    EEPROM.begin(3512);
  Serial.begin(115200);
    // call sensor.begin() to initialize the library
 

  //////////sensor
    pinMode(LEVO1, OUTPUT);
      pinMode(LEVO2, OUTPUT);
     pinMode(PRAVO1, OUTPUT);
      pinMode(PRAVO2, OUTPUT);
      pinMode(tonePin, OUTPUT);

  pinMode(DETECTOR,INPUT);

  digitalWrite(DETECTOR,LOW);
    digitalWrite(tonePin,LOW);


 



  WiFi.softAP(ssid2, password2); // Создаём точку доступа
//WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
////while(WiFi.status()!=WL_CONNECTED){Serial.print(".");delay(500);}
////WiFi.mode(WIFI_STA);

//while (WiFi.status() != WL_CONNECTED) {
//    delay(1000);
//    Serial.println("Establishing connection to WiFi..");
//  }
//
// 
//  Serial.println("\n\nBOOTING ESP8266 ...");
//  Serial.print("Connected to ");
//  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP   sensor.begin();
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);




   server.on("/TEMPERATURE", [](){
 server.send(200, "text/html", webSite);
     Serial.println("GET TEMPERATURE ...");
 
    sending="GET TEMPERATURE";
   
  vlazh=1;
 
   
  });


   server.on("/NIZON", [](){
 server.send(200, "text/html", webSite);
     Serial.println("PRAVO...");
   digitalWrite (LEVO1, HIGH);
digitalWrite (LEVO2, LOW);
///digitalWrite (PRAVO1,HIGH);
///  digitalWrite (PRAVO2,LOW);
    sending="PRAVO";
    delay(150);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);

 
   
  });

   server.on("/VLEVO", [](){
 server.send(200, "text/html", webSite);
     Serial.println("LEVO...");
  //// digitalWrite (LEVO1, HIGH);
///digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,HIGH);
 digitalWrite (PRAVO2,LOW);
    sending="LEVO";

 delay(150);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 
   
  });
 
  server.on("/NIZOFF", [](){
     server.send(200, "text/html", webSite);
    Serial.println("STOP ...");
digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 sending="STOP";
    /////server.send(200, "text/html", webSite);


   
  });
  server.on("/VONN", [](){
     server.send(200, "text/html", webSite);

    Serial.println("VPERED...");
 digitalWrite (LEVO1,HIGH);
  digitalWrite (LEVO2,LOW);
   digitalWrite (PRAVO1,HIGH);
  digitalWrite (PRAVO2,LOW);
 sending="VPERED";
   ///////////// server.send(200, "text/html", webSite);

 delay(300);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });
  server.on("/VOFF", [](){
     server.send(200, "text/html", webSite);

Serial.println(" NAZAD...");
 digitalWrite (LEVO1,LOW);
 digitalWrite (LEVO2,HIGH);
 digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,HIGH);
  sending="NAZAD";
   
   //////////////// server.send(200, "text/html", webSite);


 delay(300);

    digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
   
  });


    server.on("/BUMER", [](){
     
       sending="BUUMER";
    server.send(200, "text/html", webSite);
Serial.println("bumer");
 bumer();


   
  });
  server.on("/DASBOOT", [](){
   
     sending="DASBOOT";
    server.send(200, "text/html", webSite);
Serial.println(" DASBOOT");
 dasboot();

   
  });

///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
  server.on("/AlarmOff", [](){
    server.send(200, "text/html", webSite);
Serial.println("priem on");

if(alarmaoff==0){
sending ="ALARMA-OFF";}
else{
 sending ="ALARMA-ONN";
  }

alarmaoff = ~alarmaoff;

 Serial.println(alarmaoff);

   
  });

    server.on("/BETHOVEN", [](){
    server.send(200, "text/html", webSite);
Serial.println("DETHOV");
sending ="BETHOVEN-ONN";
bet();
   
  });




 server.on("/KASTA", [](){
  sending="KASTA";


    server.send(200, "text/html", webSite);
    muz();


   
  });

  //////////////////////////////

  ///////////brutshlak

 server.on("/ShlakOn", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Reboot");
    server.send(200, "text/html", webSite);
 
ESP.restart();

///ESP.reset() ;

/////BrutSh2
   
  });

 server.on("/BrutSh2", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Shlak code");
    server.send(200, "text/html", webSite);
 

/////BrutSh2
   
  });
  //////////////////

  //////////ShlakSendOff

 server.on("/SIRENA", [](){




 
    server.send(200, "text/html", webSite);
    siren();
   



   
  });


  //////////////////
 

 
  server.begin();
}




void loop() {


   ESP.wdtFeed();

  server.handleClient();

 digitalWrite(tonePin,LOW);

 
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
     digitalWrite(tonePin,LOW);
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
     digitalWrite(tonePin,LOW);

 
 }



codan2 ="NO DETECT";


 pir = digitalRead(DETECTOR);



  if(alarmaoff==0){

         if(pir>0){
          Serial.println(pir);
         ////  pir = 0;


          Serial.println("datchik srabotal");
           Serial.println(pir);
          tone(tonePin, 2793, 2571.426);
          pir = 0;

          alarma++;

 codan2 ="ALARMA HUILI PIDORI";

         
         }}









 digitalWrite(tonePin,LOW);




 
 
   

 
}

















//////////////////muzon////////////////////////

void bumer (){


   tone(tonePin, 1244, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1479, 624.99975);
    delay(694.444166667);
    delay(520.833125);
    tone(tonePin, 1479, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1244, 624.99975);
    delay(694.444166667);
    delay(520.833125);
    tone(tonePin, 1661, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1479, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1661, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1479, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1661, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1479, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1661, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1479, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1661, 156.2499375);
    delay(173.611041667);
    tone(tonePin, 1864, 624.99975);
    delay(694.444166667);
    delay(520.833125);
}


void dasboot(){


 

}

void muz(){

  tone(tonePin, 466, 118.538519531);
    delay(131.709466146);
    delay(43.1462044271);
    tone(tonePin, 523, 138.294939453);
    delay(153.661043837);
    delay(37.8475477431);
    tone(tonePin, 554, 181.895314453);
    delay(202.105904948);
    delay(18.1668229167);
    tone(tonePin, 523, 133.526148438);
    delay(148.362387153);
    delay(21.951577691);
    tone(tonePin, 466, 131.482380859);
    delay(146.091534288);
    delay(53.7435177951);
    tone(tonePin, 369, 334.496626953);
    delay(371.662918837);
    delay(18.1668229167);
    tone(tonePin, 349, 1100.90946875);
    delay(1223.23274306);
    delay(100.674476997);
    tone(tonePin, 554, 173.720244141);
    delay(193.02249349);
    delay(22.7085286458);
    tone(tonePin, 622, 135.569916016);
    delay(150.633240017);
    delay(34.8197439236);
    tone(tonePin, 554, 565.442363281);
    delay(628.269292535);
    delay(151.390190972);
    tone(tonePin, 622, 143.744986328);
    delay(159.716651476);
    delay(35.5766948785);
    tone(tonePin, 698, 146.470009766);
    delay(162.744455295);
    delay(33.3058420139);
    tone(tonePin, 622, 393.084630859);
    delay(436.760700955);
    delay(30.2780381944);
    tone(tonePin, 466, 119.90103125);
    delay(133.223368056);
    delay(34.8197439236);
    tone(tonePin, 523, 132.163636719);
    delay(146.848485243);
    delay(18.1668229167);
    tone(tonePin, 554, 153.963824219);
    delay(171.070915799);
    delay(17.4098719618);
    tone(tonePin, 523, 142.382474609);
    delay(158.202749566);
    delay(21.951577691);
    tone(tonePin, 466, 142.382474609);
    delay(158.202749566);
    delay(30.2780381944);
    tone(tonePin, 369, 366.515652344);
    delay(407.239613715);
    delay(24.2224305556);
    tone(tonePin, 349, 1499.44414648);
    delay(1666.04905165);
    delay(223.300531684);
    tone(tonePin, 277, 508.898126953);
    delay(565.442363281);
    delay(15.8959700521);
    tone(tonePin, 311, 658.093160156);
    delay(731.214622396);
    delay(68.1255859375);
    tone(tonePin, 466, 118.538519531);
    delay(131.709466146);
    delay(43.1462044271);
    tone(tonePin, 523, 138.294939453);
    delay(153.661043837);
    delay(37.8475477431);
    tone(tonePin, 554, 181.895314453);
    delay(202.105904948);
    delay(18.1668229167);
    tone(tonePin, 523, 133.526148438);
    delay(148.362387153);
    delay(21.951577691);
    tone(tonePin, 466, 131.482380859);
    delay(146.091534288);
    delay(53.7435177951);
    tone(tonePin, 369, 334.496626953);
    delay(371.662918837);
    delay(18.1668229167);
    tone(tonePin, 349, 1100.90946875);
    delay(1223.23274306);
    delay(100.674476997);
    tone(tonePin, 554, 173.720244141);
    delay(193.02249349);
    delay(22.7085286458);
    tone(tonePin, 622, 135.569916016);
    delay(150.633240017);
    delay(34.8197439236);
    tone(tonePin, 554, 565.442363281);
    delay(628.269292535);
    delay(116.570447049);
    tone(tonePin, 622, 143.744986328);
    delay(159.716651476);
    delay(35.5766948785);
    tone(tonePin, 698, 146.470009766);
    delay(162.744455295);
    delay(33.3058420139);
    tone(tonePin, 622, 393.084630859);
    delay(436.760700955);
    delay(65.0977821181);
    tone(tonePin, 466, 119.90103125);
    delay(133.223368056);
    delay(34.8197439236);
    tone(tonePin, 523, 132.163636719);
    delay(146.848485243);
    delay(18.1668229167);
    delay(188.48078776);
    tone(tonePin, 554, 3.40627929688);
    delay(3.78475477431);
    tone(tonePin, 523, 138.976195313);
    delay(154.417994792);
    delay(21.951577691);
    tone(tonePin, 466, 142.382474609);
    delay(158.202749566);
    delay(30.2780381944);
    tone(tonePin, 369, 366.515652344);
    delay(407.239613715);
    delay(24.2224305556);
    tone(tonePin, 349, 1499.44414648);
    delay(1666.04905165);
    delay(153.661043837);
    tone(tonePin, 277, 570.211154297);
    delay(633.567949219);
    delay(17.4098719618);
    tone(tonePin, 311, 658.093160156);
    delay(731.214622396);

   


 

}


void siren() {

 
    tone(tonePin, 2793, 2571.426);
    delay(2857.14);
    tone(tonePin, 3951, 241.0711875);
    delay(267.856875);
    delay(89.285625);
    tone(tonePin, 3951, 160.714125);
    delay(178.57125);
    delay(178.57125);
    tone(tonePin, 3951, 160.714125);
    delay(178.57125);
    delay(178.57125);
    tone(tonePin, 3951, 241.0711875);
    delay(267.856875);
    delay(89.285625);
    delay(2142.855);
    tone(tonePin, 2793, 241.0711875);
    delay(267.856875);
    tone(tonePin, 3520, 401.7853125);
    delay(446.428125);

}


void bet(){


tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 207, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 207, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 110, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 329, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 131.578875);
    delay(146.19875);
    tone(tonePin, 329, 131.578875);
    delay(146.19875);
    tone(tonePin, 329, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 329, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 131.578875);
    delay(146.19875);
    tone(tonePin, 329, 131.578875);
    delay(146.19875);
    tone(tonePin, 329, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 349, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 329, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 155, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 155, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 155, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 131.578875);
    delay(146.19875);
    tone(tonePin, 311, 131.578875);
    delay(146.19875);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 277, 263.15775);
    delay(292.3975);
    tone(tonePin, 155, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 277, 263.15775);
    delay(292.3975);
    tone(tonePin, 155, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 277, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 277, 131.578875);
    delay(146.19875);
    tone(tonePin, 311, 131.578875);
    delay(146.19875);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 207, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 97, 263.15775);
    delay(292.3975);
    tone(tonePin, 207, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 92, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 184, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 184, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 415, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 130, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 155, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 369, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 415, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 130, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 155, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 369, 263.15775);
    delay(292.3975);
    tone(tonePin, 261, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 277, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 277, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 329, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 329, 263.15775);
    delay(292.3975);
    tone(tonePin, 349, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 311, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 155, 263.15775);
    delay(292.3975);
    tone(tonePin, 195, 263.15775);
    delay(292.3975);
    tone(tonePin, 233, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 246, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 110, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 110, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 110, 263.15775);
    delay(292.3975);
    tone(tonePin, 138, 263.15775);
    delay(292.3975);
    tone(tonePin, 164, 263.15775);
    delay(292.3975);
    tone(tonePin, 146, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 174, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 349, 263.15775);
    delay(292.3975);
    tone(tonePin, 440, 263.15775);
    delay(292.3975);
    tone(tonePin, 293, 263.15775);
    delay(292.3975);
    tone(tonePin, 349, 131.578875);
    delay(146.19875);
    tone(tonePin, 440, 131.578875);
    delay(146.19875);
    tone(tonePin, 440, 263.15775);
    delay(292.3975);
    tone(tonePin, 277, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);
    delay(292.3975);
    tone(tonePin, 277, 263.15775);
    delay(292.3975);
    tone(tonePin, 391, 263.15775);
    delay(292.3975);
    tone(tonePin, 220, 263.15775);

}







Аватар пользователя
admin
Администратор
Сообщений: 341
Зарегистрирован: 10 июн 2017, 16:49
Откуда: Rakun City @GanstaParadise-Telegram
Контактная информация:

Re: ESP8266-TANK WEBSERVER-experimental

Сообщение admin » 27 июл 2018, 08:49

газ пишет мощьность в этом коде,но на батах от телефона он не едет
лево право включаються как назад в перед в нормальном...но он плохо едет
рекомендованный код самый верхний 8-)

Код: Выбрать все




#include <Wire.h>


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





#define LEVO1 D8 ////
#define LEVO2 D7 ////
#define PRAVO1 D6 ///
#define PRAVO2 D5 ///
#define DETECTOR D0 ///


#define GAZ1 D1 ///
#define GAZ2 D2 ///

//#define tonePin D2 //d5

int deluha=300;
////ultra datch


//int echoPin = D2;
//int trigPin = D1;
/////

ESP8266WebServer server(80);
const char* ssid2="TANK8266"; //название точки доступа
const char* password2=""; // пароль не будем писать
const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
const char* password="123412345"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;

int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;



int stoppriem=1;


int muzi ;

int pir = 0;

int alarma = 0;

int alarmaoff =-1;

int vlazh = 0;


 int starres = 0;

int pakiweb = 0;
int bitnumber = 0;
int shirt = 0;

//wifii&server end/////////////////////////////////////

//menu

boolean backlight = true;
int contrast=50;
int kiop=0;
int menuitem = 1;
int page = 1;

int pagero = 0;

int smena = 1;//smena sig

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0; 
int selectButtonState = 0;         
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;





//menu end








int ing = 0;
int starlineCounter = 0;
int starlinePreambula = 0;
static long StarLineCode1 = 0; // first part
static long StarLineCode2 = 0; // last part
static long invertStarLineCode1 = 0; // first part
static long invertStarLineCode2 = 0; // last part
String code = "";
boolean bValidPacket=false;
int decodeMethod = 1;
int lastRxValue = 0;
int tempRxValue = 0;
unsigned long lastRxTime = 0;
unsigned long tempTime = 0;
 
//keeloq
int keeloqHeader=0;

int keeloqCounter = 0;

int starlineZCounter = 0;

int starlineZpreambulaCounter = 0;
int keeloqPreambula = 0;

int stralineHeader=0;


static long keeloqCode1 = 0; // first part
static long keeloqCode2 = 0; // last part
static long invertkeeloqCode1 = 0; // first part
static long invertkeeloqCode2 = 0; // last part
String keecode = "";


boolean keebValidPacket=false;

int keelastRxValue = 0;
int keetempRxValue = 0;
unsigned long keelastRxTime = 0;
unsigned long keetempTime = 0;

//пробуем выброс
//keelog start
unsigned long difTime = 0;
unsigned long difTime2 = 0;
int keelog_state = 0;
int keelogCounter = 0;
byte keelog_code[9];
byte keelog_codePAK2[9];
byte keelog_codePAK1[9];
byte hugaz[9];
byte hugazk[9];
byte hugazi[9];
byte starline_code[9];
byte starline_codePAK2[9];
byte starline_codePAK1[9];



byte webpak2[9];
byte webpak1[9];



int starline_state = 0;
byte kefang[9];


byte starline_codePAK2zapis[9];
byte starline_codePAK1zapis[9];

byte starline_codePAK2zapisSBTR[9];
byte starline_codePAK1zapisSBTR[9];


byte keelog_codePAK2zapis[9];
byte keelog_codePAK1zapis[9];


byte keelog_codePAK2zapisSBTR[9];
byte keelog_codePAK1zapisSBTR[9];

byte hugazS[9];
byte hugaziS[9];

byte hugazK[9];
byte hugaziK[9];

int zoro=1;

/////////////////////////////////////////////////VVODNIE

byte VVOD1[9];
byte VVOD2[9];

String readString;
// --------------------
byte CODE[8];
int x=0;

int k=0;//schet keeloq 
int kk  =0; //shet star line

int starkk = 0;

String codan ="Scanning begin";

volatile static long codsh;
String codan2 ="not code";

String codan1 ="not code";

String sending ="nothing no send";

String button ="";
String gasa="zagasa";


int shlakoffpriem=1;
int stopsigi =1;
///////////sensor vlazhnosti
float temperature;
float humundity;
int schetvl=0;

///////////////
void codanz(){

codan;

 
}

void Batare(){
 /// Batareya = 333666;         // Меряем напряжение батареи
 
}
void SilaWifi(){
  Sila = WiFi.RSSI();  // Меряем силу сигнала WiFi
  if (Sila < SilaLow){
    SilaW = "          Сигнал слабый";
  }
  else{
    SilaW = "";
  }
}

void buildJavascript(){
  javaScript="<SCRIPT>\n";
  javaScript+="var voh=1;var voh1=1;var lv=1;var pr=1;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.onreadystatechange=function(){\n";
  javaScript+="      if(xmlHttp.readyState==4&&xmlHttp.status==200){\n";
  javaScript+="        xmlDoc=xmlHttp.responseXML;\n";
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('millistime')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('runtime').innerHTML=xmlmsg;\n";               // Добавляем наши данные
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
  javaScript+="        document.getElementById('Sila').innerHTML=xmlmsg;\n";                  // Сила сигнала WiFi

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Sila2')[0].firstChild.nodeValue;\n";// Сила сигнала WiFi
   javaScript+="        document.getElementById('progbar').value=-xmlmsg;\n";                  // Сила сигнала WiFi

   
 
 
  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи





javaScript+="   document.getElementById('vnizon').onclick = function (vnizon) {pr++;if(pr>1){document.getElementById('vnizon').style.backgroundColor='red'; xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZON',true);xmlhttp.send();};if(pr>2){document.getElementById('vnizon').style.backgroundColor='green';pr=1;xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};};\n" ;
javaScript+="   document.getElementById('vnizoff').onclick = function (nizoff) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('vverhon').onclick = function (vverhon) {voh++;if(voh>1){document.getElementById('vverhon').style.backgroundColor='red';xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VONN',true);xmlhttp.send();};if(voh>2){document.getElementById('vverhon').style.backgroundColor='green';voh=1;xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};};\n" ;
javaScript+="   document.getElementById('vverhoff').onclick = function (vverhoff) {voh1++;if(voh1>1){document.getElementById('vverhoff').style.backgroundColor='red'; xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VOFF',true);xmlhttp.send();};if(voh1>2){document.getElementById('vverhoff').style.backgroundColor='green';voh1=1;xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};};\n" ;

javaScript+="   document.getElementById('vlevo').onclick = function (vlevo) {lv++;if(lv>1){document.getElementById('vlevo').style.backgroundColor='red'; xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/VLEVO',true);xmlhttp.send();};if(lv>2){document.getElementById('vlevo').style.backgroundColor='green';lv=1;xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/NIZOFF',true);xmlhttp.send();};};\n" ;

javaScript+="   document.getElementById('bumer').onclick = function (bumer) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BUMER',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('kasta').onclick = function (kasta) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/KASTA',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('dasboot').onclick = function (dasboot) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/DASBOOT',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('sirena').onclick = function (sirena) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SIRENA',true);xmlhttp.send();};" ;

javaScript+="   document.getElementById('ala').onclick = function (ala) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/AlarmOff',true);xmlhttp.send();};" ;
javaScript+="   document.getElementById('bethoven').onclick = function (bethoven) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/BETHOVEN',true);xmlhttp.send();};" ;

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('sending')[0].firstChild.nodeValue;\n";//
  javaScript+="        document.getElementById('sending').innerHTML=xmlmsg;\n";                  // посылка кода

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket').innerHTML=xmlmsg;\n";     

   javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('Paket1')[0].firstChild.nodeValue;\n";
  javaScript+="        document.getElementById('Paket1').innerHTML=xmlmsg;\n";   



 javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('valBox').innerHTML=xmlmsg;\n";                  // deluha

  javaScript+="        xmlmsg=xmlDoc.getElementsByTagName('deluha')[0].firstChild.nodeValue;\n";// deluha
 javaScript+="        document.getElementById('slidr').value=xmlmsg;\n";                  // deluha


/////javaScript+="   document.getElementById('button').onclick = function (button) { alert('Сюрприз!');" ;
//// javaScript+="  var button =1; if (button==1){alert('Пошел на хуй');button++;alert(button);} };";
 
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',100);\n";
  javaScript+="}\n";





javaScript+="function slid(newVal){\n";
  javaScript+="  document.getElementById('valBox').innerHTML=newVal;\n";
  javaScript+="  xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/SLID?val='+newVal,true);xmlhttp.send();";
 /// javaScript+="  document.getElementById('ESPval'+cnt).innerHTML=9*(100-sliderVal)+100;\n";
 /// javaScript+="  if(xmlHttp.readyState==0||xmlHttp.readyState==4){\n";
 /// javaScript+="    xmlHttp.open('PUT','setESPval?cnt='+cnt+'&val='+sliderVal,true);\n";
  //javaScript+="    xmlHttp.send(null);\n";
 /// javaScript+="  }\n";
  javaScript+="}\n";

 
 
  javaScript+="</SCRIPT>\n";




}
void buildWebsite(){    // Создаём страницу с элементами управления
  buildJavascript();
  webSite="<!DOCTYPE HTML>\n";
  webSite+="<META name='viewport' content='width=device-width, initial-scale=1', charset=\"utf-8\">\n";
   webSite+="<link rel='shortcut icon' type='image/x-icon' href='http://gansta-paradise.com/favicon.ico'>";

      webSite+="<style>input#slidr {    width: 100%;} progress#temperaturepb {background: green;} progress::-webkit-progress-bar { background: red; } #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 150px;}input#button_s {border: double;border-color: green;  border-radius: 30px;} input#input1 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}input#input2 {    width: 90%;    height: 20px;    border-radius: 30px;    padding: 5px;}progress#progbar {  background: #551be2;}</style>";



   
   


     
  webSite+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="ТАНК\n<br>";
  webSite+="Время работы = <A ID='runtime'></A>\n<br>";
  webSite+="Сила сигнала <A ID='Sila'></A>\n<br>";              // Сила сигнала WiFi
  webSite+="ДАННЫЕ ТАНКА<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
   webSite+="Алярма:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
    webSite+="Напруга:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи

 

            webSite+="<div id='sending'>\n";

              webSite+="</div>\n";

 
 webSite+="<p>Сила Сигнала</p>";
 webSite+="<div class='progress'>";
  webSite+="   <progress id='progbar' max='100' value='0'></progress>";
   webSite+="  <div class='progress-value'></div>";
  webSite+="   <div class='progress-bg'><div class='progress-bar'></div></div>";
 webSite+="</div>";
 webSite+="<br><span id='valBox'></span><input width='100%' type='range' min='0' max='1023' step='1' id='slidr'  oninput='slid(this.value)' onchange='slid(this.value)'>\n";  // это пример слайдера
webSite+="<br><br><br><table id='cepka' align='center'><tr>";
   webSite+="<td><button id='vverhon' onclick='doFunction();'>VPERED";
    webSite+="</button></td><td></td>";
    webSite+="<td><button id='vverhoff' onclick='doFunction();'>NAZAD</button></td></tr><br><br><tr><td></td><td><h4 align='center'>✵✵✵РУЛЬ✵✵✵</h4></td></tr>";


     webSite+="<tr><td><button id='vlevo' onclick='doFunction();'>☜ VLEVO</button>";
         webSite+="</td><td></td><td><button id='vnizon' onclick='doFunction();'>VPRAVO ☞</button></td></tr>";
     webSite+="<tr></tr><tr><td></td><td><button id='vnizoff' onclick='doFunction();'>STOP";
   
       webSite+="</button></td></tr></table><br>";





             


webSite+="<table id='bumerang'><tr>";
   webSite+="<td><button id='bumer' onclick='doFunction();'>Bumer";
    webSite+="</button></td>";
    webSite+="<td><button id='dasboot' onclick='doFunction();'>Dasboot</button></td></tr>";
   


     webSite+="<tr><td><button id='kasta' onclick='doFunction();'>Kasta";
    webSite+="</button></td>";
     webSite+="<td><button id='sirena' onclick='doFunction();'>Sirena";
   
       webSite+="</button></td></tr></table><br>";

       

webSite+="<table id='ala'><tr>";
   webSite+="<td><button id='ala' onclick='doFunction();'>Alarm-on-off";
    webSite+="</button></td>";

    webSite+="<td><button id='bethoven' onclick='doFunction();'>Bethoven</button></td></tr>";



   
       webSite+="</td></tr></table><br>";

         
         
            webSite+="<p>ФУНКЦИИ ЗАПАСНЫЕ</p><br>  <a href=\"ShlakOn\"><button>Reboot</button></a>&nbsp;<a href=\"TEMPERATURE\"><button>DATCHIK VLAZHNOSTY</button></a><br>";




           
  webSite+="</BODY>\n";
  webSite+="</HTML>\n";




 
}
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 buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<xml>";
  XML+="<millistime>";
  XML+=millis2time();
  XML+="</millistime>";   // Добавляем наши данные
  SilaWifi();             // Здесь измеряем силу сигнала
  XML+="<Sila>";          // Сила сигнала WiFi
  XML+=String(Sila)+SilaW;// Сила сигнала WiFi
  XML+="</Sila>";         // Сила сигнала WiFi

   XML+="<Sila2>";          // Сила сигнала WiFi
  XML+=String(Sila);// Сила сигнала WiFi
  XML+="</Sila2>";         // Сила сигнала WiFi

   codanz();
 ///  startgrabber(); ////code
  XML+="<Batareya>";       
 ////XML+="<br>";
   XML+=String(codan);
  XML+="</Batareya>";




     
    XML+="<Paket>";       
   XML+=String(codan2);
  XML+="</Paket>";   


       XML+="<Paket1>";       
   XML+=String(codan1);
  XML+="</Paket1>";   



    XML+="<button>";         

   XML+=String(button)+"button send";
  XML+="</button>";       

    XML+="<button2>";         

   XML+=String(button)+"button send";
  XML+="</button2>";         




    XML+="<sending>";         

   XML+=String(sending);
   
  XML+="</sending>";   




    XML+="<deluha>";         

   XML+=String(deluha);
   
  XML+="</deluha>";   

 
  XML+="</xml>";
}

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

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

void handleESPval(){


/// int sliderCNT=server.arg("Batareya");
  String button3243=server.arg("codan");

  Serial.println(button3243);
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {


  ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
 
    EEPROM.begin(3512);
  Serial.begin(115200);
    // call sensor.begin() to initialize the library
 

  //////////sensor
    pinMode(LEVO1, OUTPUT);
      pinMode(LEVO2, OUTPUT);
     pinMode(PRAVO1, OUTPUT);
      pinMode(PRAVO2, OUTPUT);

      pinMode(GAZ1, OUTPUT);
      pinMode(GAZ2, OUTPUT);
       pinMode(GAZ3, OUTPUT);
      pinMode(GAZ4, OUTPUT);
//      pinMode(tonePin, OUTPUT);

  pinMode(DETECTOR,INPUT);

  digitalWrite(DETECTOR,LOW);
//    digitalWrite(tonePin,LOW);


 
//  pinMode(trigPin, OUTPUT);
//  pinMode(echoPin, INPUT);


  WiFi.softAP(ssid2, password2); // Создаём точку доступа
WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
while(WiFi.status()!=WL_CONNECTED){Serial.print(".");delay(500);}
WiFi.mode(WIFI_STA);

while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Establishing connection to WiFi..");
  }

 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP   sensor.begin();
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);




   server.on("/TEMPERATURE", [](){
 server.send(200, "text/html", webSite);
     Serial.println("GET TEMPERATURE ...");
 
    sending="GET TEMPERATURE";
   
  vlazh=1;
 
   
  });



 server.on("/SLID", [](){
 server.send(200, "text/html", webSite);
   String message = "";
message +=server.arg(0);

Serial.println(message);
const int n = 10;
char *z = new char[n];
message.toCharArray(z,n);

deluha=atoi(z);


Serial.println(deluha);
   
  });


   server.on("/NIZON", [](){
 server.send(200, "text/html", webSite);
     Serial.println("PRAVO...");
   digitalWrite (LEVO1, HIGH);
digitalWrite (LEVO2, LOW);
///digitalWrite (PRAVO1,HIGH);
///  digitalWrite (PRAVO2,LOW);
    sending="PRAVO";
//    delay(deluha);
//
//    digitalWrite (LEVO1, LOW);
//digitalWrite (LEVO2, LOW);
//digitalWrite (PRAVO1,LOW);
//  digitalWrite (PRAVO2,LOW);

 
   
  });

   server.on("/VLEVO", [](){
 server.send(200, "text/html", webSite);
     Serial.println("LEVO...");
  //// digitalWrite (LEVO1, HIGH);
///digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,HIGH);
 digitalWrite (PRAVO2,LOW);
    sending="LEVO";

// delay(deluha);
//
//    digitalWrite (LEVO1, LOW);
//digitalWrite (LEVO2, LOW);
//digitalWrite (PRAVO1,LOW);
//  digitalWrite (PRAVO2,LOW);
 
   
  });
 
  server.on("/NIZOFF", [](){
     server.send(200, "text/html", webSite);
    Serial.println("STOP ...");
digitalWrite (LEVO1, LOW);
digitalWrite (LEVO2, LOW);
digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,LOW);
 sending="STOP";
    /////server.send(200, "text/html", webSite);


   
  });
  server.on("/VONN", [](){
     server.send(200, "text/html", webSite);

    Serial.println("VPERED...");
 digitalWrite (LEVO1,HIGH);
  digitalWrite (LEVO2,LOW);
   digitalWrite (PRAVO1,HIGH);
  digitalWrite (PRAVO2,LOW);
 sending="VPERED";
   ///////////// server.send(200, "text/html", webSite);
//
// delay(deluha);
//
//    digitalWrite (LEVO1, LOW);
//digitalWrite (LEVO2, LOW);
//digitalWrite (PRAVO1,LOW);
//  digitalWrite (PRAVO2,LOW);
   
  });
  server.on("/VOFF", [](){
     server.send(200, "text/html", webSite);

Serial.println(" NAZAD...");
 digitalWrite (LEVO1,LOW);
 digitalWrite (LEVO2,HIGH);
 digitalWrite (PRAVO1,LOW);
  digitalWrite (PRAVO2,HIGH);
  sending="NAZAD";
   
   //////////////// server.send(200, "text/html", webSite);


 


// delay(deluha);
//
//    digitalWrite (LEVO1, LOW);
//digitalWrite (LEVO2, LOW);
//digitalWrite (PRAVO1,LOW);
//  digitalWrite (PRAVO2,LOW);
   
  });


    server.on("/BUMER", [](){
     
       sending="BUUMER";
    server.send(200, "text/html", webSite);
Serial.println("bumer");
// bumer();


   
  });
  server.on("/DASBOOT", [](){
   
     sending="DASBOOT";
    server.send(200, "text/html", webSite);
Serial.println(" DASBOOT");
// dasboot();

   
  });

///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
  server.on("/AlarmOff", [](){
    server.send(200, "text/html", webSite);
Serial.println("priem on");

if(alarmaoff==0){
sending ="ALARMA-OFF";}
else{
 sending ="ALARMA-ONN";
  }

alarmaoff = ~alarmaoff;

 Serial.println(alarmaoff);

   
  });

    server.on("/BETHOVEN", [](){
    server.send(200, "text/html", webSite);
Serial.println("DETHOV");
sending ="BETHOVEN-ONN";
//bet();
   
  });




 server.on("/KASTA", [](){
  sending="KASTA";


    server.send(200, "text/html", webSite);
//    muz();


   
  });

  //////////////////////////////

  ///////////brutshlak

 server.on("/ShlakOn", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Reboot");
    server.send(200, "text/html", webSite);
 
ESP.restart();

///ESP.reset() ;

/////BrutSh2
   
  });

 server.on("/BrutSh2", [](){




sending ="Shlak-Brut-Long-Wait";

  Serial.println(" Send Shlak code");
    server.send(200, "text/html", webSite);
 

/////BrutSh2
   
  });
  //////////////////

  //////////ShlakSendOff

 server.on("/SIRENA", [](){




 
    server.send(200, "text/html", webSite);
//    siren();
   



   
  });


  //////////////////
 

 
  server.begin();
}




void loop() {


 


   ESP.wdtFeed();

  server.handleClient();

// digitalWrite(tonePin,LOW);

 
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;

    analogWrite(GAZ1, deluha);
    analogWrite(GAZ2, deluha);
 
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
//     digitalWrite(tonePin,LOW);

 
 }



codan2 ="NO DETECT";














 
 
   

 
}


























Вернуться в «ЕСП8266 и примеры прошивок»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость