Ich arbeite an einem ähnlichen Projekt, das das Internet verwendet, um mit einem externen Gerät (mobil) zu kommunizieren. Ich lese Daten von Sensoren und leite sie mit Web-Sockets über das Internet. Ich benutze Arduino Yun für dieses Projekt und Spacebrew (für die Kommunikation mit Web-Sockets). Es ist ein sehr interessanter Ansatz, aber in einigen Fällen eine ziemliche Herausforderung. Sie werden wahrscheinlich auf ein asynchrones / synchrones Problem stoßen, das in meinem Fall dazu führte, dass ich einige Python-Skripte auf Yun ausführte, die durch die Verarbeitung von Code ausgelöst wurden. Ich verwende derzeit einen Spacebrew-Server in meinem VPN, sodass ich mein zu Hause gelassenes Yun verbinden und mein iPhone von überall aus verwenden kann, um die Messwerte abzurufen.
Erwähnenswert ist auch, dass Yun mit einer vorinstallierten Temboo-Bibliothek geliefert wird, die ein guter Ausgangspunkt für die Webkommunikation ist. Die Konfiguration ist sehr einfach und schnell. Sie finden auch offizielle Unterlagen sehr praktisch und leicht verständlich. Es ist wirklich ein guter Ausgangspunkt, um mit webähnlichen Anwendungen zu experimentieren, die in Arduino Yun integriert sind.
Spacebrew
http://docs.spacebrew.cc/
Spacebrew ist ein offenes, dynamisch umleitbares Software-Toolkit zum Choreografieren interaktiver Räume. Oder mit anderen Worten, eine einfache Möglichkeit, interaktive Dinge miteinander zu verbinden. Jedes Element, das Sie an das System anschließen, kann Datenfeeds abonnieren und veröffentlichen.
http://github.com/Spacebrew/pySpacebrew
Dieses Repo enthält die Spacebrew-Bibliothek für Python sowie Dokumentation und Beispiel-Apps.
http://github.com/julioterra/yunSpacebrew
Die Spacebrew Yun-Bibliothek enthält zwei Hauptkomponenten - eine Reihe von Python-Skripten, die auf dem Linino ausgeführt werden, und eine Bibliothek, die auf dem Athel-Chip ausgeführt wird. Dort finden Sie Informationen zum Installieren dieser beiden Komponenten, damit Sie über eine Arduino-Skizze eine Verbindung zu Spacebrew herstellen können.
Temboo
Yun hat auch eine Temboo-Bibliothek eingebaut. Dies ist eine großartige Möglichkeit, um mit dem Experimentieren zu beginnen. Sobald Sie das Konzept bewiesen haben, können Sie Ihre Umgebung einschränken und wegziehen, wenn Sie keine Software von Drittanbietern verwenden möchten.
http://www.temboo.com/arduino
Mit der Temboo-Bibliothek können Sie mit Processing auf einfache Weise eine Verbindung zu über 100 webbasierten Ressourcen und Diensten herstellen. Derzeit finden Sie Bibliotheken für Android, Arduino, iOS, Java, Node.js, PHP, Verarbeitung, Python, REST-API, Ruby, Twyla
Node.js
Sie können node.js auch auf dem Yun selbst ausführen. Hier ist ein guter Artikel und einige Pakete, die zur Installation bereit sind:
Was ist die Brückenbibliothek für Arduino Yun?
Sie haben auch nach der Bridge-Bibliothek gefragt. Wie Sie wissen, hat Yun zwei Prozessoren an Bord, einer führt Ihren Verarbeitungscode aus, der andere hat Linux (Linino). Bridge vereinfacht im Grunde die Kommunikation zwischen ihnen, so dass sie miteinander "sprechen" können. Weitere Informationen finden Sie hier:
http://arduino.cc/en/Reference/YunBridgeLibrary
(Entnommen aus der arduino.cc Dokumentation :)
Die Arduino Yún hat zwei Prozessoren an Bord. Einer ist ein ATmega32U4 wie beim Arduino Leonardo. Das andere ist ein Atheros 9331, auf dem Linux und der OpenWRT-WLAN-Stack ausgeführt werden, mit dem die Karte eine Verbindung zu WLAN- und Ethernet-Netzwerken herstellen kann. Es ist möglich, Programme oder benutzerdefinierte Skripte auf dem Linux-System über das Arduino aufzurufen, um eine Verbindung mit verschiedenen Internetdiensten herzustellen.
Die Bridge-Bibliothek vereinfacht die Kommunikation zwischen dem ATmega32U4 und dem AR9331. Es erbt von Stream, und viele der Methoden sollten aus Serial und anderen Derivaten von Stream bekannt sein.
Bridge-Befehle vom 32U4 werden von Python auf dem AR9331 interpretiert. Seine Aufgabe besteht darin, Programme auf der GNU / Linux-Seite auszuführen, wenn sie von Arduino dazu aufgefordert werden, einen gemeinsam genutzten Speicherplatz für den Austausch von Daten wie Sensorablesungen zwischen dem Arduino und dem Internet bereitzustellen und Befehle aus dem Internet zu empfangen und direkt an das Arduino weiterzuleiten.
Bridge ermöglicht die Kommunikation in beide Richtungen und fungiert als Schnittstelle zur Linino-Befehlszeile.
Wo soll man anfangen?
Ich würde mit Temboo beginnen, wenn ich Sie wäre. Es ist eine großartige Lernkurve und ein recht einfacher Schritt, um zu beginnen. Sie werden auch lernen und verstehen, wie das Board funktioniert und wie Sie mit der "Außenwelt" kommunizieren können. Sobald Sie einen Proof of Concept haben, experimentieren Sie mit verschiedenen Bibliotheken und verbessern Sie den Ansatz. Vielleicht finden Sie Spacebrew später praktischer oder entdecken sogar verschiedene Lösungen.
Zunächst müssen Sie klar haben, was Sie tun müssen. Arduino UNO ist nur ein Mikrocontroller mit einer seriellen (über USB) Verbindung. Um Ihr Arduino über das Internet zugänglich zu machen, muss es mit dem Internet verbunden sein oder über etwas verfügen, das wie eine Brücke wirkt. Sie können ein Ethernet-Schild, ein WLAN-Shiled oder eine YUN-Hexe verwenden, die ein Arduino UNO + ein Micro-Linux mit Ethernet und WLAN ist (programmierbar in Phyton, oder der Chip kann den Linux-Sendebefehl an die Bash-Shell mithilfe der speziellen Bridge-Bibliothek befehlen ) Sie können Arduin sogar über USB auf dem PC verbinden und ein Bridge-Programm erstellen. Wenn Ihre Firewall / Ihr Router ein entsperrtes Linux / ähnliches ist, können Sie es verwenden.
Wie viele Optionen, und wir beginnen zu entscheiden, wie wir damit sprechen. Da Sie node.sj verwenden möchten, können Sie Socket oder get / post verwenden. Die Verwendung von Socket ist schneller, leichter und kann eine Pull-Verbindung herstellen. Dies ist eine Voraussetzung. Mit get / post brauchst du nicht einmal js, reine HTML-Form reicht aus.
Nachdem Sie sich für ein System entschieden haben, das Ihnen gefällt (Arduino als http-Server oder einfacher Socket), können Sie den entsprechenden Port auf der Firewall / nat öffnen. ist aber nur der letzte teil
quelle