Inhaltsverzeichnis:

So erstellen Sie Ihr eigenes WIFI-Gateway, um Ihr Arduino mit dem IP-Netzwerk zu verbinden? - Gunook
So erstellen Sie Ihr eigenes WIFI-Gateway, um Ihr Arduino mit dem IP-Netzwerk zu verbinden? - Gunook

Video: So erstellen Sie Ihr eigenes WIFI-Gateway, um Ihr Arduino mit dem IP-Netzwerk zu verbinden? - Gunook

Video: So erstellen Sie Ihr eigenes WIFI-Gateway, um Ihr Arduino mit dem IP-Netzwerk zu verbinden? - Gunook
Video: Arduino project ESP8266 Smartphone steuern/schalten DIY SMART HOME WIFI Webserver Tutorial/Anleitung 2024, Juni
Anonim
Wie erstellen Sie Ihr eigenes WIFI-Gateway, um Ihr Arduino mit dem IP-Netzwerk zu verbinden?
Wie erstellen Sie Ihr eigenes WIFI-Gateway, um Ihr Arduino mit dem IP-Netzwerk zu verbinden?

Wie so viele Leute denken Sie, dass Arduino eine sehr gute Lösung für die Heimautomatisierung und Robotik ist

Aber in Bezug auf die Kommunikation kommen Arduinos nur mit seriellen Verbindungen.

Ich arbeite an einem Roboter, der permanent mit einem Server verbunden sein muss, der Code für künstliche Intelligenz ausführt. Ich habe versucht, ein RF-Netzwerk zu verwenden, wie ich es für Domotik gewohnt bin, aber es ist nicht effizient genug. Da sich der Roboter bewegt, kann ich das Ethernet Arduino Shield nicht verwenden. Arduino Wifi Shield ist teuer und scheint mir ein altes Design zu sein.

Ich brauchte etwas, das auf sehr einfache und effiziente Weise Daten mit einem Server austauschen kann.

Aus diesem Grund habe ich mich entschieden, ein Gateway auf Basis des sehr günstigen und energieeffizienten ESP8266-Mikrocontrollers zu entwickeln

Hier erfahren Sie, wie Sie das elektronische Bauteil bauen und die Software herunterladen.

Ich habe dieses Gateway für die Hausautomation und für Robotic verwendet.

Dies ist Teil einer globalen Hausautomationsinfrastruktur, die Sie hier ansehen können

Ich habe ein anderes anweisbares gemacht, das ein ESP8266-Schild verwendet und Löten vermeidet

Lieferungen

Ich schrieb ein anderes instructable zu diesem Thema

Schritt 1: Wie funktioniert es?

Wie funktioniert es ?
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.

Es ist am einfachsten mit Arduino Mega zu verwenden, die mehr als einen UART haben (Arduino Mega zum Beispiel), aber auch mit einem UNO laufen können.

Schritt 2: Was sind die Hauptfunktionen?

Meistens handelt es sich um eine Blackbox, die serielle Daten auf beide Arten in UDP-Pakete umwandelt und sendet.

Es hat 3 LEDs, die den Status und Verkehr des Gateways anzeigen.

Es bietet einen GPIO, der von Arduino verwendet werden kann, um darauf zu warten, dass das Gateway mit WIFI und IP verbunden ist.

Es läuft in 3 verschiedenen Modi, die mit Schaltern eingestellt werden:

  • Gateway-Modus, das ist der normale Modus
  • Konfigurationsmodus zum Einstellen der Parameter
  • Debug-Modus für den Debug-Modus

Die meisten Parameter können an Ihre Bedürfnisse angepasst werden.

Schritt 3: Materialaufbau

Materialaufbau
Materialaufbau

Auf Ihrem Arduino benötigen Sie

  • 1 x ESP8266-Modul - Ich wähle das MOD-WIFI-ESP8266-DEV von Olimex, das um die 5 Euro kostet und recht einfach zu bedienen ist.
  • 1 x 5V Stromquelle
  • 1 x 3,3 V Leistungsregler - ich verwende LM1086
  • 1 x 100 Mikrofarad Kondensator
  • 1 x ULN2803 APG-Modul (kann durch 3 x Transistoren ersetzt werden)
  • 8 x Widerstände (3 x 1K, 1 x 2K, 1 x 2,7k, 1x 3,3K, 1x 27K, 1x 33k)
  • 3 x LED (rot, grün, blau)
  • 1 x Steckbrett PCB
  • einige Drähte und Anschlüsse

Nur während der Bauschritte benötigen Sie

  • 1 x FTDI 3.3v für die Konfiguration
  • Lötkolben und Zinn

Vor dem Löten ist es wichtig, alle Komponenten auf dem Steckbrett einzurichten und zu überprüfen, ob alles in Ordnung ist.

Schritt 4: Beginnen wir mit der Elektronik auf dem Steckbrett

Beginnen wir mit der Elektronik auf dem Steckbrett!
Beginnen wir mit der Elektronik auf dem Steckbrett!

Das elektronische Layout liegt im Fritzing-Format vor

Sie können es hier herunterladen Schritt 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Machen Sie einfach das Schema, indem Sie auf die Spannung achten.

Denken Sie daran, dass ESP8266 keine Spannungen über 3,3 V unterstützt. Der FTDI muss auf 3,3 V eingestellt werden.

Schritt 5: Gehen wir zur Software

Kommen wir zur Software!
Kommen wir zur Software!

Beginnen wir mit der Gateway-Seite

Ich habe den Code mit Arduino IDE geschrieben. Sie benötigen also ESP8266, um von der IDE als Board bekannt zu sein. Wählen Sie das entsprechende Board mit dem Menü Extras / Boards aus.

Wenn Sie keinen ESP266 in der Liste sehen, müssen Sie möglicherweise das ESP8266 Arduino Addon installieren (Sie finden hier die Vorgehensweise).

Der gesamte benötigte Code ist auf GitHub verfügbar. Es ist Zeit, es herunterzuladen!

Der Hauptcode des Gateways ist dort:

Zusätzlich zu Standard-Arduino und ESP8266 enthält der Hauptcode, der benötigt wird, diese 2 enthält: LookFoString, der verwendet wird, um Strings zu manipulieren, und ist dort:

ManageParamEeprom, das zum Lesen und Speichern von Parametern im Eeprom verwendet wird und ist dort:

Sobald Sie den gesamten Code erhalten haben, ist es an der Zeit, ihn in den ESP8266 hochzuladen. Verbinden Sie zuerst den FTDI mit einem USB-Anschluss Ihres Computers.

Ich schlage vor, dass Sie die Verbindung überprüfen, bevor Sie versuchen, hochzuladen.

  • Stellen Sie den seriellen Arduino-Monitor auf den neuen USB-Port ein.
  • Stellen Sie die Geschwindigkeit auf 115200 beide cr nl (Standardgeschwindigkeit für Olimex)
  • Schalten Sie das Steckbrett ein (ESP8266 wird mit Software geliefert, die mit AT-Befehlen umgeht)
  • Senden Sie "AT" mit dem seriellen Tool.
  • Sie müssen im Gegenzug "OK" bekommen.

Wenn nicht, überprüfen Sie Ihre Verbindung und sehen Sie sich Ihre ESP8266-Spezifikationen an.

Wenn Sie "OK" erhalten haben, können Sie den Code hochladen

  • Schalten Sie das Steckbrett aus, warten Sie ein paar Sekunden,
  • Drücken Sie auf den schwarzen Mikroschalter des ESP8266. Es ist normal, dass etwas Müll auf dem seriellen Monitor angezeigt wird.
  • Drücken Sie auf die Upload-IDE wie bei einem Arduino.
  • Nachdem der Upload abgeschlossen ist, stellen Sie die serielle Geschwindigkeit auf 38400 ein.

Sie sehen etwas wie auf dem Bild.

Herzlichen Glückwunsch, Sie haben den Code erfolgreich hochgeladen!

Schritt 6: Lassen Sie uns die Konfiguration durchführen

Lassen Sie uns die Konfiguration durchführen!
Lassen Sie uns die Konfiguration durchführen!

Der configGPIO muss auf 1 gesetzt werden, um in den Konfigurationsmodus zu gelangen

Scannen Sie zuerst das WIFI, indem Sie den Befehl eingeben: ScanWifi. Sie sehen eine Liste des erkannten Netzwerks.

  • Legen Sie dann Ihre SSID fest, indem Sie "SSID1=yournetwork" eingeben.
  • Legen Sie dann Ihr Passwort fest, indem Sie "PSW1=yourpassword" eingeben.
  • Geben Sie dann "SSID=1" ein, um das aktuelle Netzwerk zu definieren
  • Geben Sie "Neustart" ein, um das Gateway mit Ihrem WIFI zu verbinden.
  • Sie können überprüfen, ob Sie eine IP haben, indem Sie "ShowWifi" eingeben.
  • Die blaue LED leuchtet und die rote LED blinkt.

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"

Der letzte erforderliche Schritt besteht darin, den Listenport des UDP-Servers durch Eingabe von "listenPort=xxxx" festzulegen.

Geben Sie "ShowEeprom" ein, um zu überprüfen, was Sie gerade im Eeprom gespeichert haben

Stecken Sie nun den GPIO2 auf Masse, um den Konfigurationsmodus zu verlassen

Ihr Gateway ist betriebsbereit

Es gibt einige andere Befehle, die Sie in der Dokumentation finden können.

Schritt 7: Lassen Sie uns die Arduino-Seite machen

Lassen Sie uns die Arduino-Seite machen!
Lassen Sie uns die Arduino-Seite machen!
Lassen Sie uns die Arduino-Seite machen!
Lassen Sie uns die Arduino-Seite machen!

Verbinden Sie zuerst den Arduino

Wenn Sie einen Mega haben, ist es am einfachsten, damit anzufangen. Trotzdem können Sie ein Uno verwenden.

Um Ihre Arbeit zu überprüfen, verwenden Sie am besten das Beispiel.

Sie können es dort herunterladen:

Es enthält SerialNetwork-Code, der hier ist:

Laden Sie einfach den Code in Ihrem Arduino hoch.

Die grüne LED blinkt jedes Mal, wenn Arduino Daten sendet.

Schritt 8: Machen wir die Serverseite

Machen wir die Server-Seite!
Machen wir die Server-Seite!
Machen wir die Server-Seite!
Machen wir die Server-Seite!

Das Server-Beispiel ist ein Java-Programm, das Sie hier herunterladen können:

Lass es einfach laufen

Sehen Sie sich die Java-Konsole an.

Schauen Sie auf den Arduino-Monitor.

Arduino sendet 2 verschiedene Pakete.

  • Der erste enthält den Status der digitalen Pins 2 bis 6.
  • Der zweite enthält 2 Zufallswerte, den Spannungspegel von A0 in mV und die inkrementelle Zählung.

Das Java-Programm

  • die empfangenen Daten im Hexadezimalformat drucken
  • Antworten Sie auf die erste Art von Daten mit einem zufälligen Ein / Aus-Wert, um die Arduino-LED ein- / auszuschalten
  • Antwort auf die zweite Art von Daten mit der empfangenen Zählung und einem Zufallswert.

Schritt 9: Es ist Zeit, etwas zu löten

Es ist Zeit, etwas zu löten!
Es ist Zeit, etwas zu löten!
Es ist Zeit, etwas zu löten!
Es ist Zeit, etwas zu löten!
Es ist Zeit, etwas zu löten!
Es ist Zeit, etwas zu löten!

Es funktioniert auf dem Steckbrett!

Es ist an der Zeit, es robuster zu machen, indem Teile auf einer Leiterplatte gelötet werden

Zusätzlich zu dem, was Sie mit dem Steckbrett gemacht haben, müssen Sie 3 Anschlüsse hinzufügen.

  • C1 1 x Pin eins, der für den Eintritt in den Netzwerk-Trace-Modus verwendet wird.
  • C2 3 x Pins, einer, der zum Umschalten zwischen Betriebs- und Konfigurationsmodus verwendet wird.
  • C3 6 x Pins, einer, der verwendet wird, um das Gateway entweder mit einem Arduino oder einem FTDI zu verbinden.

C1, das mit GPIO2 verbunden ist, muss manuell geerdet werden, wenn Sie die Netzwerkspuren aktivieren möchten.

C2 verbunden mit GPIO 4 kann in 2 verschiedene Positionen eingestellt werden. Einer, der für den normalen Betriebsmodus auf Masse gesetzt ist, und einer, der auf 3,3 V eingestellt ist, um in den Konfigurationsmodus zu gelangen.

Setzen Sie alle Komponenten auf der Platine gemäß dem Diagramm ein und beginnen Sie anschließend mit dem Löten, um das Endprodukt zu erhalten!

Schritt 10: Machen wir den letzten Test

Image
Image

Starten Sie das Java-Testprogramm.

Verbinden Sie den Arduino.

Schalten Sie das Gateway ein.

Und schauen Sie sich die Java-Konsole, den Arduino-Monitor, die Arduino-LED und die Gateway-LEDs an.

Schritt 11: Sie können dieses Design an Ihre eigenen Anforderungen anpassen

Bezüglich der Hardware

  • Wenn Sie sich für einen anderen ESP8266 entscheiden, müssen Sie sich an die Spezifikationen anpassen.
  • Wenn Sie einen anderen 3,3-V-Regler wählen, muss dieser über 500 mA liefern und Sie müssen den Kondensator anpassen.
  • Sie können die LED-Widerstände ändern, um die Helligkeit anzupassen.
  • Sie können alle LEDs unterdrücken, aber ich empfehle, zumindest das Rot an zu lassen.
  • Sie können den ULN2803 durch 3 Transistoren ersetzen (oder weniger, wenn Sie die 3 LEDs nicht behalten).
  • Ich habe es getestet, aber dort muss es mit 3,3-V-Arduino-Boards funktionieren. Verbinden Sie einfach Tx Rx mit dem 3,3-V-Anschluss.

Zur Konfiguration

  • Sie können 2 verschiedene SSID und Switch speichern
  • Sie können den verwendeten GPIO ändern

Bezüglich der Software

Empfohlen: