Ja, Sie können Daten an einen ESP8266 senden, ohne einen Webserver zu verwenden. Möglicherweise möchten Sie jedoch einen oder einen funktional verwandten Server verwenden.
Ein ESP8266 ist ein ziemlich Allzweckcomputergerät mit einem WiFi - Radio und Netzwerk - Stack, damit Sie können fast jedes vernünftiges Protokoll implementieren Sie in Code beschreiben kümmern.
Es ist jedoch sehr populär geworden, Protokolle zu implementieren, die ähnlich aussehen und sich wie Miniaturwebseiten verhalten, die für den menschlichen Verzehr bestimmt sind.
dh anstatt dass Ihr Client eine Verbindung herstellt und so etwas tut
GET /index.html HTTP/1.1
es könnte sagen
GET /gpio/15/value HTTP/1.1
Wenn sich die URL nicht auf ein bestimmtes Dokument bezieht, sondern auf einige Daten auf dem Gerät, auf das Sie zugreifen möchten. Dieses und ähnliche Dinge tun , für POST
, PATCH
, DELETE
etc Anfragen.
Wenn Sie keine Seite für den menschlichen Gebrauch erstellen, sind die Daten, die Sie austauschen, normalerweise keine HTML-Seiten. Oft könnte es stattdessen so etwas wie JSON sein. So zum Beispiel
GET /gpio/15/value HTTP/1.1
könnte eine Antwort wie auslösen
{"gpio": 15, "direction": "in", "value": 0}
Ebenso können Sie einen Endpunkt erstellen, an dem Ihr Client möglicherweise einen GPIO festlegt, indem Sie sagen
POST /gpio/15 HTTP/1.1
{"direction": "out", "value": 1}
Es ist bis zu einem gewissen Grad eine semantische oder implementierungsspezifische Frage, ob das Programm, das solche Fragen beantwortet, ein "Webserver" ist - es könnte ein Webserver sein, der verschiedene Hilfsaufgaben ausführt, um mit den Daten und GPios umzugehen (ähnlich wie ein Server, der Seiten dynamisch bedient) einen Teil ihres Inhalts aus Datenbankabfragen generieren), oder es könnte sich um ein dediziertes Programm handeln, das sich sowohl mit den Daten befasst als auch weiß, wie man HTTP spricht.
Und natürlich ist die Verwendung von HTTP zum Austausch von JSON-Nutzdaten nur eine von vielen Möglichkeiten - es handelt sich zufällig um eine derzeit beliebte Methode, die viele Webserver-ähnliche Konzepte wiederverwendet und bis zu einem gewissen Grad sogar die Verwendung eines Webbrowsers zulässt zum Prüfen.
Beachten Sie auch, dass ein solches Schema in der Regel lokal am besten funktioniert, wenn das Telefon und der ESP8266 Clients desselben WLAN-Heimnetzwerks sind. Wenn das Telefon nicht "zu Hause" ist oder sich nur in einem Mobilfunknetz befindet, bedeutet das Erreichen des ESP8266, dass externe Anforderungen in das Heimnetzwerk zugelassen werden. Dies wird vorzugsweise vermieden. In diesem Fall ist es sehr beliebt, ein Protokoll zu verwenden, bei dem sowohl das ESP8266-Gerät als auch das Telefon unabhängig voneinander einen externen Relay-Server erreichen, der Nachrichten zwischen ihnen weiterleitet. MQTT ist ein Beispiel für ein Schema, das häufig für ein System mit einer Relay-Server-basierten Architektur verwendet wird.