Автоотключение 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();
}
}
Еще больше интересных статей
Краткий разбор спайщика филамента sunlu filament connector FC01
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Creality Ender 3 V3 SE Прошивка
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
G-CODE по-русски для 3D печати (Мини-справочник)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.

Комментарии и вопросы
Спасибо за науку! Подскажите в...
Это остановка а не литограф ил...
Чем тоньше слой, тем более пер...
Привет! Хочу свой опубликованн...
Привет! В печати недавно, по о...
Всем привет!Всегда работал на...
При этом чужие модели с резьбо...