Да, вы можете отправлять данные на ESP8266 без использования веб-сервера, но вы можете использовать один или использовать что-то функционально связанное с ним.
ESP8266 - это довольно универсальное вычислительное устройство с WiFi-радио и сетевым стеком, следовательно, вы можете реализовать практически любой разумный протокол, который вы хотите описать в коде.
Тем не менее, стало довольно популярным применение протоколов, которые выглядят и действуют как миниатюрные веб-страницы, предназначенные для потребления человеком.
то есть вместо того, чтобы ваш клиент подключался и делал что-то вроде
GET /index.html HTTP/1.1
это может сказать
GET /gpio/15/value HTTP/1.1
Где URL относится не к конкретному документу, а к некоторому фрагменту данных на устройстве, к которому вы хотите получить доступ. Вы можете сделать то же самое для POST
, PATCH
, и DELETE
т.д. запросов.
Если вы не создаете страницу для потребления человеком, обычно данные, которыми вы обмениваетесь, не будут HTML-страницами. Часто это может быть что-то вроде JSON. Так например
GET /gpio/15/value HTTP/1.1
может вызвать ответ как
{"gpio": 15, "direction": "in", "value": 0}
Точно так же вы можете сделать конечную точку, где ваш клиент может установить GPIO, сказав
POST /gpio/15 HTTP/1.1
{"direction": "out", "value": 1}
Это в некоторой степени семантический или специфический для реализации вопрос, если программа, отвечающая на такие запросы, является «веб-сервером» - это может быть веб-сервер, который выполняет различные вспомогательные задачи для работы с данными и gpi (во многом динамически сервер, обслуживающий страницы) генерировать часть своего контента из запросов к базе данных), или это может быть специальная программа, которая одновременно работает с данными и знает, как общаться по HTTP.
И, конечно, использование HTTP для обмена полезными нагрузками JSON - это только один из многих способов сделать что-то - просто он в настоящее время является популярным, который повторно использует многие концепции, подобные веб-серверу, и может в некоторой степени даже разрешить использование веб-браузера. для тестирования.
Также стоит помнить, что такая схема лучше всего работает локально, когда телефон и ESP8266 являются клиентами одной домашней WiFi-сети. Если телефон не «дома» или есть, но находится только в мобильной сети, то, чтобы телефон достигал ESP8266, это означало бы разрешение внешних запросов в домашнюю сеть, чего желательно избегать. В этом случае довольно популярно использовать протокол, когда устройство ESP8266 и телефон независимо обращаются к внешнему серверу ретрансляции, который передает сообщения между ними. MQTT является примером схемы, часто используемой для системы с архитектурой ретрансляции на сервере.