DHL Paketkasten Umbau

Diese Woche erhielt ich einen Brief von DHL, in dem mitgeteilt wurde, dass eine Umrüstung des Paketkastens notwendig sei. Da ein essenzielles Ersatzteil nicht mehr verfügbar ist, schreibt DHL, könne die Zustellung nicht mehr flächendeckend gemäß ihres Qualitätsanspruchs sichergestellt werden.

DHL hat nun ein Umbauvideo bereitgestellt, mit dem man den Paketkasten umrüsten kann. Das bedeutet, dass der Paketkasten auf mechanische Schlösser umgestellt werden soll.

Das entspricht jedoch ganz und gar nicht meinen Vorstellungen. Ich habe extra eine Stromleitung zum Paketkasten verlegt, um das lästige Batteriewechseln zu vermeiden – und nun soll ich mechanische Schlösser verwenden? Das gefällt mir überhaupt nicht.

Deshalb hatte ich zunächst überlegt, eine eigene Schaltung zu entwerfen, und habe kurzerhand die Elektronik ausgebaut, um die Maße der Platine zu ermitteln. Mein Plan war, das Gehäuse mit dem integrierten Motor weiter zu verwenden.

Als ich mir die Platine jedoch genauer ansah, habe ich mich spontan umentschieden. Sie ist sehr übersichtlich aufgebaut, weshalb ich sie weiterhin nutzen werde. Die Platine enthält einen STM32L100-Mikroprozessor. Um herauszufinden, ob ich diesen weiterverwenden kann, löte ich nun einen Stecker auf die Platine und bestelle einen passenden Programmer. Ein neuer STM32L100 kostet aktuell 3,50 € bei meinem Händler des Vertrauens – deshalb bestelle ich direkt einen mit. Vermutlich ist die Programmierschnittstelle gesichert, sodass ich den aktuellen Prozessor nicht weiterverwenden kann. Es wäre natürlich ideal, wenn ein Austausch nicht nötig wäre, denn dann könnte ich den Umbau einer breiteren Masse zur Verfügung stellen. Ein Prozessorwechsel ist schließlich nicht jedermanns Sache, zumal die meisten nicht über die nötigen Werkzeuge verfügen.

Ich werde meine Software jedenfalls frei zur Verfügung stellen, sodass jeder, der es sich zutraut, seinen Paketkasten umbauen kann.

Mein aktueller Plan:

Das Ziel ist, dass der Paketbote (nicht nur DHL) den Paketkasten über einen Taster öffnen kann. Nachdem er das Paket eingelegt und den Kasten geschlossen hat, soll dieser nicht mehr über den Taster zu öffnen sein. Erst wenn ich den Kasten öffne und das Paket entnehme, kann er wieder über den Taster entriegelt werden.

In der ersten Software-Version werde ich den Kasten als Besitzer ebenfalls über einen Taster öffnen. Anstatt des Tasters könnte man ein Keypad verwenden. Mein längerfristiges Ziel ist es jedoch, dass der Kasten wieder mit den originalen RFID-Chips geöffnet werden kann. Eine weitere Option wäre die Aktivierung des Bluetooth-Chips und die Nutzung einer App. Da es sich hierbei jedoch um ein Freizeitprojekt handelt, werde ich wohl nicht so schnell dazu kommen.

Projektplan:

  • Analyse der Platine und Erstellung eines groben Schaltplans (ca. 80 % fertig)
  • Auslesen der aktuellen Software
    • Falls nicht möglich: Austausch des Prozessors
  • Aufsetzen eines neuen Software-Projekts (als Basis nutze ich Zephyr) (50% fertig)
  • Erstellung eines kleinen Testprogramms, das eine LED blinken lässt (100% -> bring Zephyr bereits mit)
  • Programm zur Motorsteuerung
  • Aktivieren der Motoren durch externe Taster
  • Erweiterung der Software:
    • Erkennung, ob die Tür geschlossen ist
    • Sicherheitsmechanismus: Tür darf nicht mehr schließen, falls sie zu lange offen ist
    • Ansteuerung der LEDs und des Piepsers
    • Öffnen des Paketkastens durch RFID
    • Optional: Öffnen des Paketkastens via Bluetooth

Ihr könnt den Fortschritt des Projekts hier weiterverfolgen. Da ich jedoch nur in meiner Freizeit daran arbeite, kann sich das Ganze über mehrere Wochen oder Monate hinziehen.

Update 4.4.2025:

Der Schaltplan ist größten Teils analysiert. Zumindest reicht es um nun mit der Programmierung zu starten. Ich habe bereits Device Tree Dateien für den STM32L100RB und für das Board erstellt. Aktuell noch sehr rudimentär sodass ich alles habe was ich für blinkende LEDs benötige. Alles andere kommt dann nach und nach.

Mein Programmer ist auch schon eingetroffen und wie ich vermutet habe bekomme ich keine Verbindung. Hätte mich auch gewundert, wenn DHL den Debug Port offen gelassen hätte. Das heißt für mich, um hier weiter zu kommen muss ich den Prozessor tauschen.

Vorher mache ich mir aber noch Gedanken, ob ich noch etwas mit der aktuellen SW nachmessen möchte. Die Motoransteuerung habe ich mir schon angesehen. Der Motor wird mit einer 10khz PWM angesteuert. Ich bin mir nur nicht sicher ob dort ein richtiger Regler hinter steckt. Meine PWM war eigentlich durchgehend bei 50%. Die HW ist zumindest für eine Reglung ausgelegt und im Grunde würde es ja nicht schaden, wenn ich eine Reglung implementiere.

Jobverwaltung für den Kindergarten mit Laravel & Vue.js

Einleitung

In diesem Blogbeitrag möchte ich euch meine Webapplikation vorstellen, die ich mithilfe von Laravel und Vue.js entwickelt habe. Sie dient der Verwaltung von Arbeitsstunden in einem Kindergarten. Eltern müssen Arbeitsstunden leisten, um die monatlichen Kosten für sie entsprechend geringer zu halten. Die Applikation erleichtert die Verwaltung dieser Stunden und sorgt für eine übersichtliche Organisation der anfallenden Aufgaben.

Technologien

Die Applikation basiert auf folgenden Technologien:

  • Backend: Laravel (PHP) mit MariaDB als Datenbank
  • Frontend: Vue.js mit Tailwind CSS und Element Plus für ein modernes und responsives Design

Funktionen im Überblick

Die Webapplikation bietet verschiedene Seiten und Funktionen, die je nach Benutzerrolle zugänglich sind. Hier eine Übersicht:

1. Login-Seite

Jeder Benutzer muss sich authentifizieren, um auf die Applikation zugreifen zu können. Dies geschieht über die Login-Seite.

2. Dashboard

Das Dashboard gibt eine übersichtliche Darstellung der bereits geleisteten und noch offenen Arbeitsstunden. So haben Eltern stets den Überblick über ihre Verpflichtungen.

3. Jobliste

  • Nur Benutzer mit der entsprechenden Rolle können die Jobliste einsehen.
  • Hier sind alle aktuell offenen Aufgaben aufgelistet, die erledigt werden müssen.
  • Benutzer können Jobs annehmen und nach Erledigung den Status auf „erledigt“ setzen.

4. Jobverwaltung

  • Nutzer mit der Rolle Jobersteller haben die Möglichkeit, neue Aufgaben anzulegen.
  • Sobald ein Nutzer eine Aufgabe erledigt hat, muss der Jobersteller diese abschließend bestätigen.

5. Admin-Bereich

Administratoren haben erweiterte Funktionen zur Verwaltung der Applikation:

  • User-Verwaltung: Import und Export von Nutzern in Excel.
  • Job-Verwaltung: Export der Jobliste inklusive Grafiken.
  • Jahresabschluss: Möglichkeit, die Datenbank am Jahresende zu bereinigen.
  • Einstellungen: Anpassung von verschiedenen Systemparametern.
  • Kategorien-Verwaltung: Festlegen von Kategorien für verschiedene Jobs.

6. Benutzerprofil

Jeder Nutzer hat eine eigene Profilseite, auf der er seine persönlichen Daten wie Name, E-Mail-Adresse und Passwort ändern kann.

Fazit

Diese Applikation erleichtert die Verwaltung der elterlichen Arbeitsstunden erheblich. Durch die Nutzung von Laravel im Backend und Vue.js mit Tailwind CSS und Element Plus im Frontend konnte eine moderne und benutzerfreundliche Lösung geschaffen werden.

Hast du Anregungen oder Verbesserungsvorschläge? Ich freue mich auf dein Feedback!

The Playlist Editor: Ein Blick auf mein altes Projekt

Vor einigen Jahren habe ich ein Programm entwickelt, mit dem man Playlisten erstellen und bearbeiten kann: The Playlist Editor. In einer Zeit, in der fast jeder streamt und kaum noch jemand große Festplatten voller MP3s besitzt, ist dieses Tool vermutlich nur noch für eine kleine Zielgruppe relevant.

Auch ich höre mittlerweile fast ausschließlich über Streaming-Dienste oder Radio. Aber es gibt noch eine Anwendung, bei der der Playlist Editor für mich unverzichtbar ist.

In unserem Badezimmer habe ich einen Raspberry Pi installiert, den ich über ein Touchpanel steuere. Die MP3-Dateien und Playlisten sind über einen NFS-Share auf dem Raspberry eingebunden. Allerdings unterscheidet sich der Pfad des NFS-Shares auf meinem Arbeitsrechner von dem Pfad, den der Raspberry Pi nutzt. Genau hier kommt der Playlist Editor ins Spiel: Mit ihm kann ich MP3-Dateien mit einem relativen Pfad zur Playlist hinzufügen, sodass sie überall korrekt funktionieren.

Nach rund zehn Jahren habe ich das Projekt kürzlich wieder hervorgeholt und ein wenig überarbeitet. Die grafischen Änderungen, die in den unten stehenden Screenshots zu sehen sind, resultieren jedoch ausschließlich aus der Entwicklung von KDE. Ich selbst habe lediglich den Code optimiert, indem ich Kommentare hinzugefügt und Compiler-Warnungen entfernt habe. Einige der genutzten Elemente aus der Qt-Bibliothek sind inzwischen als „deprecated“ markiert, was entsprechende Warnungen ausgelöst hat.

Vorher-Nachher: The Playlist Editor

The Playlist Editor Screenshot
The Playlist Editor 2015 unter KDE
The Playlist Editor Screenshot
The Playlist Editor 2025 unter KDE

Das Tool ist in C++ geschrieben und verwendet Qt4. Als Versionsverwaltung dient Git. Das Projekt steht unter der GPLv3-Lizenz und kann unter folgendem Link gefunden werden:
https://sourceforge.net/projects/theplaylisteditor/