• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Умный дом для чайника

Serjaru

Member
проект должен включать детальное описание всех функций и алгоритмов, которые Вы хотите реализовать, описание интерфейсов, тестов, спецификацию, структуру, смету.
Вы все это уже сделали?
Нет. Полагаю потому, что Вы и понятие об этом не имеете, как и о сложности разработки реального проекта.
Вот!!! Человек написал прямо в точку!!!! "Вы и понятие об этом не имеете, как и о сложности разработки реального проекта." это 100% правда!

А все остально, что тут вы рассуждаете - это пионерство и болтовня!
 

Serjaru

Member
@Alexey N кстати, надо еще понимать факт потребления питания ESP. Если вы планируете все питать от внешнего источника, то тянуть провода, а это не всегда удобно. Если от батарейки - то тут уже все слоооожнее!
 

Юрий Ботов

Moderator
Команда форума
Кто то действительно пишет что то полезное. А кто то просто самоутверждается. Тема "Умный дом для ЧАЙНИКА", а
А все остально, что тут вы рассуждаете - это пионерство и болтовня!
. Вы считаете что тут должны быть выложены описания стандартов и готовые проекты? И ... ну как то странно хаять esp8266 на сайте esp8266.ru :) Есть более подходящие места.
 

Alexey N

Member
Вспомнилась статья на Хабре. Про Ардуино. Человек (судя по всему, очень грамотный специалист) описал все недостатки Ардуино. И то, что детальки, из которых она собрана, стоят три копейки и самому собрать такую ардуину проще простого. И что готовые библиотеки помимо того, что кишат ошибками, практически не дают возможности развиваться и логически мыслить. И что профессиональному радиоэлектронщику моветон брать в руки Ардуину. В общем много и правильно все написал. А в комментах его послали на хер ему вежливо объяснили, что Ардуино позиционируется как вещь для хобби. Вы понимаете, что такое хобби? У меня уже есть работа, которая меня устраивает, которая соответствует моей специальности, и в которой я развиваюсь. Профессиональным программистом или электронщиком я не стану. Я не пойду получать еще одно образование, просто для того, чтобы помигать лампочкой. Да у меня и нет таких целей. Я не собираюсь делать это за деньги или кому-то еще, кроме себя. Читая форум и видя, какие проекты люди делают, прекрасно видно, что умный дом это и есть достаточно примитивная штука. Для меня это не так, разумеется. Но одному форумчанину я уже несколько раз пояснял. Могу и повторить еще раз. Меня не оскорбляет тыканье носом в мое незнание. Я это знаю сам. Про то, что я чайник, я сразу отметил в названии темы. И я здесь именно для того, чтобы получить помощь, научиться и набраться знаний у боле опытных людей.
 
Последнее редактирование:

nikolz

Well-known member
Вспомнилась статья на Хабре. Про Ардуино. Человек (судя по всему, очень грамотный специалист) описал все недостатки Ардуино. И то, что детальки, из которых она собрана, стоят три копейки и самому собрать такую ардуину проще простого. И что готовые библиотеки помимо того, что кишат ошибками, практически не дают возможности развиваться и логически мыслить. И что профессиональному радиоэлектронщику моветон брать в руки Ардуину. В общем много и правильно все написал. А в комментах его послали на хер ему вежливо объяснили, что Ардуино позиционируется как вещь для хобби. Вы понимаете, что такое хобби? У меня уже есть работа, которая меня устраивает, которая соответствует моей специальности, и в которой я развиваюсь. Профессиональным программистом или электронщиком я не стану. Я не пойду получать еще одно образование, просто для того, чтобы помигать лампочкой. Да у меня и нет таких целей. Я не собираюсь делать это за деньги или кому-то еще, кроме себя. Читая форум и видя, какие проекты люди делают, прекрасно видно, что умный дом это и есть достаточно примитивная штука. Для меня это не так, разумеется. Но одному форумчанину я уже несколько раз пояснял. Могу и повторить еще раз. Меня не оскорбляет тыканье носом в мое незнание. Я это знаю сам. Про то, что я чайник, я сразу отметил в названии темы. И я здесь именно для того, чтобы получить помощь, научиться и набраться знаний у боле опытных людей.
Вы все правильно пишите, но если согласитесь, что Вы не делаете иллюзий, что сделаете действительно умный дом. Потому что умный дом или нет, но это либо дом, в котором можно жить, либо это хобби, которым интересно заниматься в свободное время.
Но, как правило, хобби - это дорогое удовольствие, а на данном форуме все посты начинающих начинаются типа так - "сделать это дорого, но я купил eSP за 100 рублей и вижу что остальное можно в инете бесплатно. Поэтому полагаю сделаю это быстро дешево и так же как за дорого"
----------------------------------
А в остальном Все верно, кто-то из старой волги делает супер авто, кто-то умный дом на ESP.
Это хобби, а значит - дорого.
 

Alexey N

Member
@nikolz, ну, тут можно снова немного пофлудить что такое "действительно" умный дом и чем он отличается от "просто" умного дома :) Не очень понял Ваше высказывание
либо дом, в котором можно жить, либо это хобби, которым интересно заниматься в свободное время.
Вы хотите сказать, что если я буду заниматься домашней автоматизацией в качестве хобби, то жить в таком доме будет нельзя? :)
И, если вернуться к первым постам, то я до сих пор не готов предоставить Вам смету в которую надо уложиться. Однако нигде я не говорил, что хочу сделать все за три копейки. Та же самя метостанция, которую я постигаю, кроме собственно ЕСП требует разных датчиков. А еще будет коробка, блок питания и провода. Так что иллюзий я не питаю. Хотя так как это хобби, то у меня нет необходимости выкладывать прямо сейчас и прямо всю сумму. По мере возможностей буду потихоньку пилить.
 
Последнее редактирование:
А кто спорит?? Вы тему лучше читайте. Смысл вашего выпада сейчас???
Вашего чего, простите? Вы хоть тему помните, которая в этом треде форума поднята?
Смысл выпада хотите? Окей: пришёл кто-то непонятный, дал всем понять что они дерьмо и остался, чтобы отбиваться от несуществующих нападений на него. И зачем?
 
А кто спорит?? Вы тему лучше читайте. Смысл вашего выпада сейчас???
Если Вам кажется что вы супер-пупер профессионал - вы ошиблись форумом. Этот форум для новичков. Здесь дурацкие вопросы задают и дурацкие темы открывают. Специфика такая у Форума.
 

nikolz

Well-known member
@nikolz, ну, тут можно снова немного пофлудить что такое "действительно" умный дом и чем он отличается от "просто" умного дома :) Не очень понял Ваше высказывание
Вы хотите сказать, что если я буду заниматься домашней автоматизацией в качестве хобби, то жить в таком доме будет нельзя? :)
И, если вернуться к первым постам, то я до сих пор не готов предоставить Вам смету в которую надо уложиться. Однако нигде я не говорил, что хочу сделать все за три копейки. Та же самя метостанция, которую я постигаю, кроме собственно ЕСП требует разных датчиков. А еще будет коробка, блок питания и провода. Так что иллюзий я не питаю. Хотя так как это хобби, то у меня нет необходимости выкладывать прямо сейчас и прямо всю сумму. По мере возможностей буду потихоньку пилить.
=========================
Не назидания ради, а дискуссии для:
------------------------------------
Я понял ход вашей логики следующим образом:
-------------------------
Вы полагаете, что это хобби, результаты Вы не будите продавать другим делаете для себя и... поэтому не хотите становиться спецом по микропроцессорам и программированию и совершенствовать свои знания и опыт в этой области. Так?
-------------------
Но это как минимум странно.
Получается, что если Вы делаете что-то другим за деньги,то делаете это качественно, а если делаете для себя,в свободное время от работы на других, то делаете это тяп-ляп.
Т е для себя - хуже, чем для других?
-----------------------
И еще замечу, что невозможно что-то конкретное сделать не став специалистом в этой области проф деятельности.
И не важно стали Вы спецом самоучкой или Вас этому учили.
Поэтому Ваш тезис , что Вы совершенствуетесь в выбранной Вами специальности и не совершенствуетесь в хобби ошибочен .
------------------------------------
Если Вы хотите построить умный дом, в котором будете жить, то это не хобби, а работа.
Т е Вы в действительности хотите не тратить деньги на покупку решения,
а потратить свое время на изготовление этого решения самостоятельно.
Т е Ваша цель - не занятие интересным делом в свободное время (это и есть хобби),
а получение результата с минимальным затратой денег и любым объемом затрат личного времени.
Проще говоря, Вы сами себя наняли на разработку умного дома.
---------------------------------------------
Хобби - это процесс деятельности , а не результат этой деятельности.
 

=AK=

New member
Получается, что если Вы делаете что-то другим за деньги,то делаете это качественно, а если делаете для себя,в свободное время от работы на других, то делаете это тяп-ляп.
Т е для себя - хуже, чем для других?
Иначе, чем для других. Вы себе еду готовите так же, как на продажу, или совсем по-другому? А в ресторан полезете предлагать свою домашнюю еду? Вот то-то же.
 

nikolz

Well-known member
Иначе, чем для других. Вы себе еду готовите так же, как на продажу, или совсем по-другому? А в ресторан полезете предлагать свою домашнюю еду? Вот то-то же.
Возможно,что Вам виднее.
Я не специалист по ресторанному бизнесу, поэтому не буду рассуждать про ресторан.
Но относительно хуже или лучше.
Суть в том, что не будучи специалистом, Вы будете делать априори хуже, либо дороже и дольше при таком же качестве. Есть такое понятие - технология - оно применимо и в программировании и в строительстве и в приготовлении еды.
 

Alexey N

Member
Суть в том, что не будучи специалистом, Вы будете делать априори хуже, либо дороже и дольше при таком же качестве. Есть такое понятие - технология - оно применимо и в программировании и в строительстве и в приготовлении еды.
Полностью согласен. С самого начала я понимаю, что умный дом на уровне дома Билла Гейтса я не смогу сделать. Потому что не специалист.
Получается, что если Вы делаете что-то другим за деньги,то делаете это качественно, а если делаете для себя,в свободное время от работы на других, то делаете это тяп-ляп.
Т е для себя - хуже, чем для других?
Не совсем так. Если делать другим и за деньги то вот тут уже совершенно необходимы и смета и план работ и сроки, и ответственность за выполнение всех этих пунктов. Делая для себя, я ни перед кем не отчитываюсь. И могу переделывать и совершенствовать систему сколько угодно. Сравнение с рестораном вполне годное :). Кто-то, не будучи профессиональным поваром, вполне может готовить так, что и в ресторане не стыдно предложить. А 80% цены в ресторане это не за продукты, а за сервис и понты :) Жена сама вяжет некоторые детские вещи для нашего ребенка. По Вашему хобби это или работа? Результат здесь важен не менее процесса. Хотя опять же вяжет она сильно медленнее, чем профессиональная вязальщица, которая зарабатывает этим деньги. Да еще помимо вязания занимается другими делами.
Не будучи специалистом я построил дом. Пару лет выплачивали ипотеку за участок и у меня было время на изучение матчасти. Ко мне уже привозили профессиональных строителей на показ "как надо делать". Другой вопрос, что я строю уже год то, что бригада строителей возводит меньше чем за месяц.
Так что хобби это не значит хуже чем купить готовое. Просто дольше и геморройнее, но зато учась чему-то новому и получая удовольствие от процесса.
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
@nikolz в принципе, согласен. Но... Вы какую еду предпочтете, из Макдональдс, сделанную строго по технологии или домашнюю, без оной?
 

Alexey N

Member
Статья в продолжение флуда о "действительно" умных домах Глупый дом Не могу сказать, что полностью согласен с автором. Это просто еще одна точка зрения из множества. Но написано интересно.
Возвращаясь к собственным штудиям. Итак функционал вроде полностью реализован. Датчики меряют, файлы хранятся, данные передаются на сервер в базу данных. Вроде все сделано. Теперь можно переносить все это с макетки на настоящую плату и заняться "причесыванием" и улучшением кода. Поскольку писал я в основном методом копипасты, то сейчас код представляет собой адскую кашу. При этом наблюдаются зависания, потери связи и некоторые еще моменты, которые 100% являются причиной чайниковского кода.
Для начала я бы хотел по кусочкам выкладывать те места кода, которые я совершенно точно знаю, что нуждаются в переработке и надеяться на какую-то помощь.
Итак первый момент. Модуль должен иметь статический IP. Простое использование WiFi.config(ip, gateway, subnet); почему то у меня не заработало. При использовании этой функции ЕСП перестает коннектиться к роутеру. Поэтому я нашел более извращенный пример кода, который сначала удаляет все возможно оставшиеся настройки, а потом заново устанавливает настройки WiFi. Это код работает, но хотел спросить, насколько ужасен этот код, и можно ли сделать как-то более правильно? И почему может не работать простое применение WiFi.config?

Код:
  // Запускаем сервер и подключаемся к беспроводной сети
  Serial.println("WiFi delete all config...");
  // delete all existing WiFi stuff in EEPROM
  WiFi.disconnect();
  WiFi.softAPdisconnect();
  WiFi.mode(WIFI_OFF);
  delay(500);
  Serial.println("WiFi set new config...");
  // connect static
  WiFi.mode(WIFI_STA);

  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);                    //  connect to WiFi network
  WiFi.config(ip, gateway, subnet);
  while (WiFi.status() != WL_CONNECTED) {        //  wait until connected
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  server.begin();                                // Start the server
  Serial.println("Server started");
  Serial.println(WiFi.localIP());                // Print the servers IP address
 

russo

Member
Друзья, подскажите как писать лог посылок датчиков во внешнюю еепром (25-ой серии), что бы был циклический буфер, например на 2000 посылок?

С каждого датчика прилетает 16 байт, базовый контролер прилепляет к пакету еще 4 байта (дата.месяц.часы.минуты) и скидывает в еепром. Как организовать цикловую запись чтобы можно было просматривать события последних 2000 событий?
Приходит на ум постраничная запись, например две страницы по 2000*20 байт, первая страница заполняется - пишем во вторую, вторая заполняется - первую очищаем и пишем в первую и так по кругу.
Но, потом просматривать как последние две тысячи событий? Там же будет наложение страниц, например 1500 событий в первой странице расположено а 500 во второй.
Как потом после просмотра буфера событий возвратиться на нужный адрес записи логов буфера событий?

Ну 2000 пакетов наверно я загнул, хватит и 512.
Приходит на ум писать еще 2 байта порядковый номер пакета в буфере. Но как потом быть при переполнении номера, когда дойдет до 65535?
Нужен алгоритм
 
Последнее редактирование:

Alexey N

Member
@russo, пока никто из старших товарищей не отвечает, позволю себе некоторые мысли. В EEPROM запись ведется по адресу. Поэтому можно завести переменную (например "count") и при каждой записи увеличивать ее на единицу. А запись вести по адресу "count*размер пакета". По достижении "count"=2000, обнулять. Правда в таком виде будет не очень удобно. Потому что при переходе на начало цикла, новые записи окажутся записанными по более младшим адресам, чем старые. Это, наверное, можно решить сортировкой по дате уже в момент вывода.
 

russo

Member
@russo, пока никто из старших товарищей не отвечает, позволю себе некоторые мысли. В EEPROM запись ведется по адресу. Поэтому можно завести переменную (например "count") и при каждой записи увеличивать ее на единицу. А запись вести по адресу "count*размер пакета". По достижении "count"=2000, обнулять. Правда в таком виде будет не очень удобно. Потому что при переходе на начало цикла, новые записи окажутся записанными по более младшим адресам, чем старые. Это, наверное, можно решить сортировкой по дате уже в момент вывода.
Тогда в отдельную ячейку (2 байта) придется писать текущий на данный момент "count".

Если понадобиться вывести инфомацию с буфера, то придется программно плясать от "count" и ниже.
При count достижении нуля делаем
if(!count) count = 2000;
Это при выводе логов

Может еще есть какие нибудь варианты?
 

russo

Member
@Alexey N
вам необходимо приобрести логический анализатор, например
Free shipping 1 set 8 Channel 24MHz USB Logic Analyzer for ARM FPGA | eBay
можно дешевле найти, если поискать

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

Юрий Ботов

Moderator
Команда форума
Может еще есть какие нибудь варианты?
Вариантов нет, но я попробую расписать то что описал Alexey N, возможно станет яснее.
Итак есть:
//Буфер Buf длиной X (допустим 100) записей, каждая запись длиной 20 байт. Итого 2000 байт.
uint8_t buf[2000]
//Переменная счетчик
uint16_t counter = 0;
//Признак переполнения
bool isOwerflow = false;

// формат новопришедшей посылки
uint8_t data[20];

// Действие при приходе новой пачки данных длиной 20 байт:
void push_new_data( uint8_t* data) {
if( counter < (2000-20)) {
counter = 0;
isOwerflow = true;
}
for(int i = 0; i < 19; i++) {
buf[counter++] = data;
}
}

// Узнать количество записей в буфере
uint16_t get_records_count(void) {
if(isOwerflow) return (2000/20); else return count;
}

// Прочитать байт с номером таким-то из записи с номером таким-то
// (допустим для записей номер 0 - это самая старая из доступных записей)
uint8_t get_record_byte(int recordnumber, int bytenumber) {
if(isOwerflow) {
if(2000 - counter < recordnumber*20+bytenumber) {
return return buf[counter+recordnumber*20+bytenumber];
}
else {
return return buf[counter+recordnumber*20+bytenumber - 2000];
}
}
else {
return buf[recordnumber*20+bytenumber];
}
}

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