Ich arbeite am Bau einer solarbetriebenen Wetterstation auf Arduino-Basis. Die Wetterstation besteht aus einem Temperatursensor und einem Fotowiderstand, und ich plane, in Zukunft ein Anemometer hinzuzufügen. Ich möchte die Wetterstation mit meinem drahtlosen Netzwerk verbinden, damit ich die Sensordaten von meinem Computer abrufen kann, ohne Kabel verlegen zu müssen (ich wohne in einem Mietobjekt).
Was sind die verschiedenen Optionen für die Verbindung des Arduino mit WiFi? Ich habe mir Ethernet-Shields, WiFi-Shields und etwas namens Xbee angesehen, aber ich verstehe nicht, wofür die beiden gedacht sind.
Ich habe auch einen drahtlosen Heimrouter, den ich verwenden könnte. Ist es möglich, meinen Arduino Uno über das Ethernet oder den USB-Port des Routers mit dem Router zu verbinden und dann Daten von meinem Heimnetzwerk zu empfangen und Befehle an den Arduino zu senden? Wenn ja, wie würde dies erreicht werden?
Ich habe derzeit einen nackten Arduino Uno.
quelle
Antworten:
Sie haben einige Möglichkeiten, Ihren Arduino mit dem Netzwerk / Internet zu verbinden.
Ethernet
So etwas wie das Arduino Ethernet Shield ermöglicht es Ihnen, ein Ethernet-Kabel von der Wand oder dem Router in Ihr Arduino einzustecken. Die Hauptbeschränkung ist natürlich, dass Ihr Gerät jetzt über das Kabel angeschlossen ist. Für den Außenbereich würde ich das nicht tun.
W-lan
Mit dem Arduino WiFi Shield können Sie eine Verbindung zu Ihrem Heim-WiFi-Netzwerk herstellen. Dies ist genau wie beim Ethernet, nur dass es jetzt drahtlos ist.
Der ESP8266 ist eine billigere Alternative, die mit der Standardfirmware die gleiche Funktionalität wie der WiFi-Schutz hat. Achten Sie darauf, dass Sie es mit 3,3 V und nicht mit 5 V wie den Rest des Arduino versorgen. Es werden auch 3,3-V-Logikpegel verwendet. Verbinden Sie daher den TX-Pin des Arduino nicht direkt mit dem RX-Pin des ESP. Verwenden Sie einen Spannungsteiler.
RF
Wenn Sie viele Sensoren oder andere Geräte haben, die miteinander kommunizieren müssen, ist in der Regel ein HF-Modul die beste Option. Sie haben hier viele Möglichkeiten, darunter auch XBee. Im Sparkfun XBee Buying Guide finden Sie alle verfügbaren Optionen. Und das ist nur XBee. Es gibt viele andere drahtlose Optionen zu allen möglichen Preisen.
Die Sache mit RF ist, dass keiner von diesen eine Verbindung zum Internet herstellen wird. Sie müssen alle Ihre Geräte miteinander oder mit einer Basisstation kommunizieren, die dann entweder über ein WLAN- oder ein Ethernet-Modul mit dem Netzwerk verbunden wird.
Wireless Router Serial
Je nachdem, welche Art von WLAN-Router Sie verwenden, kann der Arduino direkt mit ihm kommunizieren und dies als Verbindung zu einem Netzwerk verwenden.
quelle
Heirate OpenWrt und deinen Arduino
Besorgen Sie sich einen kleinen OpenWrt-fähigen Router wie "TP-Link TL-WR703N", flashen Sie ihn mit der aktuellen stabilen Version von OpenWrt und verbinden Sie Ihren Arduino mit dem USB-Port des Routers.
Diese Lösung ist die Hälfte oder weniger der Kosten für WiFi-Abschirmungen und hat weitaus mehr Leistung.
... und billiger als ein Jahr.
Der mit Arduino verbundene Smart Home Automation-Webserver auf dem OpenWRT-Router WR703N im Vergleich zu Raspberry Pi und Ubuntu ist möglicherweise ein Ausgangspunkt, um dies zu lesen, und Ihre Lieblingssuchmaschine wird noch viele weitere Links zum Heiraten von WR703N und Arduinos finden ...
(!) Siehe auch https://arduino.stackexchange.com/a/1754/653 ....
quelle
ESP8266 ist ein günstiges 5-Dollar-WLAN-Modul mit UART- und SPI-Konnektivität. Dies kann nahtlos in Arduino integriert werden, entweder über die Standardfirmware mithilfe von AT-Befehlen oder durch Schreiben einer benutzerdefinierten Firmware mithilfe des bereitgestellten SDK und der verfügbaren GIPO. Weitere Informationen finden Sie unter http://www.esp8266.com/
quelle
Ich arbeite jetzt seit ein paar Monaten mit xbee am Arduino und Himbeer-Pi. Obwohl es Probleme und Macken hat, ist es ein großartiges Werkzeug in der Kommunikationskette. Es ist nicht perfekt, aber angesichts der Netzseite reicht es für mich weiter als mein WLAN und kann sogar zuverlässiger sein (mein Himbeer-Pi mit WLAN fällt gelegentlich aus, aber das verbundene xbee funktioniert weiterhin im Hintergrund.
Speziell in meinem Fall ermöglicht es eine serielle Verbindung zwischen meinen Geräten (bestehend aus mehreren Arduinos, einem Himbeer-Pi (Koordinator) und meinem Mac (hauptsächlich zum Überwachen, aber auch gelegentlich zum Einspeisen serieller Daten). In diesem Fall ist es perfekt. Es erlaubt keinen Internetzugang oder Zugriff über das xbee-Framework hinaus, aber das passt perfekt zu mir, da die Implementierung so einfach wie Serial.print und Serial.read ist und kein Ethernet-Overhead entsteht.
quelle
Ich verwende Spark Core , eine sehr einfach zu bedienende Arduino-Programmierplattform. Diese Plattform basiert auf dem Grundsatz, dass WiFi einfach zu bedienen und kostengünstig sein sollte. Kann den Spark Core sogar von überall und jederzeit programmieren.
quelle
Sie könnten ein Arduino Yun ausprobieren, es ist wie ein Uno, aber es hat ein WiFi direkt auf der Platine.
In der "Anleitung zum Arduino Yún" mit dem Titel "Konfigurieren des integrierten WLAN" wird beschrieben, wie Sie das WLAN konfigurieren.
quelle
Was Sie wollen, ist ziemlich einfach zu tun, und der Code existiert bereits. Aber so wie ich es mir vorstelle, werden Sie den Sensor Arduino nicht mit Ihrem WLAN verbinden. Stattdessen verwenden Sie ein anderes Arduino als Gateway:
Sensor Arduino: Befindet sich außerhalb, verbunden mit Temperatursensor, Windgeschwindigkeit, Regenmesser?
Gateway Arduino: Befindet sich im Inneren mit Wiznet 5001-Ethernet-Abschirmung
Der Sensor Arduino und das Gateway Arduino kommunizieren über einen SEHR benutzerfreundlichen drahtlosen Transceiver, nRF24L01 +, miteinander. Die Funkmodule kosten jeweils 3 US-Dollar, und die Bibliothek ist sehr ausgereift. Über diese Bibliothek können alle Sensordaten einfach an das Gateway übertragen werden.
Das Gateway Arduino mit dem Ethernet fungiert als Webserver und ermöglicht jedem Computer in Ihrem lokalen Netzwerk, eine Seite zu öffnen und die aktuellen Bedingungen anzuzeigen. Suchen Sie auf dieser Seite nach dem Arduino-Code: http://arduino.cc/en/Tutorial/WebServer
Sie möchten auch historische Temperatur- / Windgeschwindigkeitsinformationen speichern, oder? Das ist der beste Teil! Das Gateway Arduino kann Daten an einen Dienst wie Xively senden, einen kostenlosen webbasierten Datenerfassungsdienst, mit dem Sie Ihre Daten auf raffinierte Weise visualisieren / grafisch darstellen können. Bei der Verwendung des Wiznet zusammen mit dem nRF24L01-Modul gibt es ein kleines Problem. Das Wireless-Modul und der Ethernet-Shield kommunizieren über denselben Bus. In diesem Blog erfahren Sie, wie Sie beide gleichzeitig verwenden können:
http://www.heald.ca/content/arduino-ethernet-nrf24l01-and-pachubecosmxively
Mit Xively können Sie diese Daten auch öffentlich oder privat machen, sodass Sie Ihre Wetterstationsdaten in die Community einbringen können.
Einige andere Anmerkungen: Ich mag nRF24L01 + Module, weil sie spottbillig sind. Xbee-Module kosten mehr als die Arduinos selbst. Sobald Sie ein Gateway eingerichtet haben, können Sie im ganzen Haus weitere nRF24L01 + -Module hinzufügen. Das gleiche Kostenproblem besteht mit WiFi-Schild - teuer.
quelle
Wenn Sie eine günstigere Alternative zum Hinzufügen von WiFi-Funktionen zu Arduino suchen, schauen Sie sich ESP WiFi Shield an .
Es funktioniert gut mit WiFiEsp-Bibliothek . Das Programmiermodell ist genau das gleiche wie bei Arduino WiFi Shield
quelle
Überprüfen Sie das WLAN-Modul ESP8266. Es ist ein billiges Modul und kann mit jedem Mikrocontroller über AT-Befehle gesteuert werden. Außerdem ist es Soc, sodass Sie es als eigenständiges Modul verwenden können.
quelle
Die Verwendung des AT-Befehlssatzes ESP8266 ist schwierig und fehleranfällig. Schlagen Sie vor, den ESP8266-01 als UART-WiFi-Bridge neu zu installieren, wie hier beschrieben. ESP8266 Wifi Add on für Arduino Made Simple
Beachten Sie, dass Sie mit dem Setup auch Ihre WLAN-Einstellungen neu konfigurieren können, ohne den ESP8266-01 neu programmieren zu müssen
quelle
Die Verwendung des ESP8266-Schilds ist fehleranfällig, erfordert ein Update, das geflasht werden muss, erfordert etwas Löten und ist für eine Produktionsumgebung nicht geeignet. Außerdem gibt es Probleme mit der Stromversorgung, da Sie eine separate 3,3-V-Stromversorgung benötigen . Es ist 2016 (!) Und es gibt eine Reihe weiterer Optionen zur Verfügung.
"Das UNO WiFi Board ist das Arduino UNO mit integriertem WiFi." http://www.arduino.org/products/boards/arduino-uno-wifi
und
"Das Star Otto ist das erste Arduino-Board mit dem STM32F469-Prozessor mit WiFi." http://www.arduino.org/products/boards/arduino-star-otto (Ab Oktober ist "Coming Soon" noch nicht verfügbar).
Bitte beachten Sie, dass diese beiden Boards von der Organisation OTHER Arduino stammen.
quelle
Nach mehreren Versuchen und Fehlern in meinem IoT-Projekt würde ich empfehlen, an ESP32 über ESP8266 (und auch Arduino Uno & Nano) zu arbeiten, es sei denn, Sie kennen den Umfang Ihres Projekts sehr gut.
Vorteile von ESP32 gegenüber ESP8266:
Ich arbeite an einem IoT-Projekt und versuche, das Gerät mithilfe eines Zertifikats bei GCP zu authentifizieren. Das Stammzertifikat von GCP ist bereits ca. 120 KB groß und passt daher nicht in ESP8266. Es gibt Alternativen, aber das erschwert die Sache.
Nun, irgendwann in Ihrem IoT-Projekt möchten Sie vielleicht Bluetooth, um Ihr Gerät mit Ihrem Telefon zu verbinden ...
Mit ESP8266 können Sie sicher eine Kamera verwenden, aber das erfordert mehr Kodierung und Verkabelung und möglicherweise eine schlechtere Leistung.
Und schließlich habe ich versucht, einen WLAN-Chip mit Arduino Uno & Nano zu verbinden, aber ich habe einige Fehler und Probleme mit den AT-Befehlen festgestellt. Somit bin ich jetzt ganz zufrieden mit ESP32, da alles integriert ist.
quelle