Умный дом

Тема в разделе "Посоветуйте детальки", создана пользователем Flash, 31 май 2017.

  1. Flash

    Flash Нуб

    Честно говоря, не знаю, т к заказывал комплект и установку. В документации это не указано... Там для пользователей, на какую кнопку нажать. Но единственное, что могу сказать, использовал экранированный кабель. А как тут избежать помех при проводном соединении? Экранированный кабель поможет? На расстоянии будут находится датчики, насос и кран, а все остальное будет не дальше, чем может быть бредборд.
     
  2. ИгорьК

    ИгорьК Победитель модулей

    Экранированный поможет, но не гарантирует.
     
  3. rkit

    rkit Гуру

    Закладываете проводную шину, вроде CAN, modbus или ethernet.

    Реле на месте подключаем прямо к датчику через простейший таймер. Сигнал по шине.

    Аналогично, но без таймера.

    Для этого существуют готовые копеечные фотореле.

    Самодельные автономные датчики на attiny44 + nrf24 + поклейка фольги на стекло. Питание от пары пальчиковых батареек. Самое сложное.
     
    sys нравится это.
  4. ИгорьК

    ИгорьК Победитель модулей

    Не круто. Где-то здесь есть правильный проект управления теплицей - там и полив и наполнение бочки и открывание форточек - все только по СМС. Вот на что надо равняться!
    Разве МК чтобы принимать решения? Он чтобы делать жизнь крутой и сложной!
     
  5. Flash

    Flash Нуб

    Код (C++):
    #include <GPRS_Shield_Arduino.h>
    #include <sim900.h>
    #include <SoftwareSerial.h>

    #define LIGHTNESS_PIN A5//Пин, к которому подключен датчик освещенности
    #define LIGHT_PIN 9//Пин, к которому подключено реле для уличного освещения
    #define WATER_CONTROL_PIN 8//Пин, к которому подключен датчик утечки
    #define CRANE_PIN  12//Пин, к которому подключено реле для крана
    #define STATION_PIN 13//Пин, к которому подключен дачтик уровня воды
    //Пины 2 и 3 используются для соединения gsm модуля с arduino
    bool waterOut;//Переменная для фиксации утечки
    bool waterMessageWasSend = false;//Переменная для фиксации отправки смс об утечке
    bool waterWasOut = false;//Переменная для защиты от отключения крана
    bool MuchWater = false;//Переменная для фиксации переполнения очистной станции
    bool stationMessageWasSend = false;//Переменная для фиксации отправки смс о переполнении очистной станции
    char phone[12];
    char message[50];
    char datatime[16];

    SoftwareSerial mySerial(10, 11);
    GPRS gprs(mySerial);


    void setup() {
      Serial.begin(9600);
      mySerial.begin(9600);
      while (!Serial) {}
      gprs.powerOn();
      while (!gprs.init())
      {
        delay(1000);
      }
      Serial.println("Connected!!!");
      pinMode(LIGHTNESS_PIN, INPUT);//Датчик освещенности
      pinMode(LIGHT_PIN, OUTPUT);//Реле для включения света
      pinMode(WATER_CONTROL_PIN, INPUT);//Фиксация утечки
      pinMode(CRANE_PIN, OUTPUT);//Реле для перекрытия водопровода
      pinMode(STATION_PIN,INPUT);//Датчик уровня воды в станции
    }



    void loop() {
      int lightness = analogRead(LIGHTNESS_PIN); //Считываем яркость
      Serial.print("Osveshonnost = ");
      Serial.println(lightness);
      if (lightness < 500) //Если темно..
      {
        digitalWrite(LIGHT_PIN, HIGH);//Включаем свет
      }
      else
      {
        digitalWrite(LIGHT_PIN, LOW); //Иначе выключаем свет
      }

      waterOut = digitalRead(WATER_CONTROL_PIN);//Считываем датчик утечки
      Serial.print("Utechka = ");
      Serial.println(waterOut);
      if (waterOut == true) waterWasOut = true;//Если утека есть, то она была(необходимо для того, чтобы кран не открылся после высыхания датчика)
      if (waterWasOut == true)//Если утечка есть или она была, то..
      {
        if (waterMessageWasSend == true)//Если смс об утечки было отправлено ранее, то..
        {
          digitalWrite(CRANE_PIN, HIGH);//Только удерживаем кран закрытым
        }
        else
        {
          gprs.sendSMS("+79999999999", "UTECHKA VODI");
          waterMessageWasSend = true;//Фиксируем отправку
          digitalWrite(CRANE_PIN, HIGH);//И удерживаем кран закрытым
        }
      }
      else
      {
        digitalWrite(CRANE_PIN, LOW);//Иначе(если утечки нет и не было) держим кран открытым
      }


      MuchWater = digitalRead(STATION_PIN);//Проверяем есть ли переполнение очистной станции
      Serial.print("Sostouanie stantcii ");
      Serial.println(MuchWater);
      if (MuchWater == true && stationMessageWasSend == false)//Если есть переполнение и смс о переполнеии НЕ отправлено то...

      {
        gprs.sendSMS("+79999999999", "PEREPOLNENIE STANTCII");
        stationMessageWasSend = true;//И фиксируем отправку смс
      }
      if (gprs.ifSMSNow())
      {
        gprs.readSMS(message, phone, datatime);
        if (phone == "+79999999999" && message == "Uroven vodi")
        {
          if (MuchWater == true)
          {
            gprs.sendSMS("+79999999999", "PEREPOLNENIE");
          }
          else
          {
            gprs.sendSMS("+79999999999", "NORMA");
          }
        }
      }
    }
     
    Насчёт этого что скажите? Хотелки пока уменьшились в связи с уменьшением бюджета. Остались следующие цели: освещение, утечка воды(перекрытие + смс), очистная станция(превышение уровня=>смс + возможность проверить уровень отправкой смс) Может быть есть какие-то рекомендации по подключениям или коду?
     

    Вложения:

    • Схема.png
      Схема.png
      Размер файла:
      214,6 КБ
      Просмотров:
      21
  6. Flash

    Flash Нуб

  7. vittoria1992

    vittoria1992 Нуб

    Добрый вечер, ребята! Скажите что насколько возможно подключить умный дом своими руками? А то уже кучу форумов обсмотрела, но дельного совета так и не услышала или стоит это все делать под ключ?
    вот нашла сайт вроде нормальный, что скажите? http://proumnyjdom.ru/umnyj-dom/sistema-svoimi-rukami.html
    Или что то другое может подскажите?
     
  8. null

    null Нерд

    Сделать умный дом своими руками вполне возможно, но сложно. Рекомендую платформу iskra js, т.к. она более дружелюбна к новичкам. Сразу скажу, что это не дёшево. Тут же и плата нужна, и датчики, и сервоприводы, и вай-фай, и GPRS (если хотите чтобы дом писал вам смс).
     
  9. Unixon

    Unixon Оракул

    Имхо, под такие задачи нужно делать интегрированное решение. Ардуино, шилды и модули - только для проверки отдельных идей на коленке, но не для фактического конструирования системы на них. На объект нужно ставить специально предназначенное для этого железо.