esp8266 + AMS + MajorDoMo - ПЕРВЫЕ ШАГИ
Добавлено: Пт июл 06, 2018 8:42 am
Многоуважаемые форумчане, будьте добры подсказать последовательные шаги для передачи данных от esp8266 к AMS,а с AMS к MajorDoMo. На данный момент есть esp с подключенными датчиками: датчик дождя(использовать ка датчик протечки который в случаи протечки подаст сигнал на светодиод),датчик температуры DS18B20(использовать для определения фактической температуры на улице),датчик движения (использовать для обнаружения движения,который подает сигнал на мосфет транзистор для включения светодиодной ленты 12в). Имеется скетч для обработки этих датчиков. Подскажите последовательные шаги что мне делать дальше для отображения всего моего хозяйства в 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 = "****"; //Название сети
const char* password = "*****"; //пароль
WiFiClient espClient; //инициализация WiFi клиента
void setup(){
Serial.begin(9600);
Serial.println("DS18B20");
WiFi.begin(ssid, password); //подключаемся к WiFi
pinMode(pirPin, INPUT); //настариваем 12 пин как вход для сигналов с датчика
pinMode(fadePin, OUTPUT);// 5 пин на выход, для управления транзисотором
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)); // получаем температуру и печатаем
}