Re: esp8266 + AMS + MajorDoMo - ПЕРВЫЕ ШАГИ
Добавлено: Вс июл 15, 2018 6:18 pm
Может новичкам вроде меня поможетКод: Выделить всё
/* Modul PIRs part of Arduino Mega Server project */ #ifdef PIRS_FEATURE // pins #define fadePin 5 #define pir1pin 12 // KUH // states int pir1state = LOW; int pir1= 0; // init void pirsInit() { pinMode(pir1pin, INPUT); pinMode(fadePin, OUTPUT); modulPirs = MODUL_ENABLE; started("PIR's"); } void detect(char s[]) { #ifdef EVENTS_PIRS timeStamp(); Serial.print("Detect motion "); Serial.println(s); #endif } void endMmotion(char s[]) { #ifdef EVENTS_PIRS timeStamp(); Serial.print("End motion "); Serial.println(s); #endif } // works void pirsWorks() { // pir1 (KUH) pir4 = digitalRead(pir1pin); if (pir1== HIGH) { if (pir1state == LOW) { detect("KUH"); for(int i=0; i<=150; i++) //то плавно включаем свет { analogWrite(fadePin, i); delay(100); //каждые 10мс увелияение на 1 } pir1state = HIGH; } #ifdef MAJORDOMO_FEATURE sendRequestM("pirKUH", 1); #endif } else { if (pir1state == HIGH){ endMmotion("KUH"); for(int i=150; i>=0; i--)//плавно гасим его { analogWrite(fadePin, i); delay(100); } pir1state = LOW; #ifdef MAJORDOMO_FEATURE sendRequestM("pirKUH", 0); #endif } } } // pirsWorks() #endif // PIRS_FEATURE
Просто мы пытаемся найти правильное универсальное решение. Обычно это долго , зато очень красиво получается )).
А вот про это можно поподробнее ? Что на каком пине сидит и как управляется?но зато получилось заставить работать встроенную вкладку пирс, мосфет плавно включается и выключается по датчику движения на время которое задается на самом датчике
пока не проверил,но скетч удачно залился! Пин на котором сидит dryLED не использую ,из-за нехватки пинов(если подключаю к 0 или 2 пину, есп уходит на постоянную перезагрузку. Теперь осталось КАК ТО отправить состояние пина 14 в МЖД для оповещения Алисой и тогда первое устройство будет готово)Код: Выделить всё
#ifdef Rain_FEATURE int rainSensor = A0; int rainLED = 14; int dryLED = 4; int sensorVal; int sensortrigger = 250; void RainInit() { pinMode(rainSensor, INPUT); pinMode(rainLED, OUTPUT); pinMode(dryLED, OUTPUT); digitalWrite(rainLED, LOW); digitalWrite(dryLED, LOW); //sensors.begin(); modulRain = MODUL_ENABLE; started("Rain"); } void detect1(char s[]) { #ifdef EVENTS_Rain timeStamp(); Serial.print("Water Detected!"); Serial.println(s); #endif } void endMmotion1(char s[]) { #ifdef EVENTS_Rain timeStamp(); Serial.print("No Water Detected!"); Serial.println(s); #endif } void RainWorks() { sensorVal = analogRead(rainSensor); Serial.print(sensorVal); if(sensorVal < sensortrigger){ digitalWrite(dryLED, LOW); digitalWrite(rainLED, HIGH); #ifdef MAJORDOMO_FEATURE sendRequestM("rainKUH", 1); #endif } else { digitalWrite(rainLED, LOW); digitalWrite(dryLED, HIGH); #ifdef MAJORDOMO_FEATURE sendRequestM("rainKUH", 0); #endif } delay(750); } #endif // Rain_FEATURE