Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

IoT-Messgerät mit Arduino, Yaler und IFTTT

Komponenten und Verbrauchsmaterialien

Arduino Yun
× 1
Servos (Tower Pro MG996R)
× 1
M3-Muttern und -Schrauben
× 3
4 mm Sperrholz
× 1

Notwendige Werkzeuge und Maschinen

Laser-Cutter
Heißklebepistole
Android- oder iOS-Telefon

Apps und Onlinedienste

IFTTT Maker-Dienst

Über dieses Projekt

(Von http://www.instructables.com/id/IoT-Gauge-with-Arduino-Yaler-IFTTT/)

So erstellen Sie ein webfähiges, Arduino-basiertes IoT-Messgerät mit einer REST-API und verbinden es über den Yaler.net-Relay-Dienst mit der Mash-up-Plattform von IFTTT.com*.

Was ist daran spannend? Mit dem Maker Channel unterstützt IFTTT benutzerdefinierte Webhooks, um DIY-IoT-Projekte zu integrieren. Darauf warte ich seit 2011**.

Inspiriert von WhereDial, einem DIY-Klassiker des Internets der Dinge, zeigt die IoT-Anzeige den aktuellen Standort seines Besitzers an. Ein bisschen wie die Weasley-Uhr in Harry Potter.

Das Design und der Code des IoT-Gauge sind generisch und können auch verwendet werden, um z.B. Wetterverhältnisse. Die Logik liegt in der Cloud, das Messgerät ist nur ein Servo mit einer API.

Prost, @tamberg

Downloads (für die Uno)

  • Yaler Arduino-Bibliothek, YalerEthernetServer.zip
  • Arduino Uno-Code, IoTGaugeWebService.ino

*) Ich bin ein Gründer von Yaler.

**) Zapier, eine weitere Mash-up-Plattform, unterstützte immer benutzerdefinierte Webhooks.

Schritt 1:Laserschneiden und Zusammenbauen des IoT-Messgeräts

Produktion der Teile

  • Laden Sie die IoT Gauge-Designdateien herunter
  • Laserschneiden des Designs aus 4 mm Sperrholz
  • Gravieren Sie Standortnamen (oder was immer Sie brauchen) oder fügen Sie sie mit einem Stift hinzu

Zusammenbau des IoT-Messgeräts

  • Hinzufügen des Ethernet-Shields zum Arduino (für den Uno)
  • Schrauben Sie den Arduino an die Grundplatte (beachten Sie die Ausrichtung)
  • Fügen Sie die große Frontplatte zum Servo hinzu, dann die kleine Frontplatte
  • Steck die Grundplatte in beide Frontplatten und vergewissere dich, dass alles ausgerichtet ist
  • Kleben Sie die Anzeigen an die Frontplatte und stellen Sie sicher, dass sie richtig ausgerichtet sind
  • Verwenden Sie Überbrückungsdrähte, um das Servo an Pin 9, 5V und GND des Arduino (oder der Abschirmung) anzuschließen
  • Fügen Sie den Uhrzeiger hinzu (wird später kalibriert)

Schritt 2:Hochladen des Arduino-Codes des IoT Gauge Webservice

Einfacher Webdienst

Die Steuerung des IoT-Messgeräts ist recht einfach. Ein Webservice (oder REST API) lauscht auf eingehende Anfragen und stellt die Servoposition entsprechend ein. Das IoT Gauge ist nur ein "dummes" Servo. Wenn Sie die Logik in der Cloud behalten, können Sie das "Gehirn" später austauschen, z. um Wetterbedingungen anstelle eines Ortes anzuzeigen.

Fernzugriff auf das Arduino

Um dem IFTTT-Cloud-Dienst Zugriff auf das IoT-Messgerät zu gewähren, muss unsere Arduino-REST-API über das Web zugänglich und adressierbar sein. Experten könnten ihrer Firewall oder ihrem Router eine Ausnahme hinzufügen. Da dies jedoch ziemlich mühsam sein kann, verwenden wir einen Relay-Dienst*.

Arduino Uno installieren (für Yun, siehe unten)

  • Installieren Sie die YalerEthernetServer.zip-Bibliothek wie in https://yaler.net/arduino gezeigt
  • Laden Sie den Arduino Uno-Code von IoTGaugeWebService.ino herunter
  • Stellen Sie sicher, dass Sie eine eindeutige MAC-Adresse verwenden
  • Ersetzen Sie RELAY_DOMAIN mit Ihrer Relay-Domain.(Um eine Relay-Domain zu erhalten, registrieren Sie sich für ein kostenloses Testkonto bei Yaler.net)
  • Laden Sie den Code auf Ihr Arduino Uno hoch

Arduino Yun installieren (für Uno, siehe oben)

  • Installieren Sie YalerTunnel und aktivieren Sie den Webzugriff wie in https://yaler.net/arduino-yun gezeigt
  • Laden Sie den Arduino Yun-Code von IoTGaugeMailboxApi.ino herunter
  • Laden Sie den Code auf Ihren Arduino Yun hoch

Warum unterscheidet sich der Yun-Code vom Uno-Code?

Yun bietet eine integrierte REST-API namens Mailbox. Um diese API über das Web zugänglich zu machen, verwenden wir den YalerTunnel Linux-Daemon (der im Gegensatz zum Uno auch SSL-Verschlüsselung unterstützt). Indem Sie auf dem aufbauen, was bereits vorhanden ist, können Sie Ihren Code vereinfachen.

Schauen Sie sich beide Programme an und entscheiden Sie selbst. Die Mailbox-API von Yun ist nicht perfekt (und nicht strikt RESTful, da sie GET erlaubt, Werte zu ändern), aber sie basiert auf einem Skript, das auf der Linux-Seite von Yun ausgeführt wird und weniger kostbaren Speicher auf der Arduino-Seite verbraucht.

*) Wenn Sie einen Relay-Dienst nicht verwenden möchten, entfernen Sie ihn einfach und (für die Uno) entkommentieren Sie den lokalen Server.

Schritt 3:Testen des Arduino-Webdienstes mit Curl

Curl-Befehlszeilentool auf Ihrem Computer installieren

  • Laden Sie Curl von http://curl.haxx.se/ herunter und installieren Sie es
  • Öffnen Sie eine Shell auf Ihrem Computer und testen Sie Curl mit$ curl -v http://google.com/

Aktivieren der Arduino Yun API (für Uno überspringen)

  • Power the Yun, warte ein bisschen und besuche dann http://arduino.local/
  • Loggen Sie sich ein und klicken Sie auf Konfigurieren
  • Scrollen Sie nach unten und stellen Sie den REST-API-Zugriff auf Öffnen
  • Klicken Sie auf Konfigurieren und neu starten

Testen des IoT-Messgeräts mit Curl

  • Stellen Sie sicher, dass das Arduino mit Strom versorgt und mit dem Internet verbunden ist
  • Stellen Sie die Servoposition auf 3 (oder eine andere Position von 1 bis 5) mit*$ curl -vX POST http://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3 (Ersetzen Sie RELAY_DOMAIN mit der zuvor verwendeten Relay-Domain)
  • Stellen Sie sicher, dass das Servo die Hand in die gewünschte Position bewegt (stellen Sie die Hand gegebenenfalls ein)
  • Stellen Sie sicher, dass Sie etwas wie 200 erhalten Okay als Antwort auf den curl-Aufruf
  • Wenn Sie 504 erhalten das Arduino ist nicht online oder es liegt ein Tippfehler vor

Warum sollten Sie Ihre API mit Curl testen?

Curl ist ein Standard-HTTP-Client. Ihr Browser eignet sich hervorragend zum Testen von GET-Anfragen, und es gibt Online-Tools, um auch PUT- und POST-Anfragen zu testen. Aber manchmal fügt der Browser Magie hinzu, wie zum Beispiel das Folgen von Weiterleitungen. Wenn Sie also sicherstellen möchten, dass ein einfacher Client- oder Drittanbieter-Webhook-Aufruf wie der von IFTTT gesendete auf Ihre Webdienst-API zugreifen kann, ist Curl großartig.

*) Für das Uno funktioniert POST /mailbox/pos/3 genauso gut wie PUT /servo?pos=3, da der Code, der die Anfrage parst, ziemlich nachsichtig ist.

Schritt 4:Verbinden des Arduino mit dem IFTTT Maker-Kanal

Ein neues IFTTT-Rezept erstellen (oder überspringen, um ein vorhandenes Rezept hinzuzufügen)

Mit IFTT können Sie Rezepte erstellen, die einen Auslöser mit einer Aktion verbinden.

  • Besuchen Sie https://ifttt.com/myrecipes/personal/new (melden Sie sich an, wenn Sie es noch nicht getan haben)
  • Um einen Triggerkanal auszuwählen, suchen Sie z. „Android-Gerät“ oder „iOS-Standort“ und wählen Sie das Kanalsymbol
  • Wählen Sie dann einen Auslöser, z.B. Verbindet sich mit einem bestimmten WLAN-Netzwerk (für Android)
  • Geben Sie einen Netzwerknamen oder Standort ein
  • Suchen Sie bei der Auswahl des Aktionskanals nach dem Maker Kanal und wählen Sie ihn aus
  • Wählen Sie dann die Aktion Webanfrage stellen
  • Geben Sie die URL http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3 ein  (Ersetzen Sie RELAY_DOMAIN mit der zuvor verwendeten Relay-Domain)
  • Wählen Sie für die Methode P OST
  • Wählen Sie als Inhaltstyp application/x-www-form-urlencoded
  • Der Körper kann leer bleiben

Ein vorhandenes IFTTT-Rezept hinzufügen

IFTTT ermöglicht es Benutzern, Rezepte zu veröffentlichen. Hier sind zwei Rezepte zur Steuerung Ihres IoT-Messgeräts:

  • Öffne das Rezept "IoT-Messgerät-Position vom Android-WLAN-Standort"
  • Oder das Rezept "IoT-Messgerätposition vom iOS-Standort" hier
  • Oder suchen* nach "IoT Gauge"-Rezepten, https://ifttt.com/recipes/search?q=IoT+Gauge
  • Um eine Instanz des Rezepts zu Ihren Rezepten hinzuzufügen, klicken Sie auf Hinzufügen Schaltfläche
  • Geben Sie einen WLAN-Netzwerknamen oder Standort ein (oder was auch immer das Rezept verlangt)
  • Ersetzen Sie RELAY_DOMAIN in der URL mit der zuvor verwendeten Relay-Domain
  • Passen Sie den pos-Parameter in der URL von 1 bis 5 an Ihren Standort an
  • Füge für jeden Standort eine weitere Instanz des Rezepts hinzu

*) Es scheint, dass IFTTT noch keine Maker-Kanal-Rezepte zu den Suchergebnissen hinzufügt

Schritt 5:Erstellen einer IFTTT-Do-Schaltfläche für die IoT-Anzeige

IFTTT-Apps machen

IFTTT bietet auch Do Apps für iOS und Android. Die App ermöglicht es Ihnen, Aktionen manuell auszulösen. Dies kann großartig sein, um Ihre anderen IFTTT-Rezepte zu testen.

Im Gegensatz zu normalen IFTTT-Rezepten können die Rezepte der Do-App (noch?) nicht geteilt oder veröffentlicht werden. Sie müssen sie also von Grund auf neu erstellen.

Neue IFTTT-Do-Schaltfläche erstellen

  • Holen Sie sich die Do Button Android- oder iPhone-App unter https://ifttt.com/products/do/button
  • Arbeiten Sie die ziemlich nervigen, aber obligatorischen (?) Intro-Screens durch
  • Benutze das kleine Symbol unten rechts, um die Rezeptliste aufzurufen
  • Tippe auf das Schild und dann auf Kanäle und suche nach dem Maker Kanal
  • Wählen Sie dann die Aktion Webanfrage stellen
  • Geben Sie die URL http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3 ein  (Ersetzen Sie RELAY_DOMAIN mit der zuvor verwendeten Relay-Domain)
  • Für die Methode wähle POST
  • Für den Inhaltstyp Wählen Sie Anwendung/x-www-form-urlencoded
  • Der Körper kann leer bleiben
  • Tippen Sie auf Hinzufügen um die Schaltfläche zu erstellen
  • Nach der Erstellung kann das Rezept online unter https://ifttt.com/myrecipes/do bearbeitet werden

Das war's - danke fürs Lesen und lass es mich wissen, wenn du Fragen oder Anregungen hast.

Code

Bitbucket

Kundenspezifische Teile und Gehäuse

IoT_Gauge.zip

Schaltpläne


Herstellungsprozess

  1. DIY einfachste IV9 Numitron-Uhr mit Arduino
  2. Arduino-Gyroskop-Spiel mit MPU-6050
  3. Rettung des Wasserlebens und Bekämpfung der Wasserverschmutzung mit IoT und KI
  4. MotionSense
  5. DIY Einfaches Messrad mit Drehgeber
  6. Arduino Repulsive Electromagnetic Levitation
  7. Arduino-betriebener Wetterballon-Datenlogger
  8. ArduFarmBot - Teil 2:Remote-Station und IoT-Implementierung
  9. Einzelne LED-Matrix-Arduino Flip Clock
  10. Mikrocontroller-Labor