Implementasi dan Cara Menulis Memori EEPROM pada ESP8266 dan ESP32 dalam Proyek Internet of Things
Pendahuluan
Dalam proyek Internet of Things (IoT), penyimpanan data yang persisten seringkali menjadi kebutuhan penting. Salah satu cara untuk mencapai ini adalah dengan menggunakan memori EEPROM pada perangkat ESP8266 dan ESP32. EEPROM (Electrically Erasable Programmable Read-Only Memory) adalah tipe memori yang memungkinkan Anda untuk menyimpan dan mengakses data secara permanen bahkan ketika perangkat mati atau dipulihkan. Pada artikel ini, kita akan membahas implementasi dan cara menulis memori EEPROM pada ESP8266 dan ESP32 dalam proyek Internet of Things.
Pengenalan ESP8266 dan ESP32
ESP8266 dan ESP32 adalah modul Wi-Fi populer yang banyak digunakan dalam proyek IoT. Kedua modul ini memiliki dukungan yang kuat untuk berbagai protokol komunikasi dan antarmuka perangkat keras yang memudahkan pengembangan aplikasi IoT. Selain itu, kedua modul ini dilengkapi dengan memori EEPROM internal yang dapat digunakan untuk menyimpan data yang memerlukan penyimpanan persisten.
Penggunaan Memori EEPROM pada ESP8266
ESP8266 memiliki memori EEPROM internal dengan kapasitas 4KB yang dapat digunakan untuk menyimpan data secara permanen. Pada ESP8266, Anda dapat menggunakan library EEPROM yang telah disediakan oleh Arduino IDE untuk mengakses dan mengelola data pada memori EEPROM.
Berikut adalah langkah-langkah implementasi dan cara menulis memori EEPROM pada ESP8266:
- Langkah Pertama:
- Pasang modul ESP8266 pada papan pengembangan (seperti NodeMCU) dan hubungkan ke komputer melalui kabel USB.
- Pastikan Anda telah menginstal Arduino IDE dan memilih board ESP8266 dalam pengaturan papan Arduino IDE.
- Kode Sumber Proyek:
- Buatlah sketsa baru pada Arduino IDE dan masukkan kode berikut:
#include <EEPROM.h> // Alamat awal memori EEPROM yang akan digunakan #define EEPROM_ADDRESS 0 // Struktur data yang akan disimpan dalam memori EEPROM struct Data { int value1; float value2; // Tambahkan variabel data lain yang diperlukan }; Data data; void setup() { Serial.begin(115200); // Membaca data dari memori EEPROM EEPROM.begin(sizeof(Data)); EEPROM.get(EEPROM_ADDRESS, data); // Menampilkan data yang dibaca dari memori EEPROM Serial.print("Data sebelum ditulis: "); Serial.println(data.value1); Serial.println(data.value2); // Mengubah data yang akan disimpan data.value1 = 10; data.value2 = 3.14; // Menulis data ke memori EEPROM EEPROM.put(EEPROM_ADDRESS, data); EEPROM.commit(); // Membaca data setelah ditulis EEPROM.get(EEPROM_ADDRESS, data); // Menampilkan data setelah ditulis Serial.print("Data setelah ditulis: "); Serial.println(data.value1); Serial.println(data.value2); } void loop() { // Kode tambahan untuk loop program (jika diperlukan) }
- Penjelasan Kode:
- Pada langkah ini, kita menggunakan struktur data Data sebagai contoh. Anda dapat menambahkan variabel data lain yang diperlukan sesuai dengan kebutuhan proyek Anda.
- Dalam fungsi setup(), kita membaca data yang ada dalam memori EEPROM menggunakan EEPROM.get(). Kemudian, kita menampilkan data tersebut melalui Serial Monitor.
- Selanjutnya, kita mengubah data yang akan disimpan dan menulisnya ke memori EEPROM menggunakan EEPROM.put(). Setelah itu, kita melakukan EEPROM.commit() untuk menyimpan perubahan secara permanen.
- Terakhir, kita membaca kembali data dari memori EEPROM untuk memastikan data berhasil ditulis dengan menggunakan EEPROM.get() dan menampilkannya melalui Serial Monitor.
- Uji Coba:
- Unggah kode ke modul ESP8266 dan buka Serial Monitor pada Arduino IDE.
- Anda akan melihat data sebelum ditulis dan data setelah ditulis pada Serial Monitor.
- Pastikan data yang ditampilkan sesuai dengan yang diharapkan.
Penggunaan Memori EEPROM pada ESP32
ESP32 juga memiliki memori EEPROM internal yang dapat digunakan untuk menyimpan data secara permanen. Namun, pada ESP32, kita tidak dapat menggunakan library EEPROM standar yang digunakan pada ESP8266. Sebagai gantinya, kita dapat menggunakan library Preferences yang disediakan oleh ESP32 Arduino Core untuk mengakses memori EEPROM.
Berikut adalah langkah-langkah implementasi dan cara menulis memori EEPROM pada ESP32:
- Langkah Pertama:
- Pasang modul ESP32 pada papan pengembangan (seperti NodeMCU-32S) dan hubungkan ke komputer melalui kabel USB.
- Pastikan Anda telah menginstal Arduino IDE dan memilih board ESP32 dalam pengaturan papan Arduino IDE.
- Kode Sumber Proyek:
- Buatlah sketsa baru pada Arduino IDE dan masukkan kode berikut:
#include <Preferences.h> // Nama penyimpanan (namespace) yang akan digunakan Preferences preferences; // Key data yang akan disimpan dalam memori EEPROM #define KEY_VALUE1 "value1" #define KEY_VALUE2 "value2" // Tambahkan key data lain yang diperlukan void setup() { Serial.begin(115200); // Membaca data dari memori EEPROM preferences.begin("myData", false); int value1 = preferences.getInt(KEY_VALUE1, 0); float value2 = preferences.getFloat(KEY_VALUE2, 0.0); // Baca data lain yang diperlukan // Menampilkan data yang dibaca dari memori EEPROM Serial.print("Data sebelum ditulis: "); Serial.println(value1); Serial.println(value2); // Mengubah data yang akan disimpan value1 = 10; value2 = 3.14; // Ubah data lain yang diperlukan // Menulis data ke memori EEPROM preferences.putInt(KEY_VALUE1, value1); preferences.putFloat(KEY_VALUE2, value2); // Tulis data lain yang diperlukan // Simpan perubahan preferences.end(); // Membaca data setelah ditulis preferences.begin("myData", false); value1 = preferences.getInt(KEY_VALUE1, 0); value2 = preferences.getFloat(KEY_VALUE2, 0.0); // Baca data lain yang diperlukan // Menampilkan data setelah ditulis Serial.print("Data setelah ditulis: "); Serial.println(value1); Serial.println(value2); } void loop() { // Kode tambahan untuk loop program (jika diperlukan) }
- Penjelasan Kode:
- Pada langkah ini, kita menggunakan Preferences untuk mengakses memori EEPROM pada ESP32. Kita menggunakan namespace (penyimpanan) dengan nama “myData“.
- Dalam fungsi setup(), kita membaca data yang ada dalam memori EEPROM menggunakan preferences.getInt() dan preferences.getFloat(). Kemudian, kita menampilkan data tersebut melalui Serial Monitor.
- Selanjutnya, kita mengubah data yang akan disimpan dan menulisnya ke memori EEPROM menggunakan preferences.putInt() dan preferences.putFloat().
- Terakhir, kita menyimpan perubahan yang dilakukan dengan menggunakan preferences.end().
Setelah itu, kita membaca kembali data dari memori EEPROM untuk memastikan data berhasil ditulis dengan menggunakan preferences.getInt() dan preferences.getFloat().
- Uji Coba:
- Unggah kode ke modul ESP32 dan buka Serial Monitor pada Arduino IDE.
- Anda akan melihat data sebelum ditulis dan data setelah ditulis pada Serial Monitor.
- Pastikan data yang ditampilkan sesuai dengan yang diharapkan.
Kesimpulan
Pada artikel ini, kita telah membahas implementasi dan cara menulis memori EEPROM pada ESP8266 dan ESP32 dalam proyek Internet of Things. Melalui penggunaan memori EEPROM, kita dapat menyimpan data secara permanen dan mengaksesnya bahkan setelah perangkat dimatikan atau dipulihkan. Dalam proyek IoT, memori EEPROM dapat digunakan untuk menyimpan konfigurasi, pengaturan, log, atau data lain yang memerlukan penyimpanan persisten. Dengan pemahaman yang baik tentang cara menggunakan memori EEPROM pada ESP8266 dan ESP32, Anda dapat mengembangkan aplikasi IoT yang lebih kuat dan andal.