ESP, IoT Контроллер для печи: нагрев до температуры, выдержка времени. Веб интерфейс +

шурра

★✩✩✩✩✩✩
19 Янв 2022
11
25
Приветствую коллеги! Делюсь с вами проектом, который выполнял на заказ.
Предназначен этот контроллер для нагревательной печи, в которой установлен датчик температуры (термопара).
Пользователь в окне браузера вводит входные параметры: Температуру нагрева и Время выдержки и нажимает Старт.
Печь разогревается и выдерживает заданные параметры, то включаясь, то отключаясь. В конце происходит полное выключение.
В процессе работы на LCD экране можно наблюдать текущую температуру и оставшееся время.
В Веб интерфейс встроен Файловый менеджер для энергонезависимой памяти. Тут отображаются все файлы в памяти. Их можно редактировать, скачивать, загружать и удалять. В этой памяти непрерывно ведется журнал, в котором записываются показания с заданным периодом.
Плюс в браузере в реальном времени строится наглядный график Температура-Время. Для его корректного построения нужен Интернет.
Предусмотрено аварийное выключение прибора при достижении Аварийной температуры.

Готовое изделие с этим контроллером работает уже пол года.
В качестве платы применяется Esp32 38pin.
Для входа на страницу Пользовательского интерфейса используйте адрес http://pech.local (или IP адрес, отображаемый на дисплее после включения).

Для вашего удобства, прилагаю Портейбл версию ArduinoIDE с нужными библиотеками.

Ссылка на облако со всеми файлами проекта: https://drive.google.com/drive/folders/16EHogvHXfEwp8g1oBPOSFpQWd6hwIyO5
Будут вопросы по скетчу - поясню!

Начальные строчки кода:
#include <WiFi.h>
#include <FS.h>
#include <LittleFS.h>
#include <WebServer.h>
#include <ESPmDNS.h>
#include <detail/RequestHandlersImpl.h>
#include <ESPxWebFlMgr.h>
#include "time.h"
#define _LCD_TYPE 1             // 1 - шина i2c, 2 - через 10 пинов
#include <LiquidCrystal_I2C.h>  // автор Frank de Brabander
#include "max6675.h"            // автор Adafruit

#define ledhot      02    // плюс светодиода нагрева, подключать последовательно с сопротивлением 200 Ом
#define staart      17    // zhelt-bel
#define stoop       18    // zhelt-chern
#define therm1      26    // max6675 SCK
#define therm2      23    // max6675 CS
#define therm3      25    // max6675 SO
//                  21    // 2004A disp SDA
//                  22    // 2004A disp SCL

float   minut;            // сколько минут выдерживать
float   gradusov;         // на какой температуре (цель)
int     ostatok;          // сколько осталось секунд
int     delt = 2;         // дельта для температуры
int     pau1 = 100;       // временная пауза для электромагнитного реле
const word webserverServerPort = 80;    // порт для веб-сервера
const word filemanagerport = 8080;      // порт для файлового менеджера
const String hlssid = "wifi-free";      // имя wifi от роутера
const String hlpwd = "88888888";        // пароль wifi от роутера
const char* host = "pech";              // Определяем имя веб-сервера как pech.local
const unsigned long INTERVAL = 10000;    // Определяем интервал записи в файл
const char* ntpServer = "pool.ntp.org"; // Определяем сервер времени
LiquidCrystal_I2C lcd(0x3F, 20, 4);     // LCD адрес: 0x26 или 0x27 или 0x3F
const String webserverDefaultname = "/index.html";
...
1.png2.png4.jpgphoto_2023-04-10_19-06-03.jpgphoto_2023-05-01_23-25-43.jpgphoto_2023-11-06_22-07-31.jpg
 
Изменено:

PiratFox

★★★★★✩✩
13 Фев 2020
1,706
473
@шурра, а что произойдёт, если во время работы будет кратковременный перебой подачи электроэнергии? Возобновит ли работу контроллер или всё прервётся?
 

шурра

★✩✩✩✩✩✩
19 Янв 2022
11
25
@PiratFox, Спасибо за вопрос. Эту задумку можно воплотить, но в нынешнем исполнении печь просто выключится.
 
Изменено:
  • Лойс +1
Реакции: PiratFox

Vadol

✩✩✩✩✩✩✩
22 Май 2024
3
0
Наткнулся на ваш проект. Спасибо, буду переделывать водяную баню для лаборатории.
 

draalex

✩✩✩✩✩✩✩
28 Июн 2024
2
1
доброго времени суток! а подскажите! возможно ли тут создать температурные полки с удержаниями?! и для какой цели применяется 2 реле?
 

шурра

★✩✩✩✩✩✩
19 Янв 2022
11
25
@draalex, Полка только одна - заданная температура. Реле на кнопки Старт и Стоп
 

draalex

✩✩✩✩✩✩✩
28 Июн 2024
2
1
@bort707, приветствую! с удовольствием...но если честно у меня не получается. незнаю как...сможете помочь?
 
  • Лойс +1
Реакции: poty

Moh-Moh

✩✩✩✩✩✩✩
4 Янв 2023
1
0
Добрый день, @шурра ! Собрал Вашу схему. Как-то глючно работает в браузере, разбираюсь в чём причина. Нет никаких сигналов на 17 и 18 пинах, объясните логику их работы, пожалуйста.
 
Изменено: