OctoPrint Eklentisi Geliştirme: Python ile 3D Yazıcı Kontrolü

OctoPrint, 3D yazıcıları web üzerinden yönetmek için açık kaynak bir platform. Kendi eklentisini yazarsan yazıcının davranışını genişletebilir, özel komutlar ekleyebilir veya harici sistemlerle entegrasyon sağlayabilirsin.

Eklenti geliştirmek için önce OctoPrint ortamını hazırla. Python 3.7+ ve pip gerekli.

1pip install octoprint
2pip install octoprint-dev

OctoPrint eklenti yapısı basit: bir ana Python dosyası ve `setup.py`. İlk eklentin için yazıcıya sıcaklık sorgusu yapan ve sonucu kaydeden bir eklenti yazalım.

`setup.py` dosyasını oluştur:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1from setuptools import setup
2
3setup(
4name="OctoPrint-TemperatureLogger",
5version="0.1.0",
6description="Yazıcı sıcaklığını kaydeder",
7author="Senin Adın",
8packages=["octoprint_temperaturelogger"],
9install_requires=["OctoPrint>=1.4.0"],
10entry_points={
11"octoprint.plugin": [
12"temperaturelogger = octoprint_temperaturelogger:TemperatureLoggerPlugin"
13]
14}
15)

Ana eklenti dosyasını `octoprint_temperaturelogger/__init__.py` olarak oluştur:

1import octoprint.plugin
2import logging
3from datetime import datetime
4
5class TemperatureLoggerPlugin(octoprint.plugin.StartupPlugin,
6octoprint.plugin.EventHandlerPlugin):
7def on_after_startup(self):
8self._logger.info("Sıcaklık Kaydedici başlatıldı")
9
10def on_event(self, event, payload):
11if event == "Connected":
12self._logger.info("Yazıcı bağlandı")
13self._log_temperature()
14
15def _log_temperature(self):
16if self._printer.is_operational():
17temps = self._printer.get_current_temperatures()
18if temps:
19nozzle_temp = temps.get("tool0", {}).get("actual", "N/A")
20bed_temp = temps.get("bed", {}).get("actual", "N/A")
21timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
22self._logger.info(
23f"[{timestamp}] Nozzle: {nozzle_temp}°C, Yatak: {bed_temp}°C"
24)
25
26__plugin_name__ = "Sıcaklık Kaydedici"
27__plugin_version__ = "0.1.0"
28__plugin_author__ = "Senin Adın"
29__plugin_url__ = "https://github.com/kullanici/octoprint-temperaturelogger"
30__plugin_description__ = "Yazıcı sıcaklığını düzenli olarak kaydeder"
31__plugin_implementation__ = TemperatureLoggerPlugin

Eklentiyi yüklemek için OctoPrint web arayüzüne git, Ayarlar Eklenti Yöneticisi Dosyadan Yükle'ye tıkla ve `setup.py` dosyasının olduğu klasörü seç. Veya komut satırından:

1pip install -e.

Eklenti yüklendikten sonra OctoPrint yeniden başlat. Yazıcı bağlandığında sıcaklık değerleri OctoPrint günlüğünde görünür:

1[2024-01-15 14:32:45] Yazıcı bağlandı
2[2024-01-15 14:32:46] Nozzle: 28°C, Yatak: 25°C

Sık yapılan hata: eklenti dosya yapısı yanlışsa `__init__.py` bulunamıyor. Klasör adı ve Python paketi adının eşleştiğinden emin ol. GitHub'da OctoPrint eklenti örnekleri inceleyerek daha karmaşık işlemler (web arayüzü, ayarlar paneli, API uç noktaları) ekleyebilirsin.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz