Heim >Web-Frontend >js-Tutorial >Verbinden Sie das IoT und Node.js mit IFTTT
IFTTT hat ein großes Potenzial in seiner Fähigkeit, Geräte schnell und einfach zu verbinden. Es gab eine Sache, die es seit einiger Zeit fehlte - die Möglichkeit, generische HTTP -Anfragen zu senden und zu empfangen. Wenn Sie IFTTT für etwas verwenden möchten, musste die spezifische Verwendung dafür von IFTTT definiert und auf ihrer Website innerhalb eines Kanals veröffentlicht werden. Das heißt bis jetzt!
ifttt hat kürzlich den Maker -Kanal veröffentlicht. Es ist genau das, worauf die Entwickler gewartet haben! Sie können Trigger definieren, die ausgeschaltet werden, wenn sie eine HTTP -Anforderung erhalten, zusammen mit Aktionen, mit denen eine HTTP -Anforderung an einen definierten Ort gestellt werden kann. Dies eröffnet IFTTT, um für praktisch alles zu verwendet. Es ist jetzt völlig der Vorstellungskraft der Entwicklergemeinschaft.
Um zu zeigen, wozu der Maker -Kanal fähig ist, werden wir ein einfaches Arduino einrichten, um über Node.js. Um mit dem Versenden von Triggern an IFTTT zu experimentieren, werden wir eine LIFX -Glühbirne über einen Arduino Powered Light Switch ein- und ausschalten. Um eine IFTTT -Maker -Aktion auszuprobieren, werden wir eine RGB -Führung zu unserem Arduino verbinden, das die Farbe jederzeit verändert, wenn wir auf Twitter erwähnt werden. Magst du Twitter nicht oder hast keine LIFX -Glühbirne? Schalten Sie überhaupt kein Problem mit etwas anderem auf IFTTT aus. Arbeiten Sie mit dem Facebook -Kanal anstelle von Twitter oder auslösen Sie Aktionen auf Ihrem Telefon anstelle einer Glühbirne. Dies macht viel Spaß daran zu basteln.
Wenn Sie bei IFTTT neu sind, habe ich die Grundlagen in meinem Artikel zum Anschließen von Lifx -Glühbirnen mit ITTTT zuvor abgedeckt. In diesem Artikel geht davon aus, dass Sie alles über Auslöser und Aktionen wissen und jetzt bereit sind, ihn auf die nächste Stufe zu bringen!
Wenn Sie möchten, dass Sie direkt in den Code einsteigen und ihn ausprobieren möchten, finden Sie es hier auf Github.
Wir werden einen lokalen Node.js -Server mit einem über USB verbundenen Arduino -Server laufen lassen. Wenn Sie eine Taste auf dem Arduino -Einbau drücken, wird eine HTTP -Anforderung an IFTTT ausgelöst, um dies zu sagen, dass er unser Lifx -Licht umschaltet. Auf unserem Node.js -Server wird auch express ausgeführt, um alle eingehenden HTTP -Anforderungen zu verarbeiten. Immer wenn IFTTT eine neue Erwähnung von uns auf Twitter sieht, wird unser Server eine Postanforderung erstellt, um die LED unserer Arduino auszulösen.
Wir werden eine einfache Taste und eine RGB -LED zu einem Arduino anschließen.
Um loszulegen, müssen wir auf IFTTT zum Maker -Kanal gehen und auf "Connect" klicken. Sobald es eingerichtet ist, erreichen Sie einen Bildschirm, der so aussieht:
Auf diesem Bildschirm bietet es Ihren geheimen Schlüssel, den Sie über HTTP -Befehle auslösen müssen. Natürlich benötigen Sie ein bisschen mehr Informationen als nur den Schlüssel. Wir benötigen eine URL, um die die Aktion auszulösen. Um dies zu finden, klicken Sie auf den Link mit der Aufschrift „Wie man Ereignisse auslöst“. Es wird eine Seite geöffnet, die die URL enthält, die Sie verwenden möchten, bequem mit Ihrem darauf angeschlossenen Schlüssel.
Die URL, die wir für unsere LIFX -Glühbirne verwenden, sieht so aus: http://maker.ifttt.com/trigger/light_switch/with/key/ty/eryourkeyhere}}. Der URL -Teil, in dem Light_Switch besagt, ist unser Ereignisname. Wir verwenden dies, wenn wir unser IFTTT -Rezept zusammenstellen. Wenn Sie keine LIFX -Glühbirne auslösen, wählen Sie einen Namen, der Ihrem Ereignis genauer entspricht.
Unser Maker -Kanal ist aktiv und bereit für die Verwendung. Wir werden uns zunächst ansehen, wie wir unsere IFTTT -Aktion umschalten - eine LIFX -Glühbirne ein- und ausschalten mit einer Taste von einem Arduino.
Das Rezept selbst ist recht einfach:
In unserem Node.js-Code verwenden wir Johnny-Five, um auf unseren Arduino zuzugreifen. Wenn die Karte fertig ist, definieren wir unsere mit Pin 7 angeschlossene Taste in der BTN -Variablen:
board<span>.on('ready', function() { </span> <span>console.log('Board ready'); </span> btn <span>= new five<span>.Button</span>(7);</span>
Bei der Fertigereignis des Boards haben wir eine Uhr für das Down -Ereignis der Button eingerichtet. Wenn wir die Taste erkennen, protokolliert wir, die zu Debugging -Zwecken auf die Konsole klicken (in der Situation, in der ein Draht auf dem Störbrett löst oder etwas in dieser Richtung ist, kann diese Konsolenprotokolle viel Zeit sparen!). Anschließend verwenden wir die Anforderung des NPM -Moduls, um eine HTTP -Postanforderung an die oben gefundene URL zu stellen. Wir haben auch Konsolenprotokolle über den Erfolg für Debugging -Zwecke.
btn<span>.on('down', function(value) { </span> <span>console.log('Light toggle pressed.'); </span> request<span>.post({ </span> <span>url: 'http://maker.ifttt.com/trigger/light_switch/with/key/{{yourkeyhere}}' </span> <span>}, function(error<span>, response, body</span>) { </span> <span>console.log('Body response was ', body); </span> <span>console.log('Error was ', error); </span> <span>}); </span> <span>});</span>
Wenn wir den Code ausgeführt haben, sollten Sie beim Klicken auf die Schaltfläche und die Anforderung erfolgreich sind, er sollte unsere LIFX -Glühbirne ein- und ausschalten! IFTTT gibt eine schöne Nachricht zurück, die in unserer Konsole so aussieht.
Körperreaktion war Glückwunsch! Sie haben das Light_Switch -Ereignisabgefeuert
Es ist wirklich einfach zusammenzubauen, hat aber einLot potenziell.
Eine Sache zu beachten: Wenn Sie über HTTPS einen Anruf beim IFTTT -Dienst tätigen möchten, benötigen Sie auch einen ordnungsgemäß gesicherten HTTPS -Server. Ich hatte Fehler bei der Verwendung eines lokalen Testservers, daher muss möglicherweise ein Zertifikat vorhanden sein, das nicht selbst signiert ist.auf IFTTT -Trigger reagieren
Wir haben das Rezept umgekehrt zusammengestellt:
In unserem Knotencode haben wir unsere LED so eingerichtet, dass unser Johnny-Five-Modul davon weiß und den Server so eingerichtet hat, dass sie auf diese Postanforderung anhören. Es wird darauf reagieren, indem wir unsere LED ändern.
Innerhalb des vorhandenen Ereignisses des Boards definieren wir unsere LED an den Stiften 9, 10 und 11 innerhalb der Variablen von LED wie SO:
board<span>.on('ready', function() { </span> <span>console.log('Board ready'); </span> btn <span>= new five<span>.Button</span>(7);</span>
Der Code könnte seltsam aussehen, wenn die Stifte von 11 und nicht von oben abzählen. Der Grund dafür ist, dass ich es vorziehen möchte, dass meine Verkabelung rot, grün und dann von oben nach unten auf der Arduino -Karte (z. B. 11, dann 10 und 9) ist.
.Wir setzen seine anfängliche Farbe auf Grün:
btn<span>.on('down', function(value) { </span> <span>console.log('Light toggle pressed.'); </span> request<span>.post({ </span> <span>url: 'http://maker.ifttt.com/trigger/light_switch/with/key/{{yourkeyhere}}' </span> <span>}, function(error<span>, response, body</span>) { </span> <span>console.log('Body response was ', body); </span> <span>console.log('Error was ', error); </span> <span>}); </span> <span>});</span>
Außerhalb des Fertigereignisses des Boards erstellen wir unser Routing für die /LED -Postanforderung mit Express. In der Rückruffunktion für diese Route erhalten wir die von IFTTT gesendeten JSON -Daten in Req.body und finden den Farbschlüssel darin. Wir geben diese Farbe an Johnny-Five's LED.Color () -Funktion, um die Farbe unserer LED zu dem zu ändern, was uns gegeben wurde. Wir protokollieren auch die JSON -Daten in unserer Konsole.
led <span>= new five<span>.Led.RGB</span>([11,10,9]);</span>
Etwas zu beachten - wenn Sie dies auf einen öffentlich zugänglichen Server setzen, der mehr als nur Testerzwecke zur Verfügung steht Anfrage.
Wenn Sie den Knotenserver ausführen und dann nach einer Weile einen Tweet in Ihrem Konto erhalten (es wird nicht sofort sein, da IFTTT diese Informationen manchmal von Twitter aktualisiert scheint), sollte Ihre LED sollte Geh Twitter Blue! In Ihrer Konsole.log sollten Sie so etwas wie Folgendes sehen: Antwort war {Farbe: '#55acee', Text: '@thatpatrickguy woo hoo'}
Wenn Sie dann verschiedene andere Dienste in der gleichen Richtung einrichten, jedoch mit unterschiedlichen Farben, können Sie eine Vielzahl von LED -Farbwechsel haben!
Das Ökosystem von IFTTT und alle seine Kanäle, die den Herstellern jeder Internet -fähigen Technologie zur Verfügung stehen, die HTTP -Anfragen senden und empfangen kann, ist enorm. Während wir in der Lage waren, die Twitter -API in Node.js -Anwendungen seit langem aufzunehmen, bietet dies eine ganze Reihe von Möglichkeiten in einer API, die viel einfacher zu bedienen ist und unglaublich modular ist. Wechseln Sie Twitter für etwas anderes aus und alles sollte immer noch mit nur wenigen Anpassungen funktionieren!
Wenn Sie einige wirklich ordentliche IFTTT -Maker -Kanalerstellung aus dieser Anleitung erstellen, in den Kommentaren eine Notiz hinterlassen oder auf Twitter (@thatpatrickGuy) mit mir in Verbindung setzen, möchte ich einen Blick darauf werfen!
Mit dem Maker Webhooks -Dienst in IFTTT können Sie benutzerdefinierte Webhooks erstellen, die eine Aktion auf einem auslösen können IFTTT -Service. Dieser Service ist besonders nützlich, wenn Sie Ihre eigene Hardware oder Software mit IFTTT verbinden möchten. Sie können eine Webanforderung an eine bestimmte URL senden, die vom Maker Webhooks -Dienst generiert wird, und diese Anfrage löst eine Aktion auf einem IFTTT -Dienst aus. IFTTT? Node.js ist jedoch aufgrund seiner Effizienz und Skalierbarkeit eine beliebte Wahl, die besonders nützlich ist, wenn es um IoT -Geräte geht, die eine große Datenmenge generieren. Andere Sprachen wie Python, Java oder C können ebenfalls verwendet werden, aber die Implementierung kann sich unterscheiden. Die Verbindung zwischen IoT, Node.js und IFTTT hängt weitgehend davon ab, wie Sie es implementieren. Es ist wichtig, sichere Methoden zu verwenden, wenn Sie Daten von Ihren IoT -Geräten an node.js und von node.js an ifttt senden. Dies kann die Verwendung von HTTPS für alle Verbindungen, die Validierung aller eingehenden Daten und das Halten Ihres IFTTT -Schlüssels beinhalten.
Das obige ist der detaillierte Inhalt vonVerbinden Sie das IoT und Node.js mit IFTTT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!