ESPEasy
Модератор: immortal
-
- Сообщения: 74
- Зарегистрирован: Вт дек 31, 2013 2:03 pm
- Откуда: Самара
- Благодарил (а): 25 раз
- Поблагодарили: 5 раз
ESPEasy
поиском по форуму не нашел..
Есть у кого опыт интеграции этого проекта в МД?
Вроде неплохая универсальная альтернативная прошивка.
ЗЫ Для быстрого старта. После прошивки создает точку доступа "ESP_0", пароль на нее: configesp
после чего идем по адресу http://192.168.4.1, забиваем параметры домашнего вай-фай, появится ссылка на страницу конфигурации...
Есть у кого опыт интеграции этого проекта в МД?
Вроде неплохая универсальная альтернативная прошивка.
ЗЫ Для быстрого старта. После прошивки создает точку доступа "ESP_0", пароль на нее: configesp
после чего идем по адресу http://192.168.4.1, забиваем параметры домашнего вай-фай, появится ссылка на страницу конфигурации...
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: ESPEasy
А эта чем хуже? http://homes-smart.ru/
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
-
- Сообщения: 113
- Зарегистрирован: Вт янв 28, 2014 5:33 pm
- Благодарил (а): 1 раз
- Поблагодарили: 6 раз
Re: ESPEasy
А чем она лучше? Закрытая, свое особо не добавишьAmarok писал(а):А эта чем хуже? http://homes-smart.ru/
А ESPEasy - может где то в чем то меньше, но доложить что хош можно.
В общем каждому свое.
-
- Сообщения: 181
- Зарегистрирован: Пт апр 04, 2014 10:17 pm
- Благодарил (а): 37 раз
- Поблагодарили: 54 раза
Re: ESPEasy
Хорошая штука, на первый взгляд к МЖД можно через MQTT.
А чуть сложнее просто в код вставить такую же ссылку на запуск скрипта как и у homes-smart.ru
А чуть сложнее просто в код вставить такую же ссылку на запуск скрипта как и у homes-smart.ru
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: ESPEasy
Как вариант свою прошивку накатать на Arduino IDE для ESP.
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: ESPEasy
100р - дорого? один вечер пиво не попитьPooh писал(а):платнаяAmarok писал(а):А эта чем хуже? http://homes-smart.ru/
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
-
- Сообщения: 181
- Зарегистрирован: Пт апр 04, 2014 10:17 pm
- Благодарил (а): 37 раз
- Поблагодарили: 54 раза
Re: ESPEasy
Amarok - это когда ты одну бутылку пьешь, а я уже ящик купил *) Конечно это не дорого и есть поддержка от автора за эти деньги, но если есть бесплатно и с возможностью настроить под себя и еще есть желание, то почему бы не попробовать ?
Я с homes-smart боролся, у нее есть функции включение GPIO по датчику движения, захожу в туалет свет загорелся, на сервер пришло сообщение - "кто то в туалете", все отлично, НО после заданного времени в поле GPIO Time Key - свет выключается, и есть ли движение в данный момент или нет, не важно, выключился и через секунду загорелось, то есть в самой прошивке не заложен перезапуск таймера по движению и это дико раздражало, особенно когда такая же копия перебралась в ванну, стоишь в ванне и свет потух ... Потом надоело и разобрался в прошивке через ARduino IDE, как оказалось? там все очень просто и за вечер написал код, который нужен именно мне и именно для этой комнаты.
Вот поэтому и нет счастья за 100 рублей, хоть и офигенная, и главное, стабильная прошивка
Я с homes-smart боролся, у нее есть функции включение GPIO по датчику движения, захожу в туалет свет загорелся, на сервер пришло сообщение - "кто то в туалете", все отлично, НО после заданного времени в поле GPIO Time Key - свет выключается, и есть ли движение в данный момент или нет, не важно, выключился и через секунду загорелось, то есть в самой прошивке не заложен перезапуск таймера по движению и это дико раздражало, особенно когда такая же копия перебралась в ванну, стоишь в ванне и свет потух ... Потом надоело и разобрался в прошивке через ARduino IDE, как оказалось? там все очень просто и за вечер написал код, который нужен именно мне и именно для этой комнаты.
Вот поэтому и нет счастья за 100 рублей, хоть и офигенная, и главное, стабильная прошивка
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: ESPEasy
А я совсем не пью)))devoff писал(а):Amarok - это когда ты одну бутылку пьешь, а я уже ящик купил *)
Поделись?devoff писал(а):разобрался в прошивке через ARduino IDE, как оказалось? там все очень просто и за вечер написал код, который нужен именно мне и именно для этой комнаты.
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
-
- Сообщения: 181
- Зарегистрирован: Пт апр 04, 2014 10:17 pm
- Благодарил (а): 37 раз
- Поблагодарили: 54 раза
Re: ESPEasy
причесать бы его, но посмотри, я думаю разберешься, я планировал отдельную тему по нему и уже для нее сделать нормальный код.
в мжд используем тот же скрипт, что и homes-smart, в объект приходят данные
relay = 0\1 - включен или выключен свет
pirOn = 0\1 - сработал датчик движения
pirauto = 0\1 - включен ли свет по датчику движения или можно зафиксировать включения отправив - http://адрес/?gpio=1 (?gpio=0 включен автосвет)
как то так.
СпойлерПоказать
Код: Выделить всё
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
//#include <ESP8266mDNS.h>
#define relayPin 12 //
#define DIGITAL_INPUT_SENSOR 2 // датчик движения
const char* ssid = "wifi";
const char* password = "pass";
const char* host = "192.168.1.10";
ESP8266WebServer server(80);
int pirauto = 1;
int pirOn = 1;
int relay;
//Время, в которое был принят сигнал отсутствия движения(LOW)
long unsigned int lowIn;
long unsigned int timer;
long unsigned int sendpause = 15*60000;
//Пауза, после которой движение считается оконченным
long unsigned int pause = 60000;
boolean lockLow = true;
boolean takeLowTime;
void status() {
String message = "Server Status\n\n";
message += "(p) Auto Dimmer: ";
message += pirauto;
message += "\nPirSensor: ";
message += (digitalRead(DIGITAL_INPUT_SENSOR));
message += "\nUpTime: ";
message += (millis()/1000/60);
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(200, "text/plain", message);
}
void setup(void) {
WiFi.mode (WIFI_STA);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, 1);
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.print("Chip ID: ");
Serial.println(ESP.getChipId());
// if (MDNS.begin("esp8266")) {
// Serial.println("MDNS responder started");
// }
//server.on("/", handleRoot);
server.on("/inline", []() {
server.send(200, "text/plain", "this works as well");
});
server.on("/", []() {
// server args for state
if (server.arg("p") != "") {
if (server.arg("p") == "1" || server.arg("p") == "on" || server.arg("p") == "true") {
pirauto = 1;
sendData();
}
else if (server.arg("p") == "t") {
// updateState(!state);
}
else {
pirauto = 0;
sendData();
}}
if (server.arg("gpio") != "") {
if (server.arg("gpio") == "1" || server.arg("gpio") == "on" || server.arg("gpio") == "true") {
digitalWrite(relayPin, HIGH);
pirauto = 0;
sendData();
}
else {
digitalWrite(relayPin, LOW);
pirauto = 1;
sendData();
}}
status();
server.send(200, "text/plain", "ok");
});
server.begin();
Serial.println("HTTP server started");
}
void loop(void) {
server.handleClient();
if (pirauto) {pirAUTO(); }
sendtimer () ;
}
void pirAUTO()
{
//Если обнаружено движение
if(digitalRead(DIGITAL_INPUT_SENSOR) == HIGH && pirauto == 1)
{
//Если до этого момента еще не включили реле
if(lockLow)
{
lockLow = false;
//Включаем реле.
//!ВНИМАНИЕ! При использовании n-p-n реле необходимо в след. строчке поменять LOW на HIGH
digitalWrite(relayPin, HIGH);
relay = 1;
pirOn = 1;
delay(50);
sendData ();
}
takeLowTime = true;
}
//Ели движения нет
if(digitalRead(DIGITAL_INPUT_SENSOR) == LOW && pirauto == 1)
{
//Если время окончания движения еще не записано
if(takeLowTime)
{
lowIn = millis(); //Сохраним время окончания движения
takeLowTime = false; //Изменим значения флага, чтобы больше не брать время, пока не будет нового движения
}
//Если время без движение превышает паузу => движение окончено
if(!lockLow && millis() - lowIn > pause)
{
//Изменяем значение флага, чтобы эта часть кода исполнилась лишь раз, до нового движения
lockLow = true;
digitalWrite(relayPin, LOW);
relay = 0;
pirOn = 0;
delay(50);
sendData ();
}
}
}
void sendtimer () {
if(millis() - timer > sendpause)
{
sendData();
timer = millis();
}
}
void sendData () {
Serial.print("connecting to ");
Serial.println(host);
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
// We now create a URI for the request http://192.168.1.10/objects/?script=espdata
String url = "/objects/?script=espdata&idesp=";
url += "ESP826600a55001";
url += "&pirOn=";
url += pirOn;
url += "&pirauto=";
url += pirauto;
url += "&relay=";
url += relay;
Serial.print("Requesting URL: ");
Serial.println(url);
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}
relay = 0\1 - включен или выключен свет
pirOn = 0\1 - сработал датчик движения
pirauto = 0\1 - включен ли свет по датчику движения или можно зафиксировать включения отправив - http://адрес/?gpio=1 (?gpio=0 включен автосвет)
как то так.
Последний раз редактировалось devoff Вс апр 24, 2016 11:31 am, всего редактировалось 1 раз.
- За это сообщение автора devoff поблагодарили (всего 4):
- Amarok (Вс апр 24, 2016 12:11 pm) • Pooh (Пн апр 25, 2016 4:27 pm) • samum (Пт ноя 18, 2016 2:13 pm) • Strangeman (Пт мар 15, 2019 6:41 pm)
- Рейтинг: 4.65%