Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Wie funktioniert es?
- Schritt 2: Was sind die Hauptfunktionen?
- Schritt 3: Materialaufbau
- Schritt 4: Laden Sie den Gateway-Code herunter
- Schritt 5: Lassen Sie uns die Gateway-Konfiguration durchführen
- Schritt 6: Laden Sie das Arduino-Codebeispiel herunter
- Schritt 7: Machen wir die Serverseite
- Schritt 8: Weiter gehen
Video: Serielles UDP / IP-Gateway für Arduino basierend auf ESP8266-Shield - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Ich habe bereits 2016 dieses anweisbare "Wie man Ihr eigenes Wifi-Gateway herstellt, um Ihr Arduino mit dem IP-Netzwerk zu verbinden" veröffentlicht. Da ich einige Codeverbesserungen vorgenommen habe und diese Lösung immer noch verwende.
Trotzdem gibt es jetzt einige ESP8266-Shields, die es ermöglichen, ganz ohne Löten zu arbeiten, solange Sie keine Micro- oder Nano-Boards verwenden.
Diese Anleitung erklärt, wie Sie diese ESP82-Schilde als serielles UDP / IP-Gateway verwenden.
Dies ist Teil einer globalen Hausautomationsinfrastruktur, die Sie hier ansehen können
Weitere Informationen über das Schild mit diesem instructable
Lieferungen
1 Arduino Mega (am besten mindestens 1 Mega für die Entwicklung und 1 Uno für die Laufphase)
1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur
1 FTDI 3,3 V
2 Steckbrettdrähte
Schritt 1: Wie funktioniert es?
Das Gateway basiert auf einem ESP8266-Modul
Dieses Modul wird von einer Seite mit der seriellen Verbindung von der anderen Seite zum IP-Netzwerk mit dem Wifi verbunden.
Es fungiert als Blackbox. Von der seriellen Verbindung kommende Datenpakete werden an einen IP/Udp-Port gesendet und umgekehrt.
Sie müssen nur beim ersten Einschalten des Gateways Ihre eigene Konfiguration (IP, WIFI …) einstellen.
Es kann entweder rohe ASCII- und Binärdaten übertragen (kein HTTP, JSON…)
Es wurde entwickelt, um Objekte mit selbsterstellter Serversoftware zu verbinden, die schnelle und häufige Übertragungen kurzer Datenpakete benötigen.
Schritt 2: Was sind die Hauptfunktionen?
Meistens ist es eine Blackbox, die serielle Daten auf beide Arten in UDP-Pakete umwandelt.
Das Gateway kann aber auch eigenständig agieren, indem es interne Informationen an den Server sendet und einige Befehle vom Server empfängt.
Arduino kann Nachrichten an / von einem über das Internet verbundenen Server senden und empfangen, indem nur eine serielle Verbindung gedruckt / gelesen wird. Der Arduino-Entwickler muss sich nicht um das IP-Protokoll kümmern.
Darüber hinaus bietet es einen GPIO, der von Arduino verwendet werden kann, um zu überprüfen, ob das Gateway korrekt mit dem WIFI verbunden ist und das Gateway im Fehlerfall automatisch zwischen 2 verschiedenen SSIDs wechseln kann
Das Gateway verfügt über 2 verschiedene Betriebsmodi, die durch Einstellen eines GPIO ausgewählt werden
Wenn GPIO auf Masse gesetzt wird, geht das Gateway in den Konfigurationsmodus.
GPIO frei setzen und das Gateway wechselt in den Gateway-Betriebsmodus.
Darüber hinaus kann die Gateway UDP/IP-Konfiguration aus der Ferne geändert werden
Schritt 3: Materialaufbau
Es werden nur sehr wenige Dinge benötigt
1 ESP8266 Shield - Ich fand dieses UNO R3 ESP8266 Serial WiFi Shield Extend Board-Modul für weniger als 9€
1 UNO, das ist das Ziel des Arduino-Ziels
1 Mega, das ist das Arduino-Entwicklungstool (Sie können darauf verzichten, aber es ist ziemlich schwierig zu debuggen)
1 FTDI 3.3/5v für die Entwicklung
Einige Drähte
Schritt 4: Laden Sie den Gateway-Code herunter
Während dieses Schritts wird das Arduino nur zur Stromversorgung (mit USB oder einer anderen Stromquelle) auf dem ESP8266-Schild verwendet
Verbinden Sie den ESP8266 GPIO4 mit Masse (um in den Konfigurationsmodus zu gelangen)
Achten Sie darauf, den FTDI entsprechend der Abschirmung auf 3,3 V einzustellen
Verbinden Sie den FTDI mit der Abschirmung (RX zu TX)
Stellen Sie den Schildschalter auf 1:off 2:off 3:on 4:on
Verbinden Sie die USB-Seite des FTDI mit Ihrem Computer
Setzen Sie das Schild mit dem ESP-RST-Taster zurück
Laden Sie den Gateway-Code dort auf GitHub herunter
Öffnen Sie die Arduino-IDE
- Wählen Sie den FTDI-Monitoranschluss
- Öffnen Sie den IDE Serial Monitor - Stellen Sie die Geschwindigkeit auf 38400. ein
- Wählen Sie die generische ES8266-Modulplatine
- Aktualisieren Sie die Shield-Firmware mit dem Gateway-Code
Schalter 3:aus 4:aus
Öffnen Sie den IDE Serial Monitor
Setzen Sie das Schild mit dem ESP-RST-Taster zurück
Auf dem Monitor müssen Meldungen angezeigt werden, die mit "EEPROM-Initialisierung" "Initialisierung abgeschlossen"… beginnen.
Es ist Zeit, die Konfiguration vorzunehmen
Schritt 5: Lassen Sie uns die Gateway-Konfiguration durchführen
Beim erstmaligen Herunterladen des Gateway-Codes wird das ESP8266 Eeprom mit den Standardwerten initialisiert. Sie werden diese Art von Meldungen sehen "set parameter: x size: yy"
Sie finden diese Werte in der Codedefinition von paramValue. Natürlich können Sie diese Standardwerte vor dem Herunterladen des Codes ändern, aber Sie können Ihre Konfiguration auch später per Befehl festlegen. Dies ist besser, wenn Sie planen, mehrere Gateways zu verwenden und nur eine Codeversion zu behalten.
Verwenden Sie die serielle Schnittstelle des Monitors, um den Befehl zu senden (auf NL und CR eingestellt).
Da SSID derzeit nicht definiert ist, warten Sie auf "Konnte keine Verbindung zu Ihrer zweitenssid retry:5 herstellen"
Dann startet automatisch ein Scan des WLANs
Es ist an der Zeit, Ihre SSIDs mit den folgenden Befehlen einzustellen:
- SSID1=Ihre Wahl1
- PSW1=yourpsw1
- SSID2=Ihre Wahl2
- PSW2=yourpsw2
- SSID=1 (um auszuwählen, mit welcher SSID begonnen werden soll)
- WLAN neu starten
Nach einigen Sekunden können Sie die Verbindung mit dem Befehl "ShowWifi" überprüfen. Sie müssen die IP-Adresse sehen, die das Gateway von Ihrem DNS-Server erhalten hat. Wenn dies der Fall ist, ist es an der Zeit, weiter zu gehen
Es ist an der Zeit, Ihre IP-Serveradresse zu definieren, indem Sie die 4 Unteradressen eingeben (Server, der den Java-Testcode ausführt). Zum Beispiel:
- "IP1=192"
- "IP2=168"
- "IP3=1"
- "IP4=10"
Wenn Sie einen leeren Befehl senden, sehen Sie alle unterstützten Befehle, die Sie später verwenden können, um Ihre Anforderungen zu erfüllen. Alle Parameterwerte werden im Eeprom gespeichert und benötigen einen Neustart, um berücksichtigt zu werden.
Entfernen Sie das Konfigurationskabel
Der Schild läuft jetzt als Gateway
Schritt 6: Laden Sie das Arduino-Codebeispiel herunter
Laden Sie zuerst den Arduino-Hauptcode dort auf GitHub herunter
Laden Sie dann den Arduino-Code, diese Befehlsdefinition und diesen seriellen Link-Code in Ihre Bibliotheken herunter
Öffnen Sie dann den Hauptcode mit einer neuen Arduino IDE
Stellen Sie die Schildschalter 1 und 2 aus, um die serielle Arduino-Verbindung 0 für die USB-Verbindung freizugeben
Setzen Sie den Schild zurück
Verbinden Sie die FTDI-Kabel mit dem Mega Serial 2 (TX FTDI zu RX Mega usw.)
Starten Sie eine neue Arduino IDE (oder ein TTY-Tool), schließen Sie den FTDI-USB an und beginnen Sie mit der Überwachung der seriellen Verbindung
Laden Sie den Arduino-Code im Mega hoch
Stellen Sie die Schildschalter 1 und 2 ein, um die serielle Arduino-Verbindung 0. zu verbinden
Setzen Sie den Schild zurück
Sie müssen diese Meldung "start usb print" auf dem Monitor sehen
Schritt 7: Machen wir die Serverseite
Das Serverbeispiel ist ein Java-Programm, das Sie hier auf GitHub herunterladen können
Führen Sie es einfach aus und sehen Sie sich die Java-Konsole an und sehen Sie sich den FTDI-Monitor an
Sie sehen den Datenaustausch zwischen Server und Arduino
Schritt 8: Weiter gehen
Dieses Arduino-Codebeispiel basiert auf einem Framework-Teil meiner Heimautomatisierungsinfrastruktur.
Wenn Sie an dieser Infrastruktur interessiert sind, lassen Sie es mich wissen. Ich werde Quellen veröffentlichen.
Wenn Sie nur das Gateway verwenden möchten, können Sie den Arduino-Code vereinfachen.
Nachdem Sie Ihren Code auf einem Arduino Mega entwickelt und getestet haben, können Sie ihn einfach durch einen Uno ersetzen!
Darüber hinaus können Sie ein Kabel zwischen Arduino GPIO 7 und ESP8266 GPIO 5 anschließen, wenn Ihr Arduino die Wifi-Verbindung überprüfen soll
Empfohlen:
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4: 15 Schritte (mit Bildern)
Ein kostengünstiger IoT-Luftqualitätsmonitor auf Basis von RaspberryPi 4: Santiago, Chile, hat während eines winterlichen Umweltnotstands das Privileg, in einem der schönsten Länder der Welt zu leben, aber leider sind es nicht nur Rosen. Chile leidet während der Wintersaison sehr unter Luftverschmutzung, Mai
So kopieren Sie Spielstände auf einfache Weise auf eine Microsoft- oder Drittanbieter-MU.: 9 Schritte
So kopieren Sie Spielstände einfach auf eine Microsoft- oder Drittanbieter-MU.: Original-Tutorial HIER CD, die es einfach macht, genau das zu tun. Dies ist kein vollständiges Softmod-Tutorial, dies
Wie zeichne ich einen Computerbildschirm auf einem Mac auf?: 7 Schritte
Wie zeichne ich den Computerbildschirm auf dem Mac auf?: Wie zeichne ich den Bildschirm auf dem Mac auf? Wollten Sie schon immer etwas aufzeichnen, was auf Ihrem Computer oder Telefon passiert? Vielleicht sehen Sie sich ein Video an und möchten einen Clip aufnehmen; Vielleicht versuchst du jemandem zu zeigen, wie man etwas macht, und ein Video würde es schaffen
Stativ-Kopf auf Einbeinstativ-Kopf Adapter auf 43 Cent. Wörtlich.: 6 Schritte
Stativ-Kopf auf Einbeinstativ-Kopf Adapter auf 43 Cent. Wörtlich.: Kurze Version meiner Geschichte: Ich habe eine Kamera gekauft, sie kam mit einem Bündel an Zubehör, darunter ein Samsonite 1100 Stativ. Ich habe ein Einbeinstativ. Ich möchte sehr bald Fotos mit einem Schwenkkopf auf dem Einbeinstativ machen und hatte keine 40 $, um ein L
Laptopständer (basierend auf IKEA Halterungen): 5 Schritte
Laptopständer (basierend auf IKEA Brackets): Die Erstellung dieses Ständers dauerte weniger als 20 Minuten. Ich habe zwei Halterungen VALTER aus IKEA Stück Holz, 2 Schrauben und altes Mauspad verwendet