Intelligentes Ampelsteuerungssystem mit Echtzeitdaten
Komponenten und Zubehör
| Arduino Yun | 1 |
| Arduino UNO (oder ein anderes Arduino-Board) | 1 |
| Ultraschallsensor HC-SR04 | 1 |
| DS3231 RTC (Echtzeituhr) | 1 |
| LEDs (1× Rot, 1× Gelb, 1× Grün) | 3 |
| Widerstand 330 Ω | 3 |
| 433 MHz Funkmodule (1× Sender, 1× Empfänger) | 1 |
| Android-Gerät | 1 |
| SD-Karte | 1 |
| AllThingsTalk IOTOPIA Rapid Development Kit | 1 |
| Steckbrücken (Jumper Wires) | 1 |
Apps und Online-Dienste
- Arduino IDE
- Android Studio
- MySQL-Datenbank-Hosting (z. B. freemysqlhosting.net)
Projektbeschreibung
Einführung
Stau nervt jeden – und wird immer schlimmer. Was, wenn intelligente Ampeln das ändern könnten? Wir haben ein Traffic Light Information System entwickelt, das dem Fahrer die optimale Geschwindigkeit anzeigt, um die nächste Grünphase zu erreichen, ohne das Tempolimit zu überschreiten. Muss der Fahrer doch an Rot warten, zeigt das System die verbleibende Wartezeit bis zur nächsten Grünphase an.
Funktionsweise
Eine Ampel sendet Daten über die Dauer der aktuellen Grünphase bzw. die Zeit bis zur nächsten Grünphase an eine Online-Datenbank. Eine Smartphone-App (oder ein GPS-Gerät) ruft diese Daten ab, berechnet die empfohlene Geschwindigkeit und zeigt einen Countdown an, falls Warten unvermeidbar ist.
Beispiel
Sie fahren in einer 70 km/h-Zone. Die Ampel vor Ihnen ist rot und wird in 30 Sekunden grün. Sie sind 500 m entfernt – das System empfiehlt, mit 60 km/h weiterzufahren, um die Grünphase genau zu erreichen.
Projektdemonstration
Zur Demonstration bauten wir eine Ampel mit Arduino Yun (3 LEDs + RTC). Die Phasenwechsel erfolgen in festen Intervallen. Der Arduino Yun speichert die Unix-Zeitstempel der kommenden Grün-/Rotphasen und aktualisiert via PHP-Skript die MySQL-Datenbank. Eine Android-App (Android Studio) holt die Daten per JSON ab, berechnet die empfohlene Geschwindigkeit und zeigt den Countdown an.
Für die Distanzmessung zum Fahrzeug nutzen wir ein Ultraschallmodul (HC-SR04) am Sender-Arduino, das die Entfernung per 433 MHz Funk an den Empfänger (Arduino Yun) sendet. Dieser aktualisiert die Distanz in der Datenbank, sodass die App exakt rechnen kann.
Aufbauanleitung
- Online-MySQL-Datenbank erstellen (z. B. freemysqlhosting.net).
- Tabelle
TrafficL_dataanlegen (Struktur siehe Projektbilder). - Hardware Sender aufbauen (Schaltplan „Arduino Transmitter“).
- Arduino Transmitter Code hochladen.
- Arduino Yun mit WLAN verbinden.
- Linux-Server des Arduino Yun via PuTTY konfigurieren:
opkg update opkg install php5-mod-mysqli php5-cli nano nano /mnt/sda1/MySQL_UpdateTrafficLData.php chmod 755 /mnt/sda1/MySQL_UpdateTrafficLData.php nano /mnt/sda1/MySQL_UpdateDistance.php chmod 755 /mnt/sda1/MySQL_UpdateDistance.php - Hardware Empfänger (Arduino Yun) aufbauen (Schaltplan „Arduino Yun Receiver“).
- Arduino Receiver & MySQLdb Code hochladen.
- Seriellen Monitor öffnen – Datenfluss prüfen.
- Android-Studio-Projekt kompilieren & auf Smartphone installieren (URL in
MainActivity.javaanpassen).
Alternative: ESP8266 statt Arduino Yun
Kostengünstigere Variante mit ESP8266 (z. B. NodeMCU) und 000webhost.com:
- Account auf 000webhost.com erstellen, Website & Datenbank anlegen.
CreateTable.phpundPostDemo.phphochladen, Zugangsdaten eintragen.- Tabelle via
CreateTable.phperstellen. - ESP8266-Paket in Arduino IDE installieren (Board-Manager-URL:
https://arduino.esp8266.com/stable/package_esp8266com_index.json). ESP8266PostDemo.inoaufspielen (sendet alle 10 s Testdaten).- PHP-Skript auf Server anpassen, dann die ursprünglichen Arduino-Yun-Funktionen
MySQL_UpdateTrafficLData()undMySQL_UpdateDistance()entsprechend ersetzen.
Tipp: Komponenten einzeln testen, bevor alles kombiniert wird.
Quellcode
- Arduino Transmitter Code
- Arduino Receiver & MySQLdb
- MySQL_UpdateTrafficLData.php
- MySQL_UpdateDistance.php
- EchoJSON.php
- MainActivity.java
- AndroidManifest.xml
- strings.xml
- activity_main.xml
Die vollständigen Codes finden Sie im Originalprojekt (GitHub/Projektseite).
Schaltpläne
Sender: RF 433 MHz TX → Pin 3; HC-SR04 Trig → Pin 5, Echo → Pin 6.
Empfänger: RF 433 MHz RX → Pin 3; LEDs Rot→5, Gelb→6, Grün→7; DS3231 SCL→Pin 3, SDA→Pin 2 (Arduino Yun).
Herstellungsprozess
- Gaslaternen: Entwicklung, Design und moderne Fertigung
- Laserpointer: Design, Fertigung und Sicherheitsübersicht
- Das Kaleidoskop: Von Brewsters Wissenschaft zum modernen Design
- Verkehrsampeln: Technik, Geschichte und zukünftige Innovationen
- Leuchtdioden (LED): Von der Entdeckung zur 100-Jahre-Lebensdauer
- Inside einer Sengled Smart LED-Lampe: Technischer Teardown und Zigbee-Konnektivität
- High-Precision Continuous-Wave ToF Systeme designen: Umfassender Überblick
- Intelligente Ampel: Adaptive Straßenbeleuchtung per IoT
- KI-gesteuerter Fernlichtassistent blendet nicht – blendfreie Zonen via Einzel-LED-Dimmung
- LED-Streifen-Zubehör meistern: Verbinden, Steuern und Anpassen Ihrer Beleuchtung