fbpixel
Etiquetas:
0
(0)

A EEPROM é uma memória interna do microcontrolador ESP8266 que permite manter os dados na memória após reiniciar a placa. Quando se trabalha com microcontroladores, é interessante manter na memória dados como o identificador e a palavra-passe do Wifi.

Material

  • Computador
  • NodeMCU ESP8266
  • Cabo USB A Macho/Micro B Macho

Princípio de funcionamento

O microcontrolador ESP8266 tem uma zona de memória Flash para simular a EEPROM do Arduino. É um local especial de memória no microcontrolador onde os dados permanecem guardados mesmo após a placa ser desligada. É importante observar que a EEPROM tem tamanho e vida útil limitados. As células de memória podem ser lidas tantas vezes quanto necessário, mas o número de ciclos de gravação é limitado a 100.000. É aconselhável atentar ao tamanho dos dados armazenados e à frequência com que se pretende atualizá-los. A EEPROM da ESP8266 tem 4MB.


Se quiser armazenar os dados de um conjunto de sensores para traçar gráficos em tempo real, é melhor optar por um módulo de cartão SD.

Código com a biblioteca EEPROM

Para interagir com a EEPROM do ESP8266, podemos usar a biblioteca EEPROM.h, muito semelhante à do Arduino, mas com duas diferenças: antes de utilizar a função, devemos inicializar o tamanho da memória com begin(); além disso, a função update não existe,

  • begin() a inicializar o tamanho da memória
  • put() para escrever
  • get() para ler

Outras funções de biblioteca podem ser úteis dependendo da sua utilização da EEPROM.

//Libraries
#include <EEPROM.h>//https://github.com/esp8266/Arduino/blob/master/libraries/EEPROM/EEPROM.h

//Constants
#define EEPROM_SIZE 12

void setup() {
  //Init Serial USB
  Serial.begin(115200);
  Serial.println(F("Initialize System"));
  //Init EEPROM
  EEPROM.begin(EEPROM_SIZE);

  //Write data into eeprom
  int address = 0;
  int boardId = 18;
  EEPROM.put(address, boardId);
  address += sizeof(boardId); //update address value

  float param = 26.5;
  EEPROM.put(address, param);
  EEPROM.commit();

  //Read data from eeprom
  address = 0;
  int readId;
  EEPROM.get(address, readId);
  Serial.print("Read Id = ");
  Serial.println(readId);
  address += sizeof(readId); //update address value

  float readParam;
  EEPROM.get(address, readParam); //readParam=EEPROM.readFloat(address);
  Serial.print("Read param = ");
  Serial.println(readParam);

  EEPROM.end();
}

void loop() {}

Resultado

Os valores lidos correspondem aos valores armazenados. Pode remover a parte de escrita e executar o código novamente para verificar se os valores estão guardados na memória.

Aplicações

  • Salvar o ssdi e a palavra-passe da rede Wifi na memória do ESP8266

Fontes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?