By | 04/10/2020

EEPROM adalah memori pada mikrokontroler yang berfungsi untuk menyimpan data secara permanen. Meskipun Kalian mematikan atau merestart-nya. Kali ini kita akan membahas bagaimana cara menyimpan dan membaca Data String atau Float pada EEPROM ESP32. Cara ESP32 Simpan EEPROM String

Arduino, Cara Menyimpan Data String EEPROM

Pada library EEPROM yang tersedia untuk ESP32 atau ESP866 tidak ada class untuk langsung menulis atau membaca data berupa string atau flot seperti pada library EEPROM arduino. Sehingga kita akan mengakali nya dengan membuat fungsi sendiri untuk menyimpan dan membaca data berupa String atau Float pada ESP32.

Tutorial ESP32 Menyimpan Data String dan Float EEPROM

Bagaimana Cara Menyimpan Data String atau Float pada EEPROM ?

Tutorial ESP32 Mengakses Membaca dan Menyimpan EEPROM

EEPROM pada ESP8266 memiliki kapasitas hingga 512 bytes sama dengan Arduino yang menggunakan IC Atmega168 atau Atmega8, sedangkan yang menggunakan IC Atmega328 memiliki kapasitas EEPROM 1024 bytes atau setara dengan 1Kb. ESP32 juga memiliki kapasitas EEPROM sebesar 512 bytes yang setiap alamatnya dapat di isi nilai 0 – 255.

Sehingga supaya kita bisa menyimpan data String atau float, maka setiap karakter akan kita simpan pada masing masing alamat yang berbeda. misalkan karakter “Kamu” Kita akan menyimpan masing masing huruf pada alamat 1, 2, 3, 4, dan 5.

Kenapa sampai 5 ? karena alamat terakhir akan kita simpan dengan “\0” sebagai tanda akhir dari data string pada bahasa C.

Cara Membaca Data String atau Float Pada EEPROM

Tutorial Cara Membaca data string pada EEPROM sama dengan cara Menyimpanya. Kita juga akan membaca masing-masing alamat yang digunakan untuk menyimpan data string atau float. Kemudian kita akan membaca beberapa alamat sekaligus sesuai panjang dari data string yang kita gunakan. Tutorial Cara ESP32 EEPROM String dan Float

Bahan-Bahan

  1. Modul Trainer ESP32 (Beli Via Tokopedia) atau Modul Wemos D1 Mini ESP32 (Beli Via Tokopedia)
  2. Arduino IDE
  3. Aplikasi Bluetooth (Ospsional untuk Input data saja)
  4. Tutorial ESP32 String EEPROM

Tutorial Membaca, Menyimpan data string Pada EEPROM ESP32

Cara Mengakses EEPROM Arduino

  1. Siapkan alat dan bahan yang diperlukan untuk ujicoba menulis dan membaca data pad EEPROM
  2. Gunakan Bluetooth pada ESP32 atau Serial monitor untuk memasukan data String atau float
  3. Buatlah dan upload program berikut untuk membaca sekaligus menulis EEPROM pada ESP32
    (Silahkan Share terlebih dahulu supaya code terlihat!)

[sociallocker id=”4033″]

#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

#include <EEPROM.h>

BluetoothSerial SerialBT;

String Data;

void EEPROM_put(char add, String data);
String EEPROM_get(char add);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  SerialBT.begin("ESP32 BT anakkendali.com");
  EEPROM.begin(512);
  delay(10);
}

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

  //Input Data Dari Bluetooth
  while (SerialBT.available() > 0) {
    char c = SerialBT.read();
    Data += c;
  }
  if (Data.length() > 0) {
    Serial.print("Berhasil Menyimpan Data: ");
    Serial.println(Data);
    EEPROM_put(10, Data);
    Data = "";
  }

  // Input Data Dari Serial Monitor
  while (Serial.available() > 0) {
    char c = Serial.read();
    Data += c;
  }
  if (Data.length() > 0) {
    Serial.print("Berhasil Menyimpan Data: ");
    Serial.println(Data);
    EEPROM_put(10, Data);
    Data = "";
  }

  String saveddata;
  saveddata = EEPROM_get(10);
  Serial.print ("Data Yang Tersimpan : ");
  Serial.println(saveddata);
  delay(1000);
}

void EEPROM_put(char add, String data)
{
  int _size = data.length();
  int i;
  for (i = 0; i < _size; i++)
  {
    EEPROM.write(add + i, data[i]);
  }
  EEPROM.write(add + _size, '\0'); //Add termination null character for String Data
  EEPROM.commit();
}


String EEPROM_get(char add)
{
  int i;
  char data[100]; //Max 100 Bytes
  int len = 0;
  unsigned char k;
  k = EEPROM.read(add);
  while (k != '\0' && len < 500) //Read until null character
  {
    k = EEPROM.read(add + len);
    data[len] = k;
    len++;
  }
  data[len] = '\0';
  return String(data);
}

[/sociallocker]

Untuk hasilnya dapat dilhat pada gambar dibawah ini !

Arduino, Kalibrasi Sensor Garis EEPROM

Tutorial ESP32 Menyimpan Data String dan Float EEPROM

Tutorial Arduino Set Alarm RTC DS3231 dengan Android Bluetooth dan EEPROM

Saya cukupkan artikel kali ini, semoga bermanfaat buat kalian dan jangan lupa untuk membagikan artikel ini jika kalian merasa terbantu.

Salam Anak Kendali!!

2 Replies to “Tutorial ESP32 Menyimpan Data String dan Float EEPROM”

  1. elsa

    halo kak mau bertanya kak pernah coba kirim data ke server dengan esp32?? atau lora sx1278 esp32 jadi gateway???. mohon dibalas ya hehe,soalnya lagi kerja skripsi nih butuh pencerahan, terima kasiih

    Reply
    1. herul Post author

      bisa, kalo butuh jasa chat via wa aja ya.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *