Автоотключение 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(); } }
Еще больше интересных статей
Flashforge AD5M Pro - доработка 2. Датчик движения филамента.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Elegoo Neptune 4. Печать на стекле.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
G-CODE по-русски для 3D печати (Мини-справочник)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
На клейкой основе, но не масти...
Если сравнивать К1макс и Р1S т...
Там по мимо винтов, датчик еще...
Стандартные настройки под пров...
печатал держатель катушки для...
Доброго времени суток.Вопрос н...
Здравствуйте, недавно приобрел...