Komplettes Arduino & Intel Edison Starter Kit mit Sensoren, Webcam & Zubehör
Komponenten und Zubehör
| Bauteil | Menge | Details |
|---|---|---|
| Arduino 101 | 1 | |
| Intel Edison | 1 | |
| Logitech C270 HD Webcam | 1 | |
| Pololu Carrier mit Sharp GP2Y0D815Z0F Digitaler Distanzsensor (15 cm) | 2 | |
| Adafruit Quadratischer Kraftsensor (FSR) Interlink 406 | 1 | |
| Adafruit Si7021 Temperatur- & Luftfeuchtigkeitssensor Breakout | 1 | |
| Seeed Grove Starter Kit Plus, Intel IoT Edition | 1 | |
| Kondensator 47 µF | 2 | |
| Widerstand 1 kΩ | 1 | |
| Adafruit Klemmblock 2-polig 3,5 mm (5er Pack) | 1 | |
| Adafruit Kompaktes Schaltnetzteil, einstellbar 3–12 V DC | 1 | |
| Adafruit Perma-Proto Quarter-sized Breadboard PCB | 1 | |
| Jumper-Wires (diverse) | 1 |
Benötigte Werkzeuge und Maschinen
- 3D-Drucker
- Lötkolben
Apps und Online-Dienste
- Intel XDK for IoT
- Autodesk Fusion 360
- PubNub Publish/Subscribe API
- Cloudinary (Bildspeicherung & Transformation)
- noble.js (Bluetooth LE für Node.js)
Über dieses Projekt
„It's For The Birds!“ – Die Zukunft des Öko-Monitorings mit Arduino 101 neu erfinden
Einführung & Motivation
Gesundheit von Klima & Ökosystem lässt sich u. a. an Tierpopulationen messen. Seit 1987 führt das Cornell Lab of Ornithology jedes Winter das Project FeederWatch durch – eine riesige Citizen-Science-Aktion: Vögel an Futterstellen in Nordamerika zählen, Art & Anzahl erfassen, Veränderungen über Jahre tracken.
Erstes Jahr Teilnahme → Maker-Interesse + Naturbeobachtung kombiniert → experimentelle Plattform mit Arduino 101 im selbstgebauten Vogelhäuschen. Arduino 101 ideal: einfache Arduino IDE, onboard BLE, viele Sensoren/Breakouts verfügbar. IoT-Technologien (Cloudinary, PubNub) heben das Monitoring auf neues Level.
Projektüberblick

Herzstück: Arduino 101 im Vogelhäuschen.
- 2× Sharp IR-Distanzsensoren → Vögel auf Holzstange (durch beide Seiten) erkennen.
- Kraftsensor (FSR) → Füllstand Vogelfutter messen.
- Adafruit Si7021 (I²C) → Temperatur & Luftfeuchtigkeit.
- Arduino 101 als BLE-Peripheral → Sensordaten per BLE an Central senden.
- Strom: 4× AA-Batterien.
- Alles in maßgeschneidertem 3D-Druck-Gehäuse.
Intel Edison (Arduino Breakout Board) als BLE-Central & Internet-Gateway:
- Logitech C270 USB-Webcam → Foto bei BLE-Benachrichtigung (Vogel auf Stange).
- Bilder lokal auf SD-Karte (Breakout Board Slot) speichern.
- Edison WiFi → PubNub (Echtzeit-Datenstreaming) & Cloudinary (Cloud-Bildspeicherung/Transformation).

Vogelhäuschen aus leerer PET-Flasche + Holzstange, an Pfosten im Garten aufgehängt.
Aufbau
Arduino 101 – eingebettetes Vogelhäuschen
Outdoor-Einsatz → robust, wetterfest, Echtzeit-Datenfunk. Distanz zu Edison nur wenige Meter → BLE ideal (onboard).
Schaltung weitgehend per Fritzing-Diagramm, hier Fokus auf Herausforderungen:
Herausforderung 1: Vogel-Erkennung outdoor
Sensor muss outdoor funktionieren, gegen Elemente abgedichtet, Vogel nicht stören/verschrecken, nur Stange erfassen. Nach Evaluation: Pololu Carrier mit Sharp GP2Y0D815Z0F (digital, 15 cm Reichweite). Im Gegensatz zu PIR (breit, weit) nur punktgenau wenige cm. Funktioniert durch PET-Flaschenwand – wichtig für wetterfestes Gehäuse.
Herausforderung 2: Zwei Sharp-Sensoren gleichzeitig
Ein Sensor lief, zweiter dazu → beide versagten. Code, Boards, Sensoren geprüft – nichts half. Produkt-FAQ lieferte Lösung: Sensor zieht Strom in kurzen, hohen Spitzen → Netzteil-Probleme. Fix: 47 µF Elko je Sensor nah an VCC/GND. Zusätzlich: beide Sensoren direkt vom 5-V-Pin versorgen (Jumper im Fritzing-Plan).
Herausforderung 3: Futterstand automatisiert messen
Project FeederWatch empfiehlt: Futter vor/nach Zählung wiegen, Verbrauch berechnen. Automatisierung per FSR (Force Sensitive Resistor) – Widerstand ändert sich mit Kraft. An Analogpin über Spannungsteiler (FSR + Festwiderstand). Erstversuche in Plastikbehälter: Finger-Druck ok, Futteränderung nicht. Zwei Fixes:
- Teilerwiderstand verkleinert → empfindlicher.
- Hardware: Plattform mit zentralem Druckpunkt (wie Stilett-Absatz vs. Schneeschuh) → Kraft auf FSR konzentriert. Funktioniert!
FSR-Anschluss sicher per 2-poligem 3,5-mm-Klemmblock (Rastermaß prüfen).
Si7021 an I²C (3,3 V). IR- & FSR-Sensoren auf Perma-Proto PCBs gelötet, unter Arduino 101 geklebt (Doppelklebeband). Ganzes Paket in PET-Flasche – überstand Frost, Nieselregen, Schnee („Stella“).
Arduino 101 Sketch-Highlights
Hauptaufgabe: Sensoren überwachen, Werte per BLE senden. BLE überträgt Bytes → Datentypen in Bytes zerlegen. Elegante Lösung: Union (gemeinsamer Speicher für float + byte[4]).
union { float t; unsigned char bytes[4]; } tempData;
union { float h; unsigned char bytes[4]; } humidityData;
union { int f; unsigned char bytes[2]; } feedData;
Float in Union speichern → Byte-Array automatisch gefüllt → an setValue() der Characteristics übergeben.
Kein delay()! Blockiert Prozessor & BLE-Notifications. Stattdessen: Nicht-blockierendes Timing (Adafruit-Tutorials „Multi-tasking the Arduino“).
void Update() {
currentPerchMillis = millis();
if ((currentPerchMillis - previousPerchMillis) > perchInterval) {
previousPerchMillis = currentPerchMillis;
currentLeftPerch = digitalRead(LEFT_PERCH);
currentRightPerch = digitalRead(RIGHT_PERCH);
if ((currentLeftPerch == 0) && (previousLeftPerch == 1)) {
perchCharacteristic.setValue(1); // BLE Notify
Serial.println("LEFT PERCH ACTIVITY");
previousLeftPerch = 0;
}
// ... rechte Seite analog
}
// weitere Sensoren zeitbasiert abfragen
}
void loop() { blePeripheral.poll(); birdFeeder.Update(); }
→ Echtzeit-Multitasking-Effekt.
Intel Edison & Arduino Breakout Board
Schwierigster Teil: Edison-Setup. Bester Tutorial: Vincent Wong „Intel Edison and Intel XDK IoT Edition 101“. JavaScript/Node öffnet mächtige APIs (PubNub, noble.js, Cloudinary).
Nach WiFi-Setup Bibliotheken installieren:
npm install noble
npm install pubnub
npm install cloudinary
USB-Webcam (Logitech C270)
UVC-Video-kompatibel. Yocto Linux (Edison OS) braucht uvcvideo-Modul. Schritte (via XDK Serial Terminal):
vi /etc/opkg/base-feeds.conf
# Repos ergänzen:
src/gz all https://repo.opkg.net/edison/repo/all
src/gz edison https://repo.opkg.net/edison/repo/edison
src/gz core2-32 https://repo.opkg.net/edison/repo/core2-32
src intel-iotdk https://iotdk.intel.com/repos/3.0/intelgalactic/opkg/i586
opkg update
opkg install kernel-module-uvcvideo
ls -l /dev/video* # → /dev/video0 sollte erscheinen
opkg install fswebcam
# Test:
fswebcam -r 1280x720 --jpeg 100 -D 3 -S 13 "test.jpg"
Zusätzlich: USB-Switch Richtung USB-Port, externes Netzteil (Adafruit 1448, 3–12 V einstellbar). SD-Karte prüfen (cd /media/sdcard; ls), Bluetooth freischalten (rfkill unblock bluetooth; bluetoothctl; scan on).
In Intel XDK: BLESCAN-Projekt öffnen, index.js leeren, package.json Dependencies entfernen, eigenen Code (GitHub) einfügen, hochladen. Arduino 101 einschalten → Edison findet BLE-Peripheral.

Der Code (Edison / Node.js)
UUIDs für noble.js (ohne Bindestriche!):
var LOCAL_NAME = 'bird';
var SERVICE_UUID = '917649a0d98e11e59eec0002a5d5c51b';
var PERCH_UUID = '917649a1d98e11e59eec0002a5d5c51b';
var TEMPERATURE_UUID = '917649a2d98e11e59eec0002a5d5c51b';
var HUMIDITY_UUID = '917649a3d98e11e59eec0002a5d5c51b';
var FEED_UUID = '917649a4d98e11e59eec0002a5d5c51b';
BLE-Scan → Peripheral „bird“ finden → connect → Services/Characteristics entdecken → notify(true) aktivieren → auf 'data'-Event hören (nicht veraltetes 'read'!).
noble.on('discover', function(peripheral) {
if (peripheral.advertisement.localName == LOCAL_NAME) {
peripheral.connect(function(error) {
noble.stopScanning();
peripheral.discoverServices([SERVICE_UUID], function(error, services) {
var feederService = services[0];
feederService.discoverCharacteristics([], function(error, characteristics) {
characteristics.forEach(function(characteristic) {
characteristic.on('data', function(data, isNotification) {
transformRawData(characteristic.uuid, data);
});
characteristic.notify(true, function(error) { if (error) throw error; });
});
});
});
});
}
});
transformRawData(uuid, data) verarbeitet eingehende Characteristics:
- Perch-Aktivität →
child_process.execFile('fswebcam', ...)→ Foto auf SD-Karte. - PubNub: Echtzeit-Datenstream (Seedlevel, Temp, Feuchte, Besucherzähler + Links zu 3 neuesten Cloudinary-Bildern).
- Cloudinary: Einfaches API, 3 neueste Bilder hochladen, URLs in JSON-Payload an PubNub senden.
index.html (Web-UI via PubNub)
Kein Server nötig – statische HTML-Datei mit JS. PubNub & Cloudinary JS-APIs einbinden:
<script src="https://cdn.pubnub.com/sdk/javascript/pubnub.4.5.0.js"></script>
<script src="https://pubnub.github.io/eon/v/eon/1.0.0/eon.js"></script>
<link rel="stylesheet" href="https://pubnub.github.io/eon/v/eon/1.0.0/eon.css" />
Subscribe-Key setzen, Channel feederView abonnieren, Payload dekodieren, 3 Bilder in <img id="myImage0/1/2"> anzeigen. PubNub Eon.js für Charts/Gauges (Futterstand, Temp, Feuchte).
Vogelhäuschen & Gehäuse
Flaschen-Futterhaus: 2-L-PET-Flasche ~11 cm abschneiden, 3-cm-Löcher für Stange (Sitzstange) in Bodenstück. Elektronik testen, passt knapp. Oberteil: Löcher unter Verschluss für Aufhängedraht (30 cm), 4 unterschiedlich hohe Seitenschlitze (verschiedene Vogelgrößen, Duftverbreitung). Zusammenstecken, Masking-Tape fixieren (Sensoren frei lassen). Trichter zum Befüllen.

3D-gedrucktes Elektronik-Gehäuse (in Flasche): Flaschendurchmesser gemessen (Etikett-Länge / π ≈ 105 mm). Gehäuse für Arduino + 2 Breadboards, Deckel mit Griff, Boden für 4×AA-Batteriepack (Filament-sparend). FSR-Druckplatte separat, ebenfalls filament-sparend. Alles verschrauben → kompaktes, funktionierendes Paket.





Test & Kalibrierung
Systematisch vor Deployment:
- BLE: nRF Master Control App (Arduino 101 → Handy), dann Reichweite außen testen. Schwache Batterien → BLE fällt zuerst aus.
- FSR-Kalibrierung: Mit Druckpunkt-Plattform linearer Bereich innerhalb nicht-linearer Gesamtkurve.
Deployment-Galerie
Bilder sind das Highlight! Cloudinary-Dashboard oder SD-Karte. Vögel entdecken Futterstelle → 2000+ JPEGs in wenigen Stunden!
Abgleich mit Project FeederWatch & Fazit

FeederWatch: Über 2 Tage max. Individuen pro Art zu einem Zeitpunkt melden. Unsere Stangenzähler passen nicht exakt. Aber: Umweltparameter & automatisierter Futterverbrauch passen. Fotos helfen bei Artbestimmung & Dokumentation seltener Vögel.
Potenzial: Live-Streaming via PubNub weltweit (Schulen, Birdwatcher). Clarifai-Block in PubNub: Bilder → Vogelerkennung/Artbestimmung? Cloudinary-Block: Wetterbedingte Bildqualität korrigieren? Weitere Seeed/Grove-Sensoren?
Als Maker: Riesenspaß. Live zusehen, später Fotos „Schatzsuche“, Futterstand sinken sehen, Arduino/Edison/Grove + Web-Technologien + 3D-Druck vereint. Inspiration: Bei FeederWatch anmelden – It's for the Birds!
Seeed Studio Grove Kit – Ausblick
Neu-Design mit Seeed Grove Starter Kit: Base Shield versorgt beide Sharp-Sensoren ohne Stützkondensatoren! Layout stark vereinfacht. Standard-IR-Sensor von Seeed anders als Sharp → Kabel (GND, VIN, SIG) angelötet für Grove-Anschluss.

Code
Alle Codedateien auf GitHub: https://github.com/lachendeKatze/ItsForTheBirds
CAD-Dateien
STL-Dateien für „in soda bottle“ Vogelhäuschen: GitHub 3DBuild Ordner
Schaltpläne

Edison-Teil simpel, kein passendes Fritzing-Bauteil für Webcam → Foto:

Herstellungsprozess
- Kompakter DHT Temperatur- & Feuchtigkeits-Breakout für Raspberry Pi – ATtiny85 & DHT22/DHT11
- HC-SR04 Ultraschallsensor an Raspberry Pi anschließen – Praktischer Leitfaden
- Top-Zubehör, um das volle Potenzial Ihres Raspberry Pi auszuschöpfen
- SIGHT: Smarte Brille für Blinde – Raspberry Pi & TensorFlow
- Intel und Udacity bieten zertifizierten Abschluss in Edge-KI-Entwicklung
- Den richtigen Füllstandssensor wählen: Genauigkeit, Zuverlässigkeit & Rentabilität
- Fortgeschrittene TOMOPLEX-Sensorfolie für Echtzeit-Luft- und Raumfahrtüberwachung
- Präzises WiFi-RSSI-Tracking für ISS-Sensoren
- Revolutionäres mathematisches Framework hilft Ingenieuren bei optimaler Flugzeugsensor-Auswahl
- 5S-Methode in Industrie 4.0 integrieren: Implementierungs-Herausforderungen meistern