Arduino WebRTC Voorbeeld - Real-Time Clock Interface Tutorial
Overzicht
Het WebRTC voorbeeld biedt een uitgebreide real-time klok interface voor uw Arduino projecten. Ontworpen voor Arduino Uno R4 WiFi en DIYables STEM V4 IoT educatief platform met ingebouwde RTC-mogelijkheden, verbeterde tijdbeheerfuncties, en naadloze integratie met het educatieve ecosysteem. U kunt real-time klokinformatie weergeven, tijd synchroniseren van webbrowser naar Arduino, en tijdsverschillen monitoren via een intuïtieve webinterface.

Functies
- Real-time Klok Weergave: Toont huidige Arduino RTC tijd met automatische updates
- Apparaat Tijd Vergelijking: Weergave van webbrowser/apparaat tijd naast Arduino tijd
- Eén-klik Tijdsynchronisatie: Synchroniseer Arduino RTC met webbrowser tijd direct
- Visuele Tijdsverschil Indicator: Toont tijdafwijking tussen apparaten in minuten
- Twee-regel Tijd Formaat: 12-uurs AM/PM formaat met volledige datumweergave
- Moderne Gradiënt UI: Kaart-stijl layout met responsief ontwerp
- WebSocket Communicatie: Real-time bidirectionele updates zonder pagina vernieuwen
- Tijdzone-bewuste Synchronisatie: Gebruikt lokale apparaat tijd voor accurate sync
- Verbindingsstatus Monitoring: Visuele indicatoren voor WebSocket verbindingsstatus
- Automatische Tijd Verzoeken: Vraagt huidige Arduino tijd bij pagina laden
- Platform Uitbreidbaar: Momenteel geïmplementeerd voor Arduino Uno R4 WiFi, maar kan uitgebreid worden voor andere hardware platforms. Zie DIYables_WebApps_ESP32
Benodigde Hardware
Of u kunt de volgende kits kopen:
| 1 | × | DIYables STEM V4 IoT Starterskit (Arduino inbegrepen) | |
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Setup Instructies
Snelle Stappen
Volg deze instructies stap voor stap:
- Als dit uw eerste keer is met de Arduino Uno R4 WiFi/DIYables STEM V4 IoT, raadpleeg de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/DIYables STEM V4 IoT in de Arduino IDE.
- Verbind het Arduino Uno R4/DIYables STEM V4 IoT board met uw computer met een USB kabel.
- Start de Arduino IDE op uw computer.
- Selecteer het juiste Arduino Uno R4 board (bijv., Arduino Uno R4 WiFi) en COM poort.
- Navigeer naar het Libraries icoon in de linker balk van de Arduino IDE.
- Zoek "DIYables WebApps", vind vervolgens de DIYables WebApps bibliotheek van DIYables
- Klik op de Install knop om de bibliotheek te installeren.

- U wordt gevraagd om enkele andere bibliotheekafhankelijkheden te installeren
- Klik op de Install All knop om alle bibliotheekafhankelijkheden te installeren.

- In Arduino IDE, ga naar File Examples DIYables WebApps WebRTC voorbeeld, of kopieer de bovenstaande code en plak het in de editor van Arduino IDE
- Configureer WiFi inloggegevens in de code door deze regels bij te werken:
- Klik op de Upload knop in Arduino IDE om de code naar Arduino te uploaden.
- Open de Serial Monitor in Arduino IDE
- Wacht op de verbinding met WiFi en de prints van WiFi informatie op Serial Monitor.
- Bekijk het resultaat op Serial Monitor. Het ziet er als volgt uit
- Als u niets ziet, herstart het Arduino board.
Gebruik van de Web Interface
- Open een webbrowser op uw computer of mobiele apparaat verbonden met hetzelfde WiFi netwerk
- Type het IP adres getoond in de Serial Monitor in de webbrowser
- Voorbeeld: http://192.168.1.100
- U ziet de homepage zoals onderstaande afbeelding:

- Klik op de Web RTC link, u ziet de Web RTC app's UI zoals hieronder:

- Of u kunt ook direct naar de pagina gaan via IP adres gevolgd door /web-rtc. Bijvoorbeeld: http://192.168.1.100/web-rtc
- U ziet de Web RTC interface met:
- Arduino Tijd: Huidige tijd van de Arduino's RTC
- Uw Apparaat Tijd: Huidige tijd van uw webbrowser/apparaat
- Tijdsverschil: Verschil tussen de twee tijden in minuten
- Synchroniseer Arduino Tijd Knop: Klik om Arduino tijd te synchroniseren met uw apparaat
Tijdsynchronisatie
- Klik op de "Sync Arduino Time" knop om de Arduino's RTC te synchroniseren met uw apparaat's lokale tijd

- Het synchronisatieproces:
- Haalt uw apparaat's huidige lokale tijd op (niet UTC)
- Past aan voor tijdzone offset om accurate lokale tijd sync te verzekeren
- Stuurt timestamp naar Arduino via WebSocket
- Arduino werkt zijn RTC bij met de ontvangen tijd
- Web interface werkt bij om de gesynchroniseerde tijd te tonen
Code Uitleg
Belangrijkste Componenten
Setup Functie
Callback Functies
Tijdsynchronisatie Callback:
Tijd Verzoek Callback:
Main Loop
API Methoden
DIYablesWebRTCPage Klasse Methoden
onTimeSyncFromWeb(callback)
- Stelt de callback functie in om tijdsynchronisatie van webbrowser af te handelen
- Parameter: void (*callback)(unsigned long unixTimestamp)
- Gebruik: Aangeroepen wanneer gebruiker op "Sync Arduino Time" knop klikt
onTimeRequestToWeb(callback)
- Stelt de callback functie in om tijd verzoeken van webbrowser af te handelen
- Parameter: void (*callback)()
- Gebruik: Aangeroepen wanneer web interface huidige Arduino tijd vraagt
sendTimeToWeb(year, month, day, hour, minute, second)
- Stuurt huidige Arduino tijd naar web interface
- Parameters:
- year: Huidig jaar (bijv., 2025)
- month: Huidige maand (1-12)
- day: Huidige dag van maand (1-31)
- hour: Huidig uur (0-23)
- minute: Huidige minuut (0-59)
- second: Huidige seconde (0-59)
WebSocket Communicatie
Berichten van Web naar Arduino
- RTC:GET_TIME - Vraag huidige Arduino tijd
- RTC:SYNC:[timestamp] - Synchroniseer Arduino tijd met Unix timestamp
Berichten van Arduino naar Web
- DATETIME:YYYY,MM,DD,HH,MM,SS - Stuur huidige Arduino tijd componenten
Probleemoplossing
Veelvoorkomende Problemen
1. Tijdsverschil van Meerdere Uren
- Probleem: Arduino toont tijd meerdere uren verschillend van apparaat tijd
- Oorzaak: Meestal een tijdzone probleem of RTC niet correct geïnitialiseerd
- Oplossing:
- Klik op "Sync Arduino Time" knop om te hersynchroniseren
- Controleer of RTC correct geïnitialiseerd is in setup()
- Verifieer of WiFi verbinding stabiel is
- Probleem: Fout bij klikken op sync knop
- Oorzaak: WebSocket verbinding mislukt
- Oplossing:
- Controleer of Arduino IP adres correct is
- Vernieuw de webpagina
- Verifieer dat Arduino verbonden is met hetzelfde WiFi netwerk
- Controleer firewall instellingen
- Probleem: Tijd weergave bevriest of werkt niet bij
- Oorzaak: WebSocket verbinding verloren of RTC gestopt
- Oplossing:
- Vernieuw de webpagina
- Controleer WebSocket verbindingsstatus
- Herstart Arduino als RTC niet meer reageert
- Probleem: Tijdsverschil toont duizenden minuten
- Oorzaak: RTC was niet correct ingesteld of heeft aanzienlijk afgeweken
- Oplossing: Klik meerdere keren op sync knop en verifieer callback functies
2. "Not connected to Arduino" Fout
3. Tijd Stopt met Bijwerken
4. Grote Tijdsverschillen (Dagen/Maanden)
Debug Tips
Schakel Serial Debugging in:
Controleer RTC Initialisatie:
Geavanceerd Gebruik
Data Logging met Timestamps
Geplande Acties
Meerdere Web Apps Integratie
Toepassingen en Gebruiksscenario's
Educatieve Projecten
- Tijdbeheer Leren: Leer studenten over RTC, tijdmeting en synchronisatie
- IoT Tijd Concepten: Demonstreer netwerk tijdsynchronisatie in IoT systemen
- Data Logging Projecten: Voeg timestamps toe aan sensor metingen en experimenten
- Plannningssystemen: Creëer tijd-gebaseerde automatisering en controle systemen
Echte Toepassingen
- Domotica: Plan verlichting, irrigatie, of andere apparaten
- Data Acquisitie: Timestamp sensor metingen voor analyse
- Event Logging: Registreer wanneer specifieke gebeurtenissen plaatsvinden met accurate timing
- Remote Monitoring: Controleer apparaat status en laatste update tijden op afstand
STEM Onderwijs Voordelen
- Tijdzone Concepten: Begrijp lokale tijd vs. UTC en tijdzone afhandeling
- Netwerk Communicatie: Leer WebSocket communicatie en real-time updates
- Hardware Integratie: Combineer web interfaces met hardware RTC functionaliteit
- Probleem Oplossen: Debug timing problemen en synchronisatie problemen
Technische Specificaties
Geheugengebruik
- Flash Memory: ~8KB voor WebRTC functionaliteit
- SRAM: ~2KB tijdens werking
- WebSocket Buffer: ~1KB voor bericht afhandeling
Prestatie Kenmerken
- Update Frequentie: Real-time updates via WebSocket
- Sync Nauwkeurigheid: Meestal binnen 1-2 seconden
- Netwerk Overhead: ~50 bytes per tijd update bericht
- Respons Tijd: <100ms voor tijd sync operaties
Compatibiliteit
- Arduino Boards: Arduino Uno R4 WiFi, DIYables STEM V4 IoT
- Browsers: Alle moderne browsers met WebSocket ondersteuning
- Apparaten: Desktop, tablet, en mobiele apparaten
- Netwerken: WiFi netwerken met internet toegang
Samenvatting
Het WebRTC voorbeeld demonstreert hoe u:
- Een web-gebaseerde real-time klok interface creëert
- Arduino RTC synchroniseert met webbrowser tijd
- Tijd informatie weergeeft in gebruiksvriendelijk formaat
- Tijdsverschillen en verbindingsstatus monitort
- Tijd functionaliteit integreert met andere web applicaties
- Educatieve IoT projecten bouwt met tijdbeheerfuncties
Dit voorbeeld is perfect voor projecten die accurate tijdmeting vereisen, data logging met timestamps, geplande automatisering, en educatieve demonstraties van tijdsynchronisatie concepten in IoT systemen.