В этом руководстве показано, как получить MAC-адрес ESP32 или ESP8266 с помощью Arduino IDE. Мы также покажем, как изменить MAC-адрес вашей микросхемы.

MAC-адрес означает адрес управления доступом к среде и является уникальным идентификатором оборудования, который идентифицирует каждое устройство в сети. MAC-адреса состоят из шести групп из двух шестнадцатеричных цифр, разделенных двоеточиями, например: 30:AE:A4:07:0D:64.
MAC-адреса назначаются производителями, но вы также можете назначить свой MAC-адрес своей плате. Однако каждый раз, когда плата сбрасывается, она возвращается к своему первоначальному MAC-адресу. Таким образом, вам нужно включить код для установки собственного MAC-адреса в каждой программе.
Чтобы получить MAC-адрес своей платы, просто загрузите следующий код в ESP32 или ESP8266. Код совместим с обеими микросхемами.
#ifdef ESP32
#include <WiFi.h>
#else
#include <ESP8266WiFi.h>
#endif
void setup(){
Serial.begin(115200);
Serial.println();
Serial.print("ESP Board MAC Address: ");
Serial.println(WiFi.macAddress());
}
void loop(){
}
После загрузки кода откройте последовательный монитор со скоростью 115200 бод. Нажмите на плате кнопку RESET или кнопку EN. MAC-адрес должен быть выведен в последовательном мониторе, как показано на следующем изображении.

Теперь вы знаете, как получить MAC-адрес платы ESP32 или ESP8266. Но в некоторых приложениях может быть полезно дать вашим платам собственный MAC-адрес. Однако, как объяснялось ранее, это действие полностью не перезаписывает MAC-адрес, установленный производителем. Таким образом, каждый раз, когда вы сбрасываете плату или загружаете новый код, она возвращается к своему MAC-адресу по умолчанию.
Следующий код устанавливает пользовательский MAC-адрес для ESP32.
#include <WiFi.h>
#include <esp_wifi.h>
uint8_t newMACAddress[] = {0x30, 0xAE, 0xA4, 0x07, 0x0D, 0x66};
void setup(){
Serial.begin(115200);
Serial.println();
WiFi.mode(WIFI_STA);
Serial.print("[OLD] ESP32 Board MAC Address: ");
Serial.println(WiFi.macAddress());
esp_wifi_set_mac(ESP_IF_WIFI_STA, &newMACAddress[0]);
Serial.print("[NEW] ESP32 Board MAC Address: ");
Serial.println(WiFi.macAddress());
}
void loop(){
}
После загрузки кода откройте последовательный монитор со скоростью 115200 бод. Перезагрузите ESP32, и вы должны получить его старый и новый MAC-адрес.

Следующий код устанавливает пользовательский MAC-адрес для ESP8266.
#include <ESP8266WiFi.h>
uint8_t newMACAddress[] = {0x30, 0xAE, 0xA4, 0x07, 0x0D, 0x66};
void setup(){
Serial.begin(115200);
Serial.println();
WiFi.mode(WIFI_STA);
Serial.print("[OLD] ESP8266 Board MAC Address: ");
Serial.println(WiFi.macAddress());
// Для режима точки доступа (AP)
//wifi_set_macaddr(SOFTAP_IF, &newMACAddress[0]);
// Для режима станции
wifi_set_macaddr(STATION_IF, &newMACAddress[0]);
Serial.print("[NEW] ESP8266 Board MAC Address: ");
Serial.println(WiFi.macAddress());
}
void loop(){
}
После загрузки кода откройте последовательный монитор со скоростью 115200 бод. Перезагрузите ESP8266, и вы должны получить его старый и новый MAC-адрес.

В этом кратком руководстве мы показали, как получить MAC-адрес производителя ESP32 и ESP8266 с помощью Arduino IDE. Вы также узнали, как установить собственный MAC-адрес для ваших микросхем.
© digitrode.ru