ESP8266 zmiana adresu MAC

esp8266 pcb shield arduino

Moduł ESP 8266 w swojej potędze wielkości ma też wadę, którą odkryłem ostatnio, mianowicie, co w przypadku kiedy próbuję skomunikować ze sobą dwa moduły podłączone do tej samej sieci WIFI, a okazuje się, że oba maja taki sam adres IP?

Dyskwalifikuje to próby wymiany danych między nimi, gdyż jeden adres przypisany jest do dwóch osobnych urządzeń. Wynika to z tego, że oba moduły mają przypisany przez fabrykę ten sam adres fizyczny MAC. Może tak się zdarzyć, mi tak się zdarzyło niedługo po tym jak kupiłem nowe moduły ze sklepu. Niby świeżuteńkie i nowiutkie ale nie działają poprawnie….

Rozwiązanie jest proste. Trzeba zmienić adres MAC na nowy, unikalny w ramach jednej sieci, aby przypisać mu nowy, unikalny adres IP. Oto przykład jak zmienić adres MAC za pomocą komendy AT podłączając ESP do Arduino

    #define TIMEOUT     5000
    #include <SoftwareSerial.h>
     
    void setup() {

      Serial.begin(9600);
      Serial1.begin(115200);

      Serial1.setTimeout(TIMEOUT);

      if (wyslij("AT+RST", "OK", 200)) {
        Serial.println("Reset esp8266");
      }

      delay(1000);

      while (!wyslij("AT", "OK", 200)) {
        Serial.println("error on esp8266");
      }

      changeMac();
      //getIp();

    }
      
    void loop() {
      // put your main code here, to run repeatedly:
    }

    void changeMac() {
        
      Serial1.println("AT+CIPSTAMAC=\"18:aa:35:97:d4:e1\"");
      delay(1000);
      Serial.println(Serial1.readString());
        
    }

    void getIp() {

      Serial1.println("AT+CIFSR");
      delay(1000);
      Serial.println(Serial1.readString());
        
    }
      
    boolean wyslij(String Komenda_AT, char *Odpowiedz_AT, int czas_czekania) {
      Serial1.println(Komenda_AT);
      delay(czas_czekania);
      while (Serial1.available() > 0) {
        if (Serial1.find(Odpowiedz_AT)) {
          return 1;
        }
      }
      return 0;
    }

W kodzie jest zawarta również metoda do sprawdzenia aktualnego adresu „getIp”, którą trzeba odkomentować i wgrać ponownie po zmianie adresu.


Opublikowano: 19 lutego, 2019 przez Pan z Pogodna

Leave a Reply