Могу ли я отправить данные на ESP8266 без создания веб-сервера?
Я получаю доступ к выводам GPIO ESP8266 через веб-сервер. Теперь я хочу сделать приложение для Android для этого. Поэтому я хочу отправить данные на 8266 без создания веб-сервера - возможно ли это?
Ответы:
Да, вы можете отправлять данные на ESP8266 без использования веб-сервера, но вы можете использовать один или использовать что-то функционально связанное с ним.
ESP8266 - это довольно универсальное вычислительное устройство с WiFi-радио и сетевым стеком, следовательно, вы можете реализовать практически любой разумный протокол, который вы хотите описать в коде.
Тем не менее, стало довольно популярным применение протоколов, которые выглядят и действуют как миниатюрные веб-страницы, предназначенные для потребления человеком.
то есть вместо того, чтобы ваш клиент подключался и делал что-то вроде
это может сказать
Где URL относится не к конкретному документу, а к некоторому фрагменту данных на устройстве, к которому вы хотите получить доступ. Вы можете сделать то же самое для
POST
,PATCH
, иDELETE
т.д. запросов.Если вы не создаете страницу для потребления человеком, обычно данные, которыми вы обмениваетесь, не будут HTML-страницами. Часто это может быть что-то вроде JSON. Так например
может вызвать ответ как
Точно так же вы можете сделать конечную точку, где ваш клиент может установить GPIO, сказав
Это в некоторой степени семантический или специфический для реализации вопрос, если программа, отвечающая на такие запросы, является «веб-сервером» - это может быть веб-сервер, который выполняет различные вспомогательные задачи для работы с данными и gpi (во многом динамически сервер, обслуживающий страницы) генерировать часть своего контента из запросов к базе данных), или это может быть специальная программа, которая одновременно работает с данными и знает, как общаться по HTTP.
И, конечно, использование HTTP для обмена полезными нагрузками JSON - это только один из многих способов сделать что-то - просто он в настоящее время является популярным, который повторно использует многие концепции, подобные веб-серверу, и может в некоторой степени даже разрешить использование веб-браузера. для тестирования.
Также стоит помнить, что такая схема лучше всего работает локально, когда телефон и ESP8266 являются клиентами одной домашней WiFi-сети. Если телефон не «дома» или есть, но находится только в мобильной сети, то, чтобы телефон достигал ESP8266, это означало бы разрешение внешних запросов в домашнюю сеть, чего желательно избегать. В этом случае довольно популярно использовать протокол, когда устройство ESP8266 и телефон независимо обращаются к внешнему серверу ретрансляции, который передает сообщения между ними. MQTT является примером схемы, часто используемой для системы с архитектурой ретрансляции на сервере.
источник
DELETE
порт ;-)Да, вы можете написать собственный TCP-сервер . Или, для более легкого веса, используйте сервер UDP .
В любом случае, вам нужно определить собственный протокол приложения поверх TCP / UDP, и ваше приложение отправит его. И вы экономите на накладных расходах HTTP. (HTTP может иметь около 1000 байтов на каждое сообщение!)
источник