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.
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
- Modul Trainer ESP32 (Beli Via Tokopedia) atau Modul Wemos D1 Mini ESP32 (Beli Via Tokopedia)
- Arduino IDE
- Aplikasi Bluetooth (Ospsional untuk Input data saja)
- Tutorial ESP32 String EEPROM
Tutorial Membaca, Menyimpan data string Pada EEPROM ESP32
- Siapkan alat dan bahan yang diperlukan untuk ujicoba menulis dan membaca data pad EEPROM
- Gunakan Bluetooth pada ESP32 atau Serial monitor untuk memasukan data String atau float
- 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 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!!
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
bisa, kalo butuh jasa chat via wa aja ya.