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 octoprint2pip install octoprint-devOctoPrint 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:
1from setuptools import setup23setup(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.plugin2import logging3from datetime import datetime45class TemperatureLoggerPlugin(octoprint.plugin.StartupPlugin,6octoprint.plugin.EventHandlerPlugin):7def on_after_startup(self):8self._logger.info("Sıcaklık Kaydedici başlatıldı")910def on_event(self, event, payload):11if event == "Connected":12self._logger.info("Yazıcı bağlandı")13self._log_temperature()1415def _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)2526__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__ = TemperatureLoggerPluginEklentiyi 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°CSı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.
0 yorum