RobotDyn handelt mit Doppelschlag: Mega + ESP8266

Published on March 21, 2017

RobotDyn handelt mit Doppelschlag: Mega + ESP8266

    RobotDyn Mega + ESP8266
    Was macht der Entwickler in seltenen Freizeitstunden? Das ist richtig, wenn man sich die Preise der Eisengeschäfte ansieht. Ich hatte eine freie Minute und beschloss, durch die Seiten der populären Online-Shops zu blättern - langweilig, nichts Interessantes, alles, was wir bereits gesehen haben ... und dann fiel mein Blick plötzlich auf ein anderes Mega. Bah! Ja, dies ist kein einfaches Mega, aber in Kombination mit Ihrem geliebten ESP8266 und sogar sorgfältig mit Schaltern für den gemeinsamen Betrieb von zwei Controllern ausgestattet - verkabelt (unter Verwendung von Ethernet Shield) mit viel GPIO und Wi-Fi für die drahtlose Kommunikation.

    Nicht schlecht! Ich dachte und erinnerte mich an AMS- Dort können Sie zwei Server installieren - verkabelt und drahtlos - und diese mit einem System verbinden. Der ESP8266 empfängt 54 digitale und 16 analoge Pins und der Mega empfängt die drahtlose Steuerung über WLAN und alle ESP8266-Brötchen. Lange bin ich nicht auf eine so interessante Gebühr gestoßen.

    - Guten Tag! Haben Sie ein Mega + ESP8266- Board ?
    - Ja, aber wir haben nur noch einen.
    - Warum nur einer?
    - Der Rest abgebaut.
    - Reserviere es bitte für mich.

    Ein paar Worte zur Firma


    Ich mochte RobotDyn auf zwei Arten: Erstens mit meinen technologischen Lösungen. Es ist nicht erforderlich, weit zu gehen, ein hervorragendes Beispiel ist das betreffende Mega + ESP8266-Board. Ich habe so etwas in unseren (und nicht in unseren, aber ich habe nicht danach gesucht) Online-Shops gesehen. Und dies ist nicht das einzige Beispiel, es gibt eine andere Version von Uno + ESP8266, und das Unternehmen wird offenbar nicht damit aufhören, anscheinend warten noch viele interessante Geräte auf uns.

    Und das zweite ist die Preispolitik. Ich werde hier nicht im Detail auf dieses Thema eingehen, aber ich werde sagen, dass mich die Preise angenehm überrascht haben - das Motto des Unternehmens lautet „Preise sind wie bei Aliexpress“.

    Ich habe kurz den Hintergrund beschrieben, auf dem sich alle nachfolgenden Ereignisse entfalten werden, jetzt wenden wir uns direkt den technischen Details und der Beschreibung der Platine zu und arbeiten damit.

    Das Board selbst


    Im Allgemeinen ist die übliche Platine nicht viel anders als viele ähnliche, wenn auch nicht für ein kleines Detail, nämlich den ESP8266EX-Chip, der in die Platine integriert ist. Dies übersetzt die Platine sofort in die Kategorie außergewöhnlicher Lösungen. Ich möchte Ihre Aufmerksamkeit auf ein weiteres Detail lenken - ein nicht standardmäßiges ESP-12-Modul ist in die Platine integriert, nämlich der Chip, und die gesamte Verdrahtung erfolgt auf der Platine selbst, was transparent auf die Ebene der Entwickler hinweist. Ich möchte auch darauf hinweisen, dass das Board sowohl eine gedruckte Antenne als auch einen Anschluss für eine externe Antenne hat, was in vielen Fällen sehr nützlich sein kann.
    RobotDyn Mega + ESP8266
    Auf der Platine befinden sich Stiftanschlüsse zum Anschließen der ESP8266-Stifte und einige Schalter, die noch etwas erwähnt werden sollten. Die Hauptidee bei der Verwendung der Karte besteht darin, dass Sie mit Hilfe von Schaltern das Zusammenspiel der drei Komponenten Atmega2560-Chip, ESP8266EX-Chip und USB-TTL-CH340G-Konverter unterschiedlich konfigurieren können. Sowohl einzelne als auch komplexe Verbindungen sind möglich, wodurch Sie viele Optionen für das Zusammenspiel aller Teile der Platine organisieren können. Dies eröffnet großartige Möglichkeiten für den Bau verschiedener Geräte, aber dazu später mehr.

    ESP8266-Stifte

    Ich möchte auch eine anständige Belastbarkeit der Platine feststellen. Gemessen an den Beschriftungen ist es möglich, einen Laststrom von 1,6 A über einen 5-Volt-Kanal und 1 A über einen 3,3-Volt-Kanal bereitzustellen. Welches ist sehr gut, vor allem in der Summe.

    Zu dem Board gibt es nichts mehr zu sagen. Fahren wir mit der Installation und dem Testen der Software fort.

    Board testen


    Da die Karte integriert ist und praktisch kein freier Speicherplatz vorhanden ist und die Verdrahtung des Hochfrequenzteils des ESP8266EX darauf erfolgt, gab es zunächst Zweifel an der ordnungsgemäßen und störungsfreien Funktion der gesamten Wirtschaft.

    Mit Blick auf die Zukunft werde ich sagen, dass trotz meiner Bedenken alles stabil und wie erwartet funktioniert. Wir verbinden die Schalter auf dem Atmega2560-Board mit USB - wir bekommen den Arduino Mega, wir verbinden den ESP8266EX mit USB - wir bekommen den ESP8266, wir wechseln in den Atmega2560-Verbindungsmodus mit dem ESP8266EX, wir bekommen die Verbindung zwischen den Chips über die serielle Schnittstelle. Alles funktioniert genau so, wie es in der Dokumentation beschrieben und intuitiv erwartet wird.

    Ein großes Plus dieser Entscheidung ist, dass die Entwickler für die Koordination der logischen Signalpegel aller Komponenten des Systems gesorgt haben. Jeder, der manuell versucht hat, das ESP8266-Modul zu konfigurieren und alle Pull-up-Widerstände korrekt anzuschließen, wird mich verstehen. Hier gibt es keine derartigen Probleme, Ihre ganze Arbeit beschränkt sich darauf, die Schalter auf der Platine gemäß den Anweisungen des Herstellers zu betätigen.

    Belastungstest


    Wie teste ich das Board? Sie können eine Standardskizze laden, aber es wird ein Test für alles sein. Diese Option kann normal funktionieren und unter Kampfbedingungen wird das System ins Stocken geraten. Daher wurde die Arbeit beider Teile unter der Kontrolle der entsprechenden Versionen des Arduino Mega Server als Hardload-Test ausgewählt. Für Mega den Arduino Mega Server für Mega und für den ESP8266 den Arduino Mega Server für den ESP8266 in der M1-Version.

    Die M1-Distribution wurde aufgrund der Tatsache gewählt, dass das Board nur 1 MB Flash-Speicher für den ESP8266 verwendet. Dies ist meiner Meinung nach fast der einzige Fehler der Entwickler - in zukünftigen Revisionen des Boards würde ich ihnen empfehlen, 4 MB Speicherchips zu installieren. Der Preisunterschied ist gering und es gibt viel mehr Möglichkeiten, wenn Sie die 4-MB-Version verwenden. Da es aber eine Version von AMS für Systeme mit 1 MB gibt, habe ich diesen Punkt nicht besonders beachtet und weiter getestet.

    Was soll ich sagen? Wir schalten das Board ein, laden die Software hoch und bekommen zwei unabhängige Server. Eine über Ethernet Shield verdrahtet und eine drahtlose über Wi-Fi. Schönheit!

    Unabhängig davon möchte ich festhalten, dass selbst das Hinzufügen von Ethernet Shield mit einem Kartenleser zu diesem bereits gehäuften System keine Konflikte und Fehler verursachte - alles funktionierte einfach so, wie es funktionieren sollte. Und in einigen Fällen ist es sogar noch besser als üblich - dies ist das erste Board, auf dem die ESP8266-Firmware in 100% der Fälle erfolgreich in der Luft installiert wurde. Auf allen anderen Boards und Modulen treten von Zeit zu Zeit Fehler mit einem solchen Flashen auf.

    Und jetzt drehen sich zwei Server, laden das Board, erledigen ihre Aufgaben und ... alles. Alles funktioniert, auch nichts zu sagen, aber dies ist wahrscheinlich das beste Lob für jedes technische System.

    Am interessantesten


    Was ich hier beschrieben habe, ist aus rein akademischer Sicht interessant: ein interessantes Honorar, eine interessante technische Lösung, aber wir sind natürlich an deren praktischer Anwendung interessiert. Was ist seine praktische und angewandte Begeisterung?

    Die Tatsache, dass ein Schalter auf der Platine zwei seiner Teile (Mega und ESP) zu einem Ganzen verbinden kann, um zum einen eine neue Qualität des Systems zu erreichen und zum anderen die inhärenten Mängel der einzelnen Teile auszugleichen.

    Beginnen wir mit ESP8266. Der Hauptnachteil dieser im Allgemeinen ausgezeichneten Lösung ist der katastrophale Mangel an GPIO-Pins. Wie sie sagen, eins, zwei und obchelsya. Was die Entwickler dieses Chips dachten, war schwer zu sagen, aber vor der Veröffentlichung von ESP32 hatten sie ein wenig mehr Zeit zum Nachdenken und in dem neuen Chip haben sie diesen Mangel behoben. Es handelt sich aber genau um 8266.

    Mit diesem Board können Sie einen Springer bewegen und die ganze Kraft von Mega nutzen, und dies unter anderem mit 54 digitalen und 16 analogen Ausgängen im ESP8266. Das heißt, unser wackeliges ESP bekommt plötzlich nur noch die Möglichkeit, mit Sensoren, Aktoren und anderen Peripheriegeräten zu arbeiten. Es stellt sich heraus, Baby ESP auf Steroiden sozusagen.

    Dies ist nur eine der Einsatzmöglichkeiten der auf der Oberfläche liegenden Platte.

    Nun schau dir die Mega an. Sie beeinträchtigt nicht die drahtlose Schnittstelle und die Fähigkeit zur Interaktion mit Wi-Fi-Geräten, wodurch die Integration in den ESP-Teil des Systems ermöglicht wird. Gleichzeitig besteht die Möglichkeit, parallel an der kabelgebundenen Ethernet-Schnittstelle zu arbeiten.

    Und dies ist auch nur eine der möglichen Optionen für den Einsatz dieser Platine, die an der Oberfläche liegt.

    Nun, es gibt verschiedene Möglichkeiten für Bridges: Ethernet - WLAN, nRF24 - Ethernet, nRF24 - WLAN, nRF24 (1) - nRF24 (2), nooLite - WLAN, nooLite - Ethernet, nooLite (1) - nooLite (2) ) usw. usw. bis unendlich. Sie können Signale von Dutzenden von Subsystemen routen, mit denen der Arduino Mega Server zwischen den beiden Teilen der Karte und den mit ihnen verbundenen Schnittstellen ausgeführt wird.

    Ich weiß nicht einmal, was ich sagen soll. Sehr cool.

    Technische Details


    Nun ein wenig zu den technischen Details. Sie sehen eine Tabelle, die alle möglichen Betriebsarten der Karte und alle möglichen Schalterpositionen auf der Karte anzeigt. Betrachten Sie kurz jeden Modus.

    RobotDyn-Board-Modustabelle

    Arduino Mega 2560


    Die einfachste Funktionsweise der Karte ist die in der Tabelle als Modus 3 bezeichnete. Wenn Sie die Schalter 3 und 4 auf ON und den Rest auf OFF stellen, erhalten Sie den üblichen Arduino Mega 2560. Nichts Interessantes, da es sich nicht lohnt, diese Karte zu kaufen Es war das übliche Mega zu kaufen.

    ESP8266


    Auch nicht sehr interessante Arbeitsweise. In der Tabelle ist es in zwei Untermodi unterteilt, die mit 1 (Laden einer Skizze in ESP) und 2 (ESP-Verbindungsmodus mit USB) bezeichnet sind. Dies ist die gesamte Funktionalität des Standard-ESP8266 und für eine solche Verwendung hat es sich auch nicht gelohnt, dieses Board zu kaufen. Es war möglich, mit dem üblichen ESP-Modul auszukommen.

    Alle unabhängig


    Wir betrachten diese Option auch bei Nummer 6 nicht, da alle Verbindungen zwischen den Teilen der Platine unterbrochen sind und sie für uns für nichts nützlich sein können.

    Die Verbindung zwischen Mega und ESP


    In diesem als 5 bezeichneten Modus wird die Verbindung zwischen Mega und ESP über die serielle Schnittstelle hergestellt, es besteht jedoch keine Verbindung zum USB-TTL-Konverter. Bei ESP handelt es sich um die Standardserie und bei Mega um mindestens die Standardserie3. Die Verbindung ist stabil und läuft nahtlos mit einer Geschwindigkeit von 115200. Dies ist eine ziemlich spezielle Betriebsart, wenn kein Controller über eine USB-Verbindung verfügt. Und deshalb ist es für uns auch nicht sehr interessant.

    Die Verbindung zwischen Mega und ESP und gleichzeitig Mega und USB


    Aber das nennt man den Trumpf-Modus. Wir bekommen alles auf einmal - eine Mega-Verbindung über USB und die Möglichkeit, Skizzen auf Mega hochzuladen und deren Betrieb über denselben USB zu steuern, die Möglichkeit, zwischen Mega und ESP zu kommunizieren und Skizzen in den ESP8266 zu laden und dessen Betrieb über die USB-Schnittstelle zu steuern ... Mega! Das ist eine volle Füllung, direkt vor Ort.

    Dies ist die einzige in der Tabelle aufgeführte korrekte Betriebsart. Erinnern Sie sich an seine Gewinnzahl, die gleich vier ist. In der Konfiguration der Schalter auf der Platine sieht es auch gut aus - 1, 2, 3, 4 sind auf ON, der Rest auf OFF.

    Der aufmerksame Leser wird fragen: Wie können wir Skizzen in den ESP8266 laden, wenn der USB-Port gerade mit dem Mega-Teil des Systems verbunden ist? Und das ist die richtige Frage, die Antwort - auf keinen Fall. Warum schreiben Sie dann, dass wir in dieser Konfiguration Skizzen auf den ESP8266 hochladen können? Da der Arduino Mega Server die Möglichkeit hat, Skizzen per Knopfdruck direkt von der Arduino IDE herunterzuladen, ist alles in Ordnung - wir haben die volle Füllung, alles funktioniert sofort.

    Wie geht man mit denen um, die das Board ohne den Arduino Mega Server nutzen möchten? Es gibt nur zwei Möglichkeiten: Klicken Sie entweder ständig auf die Schalter, oder fügen Sie Ihren Entwürfen die Möglichkeit hinzu, Skizzen aus der Luft herunterzuladen. Ich persönlich bevorzuge die zweite Option.

    Arduino IDE-Einstellungen


    Die Arduino IDE-Einstellungen für Mega werfen keine Fragen auf, da ist alles Standard, und für ESP8266 gebe ich Ihnen einen Screenshot des Einstellungsmenüs für eine bestimmte Implementierung des ESP-Teils auf der RobotDyn-Platine. Sie sollten die gleichen Parameter für sich selbst festlegen, mit Ausnahme der Portnummer - diese hat höchstwahrscheinlich eine andere Bedeutung auf Ihrem System.

    ESP8266-Einstellungen in Arduino IDE

    Arduino Mega Server für RobotDyn Mega + ESP8266


    Für dieses Board wurde eine spezielle Dual-Version des Arduino Mega Servers veröffentlicht, die zwei Server gleichzeitig enthält, die speziell für dieses Board optimiert wurden. Dies ist die externe Seite der Frage. Beide Server enthalten Standardfunktionen und können für alle Ihre Projekte verwendet werden.

    Sie können diese beiden Server unabhängig voneinander auf derselben Karte verwenden oder die erforderlichen Funktionen hinzufügen und sie im Tandem- und Bridge-Modus zwischen zwei Netzwerken und allen mit den Servern verbundenen Schnittstellen verwenden.

    Im ersten Build des Arduino Mega Servers für den RobotDyn Mega + ESP8266 gibt es ein Testbeispiel für die Interaktion zweier Controller über die serielle Schnittstelle. Dies ist eine Demonstration der Fähigkeiten der Technologie, auf deren Grundlage Sie Ihre eigenen Lösungen entwickeln können.

    Nun etwas mehr zur Entwicklung eines Protokolls für die Interaktion zweier Steuerungen über eine serielle Schnittstelle im Allgemeinen und auf dieser Karte im Besonderen.

    Protokollentwicklung


    Was sollen wir ein Haus bauen? Müssen Sie ein Interaktionsprotokoll zwischen den beiden Teilen des Systems über die serielle Schnittstelle entwickeln? - Wir werden uns weiterentwickeln, hier geht es vor allem darum, die Aufgabe klar und richtig zu stellen. Um den Tandem-Betrieb des Systems zu demonstrieren, werden die Anzeigen des "Partners" im Dashboard-Bereich jedes Servers angezeigt.

    Ein wenig über die Terminologie. Für Mega ist der „Partner“ ESP8266 bzw. ESP8266 Mega.

    Wenn der Partner arbeitet, leuchtet die Anzeige grünlich, wenn sie nicht funktioniert, rot und grau, wenn der Zustand unsicher ist. Dies ist sehr praktisch - während des Betriebs sehen Sie sofort den Status des Alter Ego Ihres Systems.

    Für eine praktische Lösung dieses Problems gibt es genau eine Million Möglichkeiten: Wir wählen die folgenden Möglichkeiten: Die Kommunikationsblöcke beider Teile des Systems sind identisch, die Interaktion erfolgt im Vollduplexmodus, die Informationsblöcke haben ein einfaches und verständliches Format:

    ?параметр=значение
    

    oder

    ?команда
    

    Dies ist nur ein Testfall zur Lösung des Problems. Sie können dieses Interaktionsprotokoll modifizieren oder Ihr eigenes schreiben, das für Ihre Aufgaben geeignet ist. Bei einem bereits implementierten Protokoll können Sie den Status eines Partners nicht nur überwachen, sondern auch auf viele andere Zwecke anwenden, z. B. den Status der Controller-Pins, den Status der Sensoren übertragen oder Steuerbefehle an einen Partner senden.

    In unserem System sehen die Befehle

    folgendermaßen aus:? Mega = 1 - Mega sendet Informationen über seine Leistung. Der Parameter "Mega", der Wert "1".

    ? esp = 1 - ESP8266 sendet Informationen über seinen Zustand. Der Parameter "esp", der Wert "1".

    Betrachten Sie zum Beispiel die Implementierung des Protokolls für den Mega-Teil des Systems.

    Standardmäßig initialisieren wir das AMS-Modul und die Hardware Serial3 Mega mit einer Geschwindigkeit von 115200.

    void robotdynInit() {
      Serial3.begin(115200);
      modulRobotdyn = MODUL_ENABLE;
      started("RobotDyn", true);
    } 
    

    Wir überprüfen den Status des Serial3-Ports und bilden im Fall des Eintreffens von Daten vom Partner eine Zeichenfolgenvariable serialReq, die die eingehenden Daten oder Befehle enthält.

    void checkSerial() {
      while (Serial3.available() > 0) {
        if (sFlag) {
          serialReq = "";
          sFlag = false;
        }
        char c = Serial3.read();
        if (c == 10) {
          sFlag = true;
          parseSerialStr();
        }
        else if (c == 13) {
          // skip
        }
        else {
          if (serialReq.length() < MAX_SERIAL_REQ) {
            serialReq += c;
          }
        } // if
      } // while (Serial3.available() > 0)
    } // checkSerial()
    

    Parsim-Befehle und -Daten und im Falle des Eintreffens von Informationen über den Zustand des Partners ergreifen wir Maßnahmen in Form einer Änderung des Zustands der esp-Variablen.

    void parseSerialCmd() {
      String command, parameter;
      if (serialReq.indexOf(F("?")) >= 0) {
        int pBegin = serialReq.indexOf(F("?")) + 1;
        if (serialReq.indexOf(F("=")) >= 0) {
           int pParam = serialReq.indexOf(F("="));
           command   = serialReq.substring(pBegin, pParam);              
           parameter = serialReq.substring(pParam + 1);              
        } else {
            command = serialReq.substring(pBegin);              
            parameter = "";
          }
        if (command != F("esp")) {
          Serial.print(F("command/parameter: "));
          Serial.print(command);
          Serial.print(F("/"));
          Serial.println(parameter);
        }
        if (command == F("esp")) {
          if (parameter == F("1")) {
            esp = 1;
            espTimer = millis();
          } else {
              esp = 0;
            }
        }
      } // if (request.indexOf(F("?")) >= 0)
    } // parseSerialCmd()
    

    Sie können anderen Befehlen problemlos Verarbeitung hinzufügen, indem Sie den entsprechenden Codeabschnitt ändern und hinzufügen.

        if (command == F("esp")) {
          if (parameter == F("1")) {
            esp = 1;
            espTimer = millis();
          } else {
              esp = 0;
            }
    

    Wenn Sie interne Projekte verwenden und viele Befehle und Daten analysieren, ist dieser Codeabschnitt in Form entsprechender Funktionen übersichtlicher.

    Es bleibt die Standardfunktion des AMS-Moduls zu berücksichtigen, das für seine Arbeit verantwortlich ist. Zuerst wird der Status des Ports überprüft, dann wird alle vier Sekunden ein Team an den Partner gesendet, dass Mega lebt und arbeitet, und es wird die Zeit überprüft, die seit dem Eintreffen der letzten Daten vom Partner vergangen ist. Wenn diese 8 Sekunden überschreiten, wird der Schluss gezogen, dass der Partner nicht arbeitet.

    void robotdynWork() {
      checkSerial();
      if (cycle4s) {
        Serial3.println(F("?mega=1"));
        if (millis() - espTimer > 8000) {
          esp = 0;
        }
      }
    }
    

    Das ist die ganze Magie. Stimmt, nichts kompliziertes?

    Der vollständige Code des Moduls, das für die systemübergreifende Kommunikation zwischen dem Mega 2560 und dem ESP8266 verantwortlich ist
    /*
      Modul RobotDyn
      part of Arduino Mega Server project
    */
    #ifdef ROBOTDYN_FEATURE
    bool sFlag = true;
    unsigned long espTimer = millis();
    // Serial request
    #define MAX_SERIAL_REQ  32
    String serialReq = "";
    void robotdynInit() {
      Serial3.begin(115200);
      modulRobotdyn = MODUL_ENABLE;
      started("RobotDyn", true);
    }
    void printSerialStr() {
      Serial.print("[");
      Serial.print(serialReq);
      Serial.println("]");
    }
    void parseSerialCmd() {
      String command, parameter;
      if (serialReq.indexOf(F("?")) >= 0) {
        int pBegin = serialReq.indexOf(F("?")) + 1;
        if (serialReq.indexOf(F("=")) >= 0) {
           int pParam = serialReq.indexOf(F("="));
           command   = serialReq.substring(pBegin, pParam);              
           parameter = serialReq.substring(pParam + 1);              
        } else {
            command = serialReq.substring(pBegin);              
            parameter = "";
          }
       // if (command != F("esp")) {
          Serial.print(F("command/parameter: "));
          Serial.print(command);
          Serial.print(F("/"));
          Serial.println(parameter);
        //}
        if (command == F("esp")) {
          if (parameter == F("1")) {
            esp = 1;
            espTimer = millis();
          } else {
              esp = 0;
            }
        }
      } // if (request.indexOf(F("?")) >= 0)
    } // parseSerialCmd()
    void parseSerialStr() {
      if (serialReq[0] == '?') {
        parseSerialCmd();
      } else {
          printSerialStr();
        }
    }
    void checkSerial() {
      while (Serial3.available() > 0) {
        if (sFlag) {
          serialReq = "";
          sFlag = false;
        }
        char c = Serial3.read();
        if (c == 10) {
          sFlag = true;
          parseSerialStr();
        }
        else if (c == 13) {
          // skip
        }
        else {
          if (serialReq.length() < MAX_SERIAL_REQ) {
            serialReq += c;
          }
        } // if
      } // while (Serial3.available() > 0)
    } // checkSerial()
    void robotdynWork() {
      checkSerial();
      if (cycle4s) {
        Serial3.println(F("?mega=1"));
        if (millis() - espTimer > 8000) {
          esp = 0;
        }
      }
    }
    #endif // ROBOTDYN_FEATURE
    


    Wie funktioniert die Ausgabe im seriellen Monitor?


    Im Mega 2560 Serial Monitor sehen die Ausgabe, Daten und Befehle des ESP-Teils des Systems genauso aus wie seine eigenen. Um die Ausgabe des Partners von der Ausgabe von Mega zu unterscheiden, werden seine Daten in Anführungszeichen gesetzt. In diesem Fall werden der ESP8266-Neustart und das AMS-Startprotokoll im Mega Serial-Monitor angezeigt.

    Fazit ESP8266 im Serienmonitor Mega 2560

    Und das Arbeitsprotokoll des tatsächlichen Befehlsaustauschs zwischen den beiden Teilen des Systems über die serielle Schnittstelle. Sie können die Ausgabe des ESP8266 mit Informationen zum Dekodieren von Daten zum Status von Megi in der seriellen Schnittstelle von Mega selbst sehen, die in eckigen Anführungszeichen eingeschlossen ist.

    ESP8266-Ausgabe beim Dekodieren von Mega-Befehlen

    Schönheit in der Schnittstelle


    Nun ein wenig darüber, wie das alles in der Benutzeroberfläche des Arduino Mega Servers aussieht. Zunächst werde ich Screenshots beider Teile des Systems bei der Arbeit bereitstellen.

    Arduino Mega Server für RobotDyn Mega + ESP8266

    Ellipsen sind mit Beschriftungen versehen, die den Controller und den Teil des Systems identifizieren, mit dem Sie gerade arbeiten. Kreise werden mit Indikatoren eingekreist, die den Status des Partners anzeigen. Im Moment ist alles in Ordnung, beide Teile des Systems arbeiten normal und interagieren normal miteinander über die interne Schnittstelle. Wenn etwas schief geht, werden Sie innerhalb von maximal 8 Sekunden darüber informiert.

    Irgendwas ist schief gelaufen

    Irgendwas ist schief gelaufen. Der ESP8266 erhielt per Funk ein Update der Firmware und der Mega-Teil des Systems zeichnete den Moment seines Neustarts auf. Nach einigen Sekunden wird die Arbeit des ESP-Teils des Systems fortgesetzt und die Anzeige erlischt rot.

    Wenn Sie den Mauszeiger über die Partnerstatusanzeige bewegen, wird der Einfachheit halber ein Hinweis angezeigt, auf den Sie klicken können, und die Benutzeroberfläche des zweiten Teils des Systems wird in einem separaten Fenster geöffnet, in diesem Fall der ESP-Teil. Dies geschieht aus Komfortgründen, Sie können jederzeit mit einem Klick die Oberfläche des zweiten Teils des Systems öffnen.

    AMS-Schnittstellenhinweis

    Projektideen


    Nun ein wenig darüber, was man daraus machen kann, wenn man ein bisschen Fantasie hat. Die übliche Gebühr, die auf den ersten Blick völlig diskret ist, ermöglicht es Ihnen, eine Menge sehr ungewöhnlicher und interessanter Dinge zu tun. Dies gilt insbesondere für die Kombination mit dem Arduino Mega Server.

    Das erste, was mir in den Sinn kommt:

    Daten von Sensoren zwischen Steuerungen weiterleiten. In beide Richtungen und in unbegrenzten Mengen. Dies ist ein System, das die Tugenden beider Teile hat, und die Möglichkeiten summieren sich nicht einfach, sondern es wird der sogenannte synergistische Effekt beobachtet.

    Brücke zwischen Schnittstellen. Der Arduino Mega Server kann mit mehreren Schnittstellen arbeiten und dieses System ermöglicht es Ihnen, Daten und Befehle beliebig zwischen verkabelten und drahtlosen Schnittstellen zu routen.

    Arbeiten Sie im selben Netzwerk, wenn Mega via Ethernet Shield und ESP8266 via Wi-Fi mit kabelgebundenen und kabellosen Geräten im selben Netzwerk kommunizieren.

    Arbeiten Sie in verschiedenen Netzwerken, wenn Mega mit einem kabelgebundenen Ethernet und der ESP8266 über WLAN mit einem anderen Netzwerk verbunden ist und das System Befehle und Daten von einem Netzwerk zu einem anderen weiterleitet.

    Die Ausgabe eines Teils des Systems in der Schnittstelle des anderen. Über Ethernet mit Standard-Web-basierten Methoden oder über eine interne serielle Verbindung.

    Debuggen Ein Teil des Systems kann gemäß Ihrem Programm als Debugger und Tester eines anderen Teils des Systems fungieren.

    Watchdog-Timer. Jeder Controller kann in Bezug auf den anderen als eine Art Watchdog fungieren.

    Protokollierungsfehler.Jeder Controller kann die Arbeit seines Partners protokollieren, Statistiken erstellen und Alarmsituationen melden.

    Datenbank für ESP8266. Mit diesem System können Sie so etwas wie eine SQL-Datenbank auf Mega für ESP8266 organisieren. ESP erledigt seine Aufgabe, und Mega dient als Datenspeichersystem (bis zu 32 GB).

    Sich gegenseitig aufblitzen. Die Steuerungen können sich dynamisch in Übereinstimmung mit der festgelegten Logik oder nach dem Eintreffen eines externen Steuerbefehls gegenseitig aufflashen.

    Module verbinden. Controller können verschiedene Peripheriegeräte anschließen, bei denen Probleme bei der Verbindung mit einem Teil des Systems auftreten.

    Und so weiter und so fort. Ich denke, ein neugieriger Leser wird in der Lage sein, selbstständig viele gleichermaßen interessante Arten der Verwendung dieses Systems zu erfinden.

    Fazit


    Meiner Meinung nach ist dies eine sehr interessante Lösung und wir müssen uns bei der Firma RobotDyn sehr herzlich für diese interessante Gebühr bedanken . Zumindest sage ich das ganz aufrichtig.

    Laden Sie das Arduino Mega Server-Distributionskit für RobotDyn Mega + ESP8266 herunter und überzeugen Sie sich selbst, dass alles, was hier steht, korrekt ist. Sie können es auf der offiziellen Website des Arduino Mega Server-Projekts im Download- Bereich herunterladen .