Visualisierung von Daten von der seriellen Schnittstelle zu einem Webdienst ohne Bereitstellung von Apache

Das Verwalten Ihres Arduino von jedem Gerät über einen WLAN-Router ist ein Traum vieler Anfänger, die sich mit Arduino-ähnlichen Geräten beschäftigen. Als vorbildliche Anfänger haben wir uns auch entschlossen, es auszuprobieren.



Nachdem wir einige Habr-Artikel wie "Umleiten von Daten von einem COM-Port ins Web" und "Einfache Steuerung Ihres Arduino über das Web" gegoogelt hatten , beschlossen wir, einen eigenen Webserver zu entwickeln, um Daten mit dem COM-Port auszutauschen und auf den Webserver auszugeben. Darüber hinaus sollte der Server mit wenigen Klicks bereitgestellt werden.

Zu diesem Zweck haben sie unter Verwendung des Artikels „Multithread-Server in C # in 15 Minuten“ einen Server geschrieben, dessen vollständigen Text ich nicht geben werde, aber am Ende werde ich einen Link zum Github hinterlassen, wo jeder ihn testen und, wenn er möchte, mögliche Änderungen vornehmen kann. Natürlich wurde viel Zeit darauf gespart und es ist so einfach zu schreiben, "der Server wurde geschrieben", die Hand hob sich kaum, aber ich fürchte, die Beschreibung wird für Leute, die an Mikrocontrollern beteiligt sind, von geringem Interesse sein. Achten wir auf die Arbeit mit Mikrocontrollern: Um mit Arduino auf unserem Github zu arbeiten, finden Sie eine Bibliothek, mit der Sie extrem klaren Code erstellen können.

Nehmen Sie also Githaba ServArd.exe und Bibliothek für Arduino (ArdServ) und fahren Sie fort.

Ich schlage vor, dass Sie einfach die Nummer 42 von Arduino auf den Webserver ausgebenda das ist der Sinn des Lebens , weil Sie können eine beliebige Variable ausgeben. Zeigen Sie die Schaltfläche an, d.h. Blinken Sie eine LED oder schalten Sie ein Gerät im Haus ein.

Es lohnt sich auch, ein separates Modul zu verwenden, das 50% der Zeit tötete. Dies ist ein Musikeditor für ein piezoelektrisches Element.

Hier ist der Skizzencode für Arduino:

#include "ArdServ.h"
  int outputPin = 2;                //   
  int MusicPin =6;
  float Param=42.00;
  ArdServ A;
void setup() 
{
      pinMode(outputPin, OUTPUT);
      Serial.begin(9600);
}
void loop() 
{
         if(A.ReadCmdFromSrv()==0)
         {
            A.textSend(" ",Param,0); 
            A.buttonSend(" ",outputPin); 
            A.melodySend(" ",0,MusicPin);
            A.endBlock();
         }
}

if (A.ReadCmdFromSrv () == 0) - Wenn der Befehl vom Server stammt, aktualisieren Sie die Daten.

A.textSend ("Ihr Parameter", Param, 0) - Erstellen Sie einen Ausgabeparameternamen "Ihr Parameter", Parameterparameterwert. In unserem Fall ist es 42.0-1. Verwenden Sie das Diagramm nicht (in der Entwicklung).

A.buttonSend ("Grüne LED", outputPin) - Erstellen Sie eine Schaltfläche mit dem Namen "Grüne LED", 3 - Nummer des Ports, der durch die Schaltfläche aktiviert wird.

A.melodySend („Musik abspielen“, 0, MusicPin) - Erstellen Sie ein Eingabefeld für Musik. 0-piezoelektrisches Element (in Zukunft werden wir versuchen, die Polyphonie zu beenden), MusicPin-Pin, an dem wir das piezoelektrische Element aufgehängt haben.

A.endBlock (); - Beenden Sie den Code unbedingt mit diesem Block.

Somit kann zwischen Ihrem Datenaktualisierungsblock und dem Endblock ein beliebiger Code mit einer beliebigen Anzahl von Parametern liegen. Die Website selbst nimmt alle in der Skizze angegebenen Felder auf und ordnet sie in der richtigen Reihenfolge an.

Video zum Betrieb der beschriebenen Skizze:



Unser Github .

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


All Articles