2.4 KiB
Executable File
🖨️ 3D-Drucker Status API 📊
Willkommen beim Blueprint der 3D-Drucker Status API! Diese API ermöglicht es Ihnen, den Status mehrerer über LAN verbundener 3D-Drucker zu überwachen und Druckaufträge an sie zu senden.
🌟 Funktionen
- 🔍 Abrufen des Status von 3D-Druckern, einschließlich ihres aktuellen Status, Fortschrittes und Temperatur.
- 📥 Senden von Druckaufträgen an verfügbare 3D-Drucker.
- 💾 Speichern und Aktualisieren des Status jedes Druckers in einer SQLite-Datenbank.
🛠️Verwendete Technologien
- 🐍 Python
- 🌶️ Flask
- 🗄️ SQLite
- 🌐 HTTP-Anfragen
📋 Verordnungen
Bevor Sie die API starten, stellen Sie sicher, dass Sie folgendes haben:
- Python 3.x installiert
- Flask und python-dotenv-Bibliotheken installiert (
pip install flask python-dotenv
) - Eine Liste von IP-Adressen der 3D-Drucker, die Sie überwachen möchten
🚀 Erste Schritte
-
Klonen Sie das Repository:
git clone https://git.i.mercedes-benz.com/TBA-Berlin-FI/MYP
-
Installieren Sie die erforderlichen Abhängigkeiten:
pip install -r requirements.txt
-
Erstellen Sie eine
.env
-Datei im Projektverzeichnis und geben Sie die IP-Adressen Ihrer 3D-Drucker an:PRINTER_IPS=192.168.0.10,192.168.0.11,192.168.0.12
-
Starten Sie das Skript, um die SQLite-Datenbank zu erstellen:
python create_db.py
-
Starten Sie den API-Server:
python app.py
-
Die API ist unter
http://localhost:5000
erreichbar.
📡 API-Endpunkte
GET /printer_status
: Rufen Sie den Status aller 3D-Drucker ab.POST /print_job
: Senden Sie einen Druckauftrag an einen bestimmten 3D-Drucker.
📝 API-Nutzung
Druckerstatus abrufen
Senden Sie eine GET
-Anfrage an /printer_status
, um den Status aller 3D-Drucker abzurufen.
Antwort:
[
{
"ip": "192.168.0.10",
"status": "frei",
"progress": 0,
"temperature": 25
},
{
"ip": "192.168.0.11",
"status": "besetzt",
"progress": 50,
"temperature": 180
},
...
]
Druckauftrag senden
Senden Sie eine POST
-Anfrage an /print_job
mit der folgenden JSON-Last, um einen Druckauftrag an einen bestimmten 3D-Drucker zu senden:
{
"printer_ip": "192.168.0.10",
"file_url": "http://example.com/print_file.gcode"
}
Antwort:
{
"message": "Druckauftrag gestartet"
}
📄 Lizenz
- --> Noch nicht verfügbar