Привет, Хабр!

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

Моя боль

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

В том числе программирование или другие увлекательные задачи и как следствие сотни подгоревших блюд и замен посуды.

Попытки решить это недоразумение с помощью таймеров и самодисциплины со временем выходили на нет. Возможно можно было бы посмотреть в сторону мультиварки (или налаживания более прочных контактактов с противоположным полом), но к моменту решения я уже был знаком c ESP8266.

Как оказалось, нужно совсем не много:

  1. ESP8266 (Или аналог).

  2. Модуль MAX6675 + термопара.

  3. Реле электромеханическое 10A.

  4. Блок питания от телефона.

  5. Вилка и розетка

Примерно прикинув, что конфорке нужно около 6,5А, я успокоился по реле.
Хотя был еще один вопрос, то что реле включается от 5В а ESP8266 оперирует 3.3В.
Но и это не оказалось проблемой, на плате есть пин который идет напрямую от питания, т.е. те самые заветные 5В. (от 3.3 вольта реле реально не завелось)

По инфраструктуре

Было принято решение рулить на минималках. Плита устройство временного использования и не нужно управление через интернет, а радиуса вайфай вполне достаточно. Можно было по играть с MQTT, но если бы был умный дом например.

В итоге имеем:
Точка доступа на плате (с паролем - минимальная степень защиты).

Что по коду?

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <HttpClient.h> 
#include <ESP8266HTTPClient.h>
#include <ESP8266HTTPUpdateServer.h>  // либа для обновления по воздуху

// гайвер температура
#include <GyverMAX6675.h>

// Пины модуля MAX6675K
#define CLK_PIN   D3  // Пин SCK 
#define CS_PIN    D2  // Пин CS
#define DATA_PIN  D1  // Пин SO

// указываем пины в порядке SCK SO CS
GyverMAX6675<CLK_PIN, DATA_PIN, CS_PIN> sens;


// * Установить свой SSID и пароль * /
const char* ssid = "iPlita";
const char* password = "12345678";
// * Настройка IP-адрес * /
IPAddress local_ip(192,168,1,1);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);

ESP8266WebServer webserver(80);

ESP8266HTTPUpdateServer httpUpdater;


int tnow; // температура сейчас
int tgo=-2;  // температура к которой стремиться

int   secafter; // секунд после последней комманды или включения
int   tout=25;   // время после которого система отключает плиту - в минутах


String imode='off';

uint32_t tmr1;    // сеунд после последней комманды или включения

Выбор подключаемых библиотек очевиден, но немного прокомментирую.

Планируется работа с вайфай в качестве сервера (+ поднятие точки доступа).
А так же была выбрана легковесная библиотека работы с термопарой (От Алекса Гайвера).
В начале были сомнения по поводу нее, но так как был всего день на сборку, то допустил и надо сказать свои функции она выполняет прекрасно.

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

Сетап и цикл

void setup() {
  Serial.begin(9600);
  
  WiFi.softAP(ssid, password);
  WiFi.softAPConfig(local_ip, gateway, subnet);
  delay(100);

  // Start Web Server
  webserver.on("/", rootPage);
  //---------------------------
  webserver.on("/gtemp", gett ); // отдать температуру 


  //--------------------------- задать  температуру 
  webserver.on("/stemp", HTTP_GET, [](){
    if (!webserver.hasArg("temp")) {
      return webserver.send(500,   "application/json", "{\"message\":\"No temp found\"}"); //
   }
    tgo = (webserver.arg("temp")).toInt();
    int tnn=sens.getTempInt();
    if (tgo>tnn) {imode="warm";}  
    if (tgo<tnn) {imode="cold";}
    //if (tgo>tnn) {imode="ready";}   

    tmr1 = millis();          
    
    return webserver.send(200, "application/json", "{\"message\":\"ok\"}"); //
  });



//---------------------------  задать интервал работы
  webserver.on("/stime", HTTP_GET, [](){
    if (!webserver.hasArg("time")) {
      return webserver.send(500, "application/json", "{\"message\":\"No time found\"}"); //
   }
    tout = (webserver.arg("time")).toInt();
    tmr1 = millis();          
    
    return webserver.send(200, "application/json", "{\"message\":\"ok\"}"); //
  });


  //---------------------------  // отдать режим
  webserver.on("/gmode", HTTP_GET, [](){
    
    return webserver.send(200, "application/json", "{\"mode\":\""+imode+"\"}"); //
  });

  webserver.onNotFound(notfoundPage);
   
  httpUpdater.setup(&webserver,"/firm","admin","1234");
  
  webserver.begin();

  pinMode(D4, OUTPUT); 
  pinMode(D5, OUTPUT);
  pinMode(D6, OUTPUT);
  
  digitalWrite(D5, 0);
  digitalWrite(D6, 0);
  digitalWrite(D4, 0);

  tmr1 = millis();   

  imode="off";

}

void loop() {
   webserver.handleClient(); 
  
     
     if ( (tmr1+(tout*60*1000)) < millis() ) { imode="off"; }     

     if ( (millis() - tmr1)>(tout*60*1000) ) { imode="off"; }     
     
     if (imode=="warm") {Warm(); digitalWrite(D4, 0); }
     if (imode=="keep") {Keep(); digitalWrite(D4, 0); }
     if (imode=="cold") {Cold(); digitalWrite(D4, 0); }

     if (imode=="off") {digitalWrite(D5, 0);   digitalWrite(D4, 1);}
  
  delay(1000); 
   

}

В этом блоке кода инициализация и сам цикл.
3 состояния: Нагрев, поддержание и охлаждение.
+ Состояние: выключено.
Да, нагрев тут в один заход, т.е. например нету фазы ожидания для того что бы тепло разошлось и из за этого эффект инерции нагрева дает перелет в 3-9С после выключения.

И собственно тут, что щелкнуло

А именно то, что для меня стало логичным (и собственно, что побудило написать на Хабр).

"Если происходит включение (задание температуры), то автоматом должно назначаться время воздействия".

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

И конечно меня безмерно порадовало свободное выставление точных градусов.

Остальной код

// Handle Root
void rootPage() { 

 // решил попробовать с разу описать запрос - не советую)
 if (webserver.hasArg("temp")) { 
       tgo = (webserver.arg("temp")).toInt(); 
        
       int tnn=sens.getTempInt();
       if (tgo>tnn) {imode="warm";   digitalWrite(D4, 0);}  
       if (tgo<tnn) {imode="cold";   digitalWrite(D4, 0);}
    
       tmr1 = millis();  
    }

  if (webserver.hasArg("time")) { 
    if ( webserver.arg("time")!="" ){
       tout = (webserver.arg("time")).toInt(); 
       tmr1 = millis(); 
      }
    }

   
   
  
   // Фармим станицу оответа 
   String sss="<meta name='viewport' content='width=device-width, initial-scale=1'>"; 
   sss+="<meta charset=\"utf-8\">";
   sss+="<meta http-equiv='refresh' content='30;URL=/'>";
   sss+="Температура датчика: "+String(sens.getTempInt())+"<br>";
   sss+="Температура цель: "+String(tgo)+"<br>";
   sss+="<hr>";
   
   sss+="Время системы: "+String(( millis() )/1000)+"<br>";
   sss+="Время последней отсечки: "+String(tmr1/1000)+"<br>";
   sss+="уст Время работы сек: "+String( tout*60)+"<br>";

   // Вычисление оставшегося времени работы
   int too=( (tmr1/1000) + (tout*60) )-( millis()/1000 );
  
   if (too<0) { too=0; }
   
   sss+="Время выкл через в сек :"+String(too)+"<br>";
   sss+="Время выкл через в мин :"+String(too/60)+"<br>";
 

   sss+="<hr>";
   sss+="Режим:"+imode+"<br>";
   sss+="<hr>";
   sss+="<form method='get' action=' '> <input type='text' name='temp'> <input type='submit' value='УстТемп'>  </form>";
   sss+="<br>";
   sss+="<form method='get' action=' '> <input type='text' name='time'> <input type='submit' value='УстВрем'>  </form>";
   
   
   webserver.send(200, "text/html", sss  ); 
   
}

// ------ отдаем температуру
void gett() { 
   int tn=sens.getTempInt();
   webserver.send(200, "application/json; charset=utf-8","{\"body\":{\"tn\":"+String(tn)+"}}" );
   }
 
// Handle 404
void notfoundPage(){ 
  webserver.send(404, "text/plain", "404: Not found"); 
  }

// режим разогрева
void Warm(){
  
    int tnn=sens.getTempInt();
    if (tgo>tnn) { digitalWrite(D5, 1); } 

    if (tgo<=tnn) { 
         digitalWrite(D5, 0);  
         imode="keep"; 
     } 
}

  void Keep(){
    int tnn=sens.getTempInt();
    if (tgo>tnn) { digitalWrite(D5, 1); } 
    if (tgo<=tnn) { digitalWrite(D5, 0); } 
    }

  void Cold(){
   int tnn=sens.getTempInt();
   digitalWrite(D5, 0); 
    }

В этом участке:
Домашняя страница с авто обновлением без JS :-)

Переключение на режим keep с warm, по достижению целевой температуры:

Устройство на "рабочем месте" (на даче)
Устройство на "рабочем месте" (на даче)
Контакт с термопарой
Контакт с термопарой

Что было бы логично

После такого опыта разогрева и готовки, мне будет "странно" пользоваться обычной плитой. Это то чувство, когда после телевизора с пультом - возврат на кнопочный.

Неужели это так сложно дать в массы такую простую комфортность?

Вот какие социальные изменения ? Какие новые политические веяния?
(я не говорю и передовых местах в электронике)

Что дальше ?

В планах - наладить производство электроконфорок (стандартных типоразмеров) со встроенной термопарой. (Потому как основной проблемой вижу крепление термопары ) Оформить в печатную плату и устройство для быстрого подключения к плите которая досталась тебе от родителей, оставив возможность включения привычным способом. Что бы на выходе мог быть советский тип электро плиты + управление с телефона.

UPD

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

Да, есть мультиварки. Из минусов: во-первых это расширяемость и дополняемость, т.е. добить свои режимы - ну это непросто. (хотя была как идея - взять мультиварку и запихнуть туда ESP c с реле - не исключаю такие эксперименты).
Второе цена заметно выше, хотя если взять не работающую мультиварку и паяльник ...).
Третье это быстрая смена посуды: Для блинов, картошки, варить суп или варенье, задачи бывают очень разные.

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

И да, я все больше понимаю, что "изобрел" мультиварку.
Но, это даже хорошо, просто свой подход :-)

Я таки перевел проект на MQTT :-)

И написал на производство конфорок, с вопросом, о возможности производства со встроенной термопарой.. и вот ответ:

"Добрый день!

Электроплиты, которые собирались в СССР до сих пор стоят на многих кухнях страны и работают, с дизайном только все плохо. А те плиты, которые сейчас собираются в России из Китайских комплектующих полное "гавно", только дизайн стал слегка поинтереснее. Т.к. комплектующие завозятся самые дешевые. А в конфорки устанавливаются термоограничители для предотвращения перегрева, но в России их не производят.

С уважением, заместитель директора ООО"Элекон" Андрей Ворожцов

сот. 8(912)826-53-**"

(Что, они там курят... Без комментариев )

Комментарии (37)


  1. Sunny-s
    27.11.2022 01:10
    +1

    Отличный проект, и кажется, что mqtt здесь выглядит излишним усложнением.


    1. seraz
      27.11.2022 15:18

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

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

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


      1. Uglevod Автор
        27.11.2022 17:03

        Возможно Белорусы аналогично уперлись в конструкционный вопрос - как снимать температуру. А без встроенной термопары это, тот еще вопрос.

        Но, вчера увидел ИК датчик для IOT и возможность использовать его меня весьма порадовала.

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


  1. mentin
    27.11.2022 01:53
    +5

    Телефон из личного ответа в публичный ресурс я бы не публиковал.


    1. ZhilkinSerg
      27.11.2022 11:47
      +1

      Почему нет? Это телефон коммерческой организации, доступный в открытых источниках.


  1. vvzvlad
    27.11.2022 02:23
    +14

    Жуть какая. Код неряшливый, интерфейс неряшливый, монтаж неряшливый, статья неряшливая, но в планах выпуск конфорок, конечно же.
    А главное, непонятен смысл: зачем мне точная температура на конфорке, если мне не нужна точная температура в блюдах? Т.е. если я что-то варю, мне не нужна температура 100°, мне нужна мощность, чуть превышающая отдачу энергии через испарение воды. Будет меньше — не будет кипения. Будет больше — вода и энергия будут бесполезно уходить в воздух. Расскажите, какую температуру конфорки мне надо выставить на вашем агрегате для этого?

    Если я что-то жарю на масле, то мне вообще пофиг, сколько там, 150, 200 или 210: подойдет любая температура, которая создаст корочку, но при этой же температуре лук прекрасно сгорит, если о нем забыть. А чтобы вычислить точное время жарки лука — это надо в ресторане работать, чтобы у тебя каждый день на одной и той же сковороде жарилось одно и то же количество лука в одном и том же количестве масла. Еще и мешалось одинаковыми движениями.

    Ах да, мне для работы с вашей конфоркой надо: взять телефон, разблокировать, настройки-wifi, подключиться к сети конфорки (интернета не будет, музыки не будет, мессенжеров не будет, гугла не будет), открыть браузер, ввести адрес, там тыкнуть на одно поле, ввести температуру, нажать «установить», тыкнуть на второе поле, ввести время, нажать «установить». Готовить.

    Для работы с той плитой, что у меня на кухне: нажать «вкл», нажать «плюсик» напротив нужной конфорки. Готовить.

    Цитируя вас, «Неужели это так сложно дать в массы такую простую комфортность?»


    1. Uglevod Автор
      27.11.2022 16:41

      Здравствуйте. Спасибо, что откомментилли, реально - это моя первая статья на хабре.

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

      - Вы не поверите ) Но есть разные степени кипения, применяемые для разных типов супов (т.к. суп это не только вода а, условия еще и зависят от продуктов)

      - Да, точное управление температурой, делает из простой конфорки - более профессиональный инструмент, но выключение по времени - более сковородко и еда сберегающий )

      -Это еще далеко от профи кухни. Вы знали, что в столовых варят суп закрытом чане при давлении ? (там датчики темепературы и давления)

      - Но я знаю одно, прям точно. Для разогрева обеда, мне достаточно 70С и 15 минут.

      Ах да, мне для работы с вашей конфоркой надо: взять телефон, разблокировать, настройки-wifi, подключиться к сети конфорки (интернета не будет, музыки не будет, мессенжеров не будет, гугла не будет), открыть браузер, ввести адрес, там тыкнуть на одно поле, ввести температуру, нажать «установить», тыкнуть на второе поле, ввести время, нажать «установить». Готовить.

      Уже нет, уже MQTT. В Облаке.
      Уже одна кнопка в MQTT dash и процесс запущен.

      Я полагаю вы не против, хотя бы того, что в конфорке - выключение по времени - это благо ?


      1. PuerteMuerte
        27.11.2022 18:49

        Я полагаю вы не против, хотя бы того, что в конфорке - выключение по времени - это благо ?

        Я против. Стандартный процесс готовки на плите - поставить таймер, подойти по сигналу, проверить готовность, и если надо, тогда выключить. А в половине случаев что-то вроде "оставить ещё на три минутки". Если она будет сама выключаться, нормально вы не приготовите.


        1. Uglevod Автор
          28.11.2022 12:55

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

          Но, я вас прекрасно понимаю ) С таким устройством можно провести "мысленный эксперимент" , но реальность будет отличаться.

          поставить таймер, подойти по сигналу, проверить готовность, и если надо, тогда выключить

          К сожалению, пока у вас не будет отключающего таймера у плиты, вам не придет на ум, что можно -
          Поставить таймер, подойти по сигналу, проверить блюдо - и если надо ВКЛЮЧИТЬ.
          Т.е. изначально, я лично, таймер ставлю, на время предполагаемой готовности.
          И в случае наличия отключения по таймеру, я могу себе обоснованно позволить вывести процесс готовки из зоны повышенной ответственности ибо могут быть дела и интереснее

          Интересно, вас раздражает, что монитор у компа гаснет по таймеру ?)


          1. PuerteMuerte
            29.11.2022 01:43

            Я против именно того, что я выделил, когда отмечал. Эта функция в подавляющем большинстве случаев бесполезна при готовке на плите, а иногда ещё и портит блюдо. Но конечно же, я прекрасно понимаю, что своего слона все хвалят :)

            Интересно, вас раздражает, что монитор у компа гаснет по таймеру ?)

            Разработчики этого таймера были достаточно предусмотрительны, чтобы он не срабатывал ни во время работы, ни во время просмотра видео. Слабо так сделать для конфорки?


            1. Uglevod Автор
              29.11.2022 13:06

              Но конечно же, я прекрасно понимаю, что своего слона все хвалят :)

              Причем тут мое ?
              Таймер есть в микроволновках, таймер есть в мультиварках.
              Сожалею, что вам не очевидна его польза.
              Но даже при всем при этом, ну не используюте его. Почему вы решили, что я для вас разрабатываю девайс ?
              Вы читали другие комменты ? Вы видели сколько лояльных пользователей, к данной концепции ? Они вас не поймут.

              Разработчики этого таймера были достаточно предусмотрительны, чтобы он не срабатывал ни во время работы, ни во время просмотра видео. Слабо так сделать для конфорки?

              Что бы конфорка не срабатывала во время просмотра видео ?

              Вы уже не знаете до чего докопаться ? Остановитесь, Сэр.

              Вы решили сравнить максимально возможный уровень автоматизации на микроконтроллере (ESP8266) с уровнем автоматизации которое доступно ПК ?
              Сэр, вами овладело безумие.

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


      1. vvzvlad
        28.11.2022 23:30

        — Вы не поверите ) Но есть разные степени кипения, применяемые для разных типов супов (т.к. суп это не только вода а, условия еще и зависят от продуктов)

        А на вопрос-то ответите, любитель проф кухни вы наш?


  1. PuerteMuerte
    27.11.2022 04:40
    +3

    А вы не задумывались, почему вообще у духовки есть регулятор температуры, а у конфорок - нет? Потому что это не особо полезная вещь: если вы что-то ставите на конфорку, регулятором температуры является ваша вода или масло. Вода нагреется ровно до 100 градусов. Сливочное масло нагреется до кипения примерно 140-150 градусов, подсолнечное - примерно до 200. По сути, пользователю важна только длительность варки/жарки и мощность, но таймер сейчас на каждой кухне есть, и в каждом телефоне.

    А если что-то более интеллектуальное - изменение температуры или мощности в процессе готовки, ну так это мультиварки.


    1. DaneSoul
      27.11.2022 05:17
      +3

      Сливочное масло нагреется до кипения примерно 140-150 градусов, подсолнечное — примерно до 200.
      Ага, выкрутите мощность на максимум и получите котлеты сгоревшие снаружи, но при этом сырые внутри.


    1. Fodin
      27.11.2022 07:14
      +1

      Регулятор температуры не нужен. А вот термопара - очень даже. Я бы очень хотел, чтобы в варочной панели был режим "каша/безопасная варка". Температура дна кастрюли поднялась выше 100 градусов - выключаем нагрев, т.к. это означает, что вода выкипела и дальше содержимое будет только пригорать и гореть. И рис никогда не пригорит, и компот забытый на плите пожарных не позовет.


      1. aamonster
        27.11.2022 11:48

        Но это уже получается аварийный датчик, а не для готовки...


        1. Fodin
          28.11.2022 12:21

          Нет ничего аварийного в том, что в процессе варки каши закончилась вода. Рис, например, варится 25 минут потому, что примерно за это время вода впитывается и каша еще не начинает жариться.


          1. aamonster
            28.11.2022 13:10

            Чую в этом подвох (что если попытаться так настроить – будет срабатывать или слишком рано, или слишком поздно)... Надо попробовать подсоединить термопару к кастрюле (опять же, именно к кастрюле, не к поверхности плиты) и снять график. Возможно, нужен какой-то хак, как в электрическом чайнике (знаете же, что в нём датчик в ручке настроен на 80℃, и срабатывает от пара при кипении?)

            Но, конечно, логичным для готовки кажется датчик, сующийся внутрь кастрюли. Я для жарки привык вообще пирометром пользоваться, рекомендую.
            Хотя для каши оптимально два датчика (как с регулятором тёплого пола: есть датчик температуры пола, есть датчик температуры воздуха. На одном работать можно, но хуже).
            Но если наворачивать датчики – получим плиту для хакеров). Нормальным людям придётся с пресетами работать.


      1. Uglevod Автор
        27.11.2022 16:03

        Так разве это не тот же регулятор температуры ? )
        Например на разогрев еды, выставляю 70С
        (и выше она не поднимется )
        + отсечка по времени

        У вас техническая проблемка,
        а, именно, Как вы хотите измерить - температуру именно дна кастрюли ?
        т.е. температура поверхности конфорки не всегда равно температуре дна посуды.

        И в вашем случае, как одно из решений, было бы - отключение по времени
        (например в 30 минут, в течении которых, можно предположить, что не все выкипит )


        1. Fodin
          28.11.2022 12:32

          Нет, это не регулятор температуры. Температуру варки регулирует вода. Окончание приготовления - это не истечение времени, а температура, которая резко пошла вверх.

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

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


          1. aamonster
            28.11.2022 13:21
            +1

            Напоминает режим -deltaV заряда NiMH аккумуляторов.
            Можно добавить и обратный – обнаружение закипания воды. Если температура монотонно шла вверх, а потом перестала – пора звать хозяина, чтобы он засыпал макарошки :-)


    1. Uglevod Автор
      27.11.2022 16:24

      Звучит возможно убедительно )
      Но вы когда последний раз, готовили с недельку при этом по пути запиливая проект ? )
      (Не особо жалую заказную еду, когда хороший рис готовится менее чем за 30 минут )

      И таймер - просто со звуком это значит, что руки не дошли до того что бы прикрутить к нему реле ))

      т.к. это я не себя программировал на действия (По звоночку, подняться и выключить аки лемменг) а, я плиту - запрограммировал на действия.

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




  1. anonymous
    00.00.0000 00:00

    НЛО прилетело и опубликовало эту надпись здесь


  1. Fodin
    27.11.2022 07:21
    +1

    Выглядит это все пока, конечно, страшно. Даже для PoC. Можно ж было код причесать хоть чуть-чуть для публикации?
    Тэг IOT от ужаса прочитал, как ЮТ.


  1. Radisto
    27.11.2022 07:37
    +3

    То, что описано в статье, делает мультиварка. У меня та же проблема была: сколько я сжёг кастрюль, это ужас. Покупать мультиварку тоже давила жаба, потом ее мне мама подарила. Избавляет голову от кучи хлопот. Настройка "под себя" там как правило есть в виде режима "ваш повар" или что-то подобное. Как оказалось, мне он не нужен, я и стандартными-то не всеми пользуюсь. Они избыточны


  1. select26
    27.11.2022 11:15
    +1

    Возможно можно было бы посмотреть в сторону мультиварки (или налаживания более прочных контактактов с противоположным полом), но к моменту решения я уже был знаком c ESP8266.

    Ну с таким подходом вы так далеко зайти можете!

    А ещё вы изобрели велосипед. Многие модели мультиварке поддерживают управление по BT. И не так давно тут было описание расширения возможностей такой мультиварки путем внешнего управления.
    В общем я советую сосредоточиться на налаживании более прочных контактактов с противоположным полом. Продуктивно во всех отношениях. )


  1. AlexSlo
    27.11.2022 15:49
    +4

    Интересный проект для начинающих. Уважаемые старожилы, не забывайте, что статьи на habr.com пишутся не только для искушенных профессионалов. Согласен, что код нужно причесать, фото заменить на рисунки и схемы, если прототип еще "на коленке" собран.
    Проект можно развивать добавив например весы и ПИД регулирование температуры, сохранение/загрузка различных схем приготовления используя облако и т.д.
    Я лично давно смотрю на свою старую мультиварку со сгоревшими "мозгами". Как искушенный пользователь этих девайсов хочу сказать, что еще не одна из 5, не самых дешевых, меня не устраивала на 100%. Поэтому идея замены китайских "мозгов" на ESP c открытым кодом мне кажется интересной.
    Вообще не понимаю откуда столько негатива? Необязательно на начинающего автора накидываться - "Жуть какая. Код неряшливый, интерфейс неряшливый, монтаж неряшливый, статья неряшливая....."
    Неужели нельзя тоже самое написать нормальным не уничижительным тоном?


  1. peacemakerv
    27.11.2022 16:57

    Давно мечтал о подобном подходе, т.е. интерфейсе управления бытовой варочной панелью.
    И завести туда обратную связь от датчика ... пара над плитой. Т.е. контролировать непосредственно процесс кипения. И не давать воде выкипать.


  1. unclegluk
    27.11.2022 17:02

    «или налаживания более прочных контактактов с противоположным полом» — это проще, но лучше налаживать контакты, а не контактакты. В любом случае лучше сосредоточиться на готовке и не парить себе голову посторонней фигней. Хочешь жрать — выкинь из головы все, что не относится к еде.


  1. randomsimplenumber
    27.11.2022 20:07

    Термопара с проводом не мешает мыть сковороду? ;)
    Имхо этой идее не хватает законченности. Торчащие провода - это неудобно и опасно. Сделать датчик беспроводным, герметичным, спрятать в ручку.. Научить угадывать, на какой конфорке стоит хитрая посуда.. И снова остаётся необходимость модификации плиты..
    Сравнить с мультиваркой: законченная конструкция, все соединения внутри. Мыть кастрюлю ничто не мешает. Внимания при готовке не требуется: можно закинуть компоненты еды когда есть настроение и съесть полученный продукт когда проголодаетесь ;)


    1. Uglevod Автор
      28.11.2022 08:59

      На фото - конфрка )
      Термопара касается ее поверхности, на которую можно ставить любую посуду.


  1. Moskus
    28.11.2022 00:28
    +1

    Показательная история на тему незнания фундаментальных сведений о (силовой) электронике.

    Поскольку термопара всё равно не измеряет температуру точно в искомой области нагрева, а является аналоговым интегратором для функции питания и охлаждение системы, её можно смело выбросить и использовать сопротивление (падение напряжения) на ТЭНе. Так что не нужны специальные конфорки.

    Верный подход был бы в (автоматическом) определении коэффициентов, описывающих теплоемкость, теплопроводность и теплоотдачу конкретной "кастрюли с супом" с использованием двух датчиков, погружаемых в содержимое сосуда для приготовления пищи чтобы подстраивать PWM так, чтобы и температура была нужной, и количество теплоты, передаваемой сосуду, не позволяло нижнему слою подгореть.


    1. Uglevod Автор
      28.11.2022 09:10

      и использовать сопротивление (падение напряжения) на ТЭНе

      Это весьма интересно, протестирую )

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

      Борщ с термопарами ? ) Для придания особого пикантного вкуса ) ?
      Это не планируется в моем проекте.


      1. iig
        28.11.2022 10:28

        использовать сопротивление (падение напряжения) на ТЭНе

        Конечно, можно, зная напряжение, ток и ТКС нихрома, температуру измерить можно. Но точность может не понравиться. Да и зачем вам температура нагревателя, если нужна температура кастрюли?

        Борщ с термопарами ? ) Для придания особого пикантного вкуса ) ?

        На Али куча дешевых термометров для контроля температуры гриля. Технически ничего сложного, но неудобство зашкаливает.


      1. halfworld
        29.11.2022 14:30

        Это весьма интересно, протестирую

        Сходу не нашёл, но старожилы говорили, что у нихрома в районе 500-600 °С (когда проволока начинает светиться) есть участок с отрицательным ТКС. Есть возможность проверить это лабораторными методами?


  1. aumi13
    29.11.2022 13:10

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

    отсюда вывод - не покупай мультиварку, это заразно.


    1. iig
      29.11.2022 16:38

      купить третью, при работающих первых

      Но зачем, Холмс??