環境:
設備:ESP8266-12F
SDK: ESP8266-RTOS-SDK 3.0
在ESP8266 RTOS SDK中已SoftAp方式創建AP熱點,默認的IP地址爲192.168.4.1,如果將IP地址修改爲自定義的地址段,可以通過以下兩種方式設置:
- 修改SDK
在tcpip_adapter_init()函數中修改IP地址段
void tcpip_adapter_init(void)
{
if (tcpip_inited == false) {
tcpip_inited = true;
tcpip_init(NULL, NULL);
memset(esp_ip, 0, sizeof(tcpip_adapter_ip_info_t)*TCPIP_ADAPTER_IF_MAX);
memset(esp_ip_old, 0, sizeof(tcpip_adapter_ip_info_t)*TCPIP_ADAPTER_IF_MAX);
//在這裏修改IP地址
IP4_ADDR(&esp_ip[TCPIP_ADAPTER_IF_AP].ip, 192, 168 , 121, 1);
IP4_ADDR(&esp_ip[TCPIP_ADAPTER_IF_AP].gw, 192, 168 , 121, 1);
IP4_ADDR(&esp_ip[TCPIP_ADAPTER_IF_AP].netmask, 255, 255 , 255, 0);
dhcp_check_timer = wifi_timer_create("check_dhcp", wifi_task_ms_to_ticks(500), true, NULL, tcpip_adapter_dhcpc_done);
if (!dhcp_check_timer) {
ESP_LOGI(TAG, "TCPIP adapter timer create error");
}
}
}
- 調用API修改
//關閉DHCP
ESP_ERROR_CHECK(tcpip_adapter_dhcps_stop(TCPIP_ADAPTER_IF_AP));
//填充結構體tcpip_adapter_ip_info_t
IP4_ADDR(&tcpip_adapter_ip_info.ip, 192,168,121,1);
IP4_ADDR(&tcpip_adapter_ip_info.gw, 192,168,121,1);
IP4_ADDR(&tcpip_adapter_ip_info.netmask, 255,255,255,0);
//設置IP地址
ESP_ERROR_CHECK(tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_AP,&tcpip_adapter_ip_info));
//啓動dhcp
ESP_ERROR_CHECK(tcpip_adapter_dhcps_start(TCPIP_ADAPTER_IF_AP));