Автоотключение KINGROON KLP1 с помощью WiFi реле.
Добрый день!
Предлагаю решение для автоотключения принтера KINGROON KLP1 с помощью WiFi реле.
Я думаю, что это решение также подойдет для любого принтера, работающего на Klipper'е и Fluidd.
Почитал мануал по Remote API https://moonraker.readthedocs.io/en/latest/web_api/ , потыкал в принтер запросами вида http://192.168.1.186/printer/objects/query?print_stats, где 192.168.1.186 - IP адрес моего принтера в локальной WiFi сети.
При этом в ответе принтер присылает статус трёх видов:
1. "state": "standby", - после включения
2. "state": "printing", - при печати
3. "state": "complete",
Дело за малым, взял реле SonoffBasic и нарукожопил прошивку, которая анализирует статус принтера раз в минуту. Как только статус изменится с printing на complete, реле выключает питание принтера.
Запрос статуса:
const char * host = "192.168.1.186"; const uint16_t port = 80; const char * url = "/printer/objects/query?print_stats"; int klp_status(void) { WiFiClient client; if (!client.connect(host, port)) { return KLP_NOT_CONNECT; } client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "User-Agent: ESP8266\r\n" + "Connection: close\r\n\r\n"); while (client.connected()) { String line = client.readStringUntil('\n'); if (line == "\r") { break; } } String line = client.readStringUntil('\n'); client.stop(); if (line.indexOf("state") == -1) { return KLP_NOT_STATE; } if (line.indexOf("standby") != -1) { return KLP_STANDBYE; } if (line.indexOf("printing") != -1) { return KLP_PRINT;} if (line.indexOf("complete") != -1) { return KLP_COMPLETE; } return KLP_UNKN_STATE; }
Обработка:
void loop(void){ static uint32_t oldT = KLP_QUERY_INTERVAL*10; int klp; server.handleClient(); if (do_button()) { oldKlp = 0; } if (millis() - oldT > KLP_QUERY_INTERVAL) { klp = klp_status(); if (klp == KLP_COMPLETE && oldKlp == KLP_PRINT) { digitalWrite(RELAY_PIN, !RELAY_ON); digitalWrite(LED_PIN, !LED_ON); } oldKlp = klp; oldT = millis(); } }
Еще больше интересных статей
Замена нагревательного элемента на хотэнде QIDI Tech Q1 Pro
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Как определить высоту слоя прерванной печати
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
хороший аппарат. давно присмат...
на бамбуке, если дверку не отк...
На дворе конец 2024 года, прош...
Добрый день!Господа, среди тех...
Как посмотреть избранное?
Добрый день. Есть ли в каком-н...
Всем привет, недавно случилось...