А зачем здесь применен ультрозвукавой датчик расстояния? Что вы замышляете? :)
Не ужели этот скетчь для самого модуля wi fi что я вам дал, стабильно работает особенно входящие данные через сериал порт - сразу ли обновляет данные эти на web страничке?
А еще здесь не удобно обновлять страницу что бы все го лишь обновить данные на ней, так как если нажать на ссылку (кнопку) на странице то в адресной строке уже появится прямая сцылка на эту кнопку если нажать обновить страницу в браузере, то просто павторно выполнится эта команда и приходится стирать лишнее в адресной строке и нажимать Enter.
Ну тут как я понял если нужно что то написать на вэб странице нужно как и с сериал принт. Только вводить команду client.print(html код ваш) это если не нужен в конце переход на следующуюю строку, если нужен то clien.println(html код).
Mestniy96, генератор html кода при помощи 100500 client.print() откровенное УГ. Напиши свою страничку на html, и храни её целиком в виде html. в тех местах, где нужно её изменять вставляй свои теги, которые подменяй во время выдачи странички, как вариант используй javascript или ajax.
Как-то так:
if ( Serial.available() ) { char ch = Serial.read(); if (ch == '\r' || ch == '\n') { //здесь делай твои проверки searching = ""; } else searching += ch; }Проверил, спасибо! Но не работает, буду разбираться:
HardwareSerial & ESPport = Serial3; const int COM_BAUD = 9600; String searching; void setup() { pinMode(13, OUTPUT); ESPport.begin(115200); Serial.begin(COM_BAUD); Serial.println("Setup done"); } void loop() { if ( ESPport.available() ) { Serial.write( ESPport.read()); } if ( Serial.available() ) { char ch = Serial.read(); if (ch == '\r' || ch == '\n') { if (searching == "LED1-ON") { digitalWrite(13, 1); } if (searching == "LED1-OFF") { digitalWrite(13, 0); } searching = ""; } else searching += ch; } }Читай пост #44
Спасибо, исправил. Ничего не изменилось!
Я уже не знаю что делать! В сериал выводится "LED-ON" и "LED-OFF" но я не могу ими манипулировать. Помогите пожалуйста. Что только не перепробовал(((
Проверил, спасибо! Но не работает, буду разбираться:
HardwareSerial & ESPport = Serial3; const int COM_BAUD = 9600; String searching; void setup() { pinMode(13, OUTPUT); ESPport.begin(115200); Serial.begin(COM_BAUD); Serial.println("Setup done"); } void loop() { if ( ESPport.available() ) { Serial.write( ESPport.read()); } if ( Serial.available() ) { char ch = Serial.read(); if (ch == '\r' || ch == '\n') { if (searching == "LED1-ON") { digitalWrite(13, 1); } if (searching == "LED1-OFF") { digitalWrite(13, 0); } searching = ""; } else searching += ch; } }Чего тут разбираться-то????!
Вот Вы прочитали символ в строке 14 и вывели его на печать. Что Вы дальше с ним сделали? А ничего, просто выбросили и стали читать новый в строке 18.
Т.е. Вы через символ просто выбрасываете. И чего Вы ждёте?
Вы просто гений!!!!! Спасибо Вам большое проблема решена!!!! Спасибо всем!!!!
Теперь возникла следущая проблема. Мне нужно по таймеру 3 или 6 реле. Хочу использовать 6, но пока мне 3 хватит.
#define RTIME1 1; #define RTIME2 1; #define RTIME3 1; #define RTIME4 1; #define RTIME5 1; #define RTIME6 1; int reley1 = 2; int reley2 = 3; int reley3 = 4; int reley4 = 5; int reley5 = 6; int reley6 = 7; unsigned long currentTime; unsigned long loopTime; void setup() { pinMode(reley1, OUTPUT); pinMode(reley2, OUTPUT); pinMode(reley3, OUTPUT); pinMode(reley4, OUTPUT); pinMode(reley5, OUTPUT); pinMode(reley6, OUTPUT); currentTime = millis(); loopTime = currentTime; pinMode(Trig_pin, OUTPUT); pinMode(Echo_pin, INPUT); } void loop() { digitalWrite(Trig_pin, HIGH); delayMicroseconds(10); digitalWrite(Trig_pin, LOW); distacne_cm = pulseIn(Echo_pin, HIGH); sm = distacne_cm / 29 / 2; if (sm >= 5) { timereley(); } Serial.println(sm); delay(100); } void timereley() { currentTime = millis(); // считываем время if (currentTime >= (loopTime + RTIME1 * 60000) { digitalWrite(reley1, HIGH); } if (currentTime >= (loopTime + RTIME2 * 60000) { digitalWrite(reley2, HIGH); } if (currentTime >= (loopTime + RTIME3 * 60000) { digitalWrite(reley3, HIGH); } if (currentTime >= (loopTime + RTIME4 * 60000) { digitalWrite(reley4, HIGH); } if (currentTime >= (loopTime + RTIME5 * 60000) { digitalWrite(reley5, HIGH); } if (currentTime >= (loopTime + RTIME6 * 60000) { digitalWrite(reley6, HIGH); } }Пока не пришли реле, хочу проверить, точно ли я написал код?
Хотя с ними я разберусь!
Вот еще вопрос: Я решил добавить еще 4 кнопки. Но высвечиваются на странице только 2:
#include <ESP8266WiFi.h> const char* ssid = "DIR-615RU";// ssid вашего роутера const char* password = "15091966";// пароль вашего роутера //int ledPin = 2; // GPIO2 WiFiServer server(80); boolean PinStatus[] = { 1, 2, 3, 4, 5, 6 }; int incomingByte; void setup() { Serial.begin(115200); delay(10); //pinMode(ledPin, OUTPUT); //digitalWrite(ledPin, LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); //Serial.println("Server started"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); int i = 0; i <= 2; i++; PinStatus[i] = false; } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data //Serial.println("new client"); while (!client.available()) { delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); //Serial.println(request); client.flush(); // Match the request // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println("<!DOCTYPE HTML>"); client.println("<html>"); //1 реле if (request.indexOf("/LED1=ON") != -1) { Serial.println("LED1-ON"); PinStatus[1] = true; } if (request.indexOf("/LED1=OFF") != -1) { Serial.println("LED1-OFF"); PinStatus[1] = false; } //2 реле if (request.indexOf("/LED2=ON") != -1) { Serial.println("LED2-ON"); PinStatus[2] = true; } if (request.indexOf("/LED2=OFF") != -1) { Serial.println("LED2-OFF"); PinStatus[2] = false; } //3 реле if (request.indexOf("/LED3=ON") != -1) { Serial.println("LED3-ON"); PinStatus[2] = true; } if (request.indexOf("/LED3=OFF") != -1) { Serial.println("LED3-OFF"); PinStatus[2] = false; } //4 реле if (request.indexOf("/LED4=ON") != -1) { Serial.println("LED4-ON"); PinStatus[2] = true; } if (request.indexOf("/LED4=OFF") != -1) { Serial.println("LED4-OFF"); PinStatus[2] = false; } //5 реле if (request.indexOf("/LED5=ON") != -1) { Serial.println("LED5-ON"); PinStatus[2] = true; } if (request.indexOf("/LED5=OFF") != -1) { Serial.println("LED5-OFF"); PinStatus[2] = false; } //6 реле if (request.indexOf("/LED6=ON") != -1) { Serial.println("LED6-ON"); PinStatus[2] = true; } if (request.indexOf("/LED6=OFF") != -1) { Serial.println("LED6-OFF"); PinStatus[2] = false; } // Set ledPin according to the request //digitalWrite(ledPin, value); // client.print("Led pin 1 is now: "); // if(PinStatus[1] == true) client.print("ON"); //if(PinStatus[1] == false) client.print("OFF"); //client.println(""); //client.print("Led pin 2 is now: "); //if(PinStatus[2] == true) client.print("ON"); //if(PinStatus[2] == false) client.print("OFF"); client.println("<br><br>"); if (PinStatus[1] == false) client.println("ArduinoPIN 1: <a href=\"/LED1=ON\">OFF</a><br>"); if (PinStatus[1] == true) client.println("ArduinoPIN 1: <a href=\"/LED1=OFF\">ON</a><br>"); if (PinStatus[2] == false) client.println("ArduinoPIN 2: <a href=\"/LED2=ON\">OFF</a><br>"); if (PinStatus[2] == true) client.println("ArduinoPIN 2: <a href=\"/LED2=OFF\">ON</a><br>"); if (PinStatus[3] == false) client.println("ArduinoPIN 3: <a href=\"/LED3=ON\">OFF</a><br>"); if (PinStatus[3] == true) client.println("ArduinoPIN 3: <a href=\"/LED3=OFF\">ON</a><br>"); if (PinStatus[4] == false) client.println("ArduinoPIN 4: <a href=\"/LED4=ON\">OFF</a><br>"); if (PinStatus[4] == true) client.println("ArduinoPIN 4: <a href=\"/LED4=OFF\">ON</a><br>"); if (PinStatus[5] == false) client.println("ArduinoPIN 5: <a href=\"/LED5=ON\">OFF</a><br>"); if (PinStatus[5] == true) client.println("ArduinoPIN 5: <a href=\"/LED5=OFF\">ON</a><br>"); if (PinStatus[6] == false) client.println("ArduinoPIN 6: <a href=\"/LED6=ON\">OFF</a><br>"); if (PinStatus[6] == true) client.println("ArduinoPIN 6: <a href=\"/LED6=OFF\">ON</a><br>"); client.println("</html>"); delay(1); //Serial.println("Client disonnected"); //Serial.println(""); if (Serial.available() > 0) //если есть доступные данные { incomingByte = Serial.read(); if (incomingByte == 'Q')PinStatus[1] = true; if (incomingByte == 'W')PinStatus[1] = false; if (incomingByte == 'E')PinStatus[2] = true; if (incomingByte == 'R')PinStatus[2] = false; } }Вместо
пиши
Дело не только в количестве скобочек....
Спасибо. Простите что Вас отвлекаю своими дуртскаими вопросами((.
Я очень Вам благодарен. Буду разбираться!
А со вторым кодом не подскажите?
Вероятно потому, что в строке 134 LED6, а в строке 136 PinStatus[2] и так для всех LED2-LED6
Сразу предостерегу от ошибки: PinStatus[6] это выход за пределы массива. В массивах нумерация начинается с нуля.
Больше двух не показывает. Изменил как вы сказали:
#include <ESP8266WiFi.h> const char* ssid = "DIR-615RU";// ssid вашего роутера const char* password = "15091966";// пароль вашего роутера //int ledPin = 2; // GPIO2 WiFiServer server(80); boolean PinStatus[] = {1, 2, 3, 4, 5, 6}; int incomingByte; void setup() { Serial.begin(115200); delay(10); //pinMode(ledPin, OUTPUT); //digitalWrite(ledPin, LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); //Serial.println("Server started"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); int i = 0; i <= 6; i++; PinStatus[i] = false; } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data //Serial.println("new client"); while (!client.available()) { delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); //Serial.println(request); client.flush(); // Match the request // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println("<!DOCTYPE HTML>"); client.println("<html>"); //1 реле if (request.indexOf("/LED1=ON") != -1) { Serial.println("LED1-ON"); PinStatus[0] = true; } if (request.indexOf("/LED1=OFF") != -1) { Serial.println("LED1-OFF"); PinStatus[0] = false; } //2 реле if (request.indexOf("/LED2=ON") != -1) { Serial.println("LED2-ON"); PinStatus[1] = true; } if (request.indexOf("/LED2=OFF") != -1) { Serial.println("LED2-OFF"); PinStatus[1] = false; } //3 реле if (request.indexOf("/LED3=ON") != -1) { Serial.println("LED3-ON"); PinStatus[2] = true; } if (request.indexOf("/LED3=OFF") != -1) { Serial.println("LED3-OFF"); PinStatus[2] = false; } //4 реле if (request.indexOf("/LED4=ON") != -1) { Serial.println("LED4-ON"); PinStatus[3] = true; } if (request.indexOf("/LED4=OFF") != -1) { Serial.println("LED4-OFF"); PinStatus[3] = false; } //5 реле if (request.indexOf("/LED5=ON") != -1) { Serial.println("LED5-ON"); PinStatus[4] = true; } if (request.indexOf("/LED5=OFF") != -1) { Serial.println("LED5-OFF"); PinStatus[4] = false; } //6 реле if (request.indexOf("/LED6=ON") != -1) { Serial.println("LED6-ON"); PinStatus[5] = true; } if (request.indexOf("/LED6=OFF") != -1) { Serial.println("LED6-OFF"); PinStatus[5] = false; } // Set ledPin according to the request //digitalWrite(ledPin, value); // client.print("Led pin 1 is now: "); // if(PinStatus[1] == true) client.print("ON"); //if(PinStatus[1] == false) client.print("OFF"); //client.println(""); //client.print("Led pin 2 is now: "); //if(PinStatus[2] == true) client.print("ON"); //if(PinStatus[2] == false) client.print("OFF"); client.println("<br><br>"); if (PinStatus[0] == false) client.println("ArduinoPIN 1: <a href=\"/LED1=ON\">OFF</a><br>"); if (PinStatus[0] == true) client.println("ArduinoPIN 1: <a href=\"/LED1=OFF\">ON</a><br>"); if (PinStatus[1] == false) client.println("ArduinoPIN 2: <a href=\"/LED2=ON\">OFF</a><br>"); if (PinStatus[1] == true) client.println("ArduinoPIN 2: <a href=\"/LED2=OFF\">ON</a><br>"); if (PinStatus[2] == false) client.println("ArduinoPIN 3: <a href=\"/LED3=ON\">OFF</a><br>"); if (PinStatus[2] == true) client.println("ArduinoPIN 3: <a href=\"/LED3=OFF\">ON</a><br>"); if (PinStatus[3] == false) client.println("ArduinoPIN 4: <a href=\"/LED4=ON\">OFF</a><br>"); if (PinStatus[3] == true) client.println("ArduinoPIN 4: <a href=\"/LED4=OFF\">ON</a><br>"); if (PinStatus[4] == false) client.println("ArduinoPIN 5: <a href=\"/LED5=ON\">OFF</a><br>"); if (PinStatus[4] == true) client.println("ArduinoPIN 5: <a href=\"/LED5=OFF\">ON</a><br>"); if (PinStatus[5] == false) client.println("ArduinoPIN 6: <a href=\"/LED6=ON\">OFF</a><br>"); if (PinStatus[5] == true) client.println("ArduinoPIN 6: <a href=\"/LED6=OFF\">ON</a><br>"); client.println("</html>"); delay(1); //Serial.println("Client disonnected"); //Serial.println(""); if (Serial.available() > 0) //если есть доступные данные { incomingByte = Serial.read(); if (incomingByte == 'Q')PinStatus[1] = true; if (incomingByte == 'W')PinStatus[1] = false; if (incomingByte == 'E')PinStatus[2] = true; if (incomingByte == 'R')PinStatus[2] = false; } }Понял что проблема в br, но вот как их правильно вписать не знаю. Так не работает:
client.println("<br><br><br><br><br><br>"); if (PinStatus[0] == false) client.println("ArduinoPIN 1: <a href=\"/LED1=ON\">OFF</a><br>"); if (PinStatus[0] == true) client.println("ArduinoPIN 1: <a href=\"/LED1=OFF\">ON</a><br>"); if (PinStatus[1] == false) client.println("ArduinoPIN 2: <a href=\"/LED2=ON\">OFF</a><br>"); if (PinStatus[1] == true) client.println("ArduinoPIN 2: <a href=\"/LED2=OFF\">ON</a><br>"); if (PinStatus[2] == false) client.println("ArduinoPIN 3: <a href=\"/LED3=ON\">OFF</a><br>"); if (PinStatus[2] == true) client.println("ArduinoPIN 3: <a href=\"/LED3=OFF\">ON</a><br>"); if (PinStatus[3] == false) client.println("ArduinoPIN 4: <a href=\"/LED4=ON\">OFF</a><br>"); if (PinStatus[3] == true) client.println("ArduinoPIN 4: <a href=\"/LED4=OFF\">ON</a><br>"); if (PinStatus[4] == false) client.println("ArduinoPIN 5: <a href=\"/LED5=ON\">OFF</a><br>"); if (PinStatus[4] == true) client.println("ArduinoPIN 5: <a href=\"/LED5=OFF\">ON</a><br>"); if (PinStatus[5] == false) client.println("ArduinoPIN 6: <a href=\"/LED6=ON\">OFF</a><br>"); if (PinStatus[5] == true) client.println("ArduinoPIN 6: <a href=\"/LED6=OFF\">ON</a><br>"); client.println("</html>");А что такое в строках 48-51? Наверно имеется в виду
хотя если присвоить true, полагаю будут видны все шесть кнопок...
В строках 181-184 только двум элементам массива присваивается значение, может надо расширить до шести....?
Танци с бубнами и Ваша помощь, принесли пользу)))
Вот готовый рабочий скетч:
#include <ESP8266WiFi.h> const char* ssid = "DIR-615RU";// ssid вашего роутера const char* password = "15091966";// пароль вашего роутера //int ledPin = 2; // GPIO2 WiFiServer server(80); boolean PinStatus[] = {1, 2, 3, 4, 5, 6}; int incomingByte; void setup() { Serial.begin(115200); delay(10); //pinMode(ledPin, OUTPUT); //digitalWrite(ledPin, LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); //Serial.println("Server started"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); for (int i=0; i<6; i++) PinStatus[i] = false; } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data //Serial.println("new client"); while (!client.available()) { delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); //Serial.println(request); client.flush(); // Match the request // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println("<!DOCTYPE HTML>"); client.println("<html>"); //1 реле if (request.indexOf("/LED1=ON") != -1) { Serial.println("LED1-ON"); PinStatus[0] = true; } if (request.indexOf("/LED1=OFF") != -1) { Serial.println("LED1-OFF"); PinStatus[0] = false; } //2 реле if (request.indexOf("/LED2=ON") != -1) { Serial.println("LED2-ON"); PinStatus[1] = true; } if (request.indexOf("/LED2=OFF") != -1) { Serial.println("LED2-OFF"); PinStatus[1] = false; } //3 реле if (request.indexOf("/LED3=ON") != -1) { Serial.println("LED3-ON"); PinStatus[2] = true; } if (request.indexOf("/LED3=OFF") != -1) { Serial.println("LED3-OFF"); PinStatus[2] = false; } //4 реле if (request.indexOf("/LED4=ON") != -1) { Serial.println("LED4-ON"); PinStatus[3] = true; } if (request.indexOf("/LED4=OFF") != -1) { Serial.println("LED4-OFF"); PinStatus[3] = false; } //5 реле if (request.indexOf("/LED5=ON") != -1) { Serial.println("LED5-ON"); PinStatus[4] = true; } if (request.indexOf("/LED5=OFF") != -1) { Serial.println("LED5-OFF"); PinStatus[4] = false; } //6 реле if (request.indexOf("/STOP") != -1) { Serial.println("STOP"); PinStatus[5] = true; } if (request.indexOf("/STOP") != -1) { Serial.println("STOP"); PinStatus[5] = false; } // Set ledPin according to the request //digitalWrite(ledPin, value); // client.print("Led pin 1 is now: "); // if(PinStatus[1] == true) client.print("ON"); //if(PinStatus[1] == false) client.print("OFF"); //client.println(""); //client.print("Led pin 2 is now: "); //if(PinStatus[2] == true) client.print("ON"); //if(PinStatus[2] == false) client.print("OFF"); client.println("<br><br><br><br><br><br>"); if (PinStatus[0] == false) client.println("RELE 1: <a href=\"/LED1=ON\">OFF</a></br>"); if (PinStatus[0] == true) client.println("RELE 1: <a href=\"/LED1=OFF\">ON</a></br>"); if (PinStatus[1] == false) client.println("RELE 2: <a href=\"/LED2=ON\">OFF</a></br>"); if (PinStatus[1] == true) client.println("RELE 2: <a href=\"/LED2=OFF\">ON</a></br>"); if (PinStatus[2] == false) client.println("RELE 3: <a href=\"/LED3=ON\">OFF</a></br>"); if (PinStatus[2] == true) client.println("RELE 3: <a href=\"/LED3=OFF\">ON</a></br>"); if (PinStatus[3] == false) client.println("RELE 4: <a href=\"/LED4=ON\">OFF</a></br>"); if (PinStatus[3] == true) client.println("RELE 4: <a href=\"/LED4=OFF\">ON</a></br>"); if (PinStatus[4] == false) client.println("RELE 5: <a href=\"/LED5=ON\">OFF</a></br>"); if (PinStatus[4] == true) client.println("RELE 5: <a href=\"/LED5=OFF\">ON</a></br>"); if (PinStatus[5] == false) client.println("RELE 6: <a href=\"/STOP\">STOP</a></br>"); if (PinStatus[5] == true) client.println("RELE 6: <a href=\"/STOP\">STOP</a></br>"); client.println("</html>"); delay(1); //Serial.println("Client disonnected"); //Serial.println(""); if (Serial.available() > 0) //если есть доступные данные { incomingByte = Serial.read(); if (incomingByte == 'Q')PinStatus[0] = true; if (incomingByte == 'W')PinStatus[0] = false; if (incomingByte == 'E')PinStatus[1] = true; if (incomingByte == 'R')PinStatus[1] = false; if (incomingByte == 'T')PinStatus[2] = true; if (incomingByte == 'Y')PinStatus[2] = false; if (incomingByte == 'U')PinStatus[3] = true; if (incomingByte == 'I')PinStatus[3] = false; if (incomingByte == 'O')PinStatus[4] = true; if (incomingByte == 'P')PinStatus[4] = false; if (incomingByte == 'A')PinStatus[5] = true; if (incomingByte == 'S')PinStatus[5] = false; } }А вот второй код, но его я еще не проверял)
HardwareSerial & ESPport = Serial3; const int COM_BAUD = 9600; String searching = ""; int readreley; int Trig_pin = 2; // управляющий пин подключен к 2 пину на ардуино. int Echo_pin = 3; // пин с данными от датчика подключен к 3 пин на ардуино. int distacne_cm;// переменная длины импульса. int sm;// переменная расстояния к предмету. #define RTIME1 1 #define RTIME2 1 #define RTIME3 1 #define RTIME4 1 #define RTIME5 1 int reley1 = 2; int reley2 = 3; int reley3 = 4; int reley4 = 5; int reley5 = 6; int reley6 = 7; bool y = false; unsigned long currentTime;//переменные для времени unsigned long loopTime; void setup() { pinMode(Trig_pin, OUTPUT);//2 лапка - выход pinMode(Echo_pin, INPUT);//3 лапка - вход Serial.begin(9600); // открываем сериал порт pinMode(reley1, OUTPUT); pinMode(reley2, OUTPUT); pinMode(reley3, OUTPUT); pinMode(reley4, OUTPUT); pinMode(reley5, OUTPUT); pinMode(reley6, OUTPUT); ESPport.begin(115200); Serial.begin(COM_BAUD); Serial.println("Setup done"); currentTime = millis(); // считываем время loopTime = currentTime; } void loop() { if ( ESPport.available() > 0) { char ch = ESPport.read(); if (ch == '\r' || ch == '\n') { //Реле 1 if (searching == "LED1-ON") { digitalWrite(reley1, 1); } if (searching == "LED1-OFF") { digitalWrite(reley1, 0); } //Реле 2 if (searching == "LED2-ON") { digitalWrite(reley2, 1); } if (searching == "LED2-OFF") { digitalWrite(reley2, 0); } //Реле 3 if (searching == "LED3-ON") { digitalWrite(reley3, 1); } if (searching == "LED3-OFF") { digitalWrite(reley3, 0); } //Реле 4 if (searching == "LED4-ON") { digitalWrite(reley4, 1); } if (searching == "LED4-OFF") { digitalWrite(reley4, 0); } //Реле 5 if (searching == "LED5-ON") { digitalWrite(reley5, 1); } if (searching == "LED5-OFF") { digitalWrite(reley5, 0); } //Реле 6 if (searching == "STOP") { y = false; } searching = ""; } else searching += ch; Serial.write( ESPport.read()); } digitalWrite(Trig_pin, HIGH); delayMicroseconds(10); digitalWrite(Trig_pin, LOW); distacne_cm = pulseIn(Echo_pin, HIGH); sm = distacne_cm / 29 / 2; if (sm >= 5) { y = true; if (y == true) { void timereley(); } } Serial.println(sm); delay(100); } void timereley() { currentTime = millis(); // считываем время if (currentTime - loopTime >= RTIME1 * 60000) { digitalWrite(reley1, HIGH); ESPport.write('Q'); } if (currentTime - loopTime >= RTIME2 * 60000) { digitalWrite(reley2, HIGH); ESPport.write('E'); } if (currentTime - loopTime >= RTIME3 * 60000) { digitalWrite(reley3, HIGH); ESPport.write('T'); } if (currentTime - loopTime >= RTIME4 * 60000) { digitalWrite(reley4, HIGH); ESPport.write('U'); } if (currentTime - loopTime >= RTIME5 * 60000) { digitalWrite(reley5, HIGH); ESPport.write('O'); } }Если не трудно, то укажите на ошибки пожалуйста!!!
В строке 99 надо написать так:
Строка 108 лишняя.
В строке 111 "void" лишнее
Я надеюсь остальное, в принцыпе должно работать?
И почему 108 лишняя? Как программа поймет, что y = true? Чет видать я вообще тупой(( Не пинайте сильно пожалуйста.
Заранее спасибо.
В строке 20 y=false; Ты хочешь его где-то сделать true, добавь по аналогии с строками 92-95 searching="START" или строку 94 напиши так
Он будет включаться и выключаться одной командой. Но 108 строка однозначно там неуместна.
А зачем здесь применен ультрозвукавой датчик расстояния? Что вы замышляете? :)
Не ужели этот скетчь для самого модуля wi fi что я вам дал, стабильно работает особенно входящие данные через сериал порт - сразу ли обновляет данные эти на web страничке?
А еще здесь не удобно обновлять страницу что бы все го лишь обновить данные на ней, так как если нажать на ссылку (кнопку) на странице то в адресной строке уже появится прямая сцылка на эту кнопку если нажать обновить страницу в браузере, то просто павторно выполнится эта команда и приходится стирать лишнее в адресной строке и нажимать Enter.
Кнопка старт не подходит. И выполнение запуска программы одной командой STOP тоже не подходит.
В строке 108, я хотел сказать, что если УЗ датчик принял показания больше и = 5 см, то y = true, и тогда нужно выполнить функцию!
Можете помочь добавить поле ввода и кнопку напротив каждого из реле! Хочу похимичить с отправлением тайминга!!!
Хочеться что-то типа этого. Но не знаю как вставить это в код, чтобы она была напротив вкл/выкл.
krepton85 я хочу похимичить немного. И пока это самый подходящий код)))
Ну тут как я понял если нужно что то написать на вэб странице нужно как и с сериал принт. Только вводить команду client.print(html код ваш) это если не нужен в конце переход на следующуюю строку, если нужен то clien.println(html код).
Оооо. Спасибочки. Как раз этот совет мне и был нужен)))
Попробовал вот так, но ничего не вышло((
if (PinStatus[4] == true) { client.print("RELE 1: <a href=\"/LED1=ON\">OFF</a>"); client.println("<input type="text" name="user1" />"); }Mestniy96, генератор html кода при помощи 100500 client.print() откровенное УГ. Напиши свою страничку на html, и храни её целиком в виде html. в тех местах, где нужно её изменять вставляй свои теги, которые подменяй во время выдачи странички, как вариант используй javascript или ajax.
Можно подробнее? А куда зафигачить эту страничку?
Полистай эту тему.