#include <ESP8266WiFi.h>
#include <Servo.h>
//Настройки сети
const char* ssid = "ИМЯСЕТИ";
const char* password = "Пароль";
//Указываем пины для ног HC-SR04
const int trigPin = 5;
const int echoPin = 4;
Servo servo; // Создаем объект servo для управления сервоприводом
int sensor=0;
int PreparingToFlush=0;
int sample1;
int sample2;
int sample3;
int sample4;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
servo.attach(14); // Указываем что сервопривод висит на 2-м пине
WiFi.begin(ssid, password); // Подключаемся к сети WiFi
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
server.begin(); // Запускаем сервер
}
void loop() {
// немного магии
long duration, cm;
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
cm = (duration/2) / 29.1;
Serial.print(cm);//Пишем в консоль результаты заклинания
Serial.println();
sensor=cm;
if (PreparingToFlush==0){
if (sensor < 100){ //Если засекли цель
delay(1000); // Ждём
sample1=cm; //Берем пробы для усреднения
Serial.println("Sensing");
delay(300);
sample2=cm;
delay(300);
sample3=cm;
delay(400);
sample4=cm;
sensor= (sample1 + sample2 + sample3 + sample4)/4; //и усредняемся
if (sensor < 100){ // Убеждаемся что цель на месте
PreparingToFlush=1;
digitalWrite(13, HIGH);
Serial.println(sensor);
}
}
}
if (PreparingToFlush==1){ //Если цель была засечена
if (sensor > 100){ // и если цель ушла
delay(1000);
sensor=cm;
if (sensor > 100){
Serial.println("I show you how deep the rabbit-hole goes...");
servo.write(175); //Смываем
digitalWrite(13, LOW);
delay(9000);
servo.write(3);
delay(1000);
PreparingToFlush=0; //Сбрасываем тригер
}
}
}
// Удостоверямся что подключены к WiFi
WiFiClient client = server.available();
if (!client) {return;}
//Ждем когда клиент что-нибудь пришлет
while(!client.available()){delay(1);}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Совпадение
if (request.indexOf("/FLUSH=ON") != -1) {
Serial.println("I show you how deep the rabbit-hole goes...");
servo.write(175); //Смываем
digitalWrite(13, LOW);
delay(9000);
servo.write(3);
delay(1000);
}
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("FLUSH ");
client.println("<br><br>");
client.println("Click <a href=\"/FLUSH=ON\">here</a> to FLUSH <br>");
client.println("</html>");
delay(1);
}
Подключение сервопривода к оснастке в бачке (фото Big Oil):
Жестко, круто, браво! Только до кучи прикручиваем счетчик воды, вытяжку....в общем полный фарш. Все равно в комп пялимся...в процессе. Вот только не получается использовать прерывания ,если программить из-под IDE - надо использовать родной язык...
Ps А чего смеяться - у соседа кошка ходит в туалет - только смыть не может????
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
#include <ESP8266WiFi.h>
#include <Servo.h>
//Настройки сети
const char* ssid = "............";
const char* password = "...........";
//Указываем пины для ног HC-SR04
const int trigPin = 12;
const int echoPin = 13;
Servo servo; // Создаем объект servo для управления сервоприводом
int sensor=0;
int PreparingToFlush=0;
int sample1;
int sample2;
int sample3;
int sample4;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password); // Подключаемся к сети WiFi
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
server.begin(); // Запускаем сервер
}
void loop() {
// немного магии
long duration, cm;
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
cm = (duration/2) / 29.1;
Serial.print(cm);//Пишем в консоль результаты заклинания
Serial.println();
sensor=cm;
if (PreparingToFlush==0){
if (sensor < 100){ //Если засекли цель
delay(1000); // Ждём
sample1=cm; //Берем пробы для усреднения
Serial.println("Sensing");
delay(300);
sample2=cm;
delay(300);
sample3=cm;
delay(400);
sample4=cm;
sensor= (sample1 + sample2 + sample3 + sample4)/4; //и усредняемся
if (sensor < 100){ // Убеждаемся что цель на месте
PreparingToFlush=1;
Serial.println(sensor);
}
}
}
if (PreparingToFlush==1){ //Если цель была засечена
if (sensor > 100){ // и если цель ушла
servo.attach(14); // Указываем что сервопривод висит на 2-м пине
if (sensor > 100){
Serial.println("I show you how deep the rabbit-hole goes...");
servo.write(175); //Смываем
delay(9000);
servo.write(0);
delay(1000);
PreparingToFlush=0; //Сбрасываем тригер
servo.detach();
}
}
}
// Удостоверямся что подключены к WiFi
WiFiClient client = server.available();
if (!client) {return;}
//Ждем когда клиент что-нибудь пришлет
while(!client.available()){delay(1);}
// Читаем запрос
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Возвращаем ответ
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("FLUSH");
client.println("<br><br>");
client.println("Click <a href=\"/FLUSH=ON\">here</a> to FLUSH <br>");
client.println("</html>");
if (request.indexOf("/FLUSH=ON") != -1) {
servo.attach(14); // Указываем что сервопривод висит на 2-м пине
Serial.println("I show you how deep the rabbit-hole goes...");
servo.write(175); //Смываем
delay(9000);
servo.write(0);
delay(1000);
PreparingToFlush=0; //Сбрасываем тригер
servo.detach();
}
delay(1);
}
По запросу в гугле " Активатор для багажника " вылезет куча картинок.Те что с двигателем внутри ,требуют переполюсовки питания.Есть просто на базе электромагнита.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei писал(а):По запросу в гугле " Активатор для багажника " вылезет куча картинок.Те что с двигателем внутри ,требуют переполюсовки питания.Есть просто на базе электромагнита.
Спасибо, теперь понял. Что то думается наверное электромагнитный в данном случае будет поинтереснее?