серверы, бесплатные домены с ESP

Допустим, у меня есть такая рутина:

Рутина

Я написал PHP-коды для бесплатного домена, которые:

  1. Ожидание запроса типа url/control?ToDo="someMethod",parm=Something (с отправкой пароля для безопасности) и изменит значения базы данных для ToDo и параметров, как указано в запросе

  2. Дождитесь запроса типа url/veiw (с указанием пароля для безопасности) и отправьте значения датчиков, которые хранятся в базе данных

  3. Ожидание запроса типа url/esp?Doin="someMethod",sens1=Something,sens2= ..... и изменение значений базы данных для doin и датчиков, как указано в запросе

  4. Ожидание запроса типа url/check и отправка значений ToDo и parms, которые хранятся в базе данных

Проблема в коде ESP или узла, для подключения к которому им нужен IP IP, который я знаю, принадлежит бесплатному провайдеру доменов, а не моей ссылке

Полагаю, мне не хватает некоторых знаний о серверах (в том числе и на английском, но это не по теме XD) и IP-вещах

Кто-нибудь может помочь с хорошо документированным методом или API?

Редактировать:

Было 2 основные проблемы:

1- Мне нужно больше узнать о HTTP-запросах, как они выглядят и что должно быть в заголовках

2- После того, как я создал хорошие и попробовал, проблема была в моем подключении к бесплатному серверу домена. Я проверил, чтобы выяснить, что сервер не работает, поэтому я перешел на надежный сервер, и это сработало.

Думаю, на этом пока всё. Спасибо вам всем.

, 👍-1

Обсуждение

проблема в том, что вы просто не предоставили "шлюз" для модуля esp? Например, вы показываете "прямую ссылку" с мобильного телефона на "n.freedomainprovider.com", мобильный телефон может подключиться либо через мобильную сеть передачи данных, либо через маршрутизатор Wi-Fi к Интернету. Модуль esp не использует мобильные данные, ему нужно подключиться к Интернету через какой-то маршрутизатор (как и любое другое устройство Wi-Fi)., @nPn

Если вы используете его только в локальной сети, вы можете использовать mDNS вместо freedomain., @Gerben


1 ответ


1

Вам не нужен IP-адрес сервера. Вы подключаетесь с именем сервера, и DNS преобразует его в IP-адрес. Смотрите пример WiFiClient библиотеки ESP8266WiFi

,

В качестве примечания: несколько доменов преобразуются в один и тот же IP-адрес с помощью DNS. Таким образом, один сервер с одним публичным IP-адресом может обслуживать тысячи веб-сайтов. Когда вы открываете какой-либо веб-сайт в браузере, сервер должен знать, на какой веб-сайт вы ссылаетесь, и это определяется в заголовке HTTP-запроса. Поэтому при создании вашего [собственного HTTP-запроса GET](https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/WiFiClient/WiFiClient.ino#L75) вы указываете метод (GET), путь к скрипту и имя хоста (Host: ...), @gabonator

эта сторона не была тем, что мне не хватает, я попробую указать хост в запросе, @Abdo Magdy

имя хоста указывается в заголовке Host. Что неясно в примере WiFiClient?, @Juraj