Добавить в корзинуПозвонить
Найти в Дзене

Прикручиваем сушилку филамента к Klipper по воздуху с рекламой регистрацией но без СМС…

О себе: я человек на ВЫ общающийся с электроникой и программированием, но без должного уважения… По сему вы все это делаете на свой страх и риск… случись что, я в домике… - разобрать сушилку (опционально),
- паять провода (опционально),
- перепрограммировать (очень увлекательное занятие) датчик,
- доустановить в Klipper определенное количество пакетов и модулей (я несилен в Python уж сорян) для Python (после датчика? одной левой, если понимаете что такое линукс),
- создать новый файл датчика (вообще “cp /path/file /new_path/file”),
- откорректировать другой файл датчиков (здравствуй nano, новый год)
- внести изменения (точнее дополнения) в printer.cfg (тут у меня шутки не родилось, похоже выдохся я…) Если вам понятно что будет происходить, читайте дальше... Если нет... то может не надо? А? Пока я не понял как сделать, это был самый эмоциональный процесс, но я Вас лишу этого удовольствия… Если вы купили датчик совсем недавно имейте в виду: БЕЗ РАЗБОРА КОРПУСА его прошить не получит
Оглавление

Дискламер:

О себе: я человек на ВЫ общающийся с электроникой и программированием, но без должного уважения… По сему вы все это делаете на свой страх и риск… случись что, я в домике…

Для реализации задуманного вам понадобится:

- разобрать сушилку (опционально),
- паять провода (опционально),
- перепрограммировать (очень увлекательное занятие) датчик,
- доустановить в Klipper определенное количество пакетов и модулей (я несилен в Python уж сорян) для Python (после датчика? одной левой, если понимаете что такое линукс),
- создать новый файл датчика (вообще “cp /path/file /new_path/file”),
- откорректировать другой файл датчиков (здравствуй nano, новый год)
- внести изменения (точнее дополнения) в printer.cfg (тут у меня шутки не родилось, похоже выдохся я…)

Если вам понятно что будет происходить, читайте дальше... Если нет... то может не надо? А?

Моя конфигурация:

  • Принтер - FlyingBear Ghost 6 (зачем эта информация не знаю… пусть вудет…)
  • Датчик - термогигрометр Xiaomi MiJia LYWSD03MMC
  • Сушилка филамента - CREALITY Space pi PLUS (в дополнительной статье будем интегрировать датчик внутрь корпуса с подключением к питанию контролера сушки. нет батарейки, нет проблем... если интересно следите да объявлениями)
  • Контроллер - Raspberry Pi B+
    Операционка - Raspberry Pi OS (он же Debian 13)
    Система принтера - Klipper
    Klipper - v0.13.0-610-g35ace529
    Moonraker - v0.10.0-19-g1ed102ed
    Fluidd - v1.36.2
    Python - v3.13

Шьем и отшиваем датчик…

Пока я не понял как сделать, это был самый эмоциональный процесс, но я Вас лишу этого удовольствия…

Если вы купили датчик совсем недавно имейте в виду: БЕЗ РАЗБОРА КОРПУСА его прошить не получится ни при каких обстоятельствах. Если я это осознал сразу то не потратил бы на эксперименты полторы недели своего времени. Эксперименты проводились на компьютерах с Windows 11, 10, 7 (специально установил), на 2 телефонах один на Android 16 и даже откапал старый телефон на Android 10… результат NULL.

Разбираем тамагочи…

Открываем заднюю крышку, извлекаем батарейку и выкручиваем 2 саморезика (красные кружки). Номера саморезиков не подскажу, там звездочки очень маааленькие звездочки, но я открутил их “часовой” шлицевой отверткой.

Затем поддевая за выступы по периметру (зеленые прямоугольнички) выколупываем заглушку для получения доступа к плате. Любуемся на результат (но не долго) и продолжаем… Кстати в окошке отмеченном желтой стрелочкой ничем не тыкать, тут находится сам датчик (!)

-2

Берем преобразователь USB-SERIAL на CH340 как на фото (как, например, у меня). подключаем провода из набора юного ардуинщика в: Красный (плюс 3,3 В), черный (на GND), коричневый (на TxD).

-3
-4

Берем провода из набора юного ардуинщика с подключенным преобразователем USB-SERIAL и подключаемся к плате. (ВНИМАНИЕ: напряжение питания 3,3 В, подача на плату 5 В отправит ее в рай, и заставит вас оплакивать безвременно почившие 500 рублей…) На фото красный (плюс), черный (минус), коричневый у меня в пальцах (блин даже немного не удобно, что забыл маникюр сделать… и у некоторых людей это вызовет дискомфорт…)(сигнал на пин P14) его мы коснемся перед самой прошивкой

-5

Примерились? Посмотрели что все удобно? Открываем ссылку:

https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html

Дополнительно скачиваем файл ATC_v57.bin или более свежий из этого репозитория:

https://github.com/pvvx/ATC_MiThermometer/tree/master/bin

В ранее открытом окне выбираем:

Кнопка “Open“ - указываем COM порт выданный преобразователю.

Кнопка “Выберите файл“ - выберите ранее скачаный файл по ссылке выше

После того как кнопка “Write to Flash“ прижимаем пин коричневого провода к P14 на плате нажимаем его и ждем чуда. Приход чуда наступает после примерно 30-40 секунд. Набираемся терпения и ждем. В процессе главное не убирать пин с контакта. В процессе записи его ход будет отображаться на экране.

-6

После успешного завершения прошивки открываем ссылку на смартфоне:

https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html

Включаем (если выключен) BlueTooth и нажимаем кнопку коннект:

-7

В списке доступных устройств выбираем устройство с именем похожим как на картинке и нажимаем подключить:

-8

После подключения ищем пункт “Advertising type“ и выбираем из выпадашки “BTHome v2“, Чекит на “AdFlags“ установлен, а на “Encrypted beacon“ снят (короче как на фото) и нажать кнопку “Send Config“

-9

Ждем несколько секунд и мы готовы дальше развлекаться…

Настройка Klipper:

Входим…

Первым делом запускаем Pytty, Windows PowerShell или консоль под линукс… (в зависимости от того что Вам доступно и удобно)

в терминалке вводим (у меня пользователь “pi“ и адрес принтера “192.168.2.10“ вы указываете свои значения):

ssh pi@192.168.1.10

Поcле этого вы вводите пароль (в процессе ввода символы или звездочки не отображаются!) и нажимаете ввод (Enter… тут должна была быть шутка про большую кнопку но не будет…)

Если вы указали правильный пароль то вы попадаете в удивительный мир Линукс… и тут все просто… говорили они…

Устанавливаем пакетики и пакетики с пакетиками…

Перед установкой правилом хорошего тона обновить систему до последней актуальной версии посему вводим:

sudo apt update -y && sudo apt upgrade -y

далее я всегда ставлю Midnight Commander ибо люблю его, прям не могу… (копировать, перемещать, просматривать и редактировать файлы, путешествовать по директориям в поисках этих файлов… но время от времени вам придется из него выходить для создания например пустых файлов. Для выхода используем F10, для входа снова “mc“)

sudo apt install mc -y

Устанавливаем Python (зачем не подскажу у меня записано, но предупреждаю я это делал в районе 3 часов ночи и мог затупить…)

sudo apt install python3-pip libglib2.0-dev -y

Устанавливаем пакетик BlueZ для Клиппера (эту штуку точно надо ибо долго ловил ошибки пока не понял почему…)

sudo apt install bluez -y

Klipper работает в своем виртуальном окружении (venv), поэтому библиотеки Python нужно установить именно туда, иначе наш модуль будет сыпать ошибками ImportError (как это было у меня). Устанавливаем модули Python

~/klippy-env/bin/pip install requests bleak bthome-ble home-assistant-bluetooth

При установке библиотек Python я ловил ошибки “NewConnectionError“ Эти предупреждения были связаны с тем что Raspberry Pi не смогла подключиться к серверу библиотек Python (PyPI) из-за проблем с интернетом. Если словите тоже самое то откройте resolv.conf

sudo nano /etc/resolv.conf

И добавьте в него DNS сервер GOOGLE

nameserver 8.8.8.8

после сохранения изменений (Ctrl+S) и выхода (Ctrl+X) перезапустите сетевую службу…

sudo systemctl restart networking

Цветочно-букетный период заканчиваем и переходим к бытовухе…

откроем файл temperature_sensors.cfg

nano ~/klipper/klippy/extras/temperature_sensors.cfg

и добавим в него

# Загружаем модуль LYWSD03MMC
[lywsd03mmc]

после сохранения изменений (Ctrl+S) и выхода (Ctrl+X) создаем новый файл с именем lywsd03mmc.py (внимание имя этого файла исключительно в нижнем регистре)…

Скачиваем мой файл по ссылке:

lywsd03mmc.py — Яндекс Диск

Создаем новый файл lywsd03mmc.py:

nano ~/klipper/klippy/extras/lywsd03mmc.py

и вставим в него содержимое одноименного файла (либо можете скинуть файл на флешку, подмонтировать ее и с нее в эту директорию через команду CP или с помощью Midnight Commander)

перед началом поиска выполним проверку статус Bluetooth-сервиса:

sudo systemctl status bluetooth

если видим статус inactive или disabled, проверим доступен ли он нам. Откроем файл config.txt:

sudo nano /boot/firmware/config.txt

или если у вас старый Klipper

sudo nano /boot/firmware/config.txt

проверьте, есть ли в файле фраза "dtoverlay=disable-bt" (а она у вас с вероятностью 99% присутствует если вы принтер подключали по UART), заменим ее на "dtoverlay=miniuart-bt". Если "dtoverlay=disable-bt" нет то и ничего дописывать не надо. miniuart-bt считается менее эффективным и стабильным но под наши задачи сойдет.

dtoverlay=miniuart-bt

и включим его...

sudo systemctl enable --now bluetooth

Ищем свой датчик (он может называться “ATC_8115E5”) и сохраним его mac-адрес, нас интересует что-то похожее на “A5:C4:32:61:45:E9” … (поиск у меня занимал до 30 секунд, терпим…)

sudo hcitool lescan

Идем в вебморду → Конфигурация → Файлы конфигурации → добавляем в printer.cfg:

[respond] - необходим для отправки запросов в терминал (в том числе и через макросы), я добавил у меня заработало…

[respond]

[temperature_sensor dryer] - раздел и его содержимое добавляем в ту часть файла где у вас расположены прочие датчики (по желанию и личного удобства ради…). В указанном разделе укажите адрес своего датчика температуры…

[temperature_sensor dryer]
sensor_type: LYWSD03MMC
address: A5:C4:32:61:45:E9 # !!! Укажите свой адрес !!!

[gcode_macro CHECK_DRYER] - вызов макроса для отображения информации о сушилке в Колсоле (нажили макрос и побежали смотреть в консоль Клиппера). К сожалению вывод показаний датчика в секцию “Температура“ в настоящее время не получилось. Клиппер очень не любит подключение сторонних датчиков и вывести информацию по аналогии с BME280 невозможно (А невозможно, как известно, лишь означает, что пока никто не догадался как это сделать). Возможно, позже займусь… Я пока и так переполнен от успеха и неудач (неудач, поверте, было намного больше).

[gcode_macro CHECK_DRYER]
gcode:
{% set sensor = printer["lywsd03mmc dryer"] %}
{ action_respond_info("ОТЧЕТ О СУШИЛКЕ ФИЛАМЕНТА:
Температура: %.2f C
Влажность: %.1f %%
Батарея: %d %%" % (
sensor.temperature,
sensor.humidity,
sensor.battery)) }

Да, кстати, наслаждайтесь успехом…

Для проверки:

Смотрим секцию "Температура" на главной странице вебморды и видем в списке новый датчик.

Если видим идем в макросы и ищем макрос "CHECK_DRYER". После нажатия в консоли видим наш результат.

-10

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

ВНИМАНИЕ! Скрипт располагать в той же директории куда скопировали lywsd03mmc.py (например /home/pi/) и запускать из нее.

setup_lywsd03mmc.sh — Яндекс Диск