нужна помощь: esp8266 подключение к MajorDoMo
Модератор: immortal
-
- Сообщения: 66
- Зарегистрирован: Ср апр 26, 2017 10:21 pm
- Благодарил (а): 19 раз
- Поблагодарили: 1 раз
Re: нужна помощь: esp8266 подключение к MajorDoMo
я же наверно могу вложить свой скетч в имеющиеся вкладки скетчей ,они будут передавать данные амс ,а она будет так же отправлять в мажордомо
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: нужна помощь: esp8266 подключение к MajorDoMo
Твоя тема - выкладывай свой код сюда. А мы уже подумаем что проще. Собственно в AMS есть датчики температуры, два контактных и ПИР датчики.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: нужна помощь: esp8266 подключение к MajorDoMo
Так в AMS всё это реализовано из коробки. Ключ (MOSFET) то же есть. Только надо дописать отправку состояние реле.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 66
- Зарегистрирован: Ср апр 26, 2017 10:21 pm
- Благодарил (а): 19 раз
- Поблагодарили: 1 раз
Re: нужна помощь: esp8266 подключение к MajorDoMo
я же начинающий ардуинщик пытаюсь сам вникнуть во все процессы)))вот начал осваивать МЖД ,купил выключатели на радио,вот подсветку,и так потихоньку со вех скетчей внедряю в один, видел в видео в сети)), а так что я пытаюсь,создать
н-ное кол-во устройств имеющие некоторые сенсоры,и передача все в МЖД,уж очень не понравился этот сервис
н-ное кол-во устройств имеющие некоторые сенсоры,и передача все в МЖД,уж очень не понравился этот сервис
-
- Сообщения: 66
- Зарегистрирован: Ср апр 26, 2017 10:21 pm
- Благодарил (а): 19 раз
- Поблагодарили: 1 раз
Re: нужна помощь: esp8266 подключение к MajorDoMo
СпойлерПоказать
#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_PIN 13 // номер пина для 1-wire линии
#define fadePin 5 //пин управления MOSFET транзистором
OneWire ds(ONE_WIRE_PIN); // создаем объект ds для работы с датчиком
DallasTemperature sensors(&ds); // передаем ссылку на ds в объект sensors, через который будем управлять датчиком
int pirPin = 12; //пин подключения управляющего сигнала PIR датчика
int light; //переменная для хранения состояния света (вкл/выкл)
int rainSensor = A0;
int rainLED = 14;
int dryLED = 4;
int sensorVal;
int sensortrigger = 250;
const char* ssid = "ASUS dom"; //Название сети
const char* password = "333444555"; //пароль
WiFiClient espClient; //инициализация WiFi клиента
void setup(){
Serial.begin(9600);
Serial.println("DS18B20");
WiFi.begin(ssid, password); //подключаемся к WiFi
pinMode(pirPin, INPUT); //настариваем 2 пин как вход для сигналов с датчика
pinMode(fadePin, OUTPUT);// 3 пин на выход, для управления транзисотором
pinMode(rainSensor, INPUT);
pinMode(rainLED, OUTPUT);
pinMode(dryLED, OUTPUT);
digitalWrite(rainLED, LOW);
digitalWrite(dryLED, LOW);
light = 0; //устанаваливаем переменную для первого включения света
sensors.begin();
}
void loop(){
if(digitalRead(pirPin) == HIGH ) //если сигнал с датчика высокого уровня(т.е. есть движение)
{
if(light == 0) //и если свет не был включен
{
for(int i=0; i<=150; i++) //то плавно включаем свет
{
analogWrite(fadePin, i);
delay(100); //каждые 10мс увелияение на 1
}
light = 1; //и передаем значение переменной, что свет включен
}
}
else //иначе
{
if(light == 1) //если свет включен
{
for(int i=150; i>=0; i--)//плавно гасим его
{
analogWrite(fadePin, i);
delay(100);
}
light = 0; //и передаем значение переменной, что свет выключен
}
}
int sensorVal = analogRead(rainSensor);
Serial.print(sensorVal);
if(sensorVal < sensortrigger){
Serial.println("Water Detected!");
digitalWrite(dryLED, LOW);
digitalWrite(rainLED, HIGH);
}
else {
Serial.println("No Water Detected!");
digitalWrite(rainLED, LOW);
digitalWrite(dryLED, HIGH);
}
delay(750);
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // запрос на получение данных
Serial.println("DONE");
Serial.print("Temperature for Device 1 is: ");
Serial.print(sensors.getTempCByIndex(0)); // получаем температуру и печатаем
}
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_PIN 13 // номер пина для 1-wire линии
#define fadePin 5 //пин управления MOSFET транзистором
OneWire ds(ONE_WIRE_PIN); // создаем объект ds для работы с датчиком
DallasTemperature sensors(&ds); // передаем ссылку на ds в объект sensors, через который будем управлять датчиком
int pirPin = 12; //пин подключения управляющего сигнала PIR датчика
int light; //переменная для хранения состояния света (вкл/выкл)
int rainSensor = A0;
int rainLED = 14;
int dryLED = 4;
int sensorVal;
int sensortrigger = 250;
const char* ssid = "ASUS dom"; //Название сети
const char* password = "333444555"; //пароль
WiFiClient espClient; //инициализация WiFi клиента
void setup(){
Serial.begin(9600);
Serial.println("DS18B20");
WiFi.begin(ssid, password); //подключаемся к WiFi
pinMode(pirPin, INPUT); //настариваем 2 пин как вход для сигналов с датчика
pinMode(fadePin, OUTPUT);// 3 пин на выход, для управления транзисотором
pinMode(rainSensor, INPUT);
pinMode(rainLED, OUTPUT);
pinMode(dryLED, OUTPUT);
digitalWrite(rainLED, LOW);
digitalWrite(dryLED, LOW);
light = 0; //устанаваливаем переменную для первого включения света
sensors.begin();
}
void loop(){
if(digitalRead(pirPin) == HIGH ) //если сигнал с датчика высокого уровня(т.е. есть движение)
{
if(light == 0) //и если свет не был включен
{
for(int i=0; i<=150; i++) //то плавно включаем свет
{
analogWrite(fadePin, i);
delay(100); //каждые 10мс увелияение на 1
}
light = 1; //и передаем значение переменной, что свет включен
}
}
else //иначе
{
if(light == 1) //если свет включен
{
for(int i=150; i>=0; i--)//плавно гасим его
{
analogWrite(fadePin, i);
delay(100);
}
light = 0; //и передаем значение переменной, что свет выключен
}
}
int sensorVal = analogRead(rainSensor);
Serial.print(sensorVal);
if(sensorVal < sensortrigger){
Serial.println("Water Detected!");
digitalWrite(dryLED, LOW);
digitalWrite(rainLED, HIGH);
}
else {
Serial.println("No Water Detected!");
digitalWrite(rainLED, LOW);
digitalWrite(dryLED, HIGH);
}
delay(750);
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // запрос на получение данных
Serial.println("DONE");
Serial.print("Temperature for Device 1 is: ");
Serial.print(sensors.getTempCByIndex(0)); // получаем температуру и печатаем
}
Последний раз редактировалось sarstab Пн июл 02, 2018 10:44 pm, всего редактировалось 2 раза.
-
- Сообщения: 66
- Зарегистрирован: Ср апр 26, 2017 10:21 pm
- Благодарил (а): 19 раз
- Поблагодарили: 1 раз
Re: нужна помощь: esp8266 подключение к MajorDoMo
я же так понимаю что в амс я в определенных сетчах могу создавать любые условия из своего скечта?я так думаю я могу использовать амс как промежуточное звено соединение со средой МЖД.
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: нужна помощь: esp8266 подключение к MajorDoMo
Конечно можно добавить любой свой функционал.
В Вашем скетче идет просто обработка событий. Никакого веба.
AMS - это тот же Ваш скетч. Он сам делает то же самое и отдает состояние в МД. Помимо всего прочего там появляется и великолепный веб.
В скетч попробую добавить отправку.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 66
- Зарегистрирован: Ср апр 26, 2017 10:21 pm
- Благодарил (а): 19 раз
- Поблагодарили: 1 раз
Re: нужна помощь: esp8266 подключение к MajorDoMo
я попробовал и добавить в этот код переменные из того примера который ты давал Сергей ,для отправки данных .не компилируется