Честно говоря, не знаю, т к заказывал комплект и установку. В документации это не указано... Там для пользователей, на какую кнопку нажать. Но единственное, что могу сказать, использовал экранированный кабель. А как тут избежать помех при проводном соединении? Экранированный кабель поможет? На расстоянии будут находится датчики, насос и кран, а все остальное будет не дальше, чем может быть бредборд.
Закладываете проводную шину, вроде CAN, modbus или ethernet. Реле на месте подключаем прямо к датчику через простейший таймер. Сигнал по шине. Аналогично, но без таймера. Для этого существуют готовые копеечные фотореле. Самодельные автономные датчики на attiny44 + nrf24 + поклейка фольги на стекло. Питание от пары пальчиковых батареек. Самое сложное.
Не круто. Где-то здесь есть правильный проект управления теплицей - там и полив и наполнение бочки и открывание форточек - все только по СМС. Вот на что надо равняться! Разве МК чтобы принимать решения? Он чтобы делать жизнь крутой и сложной!
Код (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"); } } } } Насчёт этого что скажите? Хотелки пока уменьшились в связи с уменьшением бюджета. Остались следующие цели: освещение, утечка воды(перекрытие + смс), очистная станция(превышение уровня=>смс + возможность проверить уровень отправкой смс) Может быть есть какие-то рекомендации по подключениям или коду?
https://github.com/amperka/gprs-shield И ещё, будет ли эта библиотека работать не с шилдом от амперки?
Добрый вечер, ребята! Скажите что насколько возможно подключить умный дом своими руками? А то уже кучу форумов обсмотрела, но дельного совета так и не услышала или стоит это все делать под ключ? вот нашла сайт вроде нормальный, что скажите? http://proumnyjdom.ru/umnyj-dom/sistema-svoimi-rukami.html Или что то другое может подскажите?
Сделать умный дом своими руками вполне возможно, но сложно. Рекомендую платформу iskra js, т.к. она более дружелюбна к новичкам. Сразу скажу, что это не дёшево. Тут же и плата нужна, и датчики, и сервоприводы, и вай-фай, и GPRS (если хотите чтобы дом писал вам смс).
Имхо, под такие задачи нужно делать интегрированное решение. Ардуино, шилды и модули - только для проверки отдельных идей на коленке, но не для фактического конструирования системы на них. На объект нужно ставить специально предназначенное для этого железо.
Заходите https://www.sec-group.ru/ops/smart-home/ и смотрите, какие датчики есть, реле или комплекты и т.д. Можно собрать этот самый умный дом по своим запросам.
Это хорошо только если программировать не хочется. Ну а умный дом своими руками всегда можно переделать