серверы, бесплатные домены с ESP
Допустим, у меня есть такая рутина:
Я написал PHP-коды для бесплатного домена, которые:
Ожидание запроса типа
url/control?ToDo="someMethod",parm=Something
(с отправкой пароля для безопасности) и изменит значения базы данных для ToDo и параметров, как указано в запросеДождитесь запроса типа
url/veiw
(с указанием пароля для безопасности) и отправьте значения датчиков, которые хранятся в базе данныхОжидание запроса типа
url/esp?Doin="someMethod",sens1=Something,sens2= .....
и изменение значений базы данных дляdoin
и датчиков, как указано в запросеОжидание запроса типа
url/check
и отправка значенийToDo
иparms
, которые хранятся в базе данных
Проблема в коде ESP или узла, для подключения к которому им нужен IP IP, который я знаю, принадлежит бесплатному провайдеру доменов, а не моей ссылке
Полагаю, мне не хватает некоторых знаний о серверах (в том числе и на английском, но это не по теме XD) и IP-вещах
Кто-нибудь может помочь с хорошо документированным методом или API?
Редактировать:
Было 2 основные проблемы:
1- Мне нужно больше узнать о HTTP-запросах, как они выглядят и что должно быть в заголовках
2- После того, как я создал хорошие и попробовал, проблема была в моем подключении к бесплатному серверу домена. Я проверил, чтобы выяснить, что сервер не работает, поэтому я перешел на надежный сервер, и это сработало.
Думаю, на этом пока всё. Спасибо вам всем.
@Abdo Magdy, 👍-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
- Несколько клиентских серверов через Wi-Fi
- Простой запрос GET с ESP8266HTTPClient
- ESP8266 TCP-соединение WiFiClient проблема
- ESP8266 отправляет TCP HEX-пакет из 4 символов
- Чтение данных из Google Таблиц с помощью Nodemcu
- NodeMCU ESP8266 отключился от WiFi после нескольких часов работы
- Пример класса ESP8266 ASyncTCP
- ESP8266 отключается через несколько часов
проблема в том, что вы просто не предоставили "шлюз" для модуля esp? Например, вы показываете "прямую ссылку" с мобильного телефона на "n.freedomainprovider.com", мобильный телефон может подключиться либо через мобильную сеть передачи данных, либо через маршрутизатор Wi-Fi к Интернету. Модуль esp не использует мобильные данные, ему нужно подключиться к Интернету через какой-то маршрутизатор (как и любое другое устройство Wi-Fi)., @nPn
Если вы используете его только в локальной сети, вы можете использовать mDNS вместо freedomain., @Gerben