Arduino Mega: Fotos aufnehmen & automatisch in Google Drive hochladen
Benötigte Hardware
- Arduino Mega 2560 (mehr RAM/Flash für Bilddaten & HTTPS)
- PHPoC WiFi Shield 2 (WLAN + SSL/TLS + WebSocket-Server)
- Seeed Grove Serial Camera Kit (JPEG, 640×480 max.)
- Grove Base Shield (einfacher Anschluss)
- Taster (Auslöser)
Projektbeschreibung
Ein Arduino Mega nimmt per Serial-Kamera ein Foto auf und lädt es per Google Drive API direkt in Ihr Google Drive hoch. Die Authentifizierung erfolgt über OAuth 2.0 Device Flow (für Geräte ohne Browser), abgewickelt via PHPoC Shield (WebSocket-Webinterface).
Ablauf
- Google Cloud Projekt anlegen: Client ID & Client Secret erhalten, Drive API aktivieren.
- Arduino-Code anpassen:
GOOGLE_CLIENT_ID&GOOGLE_CLIENT_SECRETeintragen. - login.php auf PHPoC Shield hochladen (Web-UI für OAuth).
- Arduino-Code kompilieren & hochladen.
- Serieller Monitor: IP-Adresse des PHPoC Shields notieren.
- Browser:
https://<IP>/login.phpöffnen → Google-Konto autorisieren → Access Token wird auf Arduino gespeichert. - Taster drücken: Foto aufnehmen → Multipart-Upload an
https://www.googleapis.com/upload/drive/v2/filesmit Bearer-Token. - Nach ~2 Sekunden ist das Bild (Benennung:
ARDUINO_YYYYMMDDHHMMSS.jpg) im Drive sichtbar.
Technische Details
- Kamera: Grove Serial Camera, JPEG, per Hardware-Serial (Mega: Serial1/2/3) angebunden.
- PHPoC Shield: Stellt WLAN, SSL (Client), WebSocket-Server (Port 80) für Login-UI bereit.
- OAuth Device Flow:
POST /o/oauth2/device/code→ User-Code anzeigen → Polling/oauth2/v4/tokenbisaccess_token+refresh_tokenerhalten. - Token-Ablauf wird via
millis()überwacht; bei Ablauf neuer Login nötig. - Upload:
multipart/related(Metadata JSON + JPEG-Daten in Chunks viacameraGetPacket()).
Funktionsreferenzen (Arduino)
Serial.begin(), Serial.println(), delay(), millis(), for/while/if, loop()/setup(), String-Methoden (toInt(), substring(), indexOf(), remove(), equals()).
Quellcode
- ArduinoGoogleDrive.ino: Hauptprogramm (OAuth, Kamera, Upload, WebSocket, Button-Debounce)
- login.php: Web-UI auf PHPoC Shield (WebSocket-Client, zeigt User-Code, Success-Meldung)
- grove_camera.h: Low-Level-Kamera-Treiber (Init, Picture-Trigger, Paket-Weitergabe)
Alle Dateien im Originalprojekt verfügbar.
Schaltplan
Verbindet Mega (Serial1 für Kamera), PHPoC Shield (SPI), Grove Base Shield, Taster an Pin 2.
Alternative Plattformen
Das gleiche Projekt wurde für andere Hardware-Plattformen umgesetzt (Link im Original).
Herstellungsprozess
- Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
- FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
- DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
- Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Optimierte Stromversorgungslösungen für Arduino-Projekte
- Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse
- Intelligenten Arduino-Vierbeiner-Roboter bauen: Schritt-für-Schritt-Anleitung
- Sprachgesteuerte Haushaltsgeräte: Bluetooth-Steuerung mit Google Assistant
- Googles 450-Millionen-Dollar-Investment in ADT beschleunigt IoT-Sicherheitsadoption