Itu AT24C256 adalah I2C EEPROM (memori baca-only yang dapat diprogram secara listrik) yang memungkinkan Raspberry Pi untuk menyimpan dan mengambil data bahkan setelah kehilangan daya. Panduan ini menjelaskan cara menghubungkan AT24C256 Dengan Raspberry Pi, termasuk kabel, memungkinkan I2C, dan membaca/menulis data menggunakan Python.
Apa yang Anda Butuhkan
- Raspberry Pi (Model apa pun dengan dukungan GPIO dan I2C, mis., Pi 3, pi 4)
- AT24C256 Modul EEPROM
- Papan tempat memotong papan dan kabel jumper
- Python terpasang di raspberry pi
Langkah 1: Kabel AT24C256 ke Raspberry Pi
AT24C256 berkomunikasi menggunakan Protokol I2C.
Koneksi
Pin AT24C256 | Raspberry Pi Pin |
---|---|
Vcc | 3.3V (pin 1) |
Gnd | Ground (pin 6) |
SDA | SDA (Pin 3, GPIO2) |
Scl | SCL (pin 5, gpio3) |
WP (Write Protect) | GND (Nonaktifkan Perlindungan Tulis) |
Langkah 2: Aktifkan I2C di Raspberry Pi
- Buka alat konfigurasi Raspberry Pi:
sudo raspi-config
- Navigasikan ke Opsi Antarmuka> I2C dan mengaktifkannya.
- Reboot Raspberry Pi:
sudo reboot
Langkah 3: Instal perpustakaan yang diperlukan
- Perbarui Daftar Paket Raspberry Pi Anda:
sudo apt update && sudo apt upgrade -y
- Instal I2C Tools dan Python Libraries yang diperlukan:
sudo apt install -y i2c-tools python3-smbus
- Pastikan EEPROM AT24C256 terdeteksi pada bus I2C:
Eeprom akan muncul di 0x50 (atau alamat lain berdasarkan konfigurasi pin A0-A2).sudo i2cdetect -y 1
Langkah 4: Membaca dan Menulis Data ke AT24C256
AT24C256 menyimpan data di Memori 256kb, dan setiap byte diakses menggunakan alamat memori.
Menulis Data ke Eeprom
import smbus2
import time
EEPROM_ADDRESS = 0x50 # Default I2C address of AT24C256
bus = smbus2.SMBus(1) # Use I2C bus 1
def write_byte(address, data):
bus.write_i2c_block_data(EEPROM_ADDRESS, address, [data])
time.sleep(0.05) # EEPROM needs time to write
# Write data (example: store 'A' at address 0x00)
write_byte(0x00, ord('A'))
print("Data written successfully!")
Membaca data dari EEPROM
def read_byte(address):
return bus.read_byte_data(EEPROM_ADDRESS, address)
# Read the stored byte at address 0x00
stored_value = read_byte(0x00)
print(f"Stored Data: {chr(stored_value)}")
Langkah 5: Aplikasi AT24C256
- Pencatatan Data: Simpan data sensor dari waktu ke waktu untuk akses offline.
- Penyimpanan Konfigurasi: Simpan pengaturan sistem atau data kalibrasi.
- Otentikasi aman: Token terenkripsi atau token otentikasi.
- Proyek IoT: Aktifkan penyimpanan persisten untuk aplikasi Internet of Things.
Pemecahan masalah
-
Eeprom tidak terdeteksi:
- Periksa kabel dan konfirmasi koneksi SDA/SCL.
- Berlari
sudo i2cdetect -y 1
Untuk memverifikasi alamat I2C EEPROM.
-
Operasi baca/tulis yang salah:
- Memastikan Write Protect (WP) adalah membumi untuk memungkinkan menulis.
- Memperkenalkan penundaan (
time.sleep(0.05)
) untuk memungkinkan operasi penulisan EEPROM selesai.
-
Kesalahan komunikasi I2C:
- Periksa alamat I2C yang bertentangan di bus.
- Memastikan
smbus2
diinstal dengan benar menggunakanpip3 install smbus2
.
Kesimpulan
EEPROM AT24C256 adalah cara yang sederhana namun kuat untuk menyimpan data secara terus -menerus pada pi raspberry. Apakah untuk Pencatatan Data, Menyimpan Pengaturan, atau Aplikasi IoT, panduan ini memberikan pengetahuan dasar yang diperlukan untuk berinteraksi dengan penyimpanan EEPROM secara efektif. Eksperimen dengan membaca/menulis set data yang lebih besar untuk mengeksplorasi potensi penuhnya! 🚀