107 lines
2.4 KiB
Markdown
Executable File
107 lines
2.4 KiB
Markdown
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
|
||
|
||
1. Klonen Sie das Repository:
|
||
```
|
||
git clone https://git.i.mercedes-benz.com/TBA-Berlin-FI/MYP
|
||
```
|
||
|
||
2. Installieren Sie die erforderlichen Abhängigkeiten:
|
||
```
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
3. 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
|
||
```
|
||
|
||
4. Starten Sie das Skript, um die SQLite-Datenbank zu erstellen:
|
||
```
|
||
python create_db.py
|
||
```
|
||
|
||
5. Starten Sie den API-Server:
|
||
```
|
||
python app.py
|
||
```
|
||
|
||
6. 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:
|
||
```json
|
||
[
|
||
{
|
||
"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:
|
||
|
||
```json
|
||
{
|
||
"printer_ip": "192.168.0.10",
|
||
"file_url": "http://example.com/print_file.gcode"
|
||
}
|
||
```
|
||
|
||
Antwort:
|
||
```json
|
||
{
|
||
"message": "Druckauftrag gestartet"
|
||
}
|
||
```
|
||
|
||
|
||
## 📄 Lizenz
|
||
|
||
- --> Noch nicht verfügbar
|