Как использовать php file_get_contents с ESP8266
Часть моего проекта требует получения данных из ESP8266 с помощью PHP-скрипта. Я протестировал этот скрипт и не знаю, почему я могу получить данные в элементе iframe и ничего с помощью функции file_get_content. В элементе iframe мой браузер отображает «Привет, мой друг!» как хотелось:
Режим сервера ESP8266 по адресу 192.168.4.1, часть кода:
String webpage = "<div id='div1'>Hello</div>";
webpage += "<div id='div2'>my</div>";
webpage += "<div id='div3'>friend!</div>";
String cipSend = "AT+CIPSEND=";
cipSend += 0;
cipSend += ",";
cipSend +=webpage.length();
cipSend +="\r\n";
sendData(cipSend,1000,DEBUG);
sendData(webpage,1000,DEBUG);
sendData("AT+CIPCLOSE=0\r\n", 100, DEBUG);
PHP-скрипт:
<html>
<body>
<iframe src="http://192.168.4.1/?cmd=SS,0,0,"></iframe>
<?php
$url="http://192.168.4.1/?cmd=SS,0,0,";
$lines_string = file_get_contents($url);
echo htmlspecialchars($lines_string);
?>
</body>
</html>
Если я заменю URL на:
$url=https://arduino.stackexchange.com
Он работает со скриптом PHP, так в чем проблема с ESP8266?
@Teddol, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 1
Чтобы обработать запрос с помощью php, вы должны отправить действительный ответ HTTP. Браузер терпит слишком многое.
String webpage = "HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n";
webpage += "<div id='div1'>Hello</div>";
,
@Juraj
ИДЕАЛЬНЫЙ !!! Я могу сказать «Привет» с помощью <код> file_get_contents("http://192.168.4.1/?cmd=SS,0,0,"); </код>, @Teddol
Смотрите также:
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
Где работает PHP? Я думаю, что ваш PHP работает на удаленном сервере, а ESP находится в локальной сети (за NAT) с локальным IP-адресом. Удаленный сервер не может получить доступ к вашей локальной сети, а ваш браузер — может., @Gerben
Сценарий Php работает на компьютере Linux с домашним сервером PHP. Я могу отправить все, что захочу, на ESP8266 по Wi-Fi., @Teddol
Ваш домашний сервер находится в той же сети (/подсети)? Можете ли вы свернуть/gweet URL-адрес со своего домашнего сервера?, @Gerben
Нет домашней сети. Просто php-сервер (локальный хост) и ESP8266 в качестве точки доступа., @Teddol