Arduino Mega Server

Bild

Ja, dies ist wieder Arduino, aber beeilen Sie sich nicht, die Seite zu schließen. Diesmal warten Sie auf etwas wirklich Neues und Interessantes. Grundsätzlich konzentriert sich dieser Artikel auf die Arduino Mega-Mikrocontroller-Karten und die Ethernet Shield W5100-Netzwerkschnittstellenkarte sowie auf das Wunder, das mit ihnen geschehen kann, wenn Sie sich erlauben, über Stereotypen hinauszugehen.

Was ist ein typisches Arduino-Board? "Schlechter" 8-Bit-Mikrocontroller mit einer lächerlichen Menge an RAM (im Fall von Mega sind es 8 Kilobyte) und der gleichen lächerlichen Menge an Flash-Speicher (256 Kilobyte für Mega). Erweiterungskarten verleihen der Landschaft etwas Lebendigkeit, in unserem Fall Ethernet Shield, aber im Grunde ändert es nichts. Der Umfang solcher Boards ist das marginale Handwerk und das berühmte Blinken von LEDs.

Aber das war bis zum letzten Moment. Jetzt gibt es in der Natur einen Arduino Mega Server , der die Dinge grundlegend verändert. Was würden Sie zum Beispiel sagen, wenn Sie auf die Aussage stoßen würden, dass:
  • Auf Arduino können Sie einen vollwertigen Webserver organisieren, der keine Einschränkungen hinsichtlich Größe und Anzahl der Dateien aufweist.
  • Inhalte dynamisch aktualisieren, ohne den Server anzuhalten?
  • HTML5, CSS3, JavaScript, Ajax, Processig, THREE.js, . .?
  • «» ( )?
  • , , ( 32 )?

Sie würden sagen, dass dies einfach nicht möglich ist.

Dies ist jedoch eine Tatsache. Und Sie können das Distributionskit auf Ihren Computer herunterladen und sich selbst davon überzeugen (außer Habr ist dies ein hypothetisches Beispiel).

Was ist das Geheimnis? Alles ist sehr einfach. Die Netzwerkschnittstellenkarte unterstützt das Anschließen von SD-Speicherkarten mit einer Größe von bis zu 32 Gigabyte, und nichts hindert uns daran, damit Webserver-Dateien und den eigentlichen Inhalt zu speichern. Sie müssen nur das Problem lösen, all diesen Reichtum in ein System zu integrieren.

Damit dies alles funktioniert, müssen Sie eine Server-Engine für Arduino schreiben und ihm beibringen, wie der Inhalt einer Flash-Speicherkarte auf Anforderung von Browsern angezeigt wird. Eigentlich fast alles. Sie müssen auch die Aktualisierung von Serverdateien und -inhalten "on the fly" organisieren, damit Sie nicht jedes Mal von der Couch aufstehen, die Stromversorgung des Arduino ausschalten und die Speicherkarte entfernen müssen, wenn Sie etwas an der Serverkonfiguration ändern oder was ändern müssen oder im Inhalt. Diese schwierige, aber edle Mission wird dem Arduino Serial Commander anvertraut, der das Herunterladen von Dateien auf einen funktionierenden Server steuert, ohne ihn zu stoppen.

Bild

Wenn alles so einfach ist, warum wurde es dann noch nie gemacht? Das ist wirklich eine Frage. Meine Version ist das Stereotyp des Denkens. Sie sagten dir, dass dies ein 8-Bit-Controller ist. Was ist noch THREE.js? Welches Hosting? Worüber redest du? Fairerweise muss ich sagen, dass alle Teile des Puzzles bereits in der Natur existierten, aber sie existierten in völlig unanständiger Form - entweder in Form eines abstrakten Servers, der vollständig von der Realität getrennt ist, oder in Form von Ajax-Beispielen, aber wiederum mit nur zwei abstrakten Schaltflächen, mit denen Es ist nicht klar, was zu tun ist.

Anwendungsgebiet


Lassen Sie uns nun über die Anwendung dieser Technologie sprechen und darüber, was in der Tat so wunderbar und nützlich ist.

Notwendige Erklärung. Der Name enthält das Wort "Server" und der erste Teil des Artikels befasst sich mit Serverfunktionen des Systems. Dies kann Sie in die Irre führen und den Eindruck erwecken, dass der Hauptzweck des Systems darin besteht, Dateien und Websites zu hosten und Inhalte zu verteilen. Dies ist nicht ganz richtig. Der enge Engpass in diesem System ist die Geschwindigkeit der SD-Karte, und natürlich schlägt das Ersetzen des Mikrocontrollers durch einen echten Webserver fehl.

Die Bedeutung des Systems ist etwas anders. Zusammen mit Arduino Mega Server erhalten Sie die Möglichkeit, Ihr Gerät bequem über die Weboberfläche zu steuern und die Ergebnisse seiner Arbeit einfach luxuriös (im visuellen Sinne) mit der ganzen Kraft moderner Technologien (HTML5, CSS3, THREE.js usw.) anzuzeigen. Ob es sich um ein Steuerungssystem für ein Smart Home, ein Gewächshaus, einen Getränkeautomaten, eine Wetterstation oder was auch immer Sie sich vorstellen können handelt.

Bild

Ein weiterer interessanter Anwendungsbereich des Systems ist die (interaktive) Selbstdokumentation. Zum Beispiel finden Sie in einer staubigen Speisekammer (Ihrer oder der Ihres Kunden), dass der Mikrocontroller unklar ist, was und wie zu tun ist (es ist lange her und alle Unterlagen gingen verloren). Alles, was Sie brauchen, ist, auf seine Website zu gehen und umfassende Informationen zu Verbindungen, Protokollen, Umgebungen usw. zu erhalten. Schließlich haben wir keine Einschränkungen hinsichtlich des Volumens der gespeicherten Dateien. Die Dokumentation kann interaktiv sein. Beispielsweise wird die Pinbelegung des Controllers nicht nur auf der Seite gezeichnet, sondern auch in Echtzeit aktualisiert (Status, Potenziale usw.). Sie können sofort sehen, was und wie es funktioniert und was und wie es nicht funktioniert.

Bild

Was ist an Bord außer dem Server


Ich habe den Serverfunktionen viel Aufmerksamkeit geschenkt, aber dies ist nur ein Teil des Systems. Zusätzlich zum Server enthält Arduino Code für alle Gelegenheiten:
  • Temperatur messung
  • Wartung von PIR-Sensoren
  • Wartung des Kontaktsensors
  • Echtzeituhr
  • Modul zur Überwachung und Messung der Netzspannung und des Netzstroms für 13 Kanäle
  • LED-Streifenmodul
  • Modul zur Bestimmung der Verfügbarkeit von Netzwerkgeräten
  • Modul für die Arbeit mit SD-Speicherkarten
  • Modul zum Empfangen und Ausgeben von Befehlen über das Netzwerk
  • Integrationsmodule mit Hausautomationssystemen
  • und viele andere Funktionen sowie die Möglichkeit, neue zu erstellen

Modularer Aufbau und selektive Zusammenstellung von Modulen werden unterstützt. Der Browserteil des Codes erkennt das Vorhandensein oder Fehlen eines kompilierten Moduls und ermöglicht es Ihnen, es direkt von einer Webseite aus dynamisch zu aktivieren oder zu deaktivieren.

Bild

Integration mit MajorDoMo


In der Vergangenheit wurde Arduino Mega Server (im Folgenden: AMS) in Verbindung mit und als Teil eines Hausautomationssystems entwickelt, das auf der offenen MajorDoMo-Plattform basiert, und verfügt über eine integrierte „native“ Unterstützung für diese Plattform. Er kann Status und Daten zur Analyse und Speicherung an seinen „älteren Bruder“ senden und Steuerbefehle von ihm über das Netzwerk empfangen.

Darüber hinaus arbeitet AMS derzeit im sogenannten. Tandem-Modus, d. h. für einige Funktionen werden die Ressourcen des MajorDoMo-Servers verwendet. Die Zusammenarbeit mit Mega Server ist jedoch prinzipienlos und kann völlig autonom erfolgen.

Bild

Nebentechnologien


Im Rahmen des Projekts wurden mehrere interessante und einzigartige Technologien implementiert, beispielsweise der Indikator für das „CPU“ -Lastniveau des Mikrocontrollers. Dies ist praktisch, da Sie sofort sehen können, wie beschäftigt Ihr Controller ist und was er gerade tut. Ich weiß nicht, wie einzigartig dies ist, aber ich konnte im Internet nichts Ähnliches finden, insbesondere in einer verdaulichen Form mit schönen Grafiken und einer Webseite.

Bild

Es wurde ein Elektromodul erstellt, das die Netzspannung und weitere 13 Stromkanäle überwacht. Durch die Installation in der Schalttafel können Sie direkt oder indirekt die gesamte elektrische Aktivität im Haus überwachen. Wenn ein bestimmtes Gerät ein- und ausgeschaltet wurde, wie viel Strom es verbraucht und welchen Beitrag es zur Höhe der Stromrechnung leistet. Außerdem können Sie indirekt die Anwesenheit oder Abwesenheit von Personen im Haus verfolgen.

Bild

Es wurde ein Modul zur Visualisierung und Steuerung der Form der Netzspannung und des Netzstroms auf einem von 13 Kanälen erstellt. Außerdem wird ein Netzwerkoszilloskop hinzugefügt, wenn Arduino in Echtzeit ein dynamisches Signal (Wellenform) an Ihre Webseite überträgt. Welches hat auch keine Analoga, soweit ich weiß.

Bild

Bildschirmschoner-Modul für moderne Informationsanzeigetafeln hinzugefügt. Sie können alle technischen Informationen vom Bildschirm entfernen und nur die erforderlichen vor dem Hintergrund eines schönen Bildes belassen. Es ergibt sich so etwas wie ein Bild in einem Rahmen für ein großes oder kleines Panel.

Bild

Es sind noch Dinge wie ein Frequenzmesser der Netzspannung implementiert, mit dem in naher Zukunft vor möglichen Fehlfunktionen gewarnt werden kann, und beispielsweise eine multifunktionale 3D-Systemstatusanzeige für 216 Objekte / Subsysteme / Funktionen, die sich im Header des Standorts dreht. Die Bedeutung ist, dass Sie auf einen Blick den Zustand eines komplexen Systems bewerten können.

Und so weiter und so fort. Es gibt mehr Technologien, als auf diese Seite passen. Und das alles funktioniert auf einem 8-Bit-Mikrocontroller mit 8 Kilobyte Speicher, was einfach unglaublich ist.

Bild

Perspektiven


Die Aussichten sind unbegrenzt. Mit dieser Technologie können Sie jedes der fantastischsten Projekte implementieren. Zum Beispiel die auf die Controller verteilte Smart-Home-Intelligenz, das dynamische Flashen von Controllern über das Netzwerk (abhängig von bestimmten Bedingungen) und die dynamische Neukonfiguration des Smart-Home auf Eisenebene, die Bereitstellung einer Webschnittstelle für das „wirklich schlechte“ Arduino Uno usw. usw. Ganz zu schweigen von intelligenten Brauereien und jeder Blumenseite in Ihrem Zuhause mit ihren persönlichen Blogs.

Und dafür benötigen Sie nichts außer Arduino, Ethernet Shield, AMS, SD-Karten und Ihrer Fantasie.

Bild

Kommerzielle Aussichten


Sie können Ihre Geräte verkaufen, indem Sie einfach alles, was Sie brauchen, in eine Box packen und AMS-Firmware für Ihre Aufgabe hinzufügen. Der Kunde schaltet das Gerät ein und steuert es über eine vollständige Weboberfläche. Es wird nichts anderes benötigt. Und wenn Sie immer noch in Betracht ziehen, Ihr Gerät und Ihre Sensoren ohne Lötkolben anzuschließen, erweitern Sie das Publikum Ihrer potenziellen Kunden noch mehr.

Wie geht das ohne Lötkolben? Der (selbsternannte) Open Home Automation Standard (OHAS) -Standard und die mit einem Klick verbundenen Sensoren helfen Ihnen dabei, aber das ist eine andere Geschichte. Wenn es interessant sein wird, werde ich hier einige weitere „Durchbruchstechnologien“ beschreiben.

Projekt-Status


Der Projektstatus ist eine Alpha-Version, alles funktioniert, aber alles muss finalisiert werden. Wenn Sie den Wunsch und die entsprechenden Qualifikationen haben, können Sie sich dem Projekt anschließen, den Entwicklungsprozess beschleunigen und einen unvergleichlichen Fan gewinnen. Oder Sie können den Quellcode herunterladen und Ihr Traumprojekt erstellen.

Das Projekt ist vollständig offen und unterliegt keiner Einschränkung seiner Verwendung. Sie können es frei für alle, einschließlich kommerzieller Zwecke, verwenden, den Code ändern, modifizieren, Ihre eigenen Projekte auf GitHub erstellen usw.

Bild

Sie können die neueste Version von der offiziellen Website des Projekts herunterladen . Wenn Sie Fragen haben, können Sie diese im Forum stellen . Das Forum enthält auch Anweisungen zum Installieren und Konfigurieren von AMS.

Freunde! Ich habe vergessen, einen anderen, vielleicht wichtigsten Teil des Projekts zu erwähnen. Dies ist eine Lernfunktion. Wenn Sie mit einem Projekt arbeiten und den Code für Ihre Aufgaben ändern, werden Sie schnell lernen, viele moderne Technologien wie HTML, CSS, JavaScript, Interaktion zwischen Browsern, Debuggen von Code in einem Browser, Programmieren für Arduino, Verarbeiten und viele andere zu üben.

Und der Letzte. Das Projekt ist buchstäblich voller Ideen und exklusiv. Sie können einfach die erforderlichen Codeteile für Ihre eigenen Projekte verwenden, ergänzen und verbessern.

Ergänzung . Ein Youtube-Kanal ist geöffnet und hier ist ein Promo-Video des Arduino Mega Servers, das zeigt, wie man mit einem realen System arbeitet.

Source: https://habr.com/ru/post/de382177/


All Articles