Web-fähigen IoT-Messer mit Arduino, Yaler und IFTTT bauen
Komponenten und Zubehör
![]() |
|
× | 1 | ||
|
× | 1 | |||
|
× | 3 | |||
|
× | 1 |
Benötigte Werkzeuge und Maschinen
| |||
| |||
|
Apps und Online-Dienste
![]() |
|
Über dieses Projekt

(Quelle: Instructables)
Wie man einen web-fähigen, Arduino-basierten IoT-Messer mit REST-API baut und ihn über den Yaler.net-Relay-Service mit der IFTTT.com-Mashup-Plattform verbindet.
Was ist das Besondere daran? Mit dem Maker Channel unterstützt IFTTT benutzerdefinierte Webhooks, um DIY-IoT-Projekte zu integrieren. Darauf habe ich seit 2011 gewartet.**
Inspiriert vom WhereDial, einem IoT-Klassiker, zeigt der IoT-Messer den aktuellen Standort seines Besitzers an – ähnlich der Weasley-Uhr aus Harry Potter.
Design und Code des IoT-Messers sind generisch und könnten ebenso für Wetterbedingungen genutzt werden. Die Logik liegt in der Cloud, der Messer ist nur ein Servo mit API.
Viel Spaß, @tamberg
Downloads (für den Uno)
- Yaler Arduino Bibliothek,
YalerEthernetServer.zip - Arduino Uno Code,
IoTGaugeWebService.ino
*) Ich bin Mitgründer von Yaler.
**) Zapier, eine weitere Mashup-Plattform, unterstützte schon immer benutzerdefinierte Webhooks.
Schritt 1: Lasercutting und Zusammenbau des IoT-Messers

Teile fertigen
- IoT-Messer Design-Dateien herunterladen
- Design aus 4 mm Sperrholz lasercutten
- Ortsnamen gravieren (oder mit Stift hinzufügen)
IoT-Messer zusammenbauen
- Ethernet-Shield auf den Arduino stecken (für den Uno)
- Arduino auf der Grundplatte verschrauben (Ausrichtung beachten)
- Große Frontplatte am Servo befestigen, dann die kleine Frontplatte
- Grundplatte in beide Frontplatten stecken, alles ausrichten
- Indikatoren auf die Frontplatte kleben, korrekt ausrichten
- Servo per Jumper-Kabel an Pin 9, 5V und GND des Arduino (oder Shields) anschließen
- Zeiger aufsetzen (später kalibrieren)
Schritt 2: IoT-Messer Web-Service Arduino-Code hochladen

Einfacher Web-Service
Die Steuerung des IoT-Messers ist simpel: Ein Web-Service (REST-API) lauscht auf eingehende Requests und setzt die Servo-Position entsprechend. Der IoT-Messer ist nur ein „dummer“ Servo. Die Logik in der Cloud zu belassen, erlaubt später den „Gehirn“-Austausch, z. B. um Wetterdaten statt Standort anzuzeigen.
Remote-Zugriff auf den Arduino
Damit der IFTTT-Cloud-Service auf den IoT-Messer zugreifen kann, muss die Arduino-REST-API aus dem Web erreichbar und adressierbar sein. Experten könnten eine Firewall- oder Router-Ausnahme einrichten. Da das oft mühsam ist, nutzen wir einen Relay-Service*.
Arduino Uno einrichten (für Yun siehe unten)
- YalerEthernetServer.zip Bibliothek installieren wie unter yaler.net/arduino gezeigt
- IoTGaugeWebService.ino Arduino Uno Code herunterladen
- Eindeutige MAC-Adresse verwenden
- RELAY_DOMAIN durch Ihre Relay-Domain ersetzen (kostenlosen Test-Account unter Yaler.net erstellen)
- Code auf den Arduino Uno hochladen
Arduino Yun einrichten (für Uno siehe oben)
- YalerTunnel installieren und Web-Zugriff aktivieren wie unter yaler.net/arduino-yun gezeigt
- IoTGaugeMailboxApi.ino Arduino Yun Code herunterladen
- Code auf den Arduino Yun hochladen
Warum unterscheidet sich der Yun-Code vom Uno-Code?
Der Yun bietet eine eingebaute REST-API namens „Mailbox“. Um diese API aus dem Web erreichbar zu machen, nutzen wir den YalerTunnel Linux-Daemon (der auch SSL-Verschlüsselung unterstützt, im Gegensatz zum Uno). Durch Aufbau auf Bestehendem lässt sich der Code vereinfachen.
Schauen Sie sich beide Programme an und entscheiden Sie selbst. Die Mailbox-API des Yun ist nicht perfekt (und nicht strikt RESTful, da sie GET zum Ändern von Werten erlaubt), basiert aber auf einem Skript auf der Linux-Seite des Yun, was den wertvollen Speicher auf der Arduino-Seite schont.
*) Wenn Sie keinen Relay-Service möchten, entfernen Sie ihn einfach und (beim Uno) kommentieren Sie den lokalen Server aus.
Schritt 3: Arduino-Web-Service mit Curl testen

Curl Kommandozeilen-Tool installieren
- Curl von curl.haxx.se herunterladen und installieren
- Shell öffnen und Curl testen:
$ curl -v https://google.com/
Arduino Yun API aktivieren (für Uno überspringen)
- Yun mit Strom versorgen, kurz warten, dann
https://arduino.local/besuchen - Einloggen und auf Configure klicken
- Nach unten scrollen und REST API Access auf Open setzen
- Configure & Restart klicken
IoT-Messer mit Curl testen
- Sicherstellen, dass Arduino mit Strom versorgt und mit dem Internet verbunden ist
- Servo-Position auf 3 (oder eine andere Position von 1 bis 5) setzen mit:
$ curl -vX POST https://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3
(Ersetzen Sie RELAY_DOMAIN durch Ihre zuvor verwendete Relay-Domain) - Prüfen, ob der Servo den Zeiger auf die gewünschte Position bewegt hat (Zeiger ggf. justieren)
- Antwort sollte < HTTP/1.1 200 OK sein
- Bei < HTTP/1.1 504 ist der Arduino nicht online oder es gab einen Tippfehler
Warum API mit Curl testen?
Curl ist ein Standard-HTTP-Client. Browser eignen sich gut für GET-Requests, und es gibt Online-Tools für PUT und POST. Aber Browser fügen manchmal „Magie“ hinzu, wie das Folgen von Redirects. Um sicherzugehen, dass ein Basis-Client oder ein 3rd-Party-Webhook wie der von IFTTT Ihren Web-Service-API erreichen kann, ist Curl ideal.
*) Für den Uno funktioniert POST /mailbox/pos/3 ebenso wie PUT /servo?pos=3, da der Request-Parsing-Code sehr tolerant ist.
Schritt 4: Arduino mit IFTTT Maker Channel verbinden

Neues IFTTT-Rezept erstellen (oder bestehenden hinzufügen)
IFTTT lässt Sie Rezepte erstellen, die einen Trigger mit einer Aktion verbinden.
- https://ifttt.com/myrecipes/personal/new besuchen (ggf. registrieren)
- Trigger-Channel wählen, z. B. „Android Device“ oder „iOS Location“ suchen und Icon auswählen
- Trigger wählen, z. B. Connects to a specific WiFi network (für Android)
- Netzwerkname oder Standort eingeben
- Bei Action Channel nach Maker suchen und auswählen
- Aktion Make a web request wählen
- URL eingeben:
https://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3(RELAY_DOMAIN ersetzen) - Methode: POST
- Content Type: application/x-www-form-urlencoded
- Body kann leer bleiben
Bestehendes IFTTT-Rezept hinzufügen
IFTTT erlaubt Nutzern, Rezepte zu veröffentlichen. Hier sind zwei Rezepte für Ihren IoT-Messer:
- Rezept „IoT Gauge position from Android WiFi location“ öffnen
- Oder Rezept „IoT Gauge position from iOS location“ öffnen
- Oder nach „IoT Gauge“ Rezepten suchen: ifttt.com/recipes/search?q=IoT+Gauge
- Auf Add klicken, um Instanz zum eigenen Rezept hinzuzufügen
- WiFi-Netzwerkname oder Standort eingeben (oder was das Rezept abfragt)
- RELAY_DOMAIN in der URL durch Ihre Relay-Domain ersetzen
pos-Parameter in der URL von 1 bis 5 an Ihren Standort anpassen- Für jeden Standort eine weitere Rezept-Instanz hinzufügen
*) Es scheint, dass IFTTT Maker-Channel-Rezepte noch nicht in den Suchergebnissen auftauchen.
Schritt 5: IFTTT Do Button für den IoT-Messer erstellen

IFTTT Do Apps
IFTTT bietet auch Do-Apps für iOS und Android. Die App erlaubt manuelles Auslösen von Aktionen – ideal zum Testen anderer IFTTT-Rezepte.
Im Gegensatz zu normalen IFTTT-Rezepten können Do-App-Rezepte (noch?) nicht geteilt oder öffentlich gemacht werden. Sie müssen sie also von Grund auf neu erstellen.
Neuen IFTTT Do Button erstellen
- Do Button Android oder iPhone App unter ifttt.com/products/do/button holen
- Die etwas nervigen, aber obligatorischen (?) Intro-Bildschirme durcharbeiten
- Kleines Icon unten rechts antippen, um Rezept-Liste aufzurufen
- Plus-Zeichen tippen, dann Channels und nach Maker suchen
- Aktion Make a web request wählen
- URL eingeben:
https://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3(RELAY_DOMAIN ersetzen) - Methode: POST
- Content Type: application/x-www-form-urlencoded
- Body leer lassen
- Add tippen, um Button zu erstellen
- Einmal erstellt, kann das Rezept online bearbeitet werden unter ifttt.com/myrecipes/do
Das war's – danke fürs Lesen, und melden Sie sich bei Fragen oder Anregungen!
Code
Bitbucket
Custom Parts und Gehäuse
Schaltpläne
Herstellungsprozess
- Retro-Numitron-Uhr mit Arduino bauen: Einfach, zuverlässig & energieeffizient
- Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
- IoT- & KI-gestützte Wasserqualitätsüberwachung schützt Wasserleben
- MotionSense: Smarte Einbruchserkennung mit Arduino & ESP8266
- Präzises DIY-Messrad mit Arduino Nano und Drehgeber
- Arduino-basierte abstoßende Magnetschwebung: Einfache Schaltung & DIY-Anleitung
- Hochleistungs-Datenlogger für Arduino-Wetterballons
- ArduFarmBot Teil 2: IoT-Fernsteuerungsstation für Tomatenzucht
- Arduino Flip Clock mit 8×8 LED-Matrix – DIY Echtzeituhr-Projekt
- Fortgeschrittenes Mikrocontroller-Labor: ESP32, Arduino, PIC und Sensormodule

