. AT24C256 Raspberry Pi'nin güç kaybından sonra bile verileri depolamasını ve almasını sağlayan bir I2C EEPROM (elektriksel olarak silinebilir programlanabilir salt okunur bellek). Bu kılavuz, AT24C256 Kablolama, I2C'yi etkinleştirme ve Python kullanarak okuma/yazma verileri dahil Raspberry Pi ile.
Ne İhtiyacınız Olacak
- Ahududu pi (GPIO ve I2C destekli herhangi bir model, örneğin Pi 3, Pi 4)
- AT24C256 EEPROM Modülü
- Breadboard ve jumper telleri
- Python yüklü Raspberry Pi'de
Adım 1: AT24C256'yı Raspberry Pi'ye bağlama
AT24C256, I2C protokolü.
Bağlantılar
AT24C256 PIN | Raspberry Pi Pimi |
---|---|
VCC | 3.3V (pim 1) |
Gnd | Zemin (pim 6) |
SDA | SDA (pim 3, GPIO2) |
Scl | SCL (Pin 5, GPIO3) |
WP (Yaz Koruma) | GND (Yazma Korumasını Devre Dışı Bırak) |
Adım 2: Raspberry Pi'de I2C'yi etkinleştirin
- Raspberry Pi yapılandırma aracını açın:
sudo raspi-config
- Gezmek Arayüz Seçenekleri> I2C ve etkinleştir.
- Raspberry Pi'yi yeniden başlatın:
sudo reboot
3. Adım: Gerekli kütüphaneleri kurun
- Raspberry Pi’nin paket listesini güncelleyin:
sudo apt update && sudo apt upgrade -y
- Gerekli I2C araçlarını ve Python kütüphanelerini yükleyin:
sudo apt install -y i2c-tools python3-smbus
- I2C veri yolunda AT24C256 EEPROM tespit edildiğini doğrulayın:
EEPROM şu adreste görünmeli 0x50 (veya A0-A2 pin yapılandırmalarına dayalı başka bir adres).sudo i2cdetect -y 1
Adım 4: AT24C256'ya veri okuma ve yazma
AT24C256 verileri 256kb bellekve her baytı bellek adresi kullanılarak erişilir.
EEPROM'a veri yazmak
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!")
EEPROM'dan Verileri Okumak
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)}")
Adım 5: AT24C256 uygulamaları
- Veri Günlüğü: Çevrimdışı erişim için sensör verilerini zamanla saklayın.
- Yapılandırma Depolama: Sistem ayarlarını veya kalibrasyon verilerini kaydedin.
- Güvenli Kimlik Doğrulama: Şifreli anahtarları veya kimlik doğrulama jetonlarını saklayın.
- IoT Projeleri: Nesnelerin İnterneti uygulamaları için kalıcı depolama alanı etkinleştirin.
Sorun giderme
-
EEPROM tespit edilmedi:
- Kabloları kontrol edin ve SDA/SCL bağlantılarını onaylayın.
- Koşmak
sudo i2cdetect -y 1
EEPROM’un I2C adresini doğrulamak için.
-
Yanlış okuma/yazma işlemleri:
- Emin olmak Koru (WP) yaz ki topraklanmış yazmayı etkinleştirmek için.
- Gecikmeler (
time.sleep(0.05)
) EEPROM yazma işlemlerinin tamamlanmasına izin vermek için.
-
I2C iletişim hataları:
- Otobüste çelişen I2C adreslerini kontrol edin.
- Emin olmak
smbus2
kullanılarak düzgün bir şekilde kuruldupip3 install smbus2
.
Çözüm
AT24C256 EEPROM, Verileri sürekli olarak saklayın Raspberry Pi'de. İçin Veri günlüğü, depolama ayarları veya IoT uygulamaları, bu kılavuz EEPROM depolama ile etkili bir şekilde etkileşim kurmak için gereken temel bilgileri sağlar. Tam potansiyelini keşfetmek için daha büyük veri kümelerini okuma/yazmayı deneyin! 🚀