Отправить данные на локальный хост компьютера с помощью Wi-Fi-модуля ESP-01.
Я использую Linux-машину с установленным локальным php-сервером. Машина Wi-Fi подключена к модулю ESP-01 (режим точки доступа), и я могу отправить несколько данных на Arduino через ESP-01, установленный как:
sendData("AT+RST\r\n",2000,DEBUG); // сброс модуля
sendData("AT+CWMODE=2\r\n",1000,DEBUG); // настраиваем как точку доступа
sendData("AT+CIFSR\r\n",1000,DEBUG); // получаем IP-адрес
sendData("AT+CIPMUX=1\r\n",1000,DEBUG); // настройка для нескольких соединений
sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG); // включаем сервер на порту 80
PHP-сервер может отправлять данные методом GET, а Arduino получает PIN=11:
http://192.168.4.1:80/?pin=11
Но теперь я хотел бы отправить на php-сервер данные с Arduino. Я пробовал эту конфигурацию, но в моем скетче появляется ошибка.
sendData("AT+CIPSTART=0,'TCP','http://localhost',80\r\n",1000,DEBUG);
Последовательный монитор:
ERROR
AT+CIPSTART=0,'TCP','http://localhost/test_php',80
Link type ERROR
Как я могу отправлять и получать данные с помощью моего модуля ESP-01?
@Teddol, 👍0
2 ответа
«localhost» — это имя, связанное с интерфейсом обратной связи вашего компьютера. То есть 127.0.0.1.
Это не адрес вашего компьютера в сети. Единственный компьютер, который может общаться с «localhost», — это сам компьютер.
Вместо «localhost» вы должны использовать IP-адрес вашего компьютера (или полное доменное имя, которое преобразуется в IP-адрес вашего компьютера).
И вы не можете открыть TCP-соединение с URL-адресом. Вы открываете TCP-соединение с IP-адресом или полным доменным именем.
Вам действительно следует изучить основы IP-сетей, прежде чем пытаться писать для них программное обеспечение.
Поскольку ваш компьютер может обмениваться данными с ESP8266 по адресу 192.168.4.1, я предполагаю, что вы используете ESP8266 в режиме SOFTAP и у вас есть интерфейс Wi-Fi, подключенный к этой точке доступа. Если да, то интерфейсу Wi-Fi будет назначен адрес 192.168.4.x. Это адрес, который вы должны открыть с помощью TCP-соединения через порт 80, чтобы подключиться к вашему серверу Apache.
Например:
sendData("AT+CIPSTART=0,'TCP','192.168.4.3',80\r\n",1000,DEBUG);
Затем вы можете создать подходящий HTTP-запрос для отправки данных.
Откройте командную строку и введите ipconfig
В разделе IPv4-адрес
вы можете увидеть IP-адрес вашего компьютера.
Этот IP-адрес является адресом локального хоста (поскольку ваш компьютер является «сервером» в вашей локальной/домашней сети).
Не забудьте настроить XAMP/WAMP для прослушивания специальных адресов. И, конечно же, если вы хотите использовать localhost, ваш компьютер должен быть включен.
Да, компьютер может отправлять сообщения, но как Arduino может сделать то же самое с компьютером
Да, может. ПК (локальный хост) — это сервер, а Arduino — клиент, например Stackexchange — хост, а ваш компьютер — клиент (для Stackexchange). Надеюсь, ты это понял
ESP не подключен к моей домашней сети, и мне это не нужно.
Вы можете использовать общедоступный сервер, но вам необходимо знать IP-адрес сервера.
он подключается к esp8266 как точка доступа. поэтому не адрес в домашней сети, а адрес интерфейса Wi-Fi, подключенного к esp8266., @Juraj
- ESP8266 не подключается к Wi-Fi
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Можно ли отключить WiFi на ESP8266?
- Как отключить или остановить точку доступа в ESP8266?
- ESP8266 — действительно ли у него по умолчанию плохой радиус действия Wi-Fi?
- Как подключить ESP8266 с помощью адаптера ESP-01 к Arduino Uno?
- ESP8266 на Wi-Fi без пароля, возможно?
- ESP8266 Аналоговое чтение мешает Wi-Fi?
я заменил localhot на 127.0.0.1. Терминал возвращает ту же ошибку Тип ссылки, @Teddol
Я сказал *не* localhost., @Majenko
И вы удалили протокол., @Majenko
ОШИБКА AT+CIPSTART=0,'TCP','127.0.0.1/test_php',80 Тип ссылки ОШИБКА, @Teddol
Вы читаете? Я сказал НЕ использовать адрес локального хоста. Используйте IP-адрес вашего компьютера в сети. И вставьте обратно в протокол, который вы удалили., @Majenko
Хотя вы используете необработанные команды TCP, чтобы попытаться получить доступ к URL-адресу. Вам нужен *только* IP-адрес . И *не* 127.0.0.1, @Majenko
Прежде чем приступать к работе с сетями, изучите основы работы в сети., @Majenko
Извините, но я новичок в Arduino и пытаюсь понять, как он работает с ESP-01 и удаленным php-сервером. ESP не подключен к моей домашней сети, и я этого не хочу. мне нужна дополнительная помощь..., @Teddol
Если ваш компьютер может обмениваться данными с ESP8266, между ними должна быть какая-то сеть., @Majenko
Да, компьютер может отправлять сообщения, но как Arduino может сделать то же самое с компьютером?, @Teddol
Открыв соединение с IP-адресом вашего ПК., @Majenko