8266 WEMOS-domofon-open

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

8266 WEMOS-domofon-open

Сообщение admin » 01 окт 2017, 15:32

Вай фай и

радио открыватель двери, вместо домофона,прописывается пульт от машины ,открывается в радиусе 1км,с дивана сейчас открываю свою дверь 8-)

принцип работы или с радио брелка ,или подключаетесь к вай фай дверь и открываете её с адресса

,вот исходник

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




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

ESP8266WebServer server(80);
const char* ssid="DWER37"; //название точки доступа
const char* password="123412345"; // пароль не будем писать
//const char* ssid="HomeIoT"; // здесь пишем название домашней точки доступа
//const char* password="DDV987654321"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;
int OUT1=D3, OUT2=D4, BAT=D5;//Назначение выводов
int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
const int sliderMAX=3;     // This sets the number of sliders you want
int sliderVal[3]={0, 0, 0};  //Начальные значения 1 слайдера - скорость, 2-го - поворот, 3- тример
int ESPval[sliderMAX];

/////////////////////radio/////////////////////////////////////////////////////////////////////////////////////////////////

int fug;

int fug1;
int fug2;


int fug22;


int fug4;

int fug41;
int fug42;


int fug422;






int fug3;

int fug31;
int fug32;


int fug322;

/////////////////////////////////////////////////////parol
int kiop3 = 0;
int pam = 50;
int passwordkg[6] ={8,3,2,1,9,0};

int parolking = 0;
int parolvvod[6] = {0,0,0,0,0,0};
int i1p = 0;
int yach = 0;

int send_codekg = 0;
int send_codezoy = 0;

int send_code = 1;

int yacheyka = 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



#define rxPin D7  //d7
#define TX 6 //d6

#define fugabum D6 //d6
#define diod 2 //d6



#define tonePin 14 //d5
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];



/////////////////////////////////////////////////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;






void Batare(){
  Batareya = analogRead(BAT);         // Меряем напряжение батареи
  if (Batareya < BatLow){            // Если напряжение батареи меньше порогового значения
    Bat = "          Батарея села, ПОРА на ЗАРЯДКУ"; // Пишем предупреждение
  }
  else{                              // Если норма
    Bat = "";                       // Ничего не пишем
  }
}
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('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи
  javaScript+="        for(i=0;i<"+(String)sliderMAX+";i++){\n";
  javaScript+="          xmlmsg=xmlDoc.getElementsByTagName('sliderval'+i)[0].firstChild.nodeValue;\n";
  javaScript+="          document.getElementById('slider'+i).value=xmlmsg;\n";
  javaScript+="          document.getElementById('Sliderval'+i).innerHTML=xmlmsg;\n";
  javaScript+="          xmlmsg=xmlDoc.getElementsByTagName('ESPval'+i)[0].firstChild.nodeValue;\n";
  javaScript+="          document.getElementById('ESPval'+i).innerHTML=xmlmsg;\n";
  javaScript+="        }\n";
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',1000);\n";
  javaScript+="}\n";
 
  javaScript+="function Slider(cnt){\n";
  javaScript+="  sliderVal=document.getElementById('slider'+cnt).value;\n";
  javaScript+="  document.getElementById('Sliderval'+cnt).innerHTML=sliderVal;\n";
  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+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="Дверь Входная\n";
  webSite+="Время работы = <A ID='runtime'></A>\n";
  webSite+="Сила сигнала <A ID='Sila'></A>\n";              // Сила сигнала WiFi
  webSite+="Напряжение батареи <A ID='Batareya'></A>\n"; // Напряжение батареи
  webSite+="<TABLE BORDER=1 width='700' height='200' style='text-align:center;border-collapse:collapse'>\n";
  //  webSite+="<INPUT ' TYPE='range' width='600'> \n";  // это пример слайдера
  webSite+="<TR>\n";        // 1 слайдер
  webSite+="<TD><INPUT ID='slider"+(String)0+"' TYPE='range' ONCHANGE='Slider("+(String)0+")'></TD>\n";
  webSite+="<TD>Обороты = <A ID='Sliderval"+(String)0+"'></A>\n";
  webSite+="Моторов = <A ID='ESPval"+(String)0+"'></A> * </TD>\n";
  webSite+="</TR>\n";

  webSite+="<TR>\n";        // 2 слайдер
  webSite+="<TD><INPUT ID='slider"+(String)1+"' TYPE='range' ONCHANGE='Slider("+(String)1+")'></TD>\n";
  webSite+="<TD>Дверь  = <A ID='Sliderval"+(String)1+"'></A>\n";
  webSite+="Дергай = <A ID='ESPval"+(String)1+"'></A></TD>\n";
  webSite+="</TR>\n";
 
  webSite+="<TR>\n";        // 3 слайдер
  webSite+="<TD><INPUT ID='slider"+(String)2+"' TYPE='range' ONCHANGE='Slider("+(String)2+")'></TD>\n";
  webSite+="<TD>Корекция = <A ID='Sliderval"+(String)2+"'></A>\n";
  webSite+="Моторов = <A ID='ESPval"+(String)2+"'></A></TD>\n";
  webSite+="</TR>\n";

  webSite+="</TABLE>\n";
  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
  Batare();                 // Здесь измеряем напряжение батареи
  XML+="<Batareya>";        // Напряжение батареи
  XML+=String(Batareya)+Bat;// Напряжение батареи
  XML+="</Batareya>";       // Напряжение батареи
  for(int i=0;i<sliderMAX;i++){
    XML+="<sliderval"+(String)i+">";
    XML+=String(sliderVal[i]);
    XML+="</sliderval"+(String)i+">";
    XML+="<ESPval"+(String)i+">";
    ESPval[i]=9*(100-sliderVal[i])+100;
    XML+=String(ESPval[i]);
    XML+="</ESPval"+(String)i+">";
  }
  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("cnt").toInt();
  sliderVal[sliderCNT]=server.arg("val").toInt();
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {
  Serial.begin(115200);
  pinMode(D6, OUTPUT);
  pinMode(OUT1,OUTPUT);
  pinMode(OUT2,OUTPUT);
  pinMode(BAT,INPUT);
   digitalWrite(D6, LOW);

    digitalWrite(fugabum, LOW);
    digitalWrite(diod, LOW);


      lastRxValue = digitalRead(rxPin);
lastRxTime = micros();

//kee
  keelastRxValue = digitalRead(rxPin);
keelastRxTime = micros();
  delay(1000);

  WiFi.softAP(ssid, password); // Создаём точку доступа
//  WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
//  while(WiFi.status()!=WL_CONNECTED)delay(500);
//  WiFi.mode(WIFI_STA);
 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);
  server.begin();
}

void loop() {
  server.handleClient();
  startgrabber();
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
    Trimer = (ESPval[2]*.0015);
    Serial.print("   Skorost] ");
    Serial.print(ESPval[0]);
    Serial.print("   Povorot ");
    Serial.print(ESPval[1]);
    Serial.print("   Trimer ");   
    Serial.print(ESPval[2]);
    Serial.print(Trimer);

   if (ESPval[0] > 200){               // Если слайдер скорости  > 200
        if ( ESPval[1] > 600) {        //  Если слайдер поворота > 600 то поворачиваем на лево
            analogWrite(OUT1, ESPval[0]);
            analogWrite(OUT2, int(ESPval[0] * Povorot*Trimer));
            digitalWrite(D6, LOW);
            Serial.print(" Le  ");
            Serial.print(ESPval[0] * Povorot*Trimer);
           }
       else if (400 > ESPval[1] ){     //  Если слайдер поворота < 400 то поворачиваем на право
           analogWrite(OUT1, int(ESPval[0] * Povorot));
           analogWrite(OUT2, int(ESPval[0]*Trimer));
             digitalWrite(D6, HIGH); 
           Serial.print("   Pr ");
           Serial.print(int(ESPval[0] * Povorot));
           }
       else {                          //  Если слайдер поворота > 400 и < 600то едем прямо
           analogWrite(OUT1, ESPval[0]);
           analogWrite(OUT2, int(ESPval[0]*Trimer));
           Serial.print("   OK ");
           }
      }
   else {                          //  Если слайдер скорости  < 200 - выключить моторы
       analogWrite(OUT1, 0);
       analogWrite(OUT2, 0);
       Serial.print("   Stop ");
       }   
    Serial.print("   Batareya ");
    Serial.println(Batareya);
 }
}




















////////////////////radio

void startgrabber(){






tempRxValue = digitalRead(rxPin);

if(tempRxValue != lastRxValue){
tempTime = micros();
difTime = tempTime - lastRxTime;
difTime2 = tempTime - lastRxTime;

starline_get();
keelog_get();
//grab(tempTime - lastRxTime, lastRxValue);

lastRxTime = tempTime;
lastRxValue = tempRxValue;


 
}
}
 



void starline_get(){
    bValidPacket = false;
    if(starline_state==0){//ждем преамбулу и хедер
      if(difTime2 > 900 && difTime2 < 1100 && lastRxValue ==1 ){
        starlineZpreambulaCounter ++;
       
      }
   

      if(starlineZpreambulaCounter==6){
         
            starline_state=1;         
        }

       //  else{       
     //  starlineZCounter = 0;
     // }
 
    }

    /////////////////////////////////////////////////////PREAMBULA STARA///////////////////////////////////////////////////////////////////////////
    else if(starline_state==1){// получаем биты
      if(difTime2 > 350 && difTime2 < 650 && lastRxValue == 1){// получили 1
        if(decodeMethod==0){
          starline_code[round(starlineZCounter/8)] = (starline_code[round(starlineZCounter/8)]>>1)|B10000000;
        }
        else{
          starline_code[round(starlineZCounter/8)] = (starline_code[round(starlineZCounter/8)]<<1)|B00000000;
        }
        bValidPacket = true;
      }
      else if(difTime2 > 150 && difTime2 < 350 && lastRxValue == 1){
        if(decodeMethod==0){
          starline_code[round(starlineZCounter/8)] = (starline_code[round(starlineZCounter/8)]>>1)|B00000000;
        }
        else{
          starline_code[round(starlineZCounter/8)] = (starline_code[round(starlineZCounter/8)]<<1)|B00000001;
        }
        bValidPacket = true;
      }
      else if(lastRxValue == 0){
      }
      else{
        starline_state=1;
        starlineZCounter = 0;
      }
     
      if(bValidPacket){
        starlineZCounter++;
        if(starlineZCounter==64){           //64ili66
          starline_vardump();
          starlineZCounter = 0;
          starline_state = 0;
          starlineZpreambulaCounter = 0; /////////novshetch
          starkk++;                   /////////shetchik
 




       
        }
      }
    }
}









































 
 




















///uuuaaaaaaaa che ya nadelal)))))))) IIIIIIzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzSTAAAAAAAAAAAAAAAAARRRRRRRRRRzzzzzzz


//statline pomba
void starline_vardump(){
  if(decodeMethod == 0){
    Serial.println(" - starline origin - ");
  }
  else{
    Serial.println(" - starline invert - ");
  }

 
  Serial.print(starline_code[0], HEX);
  Serial.print(starline_code[1], HEX);
  Serial.print(starline_code[2], HEX);
  Serial.print(starline_code[3], HEX);
  Serial.println("-hop");
  Serial.print(starline_code[4], HEX);
  Serial.print(starline_code[5], HEX);
  Serial.print(starline_code[6], HEX);
  Serial.println("-fix");
  Serial.print(starline_code[7], HEX);
  Serial.println("-btn");
  Serial.print(starline_code[8], HEX);
  Serial.println("-dop");


fug =starline_code[0];



fug1=starline_code[1];
fug2=starline_code[2];


fug4 =starline_code[4];



fug41=starline_code[5];
fug42=starline_code[6];

Serial.println(fug);
Serial.println(fug1);
Serial.println(fug2);

Serial.println("CHZN");

Serial.println(fug4);
Serial.println("-");
Serial.println(fug41);
Serial.println("-");
Serial.println(fug42);
Serial.println("-");






 


 
 
 








 
if(fug==3&&fug1==3&&fug2==3){

  Serial.println(" rabotaet ");



/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////


  digitalWrite(fugabum, HIGH);
  delay (5000);
 

 
  digitalWrite(fugabum, LOW);



 
}


if(fug4==190&&fug41==150&&fug42==58){

  Serial.println(" rabotaet ");



/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////


  digitalWrite(fugabum, HIGH);
  delay (5000);
 

 
  digitalWrite(fugabum, LOW);



 
}


if(fug4==139&&fug41==154&&fug42==218){

  Serial.println(" rabotaet ");



/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////


  digitalWrite(fugabum, HIGH);
  delay (5000);
 

 
  digitalWrite(fugabum, LOW);



 
}


if(fug==2&&fug1==2&&fug2==2){

  Serial.println(" nerabotaet ");

  digitalWrite(fugabum, LOW);

 



 
}
 



   
}
     
     
 
 







//keeloq////////////////////////////////////////////////KEEEEEEEEEEEEEEELOOOOQ//////////////////////////////////////////////////////////////////////////
void keelog_vardump(){
  if(decodeMethod == 0){
    Serial.println(" - keelog origin - ");
  }
  else{
    Serial.println(" - keelog invert - ");
  }
  Serial.print(keelog_code[0], HEX);
  Serial.print(keelog_code[1], HEX);
  Serial.print(keelog_code[2], HEX);
  Serial.print(keelog_code[3], HEX);
  Serial.println("-hop");
  Serial.print(keelog_code[4], HEX);
  Serial.print(keelog_code[5], HEX);
  Serial.print(keelog_code[6], HEX);
  Serial.println("-fix");
  Serial.print(keelog_code[7], HEX);
  Serial.println("-btn");
  Serial.print(keelog_code[8], HEX);
  Serial.println("-dop");


 

  smena = 10;
 
//Serial.println("-smena");
// Serial.println(smena);



fug3 =keelog_code[4];



fug31=keelog_code[5];
fug32=keelog_code[6];

Serial.println(fug);
Serial.println(fug1);
Serial.println(fug2);

Serial.println("CHZN");
 Serial.print(keelog_code[4] );
  Serial.println("-");
  Serial.print(keelog_code[5]);
    Serial.println("-");
  Serial.print(keelog_code[6]);
    Serial.println("-");





 


 
 
 








 
if(fug3==26&&fug31==178&&fug32==200){

  Serial.println(" rabotaet ");



/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////


  digitalWrite(fugabum, HIGH);
  delay (5000);
 

 
  digitalWrite(fugabum, LOW);



 
}   




     
 
  //eprom
 //  EEPROM.begin(598);


 
 
 
 


 
//    for(int z = 0; z<9; z++){
         
//       hugazi[z] =EEPROM.read(z);
   
//     display.print(hugazi[z],HEX);
//      delay(3);
     
//      display.display();}}



       
 
 

//srav fixEEPROM.begin(512);






//pak2

// for(int li = 10; li<19; li++){
       

//    int i=0;
   
//    keelog_codePAK2[i]=EEPROM.read(li);
   
//     Serial.print(keelog_codePAK2[i],HEX);
//      delay(100);
 //     i++;

       
 //    Serial.print(keelog_codePAK2[i],HEX);
     
       
 // }



// for(int i = 0; i<9; i++){
 
       
    // Serial.println(keelog_codePAK2[i],HEX);
    //  delay(3);  }

 // int huga =EEPROM.read(0);
//    int huga1 =EEPROM.read(1);
 //    int huga2 =EEPROM.read(2);
 //     int huga3 =EEPROM.read(3);
  //       int huga4 =EEPROM.read(4);
  //          int huga5 =EEPROM.read(5);
   //            int huga6 =EEPROM.read(6);
               
  //                int huga7 =EEPROM.read(7);
 //                    int huga8 =EEPROM.read(8);
 

//  display.setTextColor(WHITE); 
//  display.setTextSize(1);   
//    display.print(huga,HEX);
//     display.print(huga1,HEX);
//     display.print(huga2,HEX);
 //    display.print(huga3,HEX);
//      display.print(huga4,HEX);
//       display.print(huga5,HEX);
//        display.print(huga6,HEX);
//         display.print(huga1,HEX);
//         display.print(huga7,HEX);
//          display.print(huga8,HEX);
//    delay(100);
//    display.display();
   
    //Serial.println(EEPROM.read(0),HEX); // выводим значение в послед. порт
 

 
  //
  /*for(int i = 0; i<9; i++){
    Serial.print(keelog_code[i], HEX);
    Serial.print(" - ");
  }*/
//  keelog_send(keelog_code);
 
 // digitalWrite(TX, HIGH);
 // delay(100);
//  digitalWrite(TX, LOW);
//   keelog_sendPAK2(keelog_codePAK2);
//  keelog_state = 0;
// for(int i = 0; i<9; i++){
//    keelog_code[i]=0;
//  }
}







//pak2









void keelog_get(){
    bValidPacket = false;
    if(keelog_state==0){//ждем преамбулу и хедер
      if(difTime > 280 && difTime < 620 && lastRxValue != tempRxValue){
        keelogCounter ++;
      }
      else{
        if(keelogCounter==23){
          if(difTime>2800 && difTime<6200 && lastRxValue == 0){
            keelog_state=1;
          }
        }
       keelogCounter = 0;
      }
    }
    else if(keelog_state==1){// получаем биты
      if(difTime > 560 && difTime < 1240 && lastRxValue == 1){// получили 1
        if(decodeMethod==0){
          keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]>>1)|B10000000;
        }
        else{
          keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]<<1)|B00000000;
        }
        bValidPacket = true;
      }
      else if(difTime > 280 && difTime < 620 && lastRxValue == 1){
        if(decodeMethod==0){
          keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]>>1)|B00000000;
        }
        else{
          keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]<<1)|B00000001;
        }
        bValidPacket = true;
      }
      else if(lastRxValue == 0){
      }
      else{
        keelog_state=1;
        keelogCounter = 0;
      }
     
      if(bValidPacket){
        keelogCounter++;
        if(keelogCounter==66){
          keelog_vardump();
          keelogCounter = 0;
          keelog_state = 0;
       
       
        }
      }
    }
}
//keelog end



///uuuaaaaaaaa che ya nadelal)))))))) IIIIIIzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzSTAAAAAAAAAAAAAAAAARRRRRRRRRRzzzzzzz







 




























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

Re: 8266 WEMOS

Сообщение admin » 05 окт 2017, 04:53

то на чем пока остановился


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




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

ESP8266WebServer server(80);
const char* ssid="DWER37"; //название точки доступа
const char* password="123412345"; // пароль не будем писать
//const char* ssid="HomeIoT"; // здесь пишем название домашней точки доступа
//const char* password="DDV987654321"; // и пароль

String webSite,javaScript,XML;
unsigned long wait000=0UL,wait001=1000UL;
int OUT1=D3, OUT2=D4, BAT=D5;//Назначение выводов
int Sila, SilaLow = -43;   // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer;    // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
const int sliderMAX=3;     // This sets the number of sliders you want
int sliderVal[3]={0, 0, 0};  //Начальные значения 1 слайдера - скорость, 2-го - поворот, 3- тример
int ESPval[sliderMAX];

/////////////////////radio/////////////////////////////////////////////////////////////////////////////////////////////////

int fug;

int fug1;
int fug2;


int fug22;


int fug4;

int fug41;
int fug42;


int fug422;






int fug3;

int fug31;
int fug32;


int fug322;

/////////////////////////////////////////////////////parol
int kiop3 = 0;
int pam = 50;
int passwordkg[6] ={8,3,2,1,9,0};

int parolking = 0;
int parolvvod[6] = {0,0,0,0,0,0};
int i1p = 0;
int yach = 0;

int send_codekg = 0;
int send_codezoy = 0;

int send_code = 1;

int yacheyka = 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



#define rxPin D7  //d7
#define TX 6 //d6

#define fugabum D6 //d6
#define diod 2 //d6



#define tonePin 14 //d5
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];



/////////////////////////////////////////////////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;






void Batare(){
  Batareya = analogRead(BAT);         // Меряем напряжение батареи
  if (Batareya < BatLow){            // Если напряжение батареи меньше порогового значения
    Bat = "          Батарея села, ПОРА на ЗАРЯДКУ"; // Пишем предупреждение
  }
  else{                              // Если норма
    Bat = "";                       // Ничего не пишем
  }
}
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('Batareya')[0].firstChild.nodeValue;\n";// Напряжение батареи
  javaScript+="        document.getElementById('Batareya').innerHTML=xmlmsg;\n";                  // Напряжение батареи
  javaScript+="        for(i=0;i<"+(String)sliderMAX+";i++){\n";
  javaScript+="          xmlmsg=xmlDoc.getElementsByTagName('sliderval'+i)[0].firstChild.nodeValue;\n";
  javaScript+="          document.getElementById('slider'+i).value=xmlmsg;\n";
  javaScript+="          document.getElementById('Sliderval'+i).innerHTML=xmlmsg;\n";
  javaScript+="          xmlmsg=xmlDoc.getElementsByTagName('ESPval'+i)[0].firstChild.nodeValue;\n";
  javaScript+="          document.getElementById('ESPval'+i).innerHTML=xmlmsg;\n";
  javaScript+="        }\n";
  javaScript+="      }\n";
  javaScript+="    }\n";
  javaScript+="    xmlHttp.open('PUT','xml',true);\n";
  javaScript+="    xmlHttp.send(null);\n";
  javaScript+="  }\n";
  javaScript+="  setTimeout('process()',1000);\n";
  javaScript+="}\n";
 
  javaScript+="function Slider(cnt){\n";
  javaScript+="  sliderVal=document.getElementById('slider'+cnt).value;\n";
  javaScript+="  document.getElementById('Sliderval'+cnt).innerHTML=sliderVal;\n";
  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+=javaScript;
  webSite+="<BODY onload='process()'>\n";
  webSite+="Дверь Входная\n";
  webSite+="Время работы = <A ID='runtime'></A>\n";
  webSite+="Сила сигнала <A ID='Sila'></A>\n";              // Сила сигнала WiFi
  webSite+="Напряжение батареи <A ID='Batareya'></A>\n"; // Напряжение батареи
  webSite+="<TABLE BORDER=1 width='700' height='200' style='text-align:center;border-collapse:collapse'>\n";
  //  webSite+="<INPUT ' TYPE='range' width='600'> \n";  // это пример слайдера
  webSite+="<TR>\n";        // 1 слайдер
  webSite+="<TD><INPUT ID='slider"+(String)0+"' TYPE='range' ONCHANGE='Slider("+(String)0+")'></TD>\n";
  webSite+="<TD>Обороты = <A ID='Sliderval"+(String)0+"'></A>\n";
  webSite+="Моторов = <A ID='ESPval"+(String)0+"'></A> * </TD>\n";
  webSite+="</TR>\n";

  webSite+="<TR>\n";        // 2 слайдер
  webSite+="<TD><INPUT ID='slider"+(String)1+"' TYPE='range' ONCHANGE='Slider("+(String)1+")'></TD>\n";
  webSite+="<TD>Дверь  = <A ID='Sliderval"+(String)1+"'></A>\n";
  webSite+="Дергай = <A ID='ESPval"+(String)1+"'></A></TD>\n";
  webSite+="</TR>\n";
 
  webSite+="<TR>\n";        // 3 слайдер
  webSite+="<TD><INPUT ID='slider"+(String)2+"' TYPE='range' ONCHANGE='Slider("+(String)2+")'></TD>\n";
  webSite+="<TD>Корекция = <A ID='Sliderval"+(String)2+"'></A>\n";
  webSite+="Моторов = <A ID='ESPval"+(String)2+"'></A></TD>\n";
  webSite+="</TR>\n";

  webSite+="</TABLE>\n";
  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
  Batare();                 // Здесь измеряем напряжение батареи
  XML+="<Batareya>";        // Напряжение батареи
  XML+=String(Batareya)+Bat;// Напряжение батареи
  XML+="</Batareya>";       // Напряжение батареи
  for(int i=0;i<sliderMAX;i++){
    XML+="<sliderval"+(String)i+">";
    XML+=String(sliderVal[i]);
    XML+="</sliderval"+(String)i+">";
    XML+="<ESPval"+(String)i+">";
    ESPval[i]=9*(100-sliderVal[i])+100;
    XML+=String(ESPval[i]);
    XML+="</ESPval"+(String)i+">";
  }
  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("cnt").toInt();
  sliderVal[sliderCNT]=server.arg("val").toInt();
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {
  Serial.begin(115200);
  pinMode(D6, OUTPUT);
  pinMode(OUT1,OUTPUT);
  pinMode(OUT2,OUTPUT);
  pinMode(BAT,INPUT);
   digitalWrite(D6, LOW);

    digitalWrite(fugabum, LOW);
    digitalWrite(diod, LOW);


      lastRxValue = digitalRead(rxPin);
lastRxTime = micros();

//kee
  keelastRxValue = digitalRead(rxPin);
keelastRxTime = micros();
  delay(1000);

  WiFi.softAP(ssid, password); // Создаём точку доступа
//  WiFi.begin(ssid,password);  //Это вариант для подключения к существующей точке
//  while(WiFi.status()!=WL_CONNECTED)delay(500);
//  WiFi.mode(WIFI_STA);
 
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());     // Вывод в монитор порта присвоенный IP
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
  server.on("/setESPval",handleESPval);
  server.begin();
}

void loop() {
  server.handleClient();
  startgrabber();
  if(millis()>wait000){
    buildXML();
    wait000=millis()+1000UL;
  }
  if(millis()>wait001){
    wait001=millis()+300;           //Обновляем значения раз в 300 милисекунд
    Trimer = (ESPval[2]*.0015);
    Serial.print("   Skorost] ");
    Serial.print(ESPval[0]);
    Serial.print("   Povorot ");
    Serial.print(ESPval[1]);
    Serial.print("   Trimer ");   
    Serial.print(ESPval[2]);
    Serial.print(Trimer);

   if (ESPval[0] > 200){               // Если слайдер скорости  > 200
        if ( ESPval[1] > 600) {        //  Если слайдер поворота > 600 то поворачиваем на лево
            analogWrite(OUT1, ESPval[0]);
            analogWrite(OUT2, int(ESPval[0] * Povorot*Trimer));
            digitalWrite(D6, LOW);
            Serial.print(" Le  ");
            Serial.print(ESPval[0] * Povorot*Trimer);
           }
       else if (400 > ESPval[1] ){     //  Если слайдер поворота < 400 то поворачиваем на право
           analogWrite(OUT1, int(ESPval[0] * Povorot));
           analogWrite(OUT2, int(ESPval[0]*Trimer));
             digitalWrite(D6, HIGH); 
           Serial.print("   Pr ");
           Serial.print(int(ESPval[0] * Povorot));
           }
       else {                          //  Если слайдер поворота > 400 и < 600то едем прямо
           analogWrite(OUT1, ESPval[0]);
           analogWrite(OUT2, int(ESPval[0]*Trimer));
           Serial.print("   OK ");
           }
      }
   else {                          //  Если слайдер скорости  < 200 - выключить моторы
       analogWrite(OUT1, 0);
       analogWrite(OUT2, 0);
       Serial.print("   Stop ");
       }   
    Serial.print("   Batareya ");
    Serial.println(Batareya);
 }
}




















////////////////////radio

void startgrabber(){






tempRxValue = digitalRead(rxPin);

if(tempRxValue != lastRxValue){
tempTime = micros();
difTime = tempTime - lastRxTime;
difTime2 = tempTime - lastRxTime;

starline_get();
keelog_get();
//grab(tempTime - lastRxTime, lastRxValue);

lastRxTime = tempTime;
lastRxValue = tempRxValue;


 
}
}
 



void starline_get(){
    bValidPacket = false;
    if(starline_state==0){//ждем преамбулу и хедер
      if(difTime2 > 900 && difTime2 < 1100 && lastRxValue ==1 ){
        starlineZpreambulaCounter ++;
       
      }
   

      if(starlineZpreambulaCounter==6){
         
            starline_state=1;         
        }

       //  else{       
     //  starlineZCounter = 0;
     // }
 
    }

    /////////////////////////////////////////////////////PREAMBULA STARA///////////////////////////////////////////////////////////////////////////
    else if(starline_state==1){// получаем биты
      if(difTime2 > 350 && difTime2 < 650 && lastRxValue == 1){// получили 1
        if(decodeMethod==0){
          starline_code[round(starlineZCounter/8)] = (starline_code[round(starlineZCounter/8)]>>1)|B10000000;
        }
        else{
          starline_code[round(starlineZCounter/8)] = (starline_code[round(starlineZCounter/8)]<<1)|B00000000;
        }
        bValidPacket = true;
      }
      else if(difTime2 > 150 && difTime2 < 350 && lastRxValue == 1){
        if(decodeMethod==0){
          starline_code[round(starlineZCounter/8)] = (starline_code[round(starlineZCounter/8)]>>1)|B00000000;
        }
        else{
          starline_code[round(starlineZCounter/8)] = (starline_code[round(starlineZCounter/8)]<<1)|B00000001;
        }
        bValidPacket = true;
      }
      else if(lastRxValue == 0){
      }
      else{
        starline_state=1;
        starlineZCounter = 0;
      }
     
      if(bValidPacket){
        starlineZCounter++;
        if(starlineZCounter==64){           //64ili66
          starline_vardump();
          starlineZCounter = 0;
          starline_state = 0;
          starlineZpreambulaCounter = 0; /////////novshetch
          starkk++;                   /////////shetchik
 




       
        }
      }
    }
}









































 
 




















///uuuaaaaaaaa che ya nadelal)))))))) IIIIIIzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzSTAAAAAAAAAAAAAAAAARRRRRRRRRRzzzzzzz


//statline pomba
void starline_vardump(){
  if(decodeMethod == 0){
    Serial.println(" - starline origin - ");
  }
  else{
    Serial.println(" - starline invert - ");
  }

 
  Serial.print(starline_code[0], HEX);
  Serial.print(starline_code[1], HEX);
  Serial.print(starline_code[2], HEX);
  Serial.print(starline_code[3], HEX);
  Serial.println("-hop");
  Serial.print(starline_code[4], HEX);
  Serial.print(starline_code[5], HEX);
  Serial.print(starline_code[6], HEX);
  Serial.println("-fix");
  Serial.print(starline_code[7], HEX);
  Serial.println("-btn");
  Serial.print(starline_code[8], HEX);
  Serial.println("-dop");


fug =starline_code[0];



fug1=starline_code[1];
fug2=starline_code[2];


fug4 =starline_code[4];



fug41=starline_code[5];
fug42=starline_code[6];

Serial.println(fug);
Serial.println(fug1);
Serial.println(fug2);

Serial.println("CHZN");

Serial.println(fug4);
Serial.println("-");
Serial.println(fug41);
Serial.println("-");
Serial.println(fug42);
Serial.println("-");






 


 
 
 








 
if(fug==3&&fug1==3&&fug2==3){

  Serial.println(" rabotaet ");



/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////


  digitalWrite(fugabum, HIGH);
  delay (5000);
 

 
  digitalWrite(fugabum, LOW);



 
}


if(fug4==190&&fug41==150&&fug42==58){

  Serial.println(" rabotaet ");



/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////


  digitalWrite(fugabum, HIGH);
  delay (5000);
 

 
  digitalWrite(fugabum, LOW);



 
}


if(fug4==139&&fug41==154&&fug42==218){

  Serial.println(" rabotaet ");



/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////


  digitalWrite(fugabum, HIGH);
  delay (5000);
 

 
  digitalWrite(fugabum, LOW);



 
}


if(fug==2&&fug1==2&&fug2==2){

  Serial.println(" nerabotaet ");

  digitalWrite(fugabum, LOW);

 



 
}
 



   
}
     
     
 
 







//keeloq////////////////////////////////////////////////KEEEEEEEEEEEEEEELOOOOQ//////////////////////////////////////////////////////////////////////////
void keelog_vardump(){
  if(decodeMethod == 0){
    Serial.println(" - keelog origin - ");
  }
  else{
    Serial.println(" - keelog invert - ");
  }
  Serial.print(keelog_code[0], HEX);
  Serial.print(keelog_code[1], HEX);
  Serial.print(keelog_code[2], HEX);
  Serial.print(keelog_code[3], HEX);
  Serial.println("-hop");
  Serial.print(keelog_code[4], HEX);
  Serial.print(keelog_code[5], HEX);
  Serial.print(keelog_code[6], HEX);
  Serial.println("-fix");
  Serial.print(keelog_code[7], HEX);
  Serial.println("-btn");
  Serial.print(keelog_code[8], HEX);
  Serial.println("-dop");


 

  smena = 10;
 
//Serial.println("-smena");
// Serial.println(smena);



fug3 =keelog_code[4];



fug31=keelog_code[5];
fug32=keelog_code[6];

Serial.println(fug);
Serial.println(fug1);
Serial.println(fug2);

Serial.println("CHZN");
 Serial.print(keelog_code[4] );
  Serial.println("-");
  Serial.print(keelog_code[5]);
    Serial.println("-");
  Serial.print(keelog_code[6]);
    Serial.println("-");





 


 
 
 








 
if(fug3==26&&fug31==178&&fug32==200){

  Serial.println(" rabotaet ");



/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////


  digitalWrite(fugabum, HIGH);
  delay (5000);
 

 
  digitalWrite(fugabum, LOW);



 
}   




     
 
  //eprom
 //  EEPROM.begin(598);


 
 
 
 


 
//    for(int z = 0; z<9; z++){
         
//       hugazi[z] =EEPROM.read(z);
   
//     display.print(hugazi[z],HEX);
//      delay(3);
     
//      display.display();}}



       
 
 

//srav fixEEPROM.begin(512);






//pak2

// for(int li = 10; li<19; li++){
       

//    int i=0;
   
//    keelog_codePAK2[i]=EEPROM.read(li);
   
//     Serial.print(keelog_codePAK2[i],HEX);
//      delay(100);
 //     i++;

       
 //    Serial.print(keelog_codePAK2[i],HEX);
     
       
 // }



// for(int i = 0; i<9; i++){
 
       
    // Serial.println(keelog_codePAK2[i],HEX);
    //  delay(3);  }

 // int huga =EEPROM.read(0);
//    int huga1 =EEPROM.read(1);
 //    int huga2 =EEPROM.read(2);
 //     int huga3 =EEPROM.read(3);
  //       int huga4 =EEPROM.read(4);
  //          int huga5 =EEPROM.read(5);
   //            int huga6 =EEPROM.read(6);
               
  //                int huga7 =EEPROM.read(7);
 //                    int huga8 =EEPROM.read(8);
 

//  display.setTextColor(WHITE); 
//  display.setTextSize(1);   
//    display.print(huga,HEX);
//     display.print(huga1,HEX);
//     display.print(huga2,HEX);
 //    display.print(huga3,HEX);
//      display.print(huga4,HEX);
//       display.print(huga5,HEX);
//        display.print(huga6,HEX);
//         display.print(huga1,HEX);
//         display.print(huga7,HEX);
//          display.print(huga8,HEX);
//    delay(100);
//    display.display();
   
    //Serial.println(EEPROM.read(0),HEX); // выводим значение в послед. порт
 

 
  //
  /*for(int i = 0; i<9; i++){
    Serial.print(keelog_code[i], HEX);
    Serial.print(" - ");
  }*/
//  keelog_send(keelog_code);
 
 // digitalWrite(TX, HIGH);
 // delay(100);
//  digitalWrite(TX, LOW);
//   keelog_sendPAK2(keelog_codePAK2);
//  keelog_state = 0;
// for(int i = 0; i<9; i++){
//    keelog_code[i]=0;
//  }
}







//pak2









void keelog_get(){
    bValidPacket = false;
    if(keelog_state==0){//ждем преамбулу и хедер
      if(difTime > 280 && difTime < 620 && lastRxValue != tempRxValue){
        keelogCounter ++;
      }
      else{
        if(keelogCounter==23){
          if(difTime>2800 && difTime<6200 && lastRxValue == 0){
            keelog_state=1;
          }
        }
       keelogCounter = 0;
      }
    }
    else if(keelog_state==1){// получаем биты
      if(difTime > 560 && difTime < 1240 && lastRxValue == 1){// получили 1
        if(decodeMethod==0){
          keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]>>1)|B10000000;
        }
        else{
          keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]<<1)|B00000000;
        }
        bValidPacket = true;
      }
      else if(difTime > 280 && difTime < 620 && lastRxValue == 1){
        if(decodeMethod==0){
          keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]>>1)|B00000000;
        }
        else{
          keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]<<1)|B00000001;
        }
        bValidPacket = true;
      }
      else if(lastRxValue == 0){
      }
      else{
        keelog_state=1;
        keelogCounter = 0;
      }
     
      if(bValidPacket){
        keelogCounter++;
        if(keelogCounter==66){
          keelog_vardump();
          keelogCounter = 0;
          keelog_state = 0;
       
       
        }
      }
    }
}
//keelog end



///uuuaaaaaaaa che ya nadelal)))))))) IIIIIIzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzSTAAAAAAAAAAAAAAAAARRRRRRRRRRzzzzzzz







 



























Вернуться в «ЕСП8266 и примеры прошивок»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость