добавил в скетч сообщения #545 функцию распечатки в Wi-Fi терминал переменных типа float . Функция называется Print_floatVar(здесь в скобках пишем переменную float, которую нужно распечатать)
Нашел один небольшой косяк при работе с ESP. При подключении к существующей сети Wi-Fi роутер назначает ESP шке IP адрес динамически - т.е. каждый раз разный может быть. Т.е. при перезагрузке роутера (электричество например отключали или ещё что), ESPшка получит другой IP и мы уже не сможем управлять умным домом с Wi-Fi Serial Terminal, пока не узнаем новый IP адрес ESP. Для исправления данного косяка нужно в настройках роутера сделать чтобы IP адрес нашёй ESP выделялся всегда один и тотже, т.е. статический. Исправил сообщение #539, там указал как это сделать, всё просто.
В принципе, в большинстве роутеров есть возможность закрепить IP-адрес за конкретным МАС-адресом. Припишите МАС-адрес ESPшки к IP-адресу, описанному в скетче и все дела...
читайте внимательно, проблема уже была решена и описана.
MaksVV пишет:
Для исправления данного косяка нужно в настройках роутера сделать чтобы IP адрес нашёй ESP выделялся всегда один и тотже, т.е. статический. Исправил сообщение #539, там указал как это сделать, всё просто.
также нашел ещё одну программу вайфай терминала на андроид WiFi TCP/UDP Controller. Позволяет добавить больше кнопок, также имеются более широкие настройки и есть ползунки плавного регулирования (например можно настроить диммирование светодиодных лент). Там есть функция подкрашивания кнопок (зеленый или красный) в зависимости от пришедшего отчета, но я чёто не смог настроить чтобы работало, может у кого получится. расскажите.
обнаружил приятный бонус при работе с ESP - строки можно отправлять в терминал Wi-Fi на кириллице!!! Переделал скетч #545 на русский.
Думаю дело в этом, IDE теперь нормально кирилицу в терминал выдает.
ARDUINO 1.8.2 2017.03.22
[ide]
* Fix command line: works again with relative paths (regression)
* Fix command line: "--save-prefs" works again (regression)
* AVR toolchain has been updated with a tentative fix for the ld-returned-5-exit-status bug
* Update arduino-builder to 1.3.25
- avoid name clashing for libraries
- cache core archives to speedup compilation consistently
* Allow BoardManager to fetch FreeBSD tools (thanks @kevans91)
* Serial monitor: the input string box is automatically focused when window is selected
* Serial monitor: now can not be opened during upload
* Serial monitor: now properly decodes UTF8 characters (thanks @aknrdureegaesr)
Наконец-то, реализована функция климат-контроля! Отныне ардуино управляет газовым котлом. Газовый котел у меня Daewoo DWG130 с внешним выносным пультом и без клемм подключения внешних термостатов.Поэтому сделал так, без вмешательстно в автоматику безопасности котла, что очень важно. НО будет ли так работать с другими котлами других моделей незнаю. Мой котел Daewoo DGB-130 MSC он идет с тремя видами пультов, и у меня разумается очень "удачная" модель пульта DBR-W21 :) Чем она прекрасна: существует "электронный дребезг" показаний температуры с внутреннего датчика пульта. Т.е. когда температура переходит с градуса на градус, показания начинают прыгать, а пульт в это время начинает слать команды на котел "пуск" и "останов". Облазил я кучу форумов, все маятся, а корейцы исправлять этот баг не хотят. Ну что ж боремся с этим сами.
Зарисовал небольшую схемку:
Работает это так:
1.Когда температура в помещении в норме, то умный дом (он же УД) подает на реле питание, и реле удерживает нормально-замкнутый контакт разомкнутым. Пульт котла получается обесточенным. Сам же котел находится в ожидании.
2.После понижения температуры ниже уставки УД отключает питание с реле и его нормально-замкнутый контакт замыкается. Пульт оживает, восстанавливается связь с котлом, котел начинает прогревать контур отопления.
3.При повышении температуры в помещении выше уставки УД снова подает питание на реле, и оно размыкает свой контакт обесточивая пульт. Котел перестает видеть пульт и после не продолжительного завершения цикла прогрева контура отопления переходит в режим ожидания. При этом каких либо истерик от котла и пульта не наблюдается.
Есть только один минус у этого способа! Когда пульт обесточен, а котел в режиме ожидания, то котел не реагирует на начавшийся расход воды ГВС. Т.е. если кто-то включил горячую воду в душевой кабине ( а у меня котел греет горячую воду только для душевой кабины), то котел не запускается, вода бежит холодная. Для этого я предусмотрел в схеме тумблер, который стоит параллельно НЗ контакту реле и замыкает цепь связи пульта. Замкнув этот тумблер, схема возвращается в свой заводской вид, что важно на случай неадекватной работы УД.
Из больших плюсов этой схемы это, простота, и безопасность!
Он на удивление маленький. Какая у него там точность на самом деле я думаю никому не известно, но за 500р очень даже гуд!
У датчика резьба G1/4"... Но в ЛеруаМерлен подобрал мне продавец два переходника в резьбу 1/2". Всё это скрутив в кучу, я всё равно установил на расстоянии от радиатора отопления через полипропиленовую вставку, потому что таким образом датчик не подвергается нагреву и всегда имеет комнатную температуру. Кабель применил како-то древний советский экранированный от звукотехники похоже, как раз хватило до контроллерного шкафа. Датчик цепляется по трем проводам. Красный +5В, черный GND, желтый это аналоговый сигнал от 0,5 до 4,5в.
т.е. 0,5в это 0МРа, а 4,5в это 1,2МРа (ну верх шкалы т.е.)
Отсюда не хитрый программный код:
//_______для измерения давления в системе отопления цикл "manometr"
float PresKotel=0; // https://mysku.ru/blog/aliexpress/33748.html про датчик давления
int Val_MIN = 101; // минимальное значение АЦП при давлении 0(ноль) Bar (0,51В)
int Val_MAX = 930; // максимальное значение АЦП при давлении верха шкалы датчика (4,5В)
int Press_MAX = 1200; // верх шкалы датчика давления в кПа (у меня 1200кПа=1,2МПа)
void manometr() // Цикл "манометр" измерение давления в системе отопления дома
// https://mysku.ru/blog/aliexpress/33748.html про датчик давления
// покупал тут https://ru.aliexpress.com/item/New-Electric-Unit-Pressure-Transducer-Sen...
{
int val = analogRead(A5);
PresKotel = map(val, Val_MIN, Val_MAX, 0, Press_MAX); // про функцию map http://arduino.ru/Reference/Map
PresKotel = PresKotel/100; // перевод в Bar (бары 1бар=0,098кгс/см2)
}
void alarms() //______________Цикл "тревожные сигналы"
{
if (PresKotel < 0.5 && SMSPress==false)
{ delay(1000); manometr();
if (PresKotel < 0.5 && SMSPress==false) //Отправка СМС о низком давлении в системе отопления
{ startOneSMS(); Serial2.print("Alarm!Davlenie:"); Serial2.print(PresKotel); Serial2.print("Bar_"); vremya2(); EndSMS();
startTwoSMS(); Serial2.print("Alarm!Davlenie:"); Serial2.print(PresKotel); Serial2.print("Bar_"); vremya2(); EndSMS(); SMSPress=true;}
}
if (PresKotel > 1.2 && SMSPress==true) {SMSPress=false;}
}
Ну кусок для калибровки нуля и максимального значения... в деле правда не проверял ещё.
else if(d=='6'){ int val = analogRead(A5); Val_MIN = val; manometr(); Serial.print(PresKotel); Serial.println("Bar");} // Калибровка нуля датчика давления отопления
else if(d=='7'){ int val = analogRead(A5); Val_MAX = val; manometr(); Serial.print(PresKotel); Serial.println("Bar");} // Калибровка верха шкалы датчика давления отопления
Добрый вечер,согласен со всеми высказывании что работа проведена глобальная.Картинки статьи рассказы про умный дом все это заманчиво и интересно ,но когда это видишь в живую, то желание иметь такое возрастает во много раз,что со мной и случилось. Как я понял эта система уже работает у вас около 3 лет и по истечению этого срока расскажите : насколько эта система облегила вам домашние хлопоты и насколько сэконоила энерго ресурсы, если съэкономила ? и как об этом отзываются ваши домашние и близкие ?Извените за настойчивость , просто статей об этом очень много ,а вот о бытовом использовании отзывов нет.
Этот датчик отработал прошлое лето на моем участке. Включал насос подачи воды из бочки для полива при открытии крана. Давление было всего менее 0,1 атм.
Он, правда , дюймовый, но думаю можно найти и меньше.
Доброго времени суток! планирую нечто похожее, но меньших масштабов, тестить буду в обычной квартире.
Идея такая, есть клавиатура к ардуино, 4х3 столбца, как только введен пароль из 4 цифр, через 60 секунд активируется система охраны, то есть датчики движения, протечки, газа/дыма. При срабатывании любого из них отправляется смс посредством SIM800L. прочие датчики температуры и тд работают постоянно.
Идея такая, есть клавиатура к ардуино, 4х3 столбца, как только введен пароль из 4 цифр, через 60 секунд активируется система охраны, то есть датчики движения, протечки, газа/дыма. При срабатывании любого из них отправляется смс посредством SIM800L. прочие датчики температуры и тд работают постоянно.
То есть все датчики уже работают и осталось только вводить пароль и отправлять смс. Если нет, то научите их фиксировать события в масштабах всего помещения и выводить на экран. Когда все будет работать, поверьте, ваши вопросы исчезнут.
Встроил в него датчик атмосферного давления BMP180,датчик температуры DS18B20 и ИК-приемник, чтобы из зала тоже управлять пультом. Всё это установил во встраиваемю соединительную коробку для гипсокартона и подключил кабелем UTP-5e неэкранированным к УД на расстоянии 2м.... Всё сначало было хорошо и на радостях я даже сигнализатор резкого падения атмосферного давления в программу добавил, чтобы УД распознавал, когда погода резко портится и наоборот. Но радовался не долго, УД стал зависать, по нескольку раз в день! Впервые! за 3 года МЕГА зависала... до этого как швецарские часы... короче, думал соображал. Решил программно отключить всё что связано с датчиков BMP180УД заработал! Достаточно стабильно, но пару раз зависал за неделю. Возможно, это связано с тем что кабель я использовал не экранированный, а шину I2C вообще нельзя выводить за периметр платы. Расстроила меня эта шина вообщем. Надо переходить на CAN или RS485. Может библиотека для BMP180 от Adafruita такая несовместимая с экраном и DS3231.
Вот. Недавно закончился срок поверки на счетчик воды, и я приобрел новый счетчик уже с датчиком расхода. СГВ-15Д. Его выходной контакт замкнут каждый 10-й литр воды.
Соответственно дописал программу. Чтобы считала расход и каждый 1 день месяца присылала отчет о потраченной воде за месяц и текущими показаниями счетчика воды.
int Fvoda_m3_sum=5; // Cчетчик расхода воды суммарный
int Fvoda_L_sum=0; // Cчетчик расхода воды в этом месяце
int Fvoda_m3_Mes=1; // Показания расхода воды м3 на 1 число предыдущего месяца
int Fgas_m3_sum=0; // Cчетчик расхода газа суммарный
int Fgas_L_sum=0; // Cчетчик расхода газа в этом месяце
int rashodV=0; // временная переменная итог расхода воды за месяц
int rashodG=0; // временная переменная итог расхода газа за месяц
boolean Fvoda_on=false; // Флаг состояния геркона счетчика СГВ-15Д
void rashodomer() // Цикл "расходомер" измерение суммарных расходов
{
int presset = digitalRead(34); // high - разомкнут, low - замкнут каждый 10-й литр. Для СГВ-15Д. 1 импульс = 10 литрам
if(presset == true && Fvoda_on == false)
{
Fvoda_L_sum++; // +10 литров к расходу
if(Fvoda_L_sum < 100) {EEPROM.write(54, Fvoda_L_sum);} // запоминаем расход литры. Емкость ячейки памяти 0...255
Fvoda_on = true;
}
else{Fvoda_on = digitalRead(34);}
if(Fvoda_L_sum >= 100)
{
Fvoda_m3_sum++ ; Fvoda_L_sum=0;
EEPROM.write(53, Fvoda_m3_sum); // запоминаем расход кубометры
EEPROM.write(54, Fvoda_L_sum); // запоминаем расход литры
rashodV = Fvoda_m3_sum - Fvoda_m3_Mes;
}
}
// Вывод на экран 2004
void lcdpar4() // Показания счетчиков
{
//lcd.rightToLeft()
lcd.clear();
//1 строка
lcd.setCursor(0,0); lcd.print("Расход-м3-литры-итог");
//2 строка
lcd.setCursor(0,1); lcd.print("Вода:");
lcd.setCursor(5,1); lcd.print(Fvoda_m3_sum); lcd.setCursor(10,1);lcd.print(Fvoda_L_sum * 10); lcd.setCursor(17,1);lcd.print(rashodV);
//3 строка
lcd.setCursor(0,2); lcd.print(" Газ:");
lcd.setCursor(5,2); lcd.print(Fgas_m3_sum); lcd.setCursor(10,2);lcd.print(Fgas_L_sum); lcd.setCursor(17,1);lcd.print(rashodG);
//4 строка
lcd.setCursor(0,3); lcd.print("Отправлено SMS:"); lcd.setCursor(15,3); lcd.print(SMSschet);
}
void RTCtimer() // Цикл суточного таймера на RTC
{
if(RTCDay == 1) // отправка смс о расходах каждый 1 день месяца
{ if(SMSrashod==false)
{
SMSrashody();
EEPROM.write(55, Fvoda_m3_Mes); // Записываем текущие показания в память для расчета через месяц
SMSrashod=true;
}
}
else{SMSrashod==false;}
}
void SMSrashody()
{
startOneSMS();
Serial2.print (t.date, DEC); Serial2.print(" ");
Serial2.print (rtc.getMonthStr()); Serial2.print(" ");
Serial2.print (t.year, DEC); Serial2.print(" ");
Serial2.println("Pokazaniya:"); // СМС
Serial2.print("Voda:"); Serial2.print(Fvoda_m3_sum); Serial2.print(","); Serial2.println(Fvoda_L_sum);
Serial2.print("za mesyac:"); Serial2.println(rashodV);
Serial2.print(" Gas:"); Serial2.print(Fgas_m3_sum); Serial2.print(","); Serial2.println(Fgas_L_sum);
EndSMS();
}
Ну как то так, ещё добавлю сигнализацию утечки воды если хозяев нет дома и включена охранная сигнализация
Встроил в него датчик атмосферного давления BMP180,датчик температуры DS18B20 и ИК-приемник, чтобы из зала тоже управлять пультом. Всё это установил во встраиваемю соединительную коробку для гипсокартона и подключил кабелем UTP-5e неэкранированным к УД на расстоянии 2м.... Всё сначало было хорошо и на радостях я даже сигнализатор резкого падения атмосферного давления в программу добавил, чтобы УД распознавал, когда погода резко портится и наоборот. Но радовался не долго, УД стал зависать, по нескольку раз в день! Впервые! за 3 года МЕГА зависала... до этого как швецарские часы... короче, думал соображал. Решил программно отключить всё что связано с датчиков BMP180УД заработал! Достаточно стабильно, но пару раз зависал за неделю. Возможно, это связано с тем что кабель я использовал не экранированный, а шину I2C вообще нельзя выводить за периметр платы. Расстроила меня эта шина вообщем. Надо переходить на CAN или RS485. Может библиотека для BMP180 от Adafruita такая несовместимая с экраном и DS3231.
Сталкивался кто нибудь с такой бедой?
Хех, конечно i2c так далеко низя. Скидывай часть кода, отвечающую за экран, Счетчик к экрану ближе? или к меге? Ардуино то есть в наличии? CAN модули ты говорил есть у тебя.
Я постараюсь тебе организовать CAN обмен. распишу, покажу
Распиши
- что будет выполнять локальный МК самостоятельно, т.е. своими силами.
- какие данные от этого мк будут идти на мегу
- какие данные от меги будут приходить сюда.
- какие команды будут отправляться меге
- какие команды будут приходить от меги.
Встроил в него датчик атмосферного давления BMP180,датчик температуры DS18B20 и ИК-приемник, чтобы из зала тоже управлять пультом. Всё это установил во встраиваемю соединительную коробку для гипсокартона и подключил кабелем UTP-5e неэкранированным к УД на расстоянии 2м.... Всё сначало было хорошо и на радостях я даже сигнализатор резкого падения атмосферного давления в программу добавил, чтобы УД распознавал, когда погода резко портится и наоборот. Но радовался не долго, УД стал зависать, по нескольку раз в день! Впервые! за 3 года МЕГА зависала... до этого как швецарские часы... короче, думал соображал. Решил программно отключить всё что связано с датчиков BMP180УД заработал! Достаточно стабильно, но пару раз зависал за неделю. Возможно, это связано с тем что кабель я использовал не экранированный, а шину I2C вообще нельзя выводить за периметр платы. Расстроила меня эта шина вообщем. Надо переходить на CAN или RS485. Может библиотека для BMP180 от Adafruita такая несовместимая с экраном и DS3231.
Сталкивался кто нибудь с такой бедой?
Сколько памяти на локальные переменные остается после компиляции?
Проблема точно не в длине провода. У меня этот датчик висит на проводе в 15 метрах от контроллера, плюс еще датчики температуры и так же DS3231 - все ок.
Нужно смотреть код, возможно слишком часто идет обращение к датчику. Ну и что там со свободной памятью.
Слава, я уже тебе говорил, везде где печатаешь в порт или в lcd текст - используй макрос F. Это довольно простой и действенный способ сэкономить оперативную память, у тебя в скетче просто уйма Serial.print - ов . Применив LCD ты еще принтов добавил. Действительно очень даже может быть, что оперативка заканчивается.
Нравится сами примеры реализации. От себя добавлю, что в моем варианте работает (постоянно) маленький сервер на Raspberry 3 +HDD с установленной MajorDomo (далее МД) . Датчики и пр. исполнительные механизмы (ворота, вентиляторы, блок освещения (реле) приводы штор и пр. имеют каждый, свой модуль (Ардуино ПроМини) и канал(ы) передачи (обмена) информации, Это либо на витой паре RS485, в основном это МОДБАС (блоки реле) либо протокол библиотеки MySensors, либо радиокнал (NRF24l01) (см. MySensors.org) с которым система очень гибкая в добавлении новых узлов, либо датчиков. Собрал прошил, включил и он в общей сети (рекомендую). Ваш проект привлекает именно самой идейной стороной.
В тоже время, центрлизация! т.е. сведение всех каналов обмена информации и управления на один блок либо ведет к нестабильности либо возможной перегрузке. Да и при его сбое все наверное останавливается.
Из своих наработок.
Максимально возможно разделить логическую часть, с функциями опроса и исполнения команд. Те если например, есть каскад датчиков которые структурно увязаны в один блок (комната, помещение, отдельно стоящее строение) на них следует (по возможности) выделять отдельный блок. Например на Ардуино. А данные, с этого блока, уже передавать на логический т.е например Мегу.
Кроме того, на Меге несколько информационных портов (4 СОМ) позволят упростить даный вопрос. В моем вараинте есть внешние блоки они самодостаточные и только обслуживат датчики. Мега, тоже есть, и может даже откажусь в дальнейшем от сервера, но прелесть в том, что МД шлет на телефон(ы) через "Телеграмм" всю оперативную информацию о состоянии системы и данные систем дома. (Отопление, ворота и пр) Так что отказ в пользу меги не очень то обоснован.
Мега же "лопатит" получаемые данные от остальных сводит ее в формат передачи на сервер. ну и выводит информацию на "тАбло". 20*4
Кстати вариант оформления вывода подсмотрел в Вашей системе. Понравился простотой. Кстати домашние не очень то приемлют вараинт глядеть в это табло, оно скорее для меня как технологическое. Домашние же пользуются данными на смартфонах. Кстати сейчас работаю над вариантом замены домофонных ключей на смарт. Но тут много есть ситаций которые еще до конца не продумал поскольку в рабочм тесте было выявлено много интересных ситаций решение которых логически просто не прописать сразу... пока не получишь в реале.
Если есть интерес то могу поделится наработанными материалами (платы/схемы) и пр.
Я не спорю, САN, конечно интересное решение, но, наверное, не всегда.
Я не хочу спорить, про его прелести или недостатки, это не главное.
На мой взгляд, в домашних системах т.е. в тех где главное простота и практичность использовать те решения, которые уже гарантированно проверены.
Второй момент. Автор строит свою композицию исходя из знаний, возможностей, и конечно той необходимости в которой испытывает актуальность. Если допустим строить любой проект основываясь на протоколах обмена и пр. взаимодействия элементов всей системы и этот самый протокол строить под новый вновь добавляемый узел, то я допускаю это не на мой неискушенный взгляд это не оправдано.
Модульность как таковая при кажущейся избыточности дает больше преимуществ.
Например, есть комната (пусть душевая). В ней однозначно есть свет, источники тепла влаги и, наверное, запаха. Следовательно, уже должны быть несколько контролируемых параметров.
Если собирать все эти параметры одним блоком, но разными линиями связи то может возникнуть избыточность и не всегда это просто реализовать при завершенном ремонте.
В тоже время если допустим имеем некий модуль, который просто перестраивается имеет несколько датчиков, а в добавок еще и автономен, то понятно, что такой вариант имеет шанс на развитие.
Проводная сеть — это конечно сила, я ее всегда использую и ее преимуществ не отвергаю, но и радиоканалы тоже оправданы. Когда начал пробовать то тоже испытывал сомнения потом понял .... работает и еще как. А главное простота. Например, у меня есть переносной блок, в котором есть DHT22. (вот его подробное описание http://mysensors.ru/build/humidity/ именно как датчик) фотоэлемент. контактный датчик (2) один кнопка один можно внешний (на прерывания). На плате есть место под другие датчики (планировал датчик давления). Размеры его 120*70*18 (стандартная коробка BOKS приобретённая в магазине). Питание 3 батарейки. Время работы, уже почти год!!!! Схема постоянно в работе. "Спит" и примерно раз в 20 сек дает данные температуры и влажности, уровень освещенности и пр. если же нажать кнопку или контакт, то мгновенная реакция!!! Этот датчик у меня "бродит" то в баню, то в сарай, то в погреб, то в машину (зимой) то... короче где только его не "ставил. Большую часть он находится в душевой и лежит на окне. Дальность его с базой проверенные 100 м на улице. В доме он работает в любом месте и положении. Ну не знаю, может такой вариант и не всем нужен, но как вариант.
Есть блок на стене, он содержит ESP8266 (i2c+LCD20*4) на него данные идут по MQTT и тоже радиоканал. и на него приходят данные как от сервера так и от других источников. В этом же блоке есть приемопередатчик NRF24L01 и также получает данные с датчиков напрямую в сети хоть с сервером хоть без.
На котле отопления (турбокотел НЕВА тоже есть свой блок (его я дольше всего собирал и отрабатывал алгоритм работы.... ох и крови попил. В итоге имеем, управление насосным агрегатом котла (3 скорости) в прямой зависимости от внешней температуры.
Т.е логика такая примерно.
Если "За бортом" >5 C т.е не тепло не холодно (как сейчас) то включим первый режим. Скорость движения теплоносителя меньше, соответственно и циклирование горелки котла (вкл/выкл) в разы меньше, а поскольку она димируется (регулировка мощности) своей автоматикой, то соответственно и снижается общее потребление газа. Суть процесса в том, что на котле (датчики) возникает меньшая ошибка по уровню температурной разности подача/обратка и следовательно автоматика снижает мощность горелки. Ну и так далее. Т.е если скорость будет большая (условно) то теплоноситель, быстро прогревается по всему контуру (у меня всего в системе около 30 л и это время от начального (старт) режима всего 6-7 минут) и выключает горелку (цикл). И так далее, из большой скорости быстро набирается ошибка разности и котел опять входит в цикл, что не есть хорошо по его режиму.. лучше когда горелка "дует" постоянно но с малой мощность. Т.е для котла это хорошо.
По мере снижения температуры, (менее -2 -5) переходим на 2-й и далее при < -10 включаем 3-й режим. По результату эксплуатации этого блока за 2 сезона, а также данных тепловых перепадов (по внешним датчикам, от 2 шт. средняя) уже получил "положительное сальдо" и довольно приличной от 50 до 70 кубов в месяц экономии газа, При среднем расходе, ранее в месяц около 300 кб в сильные морозы. . Т.е игра стоит свеч.
Сам алгоритм, конечно это условно таблица диапазонов температур и инерции дома на это изменение. А поскольку дом утеплен, и из материала, который сам по себе "теплый" (пеноблок) то эта "инерция" не линейная. Но путем проб и отчасти ошибок такая зависимость все же получена.
В итоге, концепция раздельных модулей, где каждый оперируют своей задачей и не зависят от внешнего сервера я считаю обоснованной по многим причинам. Но не навязываю ее автору. Просто взять ее преимущества в основу и дополнить уже работающую систему.
А в целом автору удачи. Я глядя на его примеры реализации много взял себе в качестве концепции и как идеи. За это ему огромное спасибо.
МК не перегружен. Очень много глобальных переменных, нужно оптимизировать код. Сам с этой проблемой сталкивался.
Да, так оно и оказалось. Я компилирую в IDE 1.0.5. А этот компилятор не показывает загрузку ресурсов.
Закомпилировал с горем пополам IDE 1.8.5. пишет, что недостаточно памяти. Закомментировав всю работу с ESP, получил значение в 50%. Всё правильно MaksVV говорит надо в PROGMEM запихивать, но компилятор опять там чего то не видит, что то ему не нравится. Библиотеки подбирать такая мука :)
Почти победил плавный розжиг ночной подсветки... оказалось, что куча библиотек поделили между собой внутренние таймеры Меги и блокируют работу ШИМа на 12 пине. Опытным путем обнаружил, что на 4-м пине ШИМ работает, правда бывает "моросит" подсветка при розжиге/гашении.
Понятное дело,что Мега не резиновая и возможности ограничены... но ещё бы подрастянуть её :)
Сколько памяти на локальные переменные остается после компиляции? Проблема точно не в длине провода. У меня этот датчик висит на проводе в 15 метрах от контроллера, плюс еще датчики температуры и так же DS3231 - все ок. Нужно смотреть код, возможно слишком часто идет обращение к датчику. Ну и что там со свободной памятью.
Заменил я кабель до экрана на экранированную FTP. BMP180 удалил пока.
Слава, я уже тебе говорил, везде где печатаешь в порт или в lcd текст - используй макрос F. Это довольно простой и действенный способ сэкономить оперативную память, у тебя в скетче просто уйма Serial.print - ов . Применив LCD ты еще принтов добавил. Действительно очень даже может быть, что оперативка заканчивается.
Выполнена она на raspberry 3. К ней? (ему?) подключен HDD через USB. на нем же развернута и сама система т.е операционка приложения (по сути небольшой сервер) .
Вот как это размещено "в натуре". Коридор там станция теплого пола (насос) внутри сам сервер. Работате круглые сутки уже более года. Отсутсвие эл. энергии переживает прекрасно может обходится (проверено) почти 28 часов что в моей практике не случалось. Есть генератор поскольку котел без эл. энергии не работает.
Идем далее. Сам сервер это система MajorDomo. Работатет без сбоев с момента пуска, обновления и пр. делаю перодически через веб стрницу. Сами внешние узлы это множество разных блоков которые сами по себе живут но в комбинации и образуют умный дом. детально каждый расписывать долго см на стрнице указаной выше.
Вот приммер модуля который принимает 4 контактных датчика (2 с прерыванием, порт RS485. 2 реле. 2 DHT 11 (22) и до 16 датчиков DS18b20, (хотя такое количество это абсурд) но 2-3 прекрасно работают. Вот его:http://majordomo.smartliving.ru/forum/viewtopic.php?f=22&t=3976 ели интересно то можно подробнее описать. Есть печатка (в корпус счетчика).
Отличия от авторской по сути в том что система сама в себе (мозг управление) и не имеет привязки управляющих блоков реле кнопок и пр напрямую. Т.е это чисто командынй блок. Он же задает общий тренд поведения всей остальной команды контроллеров, в тоже время каждый из них сам по себе тоже работает в сети и как передает так может принимать (если есть такая задача) информацию, выполняет команды и пр. А центральный блок (сервер ) это еще и samba на которой лежат фильмы видео и пр. поскольку есто трекер для скачивания и с 00 часов (безлимит) он начинает свое "темное" дело. Вот как то так.
Еще добавлю что сама система (в целом) это постоянный поиск (с 2011 г) вариантов, и сначала она также строилсь в виде одного блока шкафа. В которыый сводилось "вся и все", но после нескольких лет "эксплуатации" от этого отказался в пользу распределенного интелекта по всему дому. Причина проста. Централизация затрудняет выполнеие задачи при ее развитии, а также чрезмерно усложняет все структурно. СКС конечно это замечательно сам знаю (по работе) но если изначально либо последовательно строить все на основе уже заведомо "умных"! блоков либо минимально встраивать в них интелект то централизация уже сводится к информ обмену а тут уже совсем другой расклад, и как раз этот вопрос прекрасно решен на уровне IP либо других протоколов. Modbus. TCP/IP. CAN и пр.
Если пример ..телевизор холодильник микроволновка и пр имеют в своем составе микроконтроллры причем довольно мощные. b если у этих устройств есть каналы обмена информаци либо управления (например LAN. ИК порт WiFI и пр. да даже кнопочное управление можно вывести в информационный поток, то логично создвать не монстра совмещающего как просту логику так мускулы (реле актуаторы ипр), а информационую систему которая и будет это все делать. С появленим таких микрокомпютеров типа Raspberry это на мой взгляд само собой разумеется.
Потом, NRF24+MK или ESP8266 это просто идеальные для этого. В доме 3 ESP 8266 и 7 NRF решили самые трудные вопросы как разместить чтото не вступая в противоречие с домашними. А это ведь знаете что... ....
Блок управления ворот. Он на улице. открывает закрывает створу и калитку (ключи и дистанционно) если сам по себе, то от кнопки и ключей, а дистанционно по команде с телефонов, смартов, домофона времени. магнитолы в машине (когда заведена, блитуз цепляет мой смарт, а он открывает ворота) когда выехал, по ИК датчикам пересечения проема ворота закроются.
Писать можно долго и детально, но не всем подойдет такая реализация.
Много факторов и желания а также возможностей должны совпадать.
Критики тоже на спят, им своего порой не нужно, а чужое все не такое как у них и конечно оно хуже. Все мы люди. Это понимаю тоже.
Моя позиция, не критика, а рекомендация, потому как вижу "путь Самурая" у Вячеслава и хочу ему дать предложения.
Он конечно может их принимать /не принимать но остальные тоже из этого делают выводы.
А в целом, поскольку есть результат то значит автор добился того что хотел.
МК не перегружен. Очень много глобальных переменных, нужно оптимизировать код. Сам с этой проблемой сталкивался.
Да, так оно и оказалось. Я компилирую в IDE 1.0.5. А этот компилятор не показывает загрузку ресурсов.
Закомпилировал с горем пополам IDE 1.8.5. пишет, что недостаточно памяти. Закомментировав всю работу с ESP, получил значение в 50%. Всё правильно MaksVV говорит надо в PROGMEM запихивать, но компилятор опять там чего то не видит, что то ему не нравится. Библиотеки подбирать такая мука :)
Понятное дело,что Мега не резиновая и возможности ограничены... но ещё бы подрастянуть её :)
На самом деле библиотеки тоже отжирают память. Причем очень часто -неоправданно.
Я бы все таки рекомендовал уйти от большого кол-ва глобальных переменных, часть загнать в EEPROM, остальное по максимуму использовать в функциях, отдавая - получая значения этих переменных обращением к функции. Я при помощи такого решения получил практически 25% экономии памяти.
Строки для отправки по тревожным сообщениям можно положить на SD карту, и брать их оттуда.
Уважаемые! Прошу консультации, внимательно смотрю реализацию данного проекта. (!!!) Решил сделать себе противопожарную, охранную и газовую сигнализацию, в связи сэтим у меня возник вопрос по датчикам. В статье http://blog.kvv213.com/2016/09/razbiraemsya-s-datchikami-co-i-metana-mq-4-i-mq-7/ описано не к чемность датчиков серии MG, но это все теория, а как на практике? Стоит устанавливать данные датчики или искать по серьезнее, (соответствено дороже),кто нибудь испытывал их на практике не на макете? И какие посоветуеете для частного дома?
Уважаемые! Прошу консультации, внимательно смотрю реализацию данного проекта. (!!!) Решил сделать себе противопожарную, охранную и газовую сигнализацию, в связи сэтим у меня возник вопрос по датчикам. В статье http://blog.kvv213.com/2016/09/razbiraemsya-s-datchikami-co-i-metana-mq-4-i-mq-7/ описано не к чемность датчиков серии MG, но это все теория, а как на практике? Стоит устанавливать данные датчики или искать по серьезнее, (соответствено дороже),кто нибудь испытывал их на практике не на макете? И какие посоветуеете для частного дома?
Привет, это ты - Mansur Khabi.
- Датчик дыма
Чтоб не парится с датчиками дыма и не колхозить корпуса для них, советую готовый вариант, датчик имеет 4 провода, два из них питание 12В самого датчика, остальные два - выход (например, купили датчик с нормально разомкнутым (НР или НО) контактом, при наличии дыма датчик замыкает внутри себя контакты, далее подключаем к Arduino)
Для датчика с нормально замкнутым (НЗ) контактом все происходит также, только при дыме датчик размыкает свои контакты.
добавил в скетч сообщения #545 функцию распечатки в Wi-Fi терминал переменных типа float . Функция называется Print_floatVar(здесь в скобках пишем переменную float, которую нужно распечатать)
Нашел один небольшой косяк при работе с ESP. При подключении к существующей сети Wi-Fi роутер назначает ESP шке IP адрес динамически - т.е. каждый раз разный может быть. Т.е. при перезагрузке роутера (электричество например отключали или ещё что), ESPшка получит другой IP и мы уже не сможем управлять умным домом с Wi-Fi Serial Terminal, пока не узнаем новый IP адрес ESP. Для исправления данного косяка нужно в настройках роутера сделать чтобы IP адрес нашёй ESP выделялся всегда один и тотже, т.е. статический. Исправил сообщение #539, там указал как это сделать, всё просто.
В принципе, в большинстве роутеров есть возможность закрепить IP-адрес за конкретным МАС-адресом. Припишите МАС-адрес ESPшки к IP-адресу, описанному в скетче и все дела...
читайте внимательно, проблема уже была решена и описана.
Для исправления данного косяка нужно в настройках роутера сделать чтобы IP адрес нашёй ESP выделялся всегда один и тотже, т.е. статический. Исправил сообщение #539, там указал как это сделать, всё просто.
обнаружил приятный бонус при работе с ESP - строки можно отправлять в терминал Wi-Fi на кириллице!!! Переделал скетч #545 на русский.
также нашел ещё одну программу вайфай терминала на андроид WiFi TCP/UDP Controller. Позволяет добавить больше кнопок, также имеются более широкие настройки и есть ползунки плавного регулирования (например можно настроить диммирование светодиодных лент). Там есть функция подкрашивания кнопок (зеленый или красный) в зависимости от пришедшего отчета, но я чёто не смог настроить чтобы работало, может у кого получится. расскажите.
а ESP8266 зависает, бывает? как рессетить?
У меня пока не зависал. Но, думаю, вариант с хардовым пересбросом питания самый надежный ,как и в джсм модулях.
обнаружил приятный бонус при работе с ESP - строки можно отправлять в терминал Wi-Fi на кириллице!!! Переделал скетч #545 на русский.
Думаю дело в этом, IDE теперь нормально кирилицу в терминал выдает.
Добрый вечер,согласен со всеми высказывании что работа проведена глобальная.Картинки статьи рассказы про умный дом все это заманчиво и интересно ,но когда это видишь в живую, то желание иметь такое возрастает во много раз,что со мной и случилось. Как я понял эта система уже работает у вас около 3 лет и по истечению этого срока расскажите : насколько эта система облегила вам домашние хлопоты и насколько сэконоила энерго ресурсы, если съэкономила ? и как об этом отзываются ваши домашние и близкие ?Извените за настойчивость , просто статей об этом очень много ,а вот о бытовом использовании отзывов нет.
Здравствуйте!
Предлагаю вместо тумблера отключения дистанционного управления (или || с ним) в трубу подачи горячей воды в душевую кабину поставить датчик протока, аналогично этому https://ru.aliexpress.com/item/one-inch-water-pump-flow-switch/634339319.html?spm=a2g0v.12010108.1000023.3.18375535MNvr91.
Этот датчик отработал прошлое лето на моем участке. Включал насос подачи воды из бочки для полива при открытии крана. Давление было всего менее 0,1 атм.
Он, правда , дюймовый, но думаю можно найти и меньше.
С уважением к Вашей огромной работе, Виталий.
Приветствую всех форумчан.
Подскажите пытался ли кто использовать для связи умного дома модуль который по ссылке
https://www.ebay.com/itm/GSM-GPRS-A6-Mini-Development-Quad-band-Board-SM...
Я все озабочен мыслями о дистанционном управлени через сеть интернет с любой точки земного шара )
Или хотя бы получать информацию о состоянии дома по интернету
Всем спасибо
Доброго времени суток! планирую нечто похожее, но меньших масштабов, тестить буду в обычной квартире.
Идея такая, есть клавиатура к ардуино, 4х3 столбца, как только введен пароль из 4 цифр, через 60 секунд активируется система охраны, то есть датчики движения, протечки, газа/дыма. При срабатывании любого из них отправляется смс посредством SIM800L. прочие датчики температуры и тд работают постоянно.
подскажите, как это реализовать в коде.
Спасибо.
Сначала научиться работать с клавиатурой. Сразу рекомендация - всё выводить в сериал монитор, чтобы узнать работает или нет.
- ну т.е. научиться получать инфу о состоянии каждой кнопки.
- далее учимся программировать ввод пароля, опять же результат в сериал.
- учимся делать таймер без delay.
- учимся работать с каждым датчиком отдельно
- учимся работать с sim800L при чем и программно и аппаратно (есть особенности в подключении и питании)
- Потом объединяем по очереди отдельные скетчи, пока не получим один большой рабочий.
Примерно такая схема. За вас скетч никто писать не будет.
Многое можно взять из скетча ТС, а также отдельные элементы, которые я указал - всё есть на форме. Ищите.
Идея такая, есть клавиатура к ардуино, 4х3 столбца, как только введен пароль из 4 цифр, через 60 секунд активируется система охраны, то есть датчики движения, протечки, газа/дыма. При срабатывании любого из них отправляется смс посредством SIM800L. прочие датчики температуры и тд работают постоянно.
То есть все датчики уже работают и осталось только вводить пароль и отправлять смс. Если нет, то научите их фиксировать события в масштабах всего помещения и выводить на экран. Когда все будет работать, поверьте, ваши вопросы исчезнут.
Добрый день
Проект, супер.
Можете показать как вы подключали объемники (Астра, фотон).
посмотрел у вас на схеме второй контакт реле замкнут на землю.
Добрый день
Проект, супер.
Можете показать как вы подключали объемники (Астра, фотон).
посмотрел у вас на схеме второй контакт реле замкнут на землю.
Вот так
А на пине ардуинки HIGH и ждем LOW?, ведь в объемнике реле постоянно замкнуто и размыкается во время паники. Или все меняет оптопара?
Вячеслав, спасибо большое, понял где не доработал
Состряпал я тут экранчик 2004 для УД.
Встроил в него датчик атмосферного давления BMP180,датчик температуры DS18B20 и ИК-приемник, чтобы из зала тоже управлять пультом. Всё это установил во встраиваемю соединительную коробку для гипсокартона и подключил кабелем UTP-5e неэкранированным к УД на расстоянии 2м.... Всё сначало было хорошо и на радостях я даже сигнализатор резкого падения атмосферного давления в программу добавил, чтобы УД распознавал, когда погода резко портится и наоборот. Но радовался не долго, УД стал зависать, по нескольку раз в день! Впервые! за 3 года МЕГА зависала... до этого как швецарские часы... короче, думал соображал. Решил программно отключить всё что связано с датчиков BMP180УД заработал! Достаточно стабильно, но пару раз зависал за неделю. Возможно, это связано с тем что кабель я использовал не экранированный, а шину I2C вообще нельзя выводить за периметр платы. Расстроила меня эта шина вообщем. Надо переходить на CAN или RS485. Может библиотека для BMP180 от Adafruita такая несовместимая с экраном и DS3231.
Сталкивался кто нибудь с такой бедой?
ну и т.д. там экранов много
Вот. Недавно закончился срок поверки на счетчик воды, и я приобрел новый счетчик уже с датчиком расхода. СГВ-15Д. Его выходной контакт замкнут каждый 10-й литр воды.
Соответственно дописал программу. Чтобы считала расход и каждый 1 день месяца присылала отчет о потраченной воде за месяц и текущими показаниями счетчика воды.
Программа пока тестируется.
Вот куски программы:
Состряпал я тут экранчик 2004 для УД.
Встроил в него датчик атмосферного давления BMP180,датчик температуры DS18B20 и ИК-приемник, чтобы из зала тоже управлять пультом. Всё это установил во встраиваемю соединительную коробку для гипсокартона и подключил кабелем UTP-5e неэкранированным к УД на расстоянии 2м.... Всё сначало было хорошо и на радостях я даже сигнализатор резкого падения атмосферного давления в программу добавил, чтобы УД распознавал, когда погода резко портится и наоборот. Но радовался не долго, УД стал зависать, по нескольку раз в день! Впервые! за 3 года МЕГА зависала... до этого как швецарские часы... короче, думал соображал. Решил программно отключить всё что связано с датчиков BMP180УД заработал! Достаточно стабильно, но пару раз зависал за неделю. Возможно, это связано с тем что кабель я использовал не экранированный, а шину I2C вообще нельзя выводить за периметр платы. Расстроила меня эта шина вообщем. Надо переходить на CAN или RS485. Может библиотека для BMP180 от Adafruita такая несовместимая с экраном и DS3231.
Сталкивался кто нибудь с такой бедой?
Хех, конечно i2c так далеко низя. Скидывай часть кода, отвечающую за экран, Счетчик к экрану ближе? или к меге? Ардуино то есть в наличии? CAN модули ты говорил есть у тебя.
Я постараюсь тебе организовать CAN обмен. распишу, покажу
Распиши
- что будет выполнять локальный МК самостоятельно, т.е. своими силами.
- какие данные от этого мк будут идти на мегу
- какие данные от меги будут приходить сюда.
- какие команды будут отправляться меге
- какие команды будут приходить от меги.
Состряпал я тут экранчик 2004 для УД.
Встроил в него датчик атмосферного давления BMP180,датчик температуры DS18B20 и ИК-приемник, чтобы из зала тоже управлять пультом. Всё это установил во встраиваемю соединительную коробку для гипсокартона и подключил кабелем UTP-5e неэкранированным к УД на расстоянии 2м.... Всё сначало было хорошо и на радостях я даже сигнализатор резкого падения атмосферного давления в программу добавил, чтобы УД распознавал, когда погода резко портится и наоборот. Но радовался не долго, УД стал зависать, по нескольку раз в день! Впервые! за 3 года МЕГА зависала... до этого как швецарские часы... короче, думал соображал. Решил программно отключить всё что связано с датчиков BMP180УД заработал! Достаточно стабильно, но пару раз зависал за неделю. Возможно, это связано с тем что кабель я использовал не экранированный, а шину I2C вообще нельзя выводить за периметр платы. Расстроила меня эта шина вообщем. Надо переходить на CAN или RS485. Может библиотека для BMP180 от Adafruita такая несовместимая с экраном и DS3231.
Сталкивался кто нибудь с такой бедой?
Сколько памяти на локальные переменные остается после компиляции?
Проблема точно не в длине провода. У меня этот датчик висит на проводе в 15 метрах от контроллера, плюс еще датчики температуры и так же DS3231 - все ок.
Нужно смотреть код, возможно слишком часто идет обращение к датчику. Ну и что там со свободной памятью.
у ТС в любом случае основной МК уже перегружен обязанностями. Тут нужно либо граммотно программировать, либо обязанности уже на других перекладывать.
Слава, я уже тебе говорил, везде где печатаешь в порт или в lcd текст - используй макрос F. Это довольно простой и действенный способ сэкономить оперативную память, у тебя в скетче просто уйма Serial.print - ов . Применив LCD ты еще принтов добавил. Действительно очень даже может быть, что оперативка заканчивается.
было
используем макрос F, строковые константы при этом ложатся не в ОЗУ, а на флеш:
МК не перегружен.
Очень много глобальных переменных, нужно оптимизировать код. Сам с этой проблемой сталкивался.
Доброе время суток.
Слежу за Вашим проектом.
Нравится сами примеры реализации. От себя добавлю, что в моем варианте работает (постоянно) маленький сервер на Raspberry 3 +HDD с установленной MajorDomo (далее МД) . Датчики и пр. исполнительные механизмы (ворота, вентиляторы, блок освещения (реле) приводы штор и пр. имеют каждый, свой модуль (Ардуино ПроМини) и канал(ы) передачи (обмена) информации, Это либо на витой паре RS485, в основном это МОДБАС (блоки реле) либо протокол библиотеки MySensors, либо радиокнал (NRF24l01) (см. MySensors.org) с которым система очень гибкая в добавлении новых узлов, либо датчиков. Собрал прошил, включил и он в общей сети (рекомендую). Ваш проект привлекает именно самой идейной стороной.
В тоже время, центрлизация! т.е. сведение всех каналов обмена информации и управления на один блок либо ведет к нестабильности либо возможной перегрузке. Да и при его сбое все наверное останавливается.
Из своих наработок.
Максимально возможно разделить логическую часть, с функциями опроса и исполнения команд. Те если например, есть каскад датчиков которые структурно увязаны в один блок (комната, помещение, отдельно стоящее строение) на них следует (по возможности) выделять отдельный блок. Например на Ардуино. А данные, с этого блока, уже передавать на логический т.е например Мегу.
Кроме того, на Меге несколько информационных портов (4 СОМ) позволят упростить даный вопрос. В моем вараинте есть внешние блоки они самодостаточные и только обслуживат датчики. Мега, тоже есть, и может даже откажусь в дальнейшем от сервера, но прелесть в том, что МД шлет на телефон(ы) через "Телеграмм" всю оперативную информацию о состоянии системы и данные систем дома. (Отопление, ворота и пр) Так что отказ в пользу меги не очень то обоснован.
Мега же "лопатит" получаемые данные от остальных сводит ее в формат передачи на сервер. ну и выводит информацию на "тАбло". 20*4
Кстати вариант оформления вывода подсмотрел в Вашей системе. Понравился простотой. Кстати домашние не очень то приемлют вараинт глядеть в это табло, оно скорее для меня как технологическое. Домашние же пользуются данными на смартфонах. Кстати сейчас работаю над вариантом замены домофонных ключей на смарт. Но тут много есть ситаций которые еще до конца не продумал поскольку в рабочм тесте было выявлено много интересных ситаций решение которых логически просто не прописать сразу... пока не получишь в реале.
Если есть интерес то могу поделится наработанными материалами (платы/схемы) и пр.
С Уважением!
Slavyanin55, подскажите, пожалуйста: где вы купили экран 2004LCD с русским шрифтом?
rw4cju.ru, мы тут почти также куролесим
rw4cju.ru, мы тут почти также куролесим
Я не спорю, САN, конечно интересное решение, но, наверное, не всегда.
Я не хочу спорить, про его прелести или недостатки, это не главное.
На мой взгляд, в домашних системах т.е. в тех где главное простота и практичность использовать те решения, которые уже гарантированно проверены.
Второй момент. Автор строит свою композицию исходя из знаний, возможностей, и конечно той необходимости в которой испытывает актуальность. Если допустим строить любой проект основываясь на протоколах обмена и пр. взаимодействия элементов всей системы и этот самый протокол строить под новый вновь добавляемый узел, то я допускаю это не на мой неискушенный взгляд это не оправдано.
Модульность как таковая при кажущейся избыточности дает больше преимуществ.
Например, есть комната (пусть душевая). В ней однозначно есть свет, источники тепла влаги и, наверное, запаха. Следовательно, уже должны быть несколько контролируемых параметров.
Если собирать все эти параметры одним блоком, но разными линиями связи то может возникнуть избыточность и не всегда это просто реализовать при завершенном ремонте.
В тоже время если допустим имеем некий модуль, который просто перестраивается имеет несколько датчиков, а в добавок еще и автономен, то понятно, что такой вариант имеет шанс на развитие.
Проводная сеть — это конечно сила, я ее всегда использую и ее преимуществ не отвергаю, но и радиоканалы тоже оправданы. Когда начал пробовать то тоже испытывал сомнения потом понял .... работает и еще как. А главное простота. Например, у меня есть переносной блок, в котором есть DHT22. (вот его подробное описание http://mysensors.ru/build/humidity/ именно как датчик) фотоэлемент. контактный датчик (2) один кнопка один можно внешний (на прерывания). На плате есть место под другие датчики (планировал датчик давления). Размеры его 120*70*18 (стандартная коробка BOKS приобретённая в магазине). Питание 3 батарейки. Время работы, уже почти год!!!! Схема постоянно в работе. "Спит" и примерно раз в 20 сек дает данные температуры и влажности, уровень освещенности и пр. если же нажать кнопку или контакт, то мгновенная реакция!!! Этот датчик у меня "бродит" то в баню, то в сарай, то в погреб, то в машину (зимой) то... короче где только его не "ставил. Большую часть он находится в душевой и лежит на окне. Дальность его с базой проверенные 100 м на улице. В доме он работает в любом месте и положении. Ну не знаю, может такой вариант и не всем нужен, но как вариант.
Есть блок на стене, он содержит ESP8266 (i2c+LCD20*4) на него данные идут по MQTT и тоже радиоканал. и на него приходят данные как от сервера так и от других источников. В этом же блоке есть приемопередатчик NRF24L01 и также получает данные с датчиков напрямую в сети хоть с сервером хоть без.
На котле отопления (турбокотел НЕВА тоже есть свой блок (его я дольше всего собирал и отрабатывал алгоритм работы.... ох и крови попил. В итоге имеем, управление насосным агрегатом котла (3 скорости) в прямой зависимости от внешней температуры.
Т.е логика такая примерно.
Если "За бортом" >5 C т.е не тепло не холодно (как сейчас) то включим первый режим. Скорость движения теплоносителя меньше, соответственно и циклирование горелки котла (вкл/выкл) в разы меньше, а поскольку она димируется (регулировка мощности) своей автоматикой, то соответственно и снижается общее потребление газа. Суть процесса в том, что на котле (датчики) возникает меньшая ошибка по уровню температурной разности подача/обратка и следовательно автоматика снижает мощность горелки. Ну и так далее. Т.е если скорость будет большая (условно) то теплоноситель, быстро прогревается по всему контуру (у меня всего в системе около 30 л и это время от начального (старт) режима всего 6-7 минут) и выключает горелку (цикл). И так далее, из большой скорости быстро набирается ошибка разности и котел опять входит в цикл, что не есть хорошо по его режиму.. лучше когда горелка "дует" постоянно но с малой мощность. Т.е для котла это хорошо.
По мере снижения температуры, (менее -2 -5) переходим на 2-й и далее при < -10 включаем 3-й режим. По результату эксплуатации этого блока за 2 сезона, а также данных тепловых перепадов (по внешним датчикам, от 2 шт. средняя) уже получил "положительное сальдо" и довольно приличной от 50 до 70 кубов в месяц экономии газа, При среднем расходе, ранее в месяц около 300 кб в сильные морозы. . Т.е игра стоит свеч.
Сам алгоритм, конечно это условно таблица диапазонов температур и инерции дома на это изменение. А поскольку дом утеплен, и из материала, который сам по себе "теплый" (пеноблок) то эта "инерция" не линейная. Но путем проб и отчасти ошибок такая зависимость все же получена.
В итоге, концепция раздельных модулей, где каждый оперируют своей задачей и не зависят от внешнего сервера я считаю обоснованной по многим причинам. Но не навязываю ее автору. Просто взять ее преимущества в основу и дополнить уже работающую систему.
А в целом автору удачи. Я глядя на его примеры реализации много взял себе в качестве концепции и как идеи. За это ему огромное спасибо.
С Уважением!!!!
Slavyanin55, подскажите, пожалуйста: где вы купили экран 2004LCD с русским шрифтом?
Такой экранчик я взял из подохшего контроллера вот такой вот установки дозирования хим.реагента. Офигенный экранчик, но подсветка могла бы быть поярче. http://www.hms-neftemash.ru/product/nasosnye-stantsii-ustanovki-dozirovaniya-reagentov/ustanovki-dozirovaniya-khimreagenta-udkh-metanola/
Да, так оно и оказалось. Я компилирую в IDE 1.0.5. А этот компилятор не показывает загрузку ресурсов.
Закомпилировал с горем пополам IDE 1.8.5. пишет, что недостаточно памяти. Закомментировав всю работу с ESP, получил значение в 50%. Всё правильно MaksVV говорит надо в PROGMEM запихивать, но компилятор опять там чего то не видит, что то ему не нравится. Библиотеки подбирать такая мука :)
Почти победил плавный розжиг ночной подсветки... оказалось, что куча библиотек поделили между собой внутренние таймеры Меги и блокируют работу ШИМа на 12 пине. Опытным путем обнаружил, что на 4-м пине ШИМ работает, правда бывает "моросит" подсветка при розжиге/гашении.
Понятное дело,что Мега не резиновая и возможности ограничены... но ещё бы подрастянуть её :)
Slavyanin55, можно более подробные фото экрана? Нет поблизости подходящего сгоревшего контроллера :)
Заменил я кабель до экрана на экранированную FTP. BMP180 удалил пока.
Slavyanin55, можно более подробные фото экрана? Нет поблизости подходящего сгоревшего контроллера :)
https://vk.com/id18126240?z=photo18126240_456239276%2Falbum18126240_252822785%2Frev
На АЛи такого нет, я уже смотрел.
Слава, я уже тебе говорил, везде где печатаешь в порт или в lcd текст - используй макрос F. Это довольно простой и действенный способ сэкономить оперативную память, у тебя в скетче просто уйма Serial.print - ов . Применив LCD ты еще принтов добавил. Действительно очень даже может быть, что оперативка заканчивается.
было
используем макрос F, строковые константы при этом ложатся не в ОЗУ, а на флеш:
Макс! Я всё помню, я обязательно победю! :)
Slavyanin55, можно более подробные фото экрана? Нет поблизости подходящего сгоревшего контроллера :)
https://vk.com/id18126240?z=photo18126240_456239276%2Falbum18126240_252822785%2Frev
На АЛи такого нет, я уже смотрел.
Ребят, могу посоветовать сенсорный экран компании Nextion, для создания оболочки у него имеется бесплатный софт, там даже ребенок разберется.
Дисплей от 2.8 до 7 дюймов, 7-и дюймовые дисплеи можно купить уже с рамкой, чтоб не колхозить).
С Ардуиной общается по Serial (TX, RX). Дисплеи есть резистивные и емкостные.
Я беру их на али, Рекомендую (Surenno Store) магазин на AliExpress.
Вот делал проект охранки-пожарки в котельной, ссылка на видео
Добрый день, а где можно посмотреть, почитать про Ваш вариант реализации умного дома?
Добрый день, а где можно посмотреть, почитать про Ваш вариант реализации умного дома?
Кому адресован вопрос?
вопрос адресован, rw4cju.ru
вопрос адресован, rw4cju.ru
доброе время суток.
ВАС что конктретно интересует? Как реализовано.
см. вот этот сайт (не реклама) http://majordomo.smartliving.ru/forum/viewforum.php?f=8 на нем подробно описана вся система. См ник shemnik69
Выполнена она на raspberry 3. К ней? (ему?) подключен HDD через USB. на нем же развернута и сама система т.е операционка приложения (по сути небольшой сервер) .


Вот как это размещено "в натуре". Коридор там станция теплого пола (насос) внутри сам сервер. Работате круглые сутки уже более года. Отсутсвие эл. энергии переживает прекрасно может обходится (проверено) почти 28 часов что в моей практике не случалось. Есть генератор поскольку котел без эл. энергии не работает.
Идем далее. Сам сервер это система MajorDomo. Работатет без сбоев с момента пуска, обновления и пр. делаю перодически через веб стрницу. Сами внешние узлы это множество разных блоков которые сами по себе живут но в комбинации и образуют умный дом. детально каждый расписывать долго см на стрнице указаной выше.
Вот приммер модуля который принимает 4 контактных датчика (2 с прерыванием, порт RS485. 2 реле. 2 DHT 11 (22) и до 16 датчиков DS18b20, (хотя такое количество это абсурд) но 2-3 прекрасно работают. Вот его:http://majordomo.smartliving.ru/forum/viewtopic.php?f=22&t=3976 ели интересно то можно подробнее описать. Есть печатка (в корпус счетчика).
Отличия от авторской по сути в том что система сама в себе (мозг управление) и не имеет привязки управляющих блоков реле кнопок и пр напрямую. Т.е это чисто командынй блок. Он же задает общий тренд поведения всей остальной команды контроллеров, в тоже время каждый из них сам по себе тоже работает в сети и как передает так может принимать (если есть такая задача) информацию, выполняет команды и пр. А центральный блок (сервер ) это еще и samba на которой лежат фильмы видео и пр. поскольку есто трекер для скачивания и с 00 часов (безлимит) он начинает свое "темное" дело. Вот как то так.
Еще добавлю что сама система (в целом) это постоянный поиск (с 2011 г) вариантов, и сначала она также строилсь в виде одного блока шкафа. В которыый сводилось "вся и все", но после нескольких лет "эксплуатации" от этого отказался в пользу распределенного интелекта по всему дому. Причина проста. Централизация затрудняет выполнеие задачи при ее развитии, а также чрезмерно усложняет все структурно. СКС конечно это замечательно сам знаю (по работе) но если изначально либо последовательно строить все на основе уже заведомо "умных"! блоков либо минимально встраивать в них интелект то централизация уже сводится к информ обмену а тут уже совсем другой расклад, и как раз этот вопрос прекрасно решен на уровне IP либо других протоколов. Modbus. TCP/IP. CAN и пр.
Если пример ..телевизор холодильник микроволновка и пр имеют в своем составе микроконтроллры причем довольно мощные. b если у этих устройств есть каналы обмена информаци либо управления (например LAN. ИК порт WiFI и пр. да даже кнопочное управление можно вывести в информационный поток, то логично создвать не монстра совмещающего как просту логику так мускулы (реле актуаторы ипр), а информационую систему которая и будет это все делать. С появленим таких микрокомпютеров типа Raspberry это на мой взгляд само собой разумеется.
Потом, NRF24+MK или ESP8266 это просто идеальные для этого. В доме 3 ESP 8266 и 7 NRF решили самые трудные вопросы как разместить чтото не вступая в противоречие с домашними. А это ведь знаете что... ....
Блок управления ворот. Он на улице. открывает закрывает створу и калитку (ключи и дистанционно) если сам по себе, то от кнопки и ключей, а дистанционно по команде с телефонов, смартов, домофона времени. магнитолы в машине (когда заведена, блитуз цепляет мой смарт, а он открывает ворота) когда выехал, по ИК датчикам пересечения проема ворота закроются.
Писать можно долго и детально, но не всем подойдет такая реализация.
Много факторов и желания а также возможностей должны совпадать.
Критики тоже на спят, им своего порой не нужно, а чужое все не такое как у них и конечно оно хуже. Все мы люди. Это понимаю тоже.
Моя позиция, не критика, а рекомендация, потому как вижу "путь Самурая" у Вячеслава и хочу ему дать предложения.
Он конечно может их принимать /не принимать но остальные тоже из этого делают выводы.
А в целом, поскольку есть результат то значит автор добился того что хотел.
спасибо
Да, так оно и оказалось. Я компилирую в IDE 1.0.5. А этот компилятор не показывает загрузку ресурсов.
Закомпилировал с горем пополам IDE 1.8.5. пишет, что недостаточно памяти. Закомментировав всю работу с ESP, получил значение в 50%. Всё правильно MaksVV говорит надо в PROGMEM запихивать, но компилятор опять там чего то не видит, что то ему не нравится. Библиотеки подбирать такая мука :)
Понятное дело,что Мега не резиновая и возможности ограничены... но ещё бы подрастянуть её :)
На самом деле библиотеки тоже отжирают память. Причем очень часто -неоправданно.
Я бы все таки рекомендовал уйти от большого кол-ва глобальных переменных, часть загнать в EEPROM, остальное по максимуму использовать в функциях, отдавая - получая значения этих переменных обращением к функции. Я при помощи такого решения получил практически 25% экономии памяти.
Строки для отправки по тревожным сообщениям можно положить на SD карту, и брать их оттуда.
Уважаемые! Прошу консультации, внимательно смотрю реализацию данного проекта. (!!!) Решил сделать себе противопожарную, охранную и газовую сигнализацию, в связи сэтим у меня возник вопрос по датчикам. В статье http://blog.kvv213.com/2016/09/razbiraemsya-s-datchikami-co-i-metana-mq-4-i-mq-7/ описано не к чемность датчиков серии MG, но это все теория, а как на практике? Стоит устанавливать данные датчики или искать по серьезнее, (соответствено дороже),кто нибудь испытывал их на практике не на макете? И какие посоветуеете для частного дома?
Уважаемые! Прошу консультации, внимательно смотрю реализацию данного проекта. (!!!) Решил сделать себе противопожарную, охранную и газовую сигнализацию, в связи сэтим у меня возник вопрос по датчикам. В статье http://blog.kvv213.com/2016/09/razbiraemsya-s-datchikami-co-i-metana-mq-4-i-mq-7/ описано не к чемность датчиков серии MG, но это все теория, а как на практике? Стоит устанавливать данные датчики или искать по серьезнее, (соответствено дороже),кто нибудь испытывал их на практике не на макете? И какие посоветуеете для частного дома?
Привет, это ты - Mansur Khabi.
- Датчик дыма
Чтоб не парится с датчиками дыма и не колхозить корпуса для них, советую готовый вариант, датчик имеет 4 провода, два из них питание 12В самого датчика, остальные два - выход (например, купили датчик с нормально разомкнутым (НР или НО) контактом, при наличии дыма датчик замыкает внутри себя контакты, далее подключаем к Arduino)
Для датчика с нормально замкнутым (НЗ) контактом все происходит также, только при дыме датчик размыкает свои контакты.
Извещатель пожарный дымовой 4-х проводный ИПД-3.2М НР
- Датчик загазованности
Этот датчик в отличии от датчика дыма, имеет НО и НЗ и мы сами можем выбрать выходной сигнал.
Проводной датчик утечки газа Sapsan GL-02 исп. 1(12V)
Спасибо. На безопасности получается не с экономить, ну и правильно, что бы потом горько не пожалеть...