我目前在为 ESP8266 设置主机名时遇到问题。 我的 STM32 通过 Uart 连接到 ESP,连接正常。所以我可以使用 AT 命令设置接入点或连接到 Wifi。问题是我总是需要弄清楚我的 IP 并将 IP 放在浏览器中,这很不舒服。
我花了最后几天来解决这个问题,并查看了一些 Arduino/ESP 库,但没有成功。
在代码中,有一些行被我尝试使用的一些 AT 命令注释掉了。但那些没有工作或有问题。 我放在命令后面的 ESP 的回复
...some other code
Uart_sendstring("AT+RST\r\n", wifi_uart);
for (int i=0; i<5; i++)
{
HAL_Delay(1000);
}
/********* AT **********/
Uart_flush(wifi_uart);
Uart_sendstring("AT\r\nAT\r\n", wifi_uart);
while(!(Wait_for("OK\r\n", wifi_uart)));
Uart_flush(wifi_uart);
if (AP == CONNECT_AP)
{
//test
Uart_flush(wifi_uart);
//Uart_sendstring("AT+MDNS=1, my_test, iot, 80\r\n", wifi_uart); ->reply: get hostname fail when mdns
//Uart_sendstring("AT+CWHOSTNAME=my_test\r\n", wifi_uart); -> reply: ERROR
//Uart_sendstring("AT+CWHOSTNAME?\r\n", wifi_uart); -> reply: ERROR
while (!(Wait_for("OK\r\n", wifi_uart)));
//test end
/********* AT+CWMODE=1 **********/
Uart_flush(wifi_uart);
Uart_sendstring("AT+CWMODE=1\r\n", wifi_uart); // connect to AP
while (!(Wait_for("OK\r\n", wifi_uart)));
/********* AT+CWJAP="SSID","PASSWD" **********/
Uart_flush(wifi_uart);
sprintf (data, "AT+CWJAP=\"%s\",\"%s\"\r\n", SSID, PASSWD);
Uart_sendstring(data, wifi_uart);
while (!(Wait_for("OK\r\n", wifi_uart)));
/********* AT+CIFSR **********/
// Zum Anzeigen von IP und Mac-Adresse
Uart_flush(wifi_uart);
Uart_sendstring("AT+CIFSR\r\n", wifi_uart);
while (!(Wait_for("CIFSR:STAIP,\"", wifi_uart)));
while (!(Copy_upto("\"",My_IP, wifi_uart)));
while (!(Wait_for("OK\r\n", wifi_uart)));
}
else if (AP == OPEN_AP)
{
//test
Uart_flush(wifi_uart);
//Uart_sendstring("AT+MDNS=1, my_test, iot, 80\r\n", wifi_uart);
//Uart_sendstring("AT+CWHOSTNAME=my_test\r\n", wifi_uart);
//Uart_sendstring("AT+CWHOSTNAME?\r\n", wifi_uart);
while (!(Wait_for("OK\r\n", wifi_uart)));
//end test
/********* AT+CWMODE=2 **********/
Uart_flush(wifi_uart);
Uart_sendstring("AT+CWMODE=2\r\n", wifi_uart); // open AP
while (!(Wait_for("OK\r\n", wifi_uart)));
/********* AT+CWJAP="SSID","PASSWD" **********/
Uart_flush(wifi_uart);
sprintf (data, "AT+CWSAP=\"%s\",\"%s\",%d,%d\r\n", SSID, PASSWD, 11, 3);
Uart_sendstring(data, wifi_uart);
while (!(Wait_for("OK\r\n", wifi_uart)));
}
/********* AT+CIPMUX **********/
Uart_flush(wifi_uart);
Uart_sendstring("AT+CIPMUX=1\r\n", wifi_uart);
while (!(Wait_for("OK\r\n", wifi_uart)));
/********* AT+CIPSERVER **********/
Uart_flush(wifi_uart);
Uart_sendstring("AT+CIPSERVER=1,80\r\n", wifi_uart);
while (!(Wait_for("OK\r\n", wifi_uart)));
如果有人能帮我解决这个问题,我将不胜感激。
我对 mdns 主题和设置访问点不是很深入。 我只是想打开一个网站进行连接。
致以诚挚的问候 最大