Система "Умный дом" для загородного дома на Arduino Mega2560, HC-05, SIM900,DHT11,3-х DS18B20,RTC-DS1302

ToteMeiSter
Offline
Зарегистрирован: 01.04.2015

Да хорош, ставить МК в комнате это гуд, а вот реле которые будут противно щелкать ночью это прям кайф.

Про датчики никто вообще не писал.

Да и топик стартер вообще-то не об этом всем тему завел. Хватит уводить в сторону.

alex_r61
Offline
Зарегистрирован: 20.06.2012

У меня первый проект с RS485 работает несколько лет. Сейчас центральный МК отключен, но комнатные продолжают работать. Длина примерно 20 метров. Проблемы были только в начале, из за провода, не тот выбрал.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

кстати спасибо за идею, но для меня есть одно не очень понятное местечко, в общем ставлю центральный МК мегу у нее 4 порта сериал соединения, так вот можно ли подключить несколько комнатных МК к центральному на один сериал порт?  так как получается штук 6-8 нужно будет подключать , можно конеш использовать Softvareserial но еще разные мдули тоже жрут  порты

ну и конечно по поводу релюшек тоже заморочка но реле включает нагрузку , а из управляемых нагрузок в комнате это только свет, и перед сном выключить -один щелчек, а утром включить... в принципи не особая проблема

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

Baks пишет:
можно ли подключить несколько комнатных МК к центральному на один сериал порт?
Именно для этого и затевают RS485, до 32 устройств на один порт.

Baks пишет:
перед сном выключить -один щелчек, а утром включить... в принципи не особая проблема
Для гурманов SSR придумали.

ToteMeiSter
Offline
Зарегистрирован: 01.04.2015

Ну хорошо.

Вот у автора есть наработки по RS485 притом очень такие приличные.

Myremoter

#include "APP.h"
#include <math.h>
#include "ptx.h"
#include "ib.h"


#include <SPI.h>
void test();
  
#if EN_MBS
 #include "modbusRtu.h"
 #define MBID   1      // адрес ведомого
 //Задаём ведомому адрес, последовательный порт, выход управления TX
 Modbus slave(MBID, 0, 0);
 int8_t state = 0;
 unsigned long tempus; 
 // массив данных modbus
 uint16_t au16data[11];
#endif

//------------------------------------------------------------------------------------------
void setup(){
  pinMode(2, OUTPUT);     //выход для отладки
  digitalWrite(2, LOW); 
  pinMode(3, OUTPUT); 
 APP_init(); 
 
#if EN_MBS
 //slave.begin( 19200 );
 slave.begin( 9600 );
#endif //EN_MBS
}

//------------------------------------------------------------------------------------------
void loop(){
  RF_poll();
  mb_poll(); 
  if (TIM_1S()){
    RF_send_nb();
    test();
  }  
}

//------------------------------------------------------------------------------------------
void mb_poll(){
#if EN_MBS
  // обработка сообщений
  state = slave.poll( au16data, 11);
  // если получили пакет без ошибок - зажигаем светодиод на 50 мс 
  if (state > 4) {
    tempus = millis() + 50;
    PtX.digitalWrite(3, HIGH);
  }
    if (millis() > tempus) PtX.digitalWrite(3, LOW);// PORTEB &= ~(1<<3);
    //обновляем данные в регистрах Modbus и в пользовательской программе
    io_poll();
#endif //EN_MBS
}

//------------------------------------------------------------------------------------------
void io_poll() {
#if EN_MBS
  //Копируем Coil[1] в Discrete[0]
  au16data[0] = au16data[1];
   bitWrite( au16data[0], 0, ALM_digitalRead(0));
   bitWrite( au16data[0], 1, ALM_digitalRead(1));
   bitWrite( au16data[0], 2, ALM_digitalRead(2));
   bitWrite( au16data[0], 3, ALM_digitalRead(3));
   bitWrite( au16data[0], 4, ALM_digitalRead(4));
   bitWrite( au16data[0], 5, PtX.digitalRead(4));
   bitWrite( au16data[0], 6, PtX.digitalRead(5));
   bitWrite( au16data[0], 7, PtX.digitalRead(6));
   bitWrite( au16data[0], 8, PtX.digitalRead(7));
   
   bitWrite( au16data[0], 9, RF_digitalRead(4));
   bitWrite( au16data[0], 10, RF_digitalRead(5));
   bitWrite( au16data[0], 11, RF_digitalRead(6));
   bitWrite( au16data[0], 12, RF_digitalRead(7));
   
  //Выводим значение регистра 1.3 на светодиод 
   PtX.digitalWrite(0, bitRead( au16data[1], 0 ));
   PtX.digitalWrite(1, bitRead( au16data[1], 1 ));
   PtX.digitalWrite(2, bitRead( au16data[1], 2 ));
//   PtX.digitalWrite(3, bitRead( au16data[1], 3 ));
   RF_digitalWrite(0, bitRead( au16data[1], 4 ));
   RF_digitalWrite(1, bitRead( au16data[1], 5 ));
   RF_digitalWrite(2, bitRead( au16data[1], 6 ));
   RF_digitalWrite(3, bitRead( au16data[1], 7 ));

#if EN_IB
  au16data[2] =  IB_GetIntTemperature(1);
#endif  
#if EN_DHT
  au16data[3] =  DHT_getHumidity();
#endif 
#if EN_BMP085  
  au16data[4] =  BMP_getPressure() * 0.075;
  au16data[5] =  BMP_getTemperature();
#endif
  //Сохраняем в регистры отладочную информацию
  au16data[8] = slave.getInCnt();
  au16data[9] = slave.getOutCnt();
  au16data[10] = slave.getErrCnt();
#endif //EN_MBS  
}

//------------------------------------------------------------------------------------------
byte blinkcnt = 0;
void test(){

if (blinkcnt == 0){
  
#if EN_SERIAL 
 Serial.print("DS18B20 Temperature: ");  
 Serial.println(IB_getTemperature(1));
#endif //EN_SERIAL 

#if EN_DHT
  float h = DHT_getHumidity()/10;
  float t = DHT_getTemperature()/10;
#if EN_SERIAL  
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.println(" *C");
  }
#endif //EN_SERIAL 
 DHT_start(); 
#endif  

#if EN_BMP085  
  BMP_print();
  BMP_start();
#endif
} //

#if EN_BLINK
  // тест - мигалка на внешнем порту     
 switch (blinkcnt){
  case 0: PtX.PORTEB = ((0<<3)|(0<<2)|(0<<1)|(1<<0));
  break;
  case 1: PtX.PORTEB = ((0<<3)|(0<<2)|(1<<1)|(0<<0));
  break;
  case 2: PtX.PORTEB = ((0<<3)|(1<<2)|(0<<1)|(0<<0));
  break;
  case 3: PtX.PORTEB = ((1<<3)|(0<<2)|(0<<1)|(0<<0));        
  break;
 }
#endif 

#if EN_SERIAL  
 Serial.print("PINEB: ");
 Serial.println(PtX.PINEB, BIN);
#endif //EN_SERIAL 

if (++blinkcnt > 3) blinkcnt = 0;
}
//------------------------------------------------------------------------------------------

 

mic19154
Offline
Зарегистрирован: 30.10.2015

Мне кажется на rs 232 можно на один порт навесить сколько угодно МК,главное чтобы они понимали чего от них хотят.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Andy пишет:

MaksVV пишет:
Объясните причину, по которой работа по шине стабильнее, чем подключение, так сказать, по аналогу.

1.Какой из аналоговых датчиков предназначен для работы на линию 10-30 метров? Драйвер RS485 разработан для работы на линию до 1200 метров. Аналоговые сигналы нужно оцифровывать в месте их появления и передавать по цифровой линии.

2.Гальваническая развязка всего и вся от контроллера нужна или нет? Как делать гальваническую развязку аналоговых датчиков? Проще никак не делать, так ведь? Гальваническая развязка цифровой линии не проблема.

MaksVV пишет:
если шина падает или глючит, не работает всё. А так только отдельные элементы.
3.Глючит шина - устройства работают автономно и сдыхание любого из них не сказывается фатально на работе всей системы. В твоей схеме: сдыхает контроллер - сдыхает весь дом...

4.Ты прокладываешь в разы больше проводов, экономя на копеечных контроллерах. Мелкий контроллер по цене 5 метров экранированной витой пары 5 категории. Так в чем фишка? В замене интеллектуального труда физическим?

5."Электроника - наука о контактах" (с)

всё это  справедливо наверное к ТС, где все на одной меге. а я конкретно про свет на втором этаже говорил. Собственно и собираюсь ставить локальный МК для этого (для света). Что мне теперь ещё возле каждого выключателя света и PIR датчика по дуне вешать? И сигналы от этих датчиков по сути цифровые -  0 или 1. 

Вопрос был в том чтобы сэкономить пины на МК и поменьше проводов. Хотелось завести все выключатели на один пин. Но для этого пришлось бы отказаться от многофункциональности каждого выключателя (длит. нажатие, дабл клик). Выбрал бОльшую функциональность. Можно конечно выключатели и ПИРы на 1-Wire повесить, но цена чето кусается. Один DS2406 500р. в магазине. На али 150р. И шина 1-wire то точно по надёжности уступит, и опрашивать устройста нужно будет очень часто. не факт что для выключателей это подойдет. + гемора в программировании и тестировании всего этого и как на 1-wire прикрутить  титановый велосипед для тактовой кнопки. Короче по проводам (читай каждый элемент на отдельный пин) в моём именно случае, имхо, быстрее, понятнее, надёжнее. 

ПС. Когда разберусь, может соединю МК для света с мегой на первом этаже через RS485 или просто по сериалу. 

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

MaksVV пишет:
Что мне теперь ещё возле каждого выключателя света и PIR датчика по дуне вешать?
Есть две крайности: систему делать на одном контроллере, собирая все провода в одно место и ставить контроллеры в каждую розетку/выключатель/датчик. Истина как всегда где-то посередине.

MaksVV пишет:
Собственно и собираюсь ставить локальный МК для этого (для света).
Разумно. Проработай схемы освещения во всех помещениях, добейся некоего единообразия, найди "общий знаменатель", выбери подходящий контроллер. Исходи из того, что бы большинство твоих хотелок исполнялись на контроллере автономно, в отрыве от центрального контроллера. Не бойся делить хотелки по функциональному принципу и ставить отдельный контроллер на выполнение именно этих функций. Например: освещение в помещении, управление жалюзи в помещении могут быть на двух разных контроллерах. На центральный контроллер возложи такие функции, как охранная сигнализация, WEB, SMS, RTC, имитация присутствия, управление всеми жалюзи, конфигурирование локальных контроллеров и т.п.

При таком раскладе система не ограничена выводами контроллера, развивается эволюционно, помещение за помещением.

vde69
Offline
Зарегистрирован: 10.01.2016

Автору большое спасибо!!! (кстати Вы мне кажется немного знакомым, работаете часом не в ИнформСвязь ???)

Асли автор будет не против пообсуждаю тут несколько альтернативную идеологию... (если будет против - уйду в другую ветку).

Краткая суть идеи такая:

1. Система управления должна состоять из полностью автономных и независимых модулей.

2. Каждый модуль легко может быть отключен (выключателем) и система будет функционировать без него по упрощенному или ручному режиму

3. Все модули умеют общатся друг с другом по единому протоколу и иметь универсальный программный интерфейс сопряжения.

 

как это будет выглядеть на примере:

1. Модуль "Климатическа станция" - назначение измерять температуру, давление, влажность, освещенность, все это дело хранить и уметь предсказывать погоду на 1-2 дня вперед, для предсказания погоды может обращатся к модулю "Интернет" и получать через него предсказания с погодных сайтов, далее их пргноз складывает с собственным и выдает данные... При отсутствии данных с модуля "Интернет" работат полностью автономно.

2. Модуль "Тепловой контроль" - предназначен для контроля передачи определенной мощности в несколько зон (можно по комнатам, можно по этажам и т.д.), сам не занимается оптимизацие режимов, это некий аналог "крутилки" на старых котлах но с функцией "не давать остыть ниже +10с", где можно ставить не температуру а условно %, может обращатся к модулю "Авто отопление" и получать от него требуемые можности для каждой зоны

3. модуль "Авто отопление" - это расчет и оптимизация отопления в зависимости от предсказаний "климатической станции", времени суток, наличие людей в доме и т.д.

и так далее...

большенство модулей будут выполнены в корпусах на DIN рейку и соедены RS485 с циклической передачей мастера, из плюсов такого подхода -

1. гибкость развития

2. простота отлаживания новых модулей

3. устойчивость от аварий (выход любого блока из строя не будет критично сказыватся на остальные системы)

 

кому интересно принять участие - пишите какие модули Вам интересны, я продумаю интерфейс взамодействия и выложу заготовку для RS485 с описанием нюансов... если проект будет интересен народу, можно будет "обмениватся" модулями, по идеи они будут полностью совместимы друг с другом вне зависимости от автора...

alex_r61
Offline
Зарегистрирован: 20.06.2012

vde69 лучше создайте свою тему, здесь человек описал свой проект и смысла вклиниваться нет. Тем более у Вас другое направление, а тема создана давно. Тоже пытаюсь сделать модульную систему, но здесь обсуждать нет смысла.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

vde69 пишет:

создавайте тему опишите что уже есть в наличае, буду рад пообщатся по вашему проекту, примерно такой  же собираюсь собирать и сам

abarmotovi4
Offline
Зарегистрирован: 07.02.2016

Увидел интересный вариант реализации web-интерфейса, может кому пригодится.

vde69
Offline
Зарегистрирован: 10.01.2016

abarmotovi4 пишет:

Увидел интересный вариант реализации web-интерфейса, может кому пригодится.

дебильный интерфейс.... Умный дом НЕ ДОЛЖЕН управлятся человеком, на то он и УМНЫЙ !!! он должен уметь сам собой управлять....

то что по ссылке - это автоматизация отдельных функций дома.... к УМНОМУ до это не имеет никакого отношения...

Идеал умного дома - один раз настроил и забыл...

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Здравствуте коеллеги по увлечению . 

Зарегистрировался чтоб поблагодарить автора за такой труд и за щедрость поделиться с другими, таких к сожалению не так много. 

Я только учесь работать с контролерами определенный опыт есть но в основном только в повторении

Хочу попробовать собрать себе такой дом 

Сейчас нужно провести проводку в новойстрое 1к  нужно заранее прикинуть что и куда 

Спасибо  Автору 

 

bengoor
Offline
Зарегистрирован: 27.08.2014

alexey_all пишет:

1) Меню управления функциями с урезанным русским языком. Пришлось писать с нуля свой класс, реализующий все необходимые мне возможности.

Не прошу полностью проект, а вот классом для руссификации 1602 не поделишься? А то я в этом направлении копал, так ничего толкового и не сделал.

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Прошу подсказать как правильно поступить, в новострое нужно кинуть проводку на будущее т.к. сейчас маловато денег на все и сразу. 

Сколько веток витой пары  рекомендуете?

И какого качества/ марки ? 

У меня есть тот который интерент тянут в квартирах но навряд ли он пододет 

Планирую в комнатах датчики движения, газа / дыма/ температуры, не критично( может один/ два в квартире) и протечки воды для ванной

Я думаю  темпереатуру на одну линию, а датчик газа дима  на другую  посадить, можно так ?

Движение на третью  

Заранее всем благодаен за любые советы !

Oleg_I
Offline
Зарегистрирован: 04.04.2016

ещё у меня в планах добавить електрозамок на RFID

Как думаете пробет рассточяние двери, если считыватель поместить за дверью?  толщина метала будет не меньше 2 мм исамой двери около 6 см

 знаю что считыватели пасивных меток тянут не более 8 см, из теории,  но как на практике не проверял 

Может есть идеи куда зашить считыватель, у меня есть идеи но нужно тестировать 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

купите бухту витой пары в двойной экранировке и кидайте везде, потом проще будет. На авито кабель можно по приемлимой цене найти. 

bengoor
Offline
Зарегистрирован: 27.08.2014

Oleg_I пишет:

ещё у меня в планах добавить електрозамок на RFID

Как думаете пробет рассточяние двери, если считыватель поместить за дверью?  толщина метала будет не меньше 2 мм исамой двери около 6 см

 знаю что считыватели пасивных меток тянут не более 8 см, из теории,  но как на практике не проверял 

Может есть идеи куда зашить считыватель, у меня есть идеи но нужно тестировать 

 

Считыватель RFID можно запихнуть в кнопку звонка. Продаются такие большие кнопки в которых места внутри полно.

http://leroymerlin.ru/catalogue/elektrotovary/zvonki_i_domofony/zvonki_i...

http://leroymerlin.ru/catalogue/elektrotovary/zvonki_i_domofony/zvonki_i...

Через дверь не думаю что пробьет

AndryLeon
Offline
Зарегистрирован: 17.12.2015

bengoor пишет:

Считыватель RFID можно запихнуть в кнопку звонка. Продаются такие большие кнопки в которых места внутри полно.

http://leroymerlin.ru/catalogue/elektrotovary/zvonki_i_domofony/zvonki_i...

http://leroymerlin.ru/catalogue/elektrotovary/zvonki_i_domofony/zvonki_i...

Через дверь не думаю что пробьет

Отличный Вариант! Спасибо за идею ;)

Oleg_I
Offline
Зарегистрирован: 04.04.2016

bengoor пишет:

 

Считыватель RFID можно запихнуть в кнопку звонка. Продаются такие большие кнопки в которых места внутри полно.

http://leroymerlin.ru/catalogue/elektrotovary/zvonki_i_domofony/zvonki_i...

http://leroymerlin.ru/catalogue/elektrotovary/zvonki_i_domofony/zvonki_i...

Через дверь не думаю что пробьет

Супер, спасибо огромное за вариант, а то у меня идеи по сложнее были 

 

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Ребята, подскажите пжл, если я буду прокладывать кабель витую пару рядом с силовыми кабелями которые будут идти на розетки, чреватоли это наводками и проблемами с датчиками  если витая будет все таки не экранировананя ?

Говорил со знакомим он говорит если длина витой пары до 10 метров то наводок не будет , так ли это ?

vde69
Offline
Зарегистрирован: 10.01.2016

если они будут обвиватся друг об друга - то помехи гарантированы... что-бы этого не было есть специальные желоба с разделителем, например http://c-its.ru/images/panduit/a0266_b.jpg

Oleg_I
Offline
Зарегистрирован: 04.04.2016

vde69, Спасибо 

планировал их просто в говфре проложить рядом 

Oleg_I
Offline
Зарегистрирован: 04.04.2016

форумчане, подскажите может ли данная система  работать без смс модуля? т.к. планирую уже со временем установить и использовать, в приоритете управоление через интернет блутуз и ИК 

dr.lmg
dr.lmg аватар
Offline
Зарегистрирован: 07.01.2016

Oleg_I, может конечно.

Другой вопрос, как управлять ей будете?

Oleg_I
Offline
Зарегистрирован: 04.04.2016

думаю управлять ик пультом, через интернет и блутуз 

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Как уже не один раз писали одинаковых двух систем не бывает, так что прийдется под себя все равно писать, а все ваши хотелки в принцыпи выполнимы

Oleg_I
Offline
Зарегистрирован: 04.04.2016

ну это понятно, только на первое время, пока разберусь с написанием кода,  хотел без GSM собрать 

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

да это не проблема, самое гланое определиться как через интернет будете управлять.. тут нужно четкое понимание что и как и через что будет работать

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Baks, спасибо Вам за советы

Получу посылку напишу 

 

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Подскажите пжл, модуль реле на 12 вольт или на 5  ?

faeton
faeton аватар
Offline
Зарегистрирован: 21.03.2016

Oleg_I пишет:

Подскажите пжл, модуль реле на 12 вольт или на 5  ?

Я покупал вот такие модули:

http://ru.aliexpress.com/item/2015-Newest-Upgrade-5V-two-2-Channel-Relay-Module-Shield-For-Arduino-ARM-PIC-AVR-DSP/32582041577.html

Вполне даже замечательно сделано, приехало быстро (недели 3, вроде). Релюшки какие-то китайские, но пощёлкал компрессор от холодильника - не прилипли. Некоторые экземпляры срабатывали при питании от 3.3В. У продавца есть такие же с однйо релюшкой и, если не ошибаюсь, с 8-ю.

d1gger
Offline
Зарегистрирован: 30.04.2016

подскажите плиз у ТС на плате опторазвязке:

1) тип светодиодов

2) можно ли заменить указанную им оптопару PC817V на PC817 с другой буквой. если да, то на какую?

Alexey-kipia
Alexey-kipia аватар
Offline
Зарегистрирован: 14.03.2016

Эти релюшки на 5 вольт. :-)

Alexey-kipia
Alexey-kipia аватар
Offline
Зарегистрирован: 14.03.2016

faeton пишет:

Oleg_I пишет:

Подскажите пжл, модуль реле на 12 вольт или на 5  ?

Я покупал вот такие модули:

http://ru.aliexpress.com/item/2015-Newest-Upgrade-5V-two-2-Channel-Relay-Module-Shield-For-Arduino-ARM-PIC-AVR-DSP/32582041577.html

Вполне даже замечательно сделано, приехало быстро (недели 3, вроде). Релюшки какие-то китайские, но пощёлкал компрессор от холодильника - не прилипли. Некоторые экземпляры срабатывали при питании от 3.3В. У продавца есть такие же с однйо релюшкой и, если не ошибаюсь, с 8-ю.

Эти релюшки на 5 вольт. :-)

viktoriastrelkova
Offline
Зарегистрирован: 22.05.2016

Всем привет!У меня такая проблема что надо создать мозг для климат-контроля(по учебе проект), но многое не понимаю и некому помочь... Если кто-то знает может поможете хотяб советами? Я вижу тут много талантливых людей в таких разработках.. а в интернете очень мало информации именно открытой,везде только реклама климат-контроля и все...

Климат-контроль это же - температура,влажность и вентиляция как я понимаю. Вот как выбрать исполнительные устройства? Если для изменения температуры брать тот же кондиционер то не понимаю как будет Ардуино общаться с ним и управлять им...Котлом то понятно что увеличивает температуру а вот уменьшить? По поводу вентиляции аналогично не понимаю какую использовать и как ей управлять...Буду очень рада помощи или совету(идее)!! :)

MaksVV
Offline
Зарегистрирован: 06.08.2015

viktoriastrelkova пишет:

Всем привет!У меня такая проблема что надо создать мозг для климат-контроля(по учебе проект), но многое не понимаю и некому помочь... Если кто-то знает может поможете хотяб советами? Я вижу тут много талантливых людей в таких разработках.. а в интернете очень мало информации именно открытой,везде только реклама климат-контроля и все...

Климат-контроль это же - температура,влажность и вентиляция как я понимаю. Вот как выбрать исполнительные устройства? Если для изменения температуры брать тот же кондиционер то не понимаю как будет Ардуино общаться с ним и управлять им...Котлом то понятно что увеличивает температуру а вот уменьшить? По поводу вентиляции аналогично не понимаю какую использовать и как ей управлять...Буду очень рада помощи или совету(идее)!! :)

Можно начинать по простому. Ардуино мереет температуру и влажность и в зависимости от этого управляет нагревателем (если t меньше нужной), кондиционером (если t больше нужной), и вентиляцией (если влажность больше нужной) посредством реле (т.е. как бы  за вас включает эти приборы просто в розетку). 

d1gger
Offline
Зарегистрирован: 30.04.2016

подскажите куда копать. пишу скетч, все работает, в монитор по-русски пишет, а потом через время любой скетч начинает вместо текста кракозябрами в монитор писать

и еще перестает компилироваться тот же скетч

m-zzz
Offline
Зарегистрирован: 30.05.2015

Если один и тот же скетч то компилируется то нет.. и монитор COM-порта перестает работать(если я правильно понял, то именно о нем шла речь) то стоит присмотреться к работоспособности адруиновской программы, установленной на вашем компе, что то явно идет не так..

d1gger
Offline
Зарегистрирован: 30.04.2016

установлена 1.6.9. вроде как самая свежая. переустановка ненадолго помогает

попробовал снести одну яву. у меня стоит 32 и 64 бит версии

m-zzz
Offline
Зарегистрирован: 30.05.2015

переустановка ненадолго помогает 

вот это как раз недвусмысленно говорит о том, что проблема именно в вашем софте, иначе не помогало бы вообще..

попробуйте переустановить ось и на чистую накатить IDE и попробовать..

на этом все.. заканчиваем оффтопить в теме..

m-zzz
Offline
Зарегистрирован: 30.05.2015

Климат-контроль это же - температура,влажность и вентиляция как я понимаю.

В общих чертах так..

Вот как выбрать исполнительные устройства?

Поскольку ваш проект витруальный, то на цены можно не смотреть..

Подбирайте то, что подходит вам по функционалу, и чем вы сможете управлять.

Но сначала придется определяться с этим самым функционалом.

Если для изменения температуры брать тот же кондиционер то не понимаю как будет Ардуино общаться с ним и управлять им...

Котлом то понятно что увеличивает температуру а вот уменьшить?

А уменьшить кондиционером... влажность , ктстати уменьшается им же...

Или вентиляцией уменьшить влажность(температуру)... но вентиляцией можно их же и увеличить, если "забортная" влажность(температура) выше, чем в помещении.

Так что надо для начала составить для себя алгоритмы, что и как у вас должно работать...

И потом уже под это все подбирать оборудование.

Чисто технически оборудование, не имеющее специализированных портов для внешнего управления, чаще всего может управляться через эмуляцию работы пульта ДУ (работа через ИК пульт характерна для кондиционеров, но тут придется разбираться с форматом управляющих посылок) , или через эмуляцию нажатия кнопок на блоках управления от используемого оборудования (это сразу отсекает модели с сенсорными экранами и т.п. , где подобная эмуляция сложноосуществима)

По поводу вентиляции аналогично не понимаю какую использовать и как ей управлять...

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

men1079
Offline
Зарегистрирован: 10.08.2016

Уважаемые коллеги, только начинаю осваивать arduino, и очень понравилось решение Slavyanin55, огромное спасибо за труды. Для начала конечно попытаюсь сделать что-то очень простое, ограничившись функциями охраны на летней даче.

Подскажите, живой ли еще проект или сошел на нет (может что-то со временем не оправдало себя, и если бы делали повторно, то что-то кардинально изменили, например часть датчиков перевести на 433МГц или 2,4ГГц). 

И какие напряжения питания понадобятся в перспективе для птания Arduino и всевозможных датчиков? Имеет ли смысл сразу взять БП с выводами на 5В и 12В?

Slavyanin55
Slavyanin55 аватар
Offline
Зарегистрирован: 01.06.2014

men1079 пишет:

Подскажите, живой ли еще проект или сошел на нет (может что-то со временем не оправдало себя, и если бы делали повторно, то что-то кардинально изменили, например часть датчиков перевести на 433МГц или 2,4ГГц). 

Здравствуйте! Проект живой. Автоматика работает. Всё себя оправдало. Капитально-фундаментально ничего изменено не было и не планируется. Проект потихоньку обрастает новыми функциями и фишками. Люди копируют, делятся идеями и опытом ошибок и своих успехов. Хочу даже похвастаться тем, что один студент из Украины защитил дипломную работу, основой которой была моя "городьба" :) Правда модуль GSM он использовал SIM800L, и проблеммы там возникли с отправкой сообщений. Пояснительная записка написана на украинском языке. 

Сейчас есть задачи, которые я бы хотел решить:

1. Как написать программу, чтобы без особого труда можно было её отключать по кускам, специально для тех кто не хочет например пользоваться блютусом, или наоборот другими платами.

2. Сделать возможность легкой инверсии входных сигналов.

3. Сделать одновременную работу по GSM,bluetooth,и USB. Почему то всё сразу работать не хочет. Люди сталкиваются с тем, что соберут всё в кучу, а GSM не работает, bluetooth нет ещё, и вот в этот момент USB очень нужен для диагностики.

Супруга например моя выдала мне тех.задание на добавление в систему функции "кухонный таймер" да ещё и многоканальный! во как. Идея появилась после обнаружения на прилавках IKEA маленьких кухонных электронных таймеров. Механический у неё уже давно есть, и он один.

Короче, выкладываю последнюю версию программы...

men1079 пишет:

И какие напряжения питания понадобятся в перспективе для птания Arduino и всевозможных датчиков? Имеет ли смысл сразу взять БП с выводами на 5В и 12В?

Да, нужны как раз эти напряжения. Смысл имеет. Обязательно БП с аккумулятором.

Slavyanin55
Slavyanin55 аватар
Offline
Зарегистрирован: 01.06.2014

Там же как всегда. Архив называется ForumHouseV06_08_2016.rar 

Запускать главный файл ForumHouseV06_08_2016.ino

https://yadi.sk/d/gmpM_lXiuTie2

men1079
Offline
Зарегистрирован: 10.08.2016

Спасибо за хорошие новости! Я вот тоже заказал себе на тесты SIM800L - попробую с ним поковыряться. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

Можно немного улучшить считывание температур с DS18B20 методом, который предложил Dimax (за что ему спасибо!). Метод без использования delay. Вот ссылка на тему http://arduino.ru/forum/programmirovanie/pochistil-sketch-primera-raboty-s-ds18b20-iz-bibly-oneware  У меня получился такой скетч с выводом температур на дисплей. 



// для LCD i2c дисплея 

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);


// для шины 1-wire и датчиков DS18B20

#include <OneWire.h> // библиотека для DS18B20
OneWire ds(2); // датчики DS18B20 на 2 пин

byte KuhnyaC[8] ={0x28, 0xFF, 0xB1, 0x43, 0x52, 0x15, 0x01, 0xDB};
byte VannaNizC[8] ={0x28, 0xFF, 0xBA, 0x6C, 0x52, 0x15, 0x01, 0x41};
byte UlicaC[8] ={0x28, 0xFF, 0xE8, 0x3C, 0x03, 0x15, 0x03, 0xE3};
byte FreezeC[8] ={0x28, 0x9D, 0xE5, 0x70, 0x01, 0x00, 0x00, 0xEE};// Сетевой адреса датчиков DS18B20
volatile int  TempKuhnyaC = 20;
volatile int  TempVannaNizC = 20;
volatile int  TempFreezeC = 20;
volatile int  TempUlicaC = 20;

bool SMSAlarmTemp = false; 

bool AlarmTemp = false;




//_______Стартовый цикл________
void setup() {

WDTCSR=(1<<WDCE)|(1<<WDE); //установить биты WDCE WDE (что б разрешить запись в другие биты
WDTCSR=(1<<WDIE)| (1<<WDP2)|(1<<WDP1); // разрешение прерывания + выдержка 1 секунда

   lcd.begin();                     // инициализация lcd дисплея 
  lcd.backlight(); //BackLED = true;                 // включение подсветки дисплея 
  
             }

void loop(){
//вывод температур на лсд дисплей
 
 lcd.clear ();
     lcd.setCursor (0,0); lcd.print ("Ul:"); lcd.print (TempUlicaC); lcd.print ("C"); lcd.setCursor (9,0); lcd.print ("Kuh:"); lcd.print (TempKuhnyaC); lcd.print ("C");
     lcd.setCursor (0,1);  lcd.print ("Kot:"); lcd.print (TempFreezeC); lcd.print ("C"); lcd.setCursor (9,1); lcd.print ("Va:"); lcd.print (TempVannaNizC); lcd.print ("C");
  }



ISR (WDT_vect){ //вектор прерывания WD
static boolean n=0; // флаг работы: запрос температуры или её чтение
n=!n;
if (n) {ds.reset();  // сброс шины
        ds.write(0xCC);//обращение ко всем датчикам
        ds.write(0x44);// начать преобразование (без паразитного питания)  
       }
else   {ds.reset();
        ds.select(KuhnyaC);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        TempKuhnyaC =  ds.read() | (ds.read()<<8); //прочитаны 2 байта       
        TempKuhnyaC = TempKuhnyaC / 16;
        // получение с 2-го датчика
        ds.reset();
        ds.select(VannaNizC);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        TempVannaNizC =  ds.read() | (ds.read()<<8); //прочитаны 2 байта  
        TempVannaNizC = TempVannaNizC/16;
        ds.reset();
        ds.select(UlicaC);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        TempUlicaC =  ds.read() | (ds.read()<<8); //прочитаны 2 байта       
        TempUlicaC = TempUlicaC / 16;
        // получение с 2-го датчика
        ds.reset();
        ds.select(FreezeC);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        TempFreezeC =  ds.read() | (ds.read()<<8); //прочитаны 2 байта  
        TempFreezeC = TempFreezeC/16 ;
}
}
 
 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

Также я добавил в скетч от Slavyanin управление с нескольких телефонов, и чтобы отчет приходил именно на тот телефон, с которого происходит управление. Могу скетч выложить если кому интересно

Slavyanin55
Slavyanin55 аватар
Offline
Зарегистрирован: 01.06.2014

MaksVV пишет:

Также я добавил в скетч от Slavyanin управление с нескольких телефонов, и чтобы отчет приходил именно на тот телефон, с которого происходит управление. Могу скетч выложить если кому интересно

Ещё как интересно! Давно уже хочу добавить это. Недавно сел, почитал форум, попробовал у себя, но ничего не получилось, ума не хватило. Это очень нужное дело, так как пользователей может быть много, как минимум 2-е