Topics

Ich bin kein Ingenieur, aber ich habe versucht, ein KidsWiFi-Managementsystem mit einem Raspberry Pi zu bauen.

  • column

Hallo! Ich bin Oga, Designer und Betriebsleiter.
Ich bin eine erfahrene Mitarbeiterin, die 2015 ins Unternehmen eingetreten ist, aber auf meinem Blog gebe ich mich normalerweise als Frau aus.Ein Artikel, dessen Nutzen unklar ist.Ich schreibe solche Dinge manchmal.
Trotz meiner üblichen Art werde ich mir diesmal Mühe geben und über ein etwas ernsteres Thema sprechen.

Grundsätzlich verfüge ich über praktisch keine praktische Erfahrung als Ingenieur.
Auch wenn ich manchmal beruflich auf das Terminal schaue, überfliege ich normalerweise nur die eingehenden Protokolle, und ich dachte immer, dass das tatsächliche Eintippen von Befehlen und das Erstellen eigener Inhalte etwas „nur für diejenigen ist, die dazu fähig sind“.
Und dennoch habe ich es geschafft, alles von der Netzwerkkonfiguration bis zur Implementierung von Webanwendungen mit einem Raspberry Pi zu realisieren… Das zeigt einfach, dass man erstaunlich fähig ist, wenn man gezwungen ist, etwas zu tun.

Auslöser war das Problem der iPads für Kinder.

Meine Kinder sind ständig am iPad. Wenn ich sie allein lasse, hört es wirklich nie auf.
Das war also das Erste, was ich angehen wollte.

Genau zu diesem Zeitpunkt erhielt ich von der Firma die Anweisung, „etwas zu erschaffen, das dir gefällt, zum Beispiel einen Firmen-Hackathon“.
Unser Unternehmen erlebt gerade einen beispiellosen Claude-Code-Boom. Jeder Mitarbeiter nutzt Claude wie einen Partner, und im Büro herrscht regelrechtes Entwicklungsfieber. Ich selbst nutze den 25-Dollar-Tarif, aber einige Hardcore-Nutzer schöpfen sogar die Möglichkeiten teurerer Pakete voll aus, und überall herrscht die Energie, „mit KI alles Mögliche zu erschaffen“.

„Ich wollte schon immer mal einen Raspberry Pi ausprobieren (einfach weil er einfach cool aussieht).“
„Ich möchte das iPad-Problem aus einer ingenieurtechnischen Sicht lösen.“
„Ich möchte beim Hackathon ein konkretes Ergebnis erzielen.“

Aus diesen drei Leidenschaften entstand das Projekt „Managementsystem, mit dem Sie das WLAN Ihrer Kinder per Knopfdruck auf Ihrem Smartphone zwangsweise ein- und ausschalten können“.

Ich schaue manchmal ins Terminal, aber ich konfiguriere fast nie etwas.
Mit Claudes Hilfe und nach vielen Versuchen und Irrtümern gelang es mir, diese "Zauberkiste" zu bauen!

Schritt 1 – Einrichten des Raspberry Pi

Vorbereitung mit Raspberry Pi Imager → SSH-Verbindung

Installieren wir zunächst das Betriebssystem auf dem Raspberry Pi 4. Installieren Sie dazu Raspberry Pi Imager (das offizielle Flash-Tool) auf Ihrem Mac und flashen Sie das 64-Bit-Betriebssystem auf die microSD-Karte. Es ist überraschend wichtig, SSH in den Flash-Einstellungen zu aktivieren.

Nachdem Sie den Raspberry Pi mit einem LAN-Kabel an den Router angeschlossen und eingeschaltet haben, können Sie ihn mit diesem Befehl im Terminal des Macs verbinden.

terminal (Mac)

ssh [email protected]

Am Terminalpi@raspberrypi:~ $Ich war etwas gerührt, als es erschien. Zuerst werde ich das System aktualisieren.

sudo apt update && sudo apt upgrade -y

Schritt 2 – WLAN-Zugangspunkt einrichten

hostapd- / dnsmasq- / iptables-Konfiguration

Um den Raspberry Pi als „WiFi-Zugangspunkt“ zu nutzen, müssen Sie zwei Softwareprogramme installieren.hostapdDas Gerät, das WLAN-Signale aussendet,dnsmasqDies ist das Gerät, das den angeschlossenen Geräten IP-Adressen zuweist.

sudo apt install hostapd dnsmasq

Tragen Sie die SSID (den WLAN-Namen) und das Passwort in die Konfigurationsdatei ein. Diesmal habe ich sie der Einfachheit halber „KidsWiFi“ genannt.

/etc/hostapd/hostapd.conf

Schnittstelle=wlan0
Treiber=nl80211
SSID=KidsWiFi
Hardwaremodus=g
Kanal=7
WPA=2
WPA-Passwort=(Passwort)
WPA-Schlüsselverwaltung=WPA-PSK

Als Nächstes legen Sie den Bereich der IP-Adressen fest, die an die angeschlossenen Geräte verteilt werden sollen.

/etc/dnsmasq.conf

interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h

Abschließend konfigurieren wir IP-Weiterleitung und NAT, damit der Raspberry Pi als Internet-Relay fungieren kann. Andernfalls ist der Internetzugang selbst bei Verbindung mit KidsWiFi nicht möglich.

# IP-Weiterleitung dauerhaft aktivieren
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/routed-ap.conf

# NAT konfigurieren (um Internetzugang über eth0 zu ermöglichen)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Ich hatte das Problem, dass wlan0 nach jedem Neustart des Systems nicht mehr funktionierte. Deshalb schrieb ich eine systemd-Dienstdatei, um die Netzwerkkonfiguration beim Systemstart automatisch durchzuführen. In dieser Szene löste ich das Problem schließlich, während ich mich bei Claude beklagte: „Warum verbindet es sich nicht mehr?!“

Als „KidsWiFi“ in der WLAN-Liste meines Smartphones erschien und ich mit dem Internet verbunden war, tippte ich instinktiv „Lehrer! Ich bin verbunden!“ in den Chat (ich habe es wirklich getippt).

Schritt 3 – Erstellen eines Administrationsbereichs mithilfe einer Webanwendung

Implementieren Sie einen per Smartphone steuerbaren Bildschirm mit Python und Flask.

Nachdem der WLAN-Zugangspunkt eingerichtet ist, erstellen wir als Nächstes eine Verwaltungsoberfläche, die sich per Smartphone ein- und ausschalten lässt. Dazu verwenden wir das Python-Webframework „Flask“, um einen Webserver auf dem Raspberry Pi zu betreiben. Zuerst habe ich ihn lokal auf meinem Mac entwickelt, seine Funktionsfähigkeit überprüft und ihn dann auf den Raspberry Pi übertragen.

Terminal (Mac) – Einrichten der Entwicklungsumgebung

python3 -m venv venv
source venv/bin/activate
pip install flask

Der WLAN-Ein/Aus-Schalter blockiert tatsächlich nur den Internetzugang. KidsWiFi sendet permanent ein Signal aus, und iptables, eine Linux-Firewall, steuert, ob Pakete, die für das Internet bestimmt sind, verworfen werden oder nicht. Der Code ist erstaunlich einfach.

app.py (Auszug) – der Kern der WLAN-Steuerung

import subprocess
def enable_internet():
# Blockierungsregel entfernen → Internetverbindung öffnen
subprocess.run([
'sudo', 'iptables', '-D', 'FORWARD',
'-i', 'wlan0', '-j', 'DROP'

], capture_output=True)

def disable_internet():
# Blockierungsregel hinzufügen → Internetverbindung blockieren
subprocess.run([
'sudo', 'iptables', '-I', 'FORWARD',
'-i', 'wlan0', '-j', 'DROP'

], capture_output=True)

Das allein unterbricht schon die Internetverbindung. Ein einziger Befehl lässt das iPad meines Kindes einfrieren. Ich hatte das Gefühl, unglaubliche Macht erlangt zu haben (obwohl ich ihre Anwendung noch nicht ganz beherrsche).

Wir haben separate Systembildschirme für Kinder und Eltern erstellt.
Auf dem Kinderbildschirm, überraschenderweiseRoulette-FunktionEs enthält ''!
Eine einseitige Zeitbegrenzung ist für Kinder zwangsläufig langweilig. Daher besteht die Strategie darin, dass sie zufriedener sind, wenn sie das Rouletterad selbst drehen dürfen.
Die Idee besteht darin, die oft fruchtlose Verhandlung darüber, wann man die Nutzung des iPads beenden soll, in ein lustiges und unterhaltsames Spiel zu verwandeln, bei dem die Nutzer mit Freude oder Enttäuschung auf die Frage reagieren: „Wie viele Minuten WLAN-Zeit haben wir heute?!“

  • Kinderbildschirm
    → Beim Roulette gewinnen Sie entweder 30 Minuten, 45 Minuten oder 1 Stunde.
    → Countdown der verbleibenden Zeit
    →1 Stunde Abklingzeit nach Ablauf der Zeit
    →Kumulierte Nutzungsdauer
    →Verbleibende Roulette-Drehungen anzeigen
  • Übergeordnetes Dashboard
    →Passwortschutz
    →Notfall-WLAN AUS
    → Hausaufgabenmodus (vollständige Blockade)
    →Maximale Anzahl an Roulette-Drehungen
    → Erzwungene Abschaltzeit
    →Nutzungsverlauf

Während der Entwicklung trat ein Problem auf: „Wir können es nicht auf dem Mac testen, da iptables nicht verfügbar ist.“ Wir haben eine Dummy-Funktion (die einfach eine Anweisung ausgibt) für den Mac erstellt, um das Testen zu ermöglichen.
Ich habe mich im Laufe der Zeit bei jeder einzelnen dieser Situationen, in denen ich dachte: „Ich stecke fest! Was soll ich tun?“, mit Claude beraten.

Da ich Designer bin, hatte ich eigentlich erwartet, das Bildschirm-Layout selbst anpassen zu müssen, während ich auf die Ausgabe wartete. Umso überraschter war ich, wie übersichtlich das Layout war. Ich musste kaum Korrekturen vornehmen.
Das ist ein bisschen frustrierend, aber auch irgendwie schön.

Schritt 4 – Auf Raspberry Pi bereitstellen und Start automatisieren

Dateien per SCP übertragen → Als systemd-Dienst registrieren

Übertrage die auf dem Mac erstellten Dateien auf den Raspberry Pi.scpDas kann mit einem einzigen Befehl erledigt werden.

Terminal (Mac) — Übertragung auf Raspberry Pi

scp -r templates app.py [email protected]:~/wifi-manager/

Flask nach jedem Neustart manuell zu starten, ist lästig, daher werde ich eine systemd-Dienstdatei erstellen, um den Start zu automatisieren. Ziel ist es, dass alles automatisch beim Einschalten des Computers startet.

/etc/systemd/system/wifi-manager.service

[Unit]
Description=WiFi Manager
After=network.target wifi-setup.service

[Service]
ExecStartPre=/bin/bash -c 'echo > /home/pi/wifi-manager/state.json'
ExecStartPre=iptables -F FORWARD
ExecStart=/usr/bin/python3 /home/pi/wifi-manager/app.py
WorkingDirectory=/home/pi/wifi-manager
Restart=always
User=root

[Install]
WantedBy=multi-user.target
# Dienst aktivieren und starten
sudo systemctl enable wifi-manager
sudo systemctl start wifi-manager

Jetzt kann es direkt nach dem Einschalten losgehen. Wenn Sie mit dem Browser Ihres Smartphones http://192.168.4.1:5000 aufrufen, öffnet sich das Roulette-Fenster. Wow, es hat tatsächlich funktioniert!

Gedanken, die ich nach dem Ausprobieren hatte

Der Grund, warum ich als Nicht-Ingenieur alles von der Netzwerkkonfiguration bis hin zu Python erledigen konnte, liegt zweifellos darin, dass ich währenddessen mit Claude "interagieren" konnte.
Wenn es sich aufhängt, wird lediglich eine Fehlermeldung angezeigt. Fragt man „Was soll ich als Nächstes tun?“, werden die einzelnen Schritte aufgelistet. Fragt man „Warum passiert das?“, wird dies in einfachen Worten erklärt.

Während viel darüber gesprochen wird, dass Ingenieure KI nutzen, um die Entwicklung zu beschleunigen, kann KI auch der ultimative Partner sein, um kleine, aber drängende Probleme in unserem Alltag zu lösen.

„Eine Idee kann Gestalt annehmen und die Größe der Organisation sowie die Fähigkeiten des Einzelnen übersteigen.“
Die größte Belohnung war die Möglichkeit, die Demokratisierung der Produktion hautnah mitzuerleben.

Was nun die entscheidende Frage des iPads des Kindes angeht...die Wahrheit ist, dass sie noch immer ungeklärt ist.

Das System funktioniert einwandfrei. Jetzt liegt es an mir, als Elternteil, es zu verwalten. Ich werde mein Bestes geben!

Verfasst von

Da ich in Fukushima lebe, kämpfe ich täglich mit meinem überaus energiegeladenen Sohn. Meine künstlerischen Fähigkeiten, die ich im Kunststudium entwickelt habe, setze ich täglich als Designerin und Betriebsleiterin ein. Meine Stärken liegen in der Anpassungsfähigkeit und dem schnellen Denken, die ich durch die Erziehung meines Sohnes erworben habe. ...

Oga

Designer / Betriebsleiter

Artikel dieses Mitarbeiters ansehen

Wir sind stolz auf unsere zuverlässige Teamstruktur und unsere schnelle Reaktionsfähigkeit.

Bei Liberogic treiben unsere erfahrenen Mitarbeiter Projekte aktiv voran, weshalb wir von unseren Kunden hohes Ansehen genießen.
Wir stellen sicher, dass Projektmanager und -leiter ordnungsgemäß eingesetzt werden, um einen reibungslosen Ablauf des gesamten Projekts zu gewährleisten. Wir verhindern unnötige Kostensteigerungen durch vollständige Zusagen und weisen Ressourcen den richtigen Personen an den richtigen Stellen zu. Wir sind bekannt für unsere Schnelligkeit, mit der wir Arbeitsinhalte erfassen, Kostenvoranschläge erstellen und einreichen.

Bitte beachten Sie, dass wir keine Vor-Ort-Arbeit im SES-Stil aktiv durchführen.

Wir unterstützen fast alle wichtigen Projektmanagement- und Chat-Tools, darunter Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom und Webex.

Bitte kontaktieren Sie uns bei allen webbezogenen Anliegen.

Fallstudie