Raspberry Pi 3 CPU Sıcaklığını Java ve Pi4J Kullanarak Küçük LCD Ekranda Gösterme

Bu yazıda Raspberry Pi 3 işlemci sıcaklığını Java dili ile küçük LCD ekrana yazılması gösterilecektir. Bu işlemler yapılabilmesi için gerekli olan malzeme ve uygulamalar;

  • Raspberry pi
  • Netbeans Java
  • Pi4J Java kütüphanesi
  • 2×16 Lcd Ekran Mavi
  • 1×40 12 mm 180 Derece Erkek Pin Header
  • 8 adet erkek – dişi jumper kablo
  • 9 adet erkek – erkek jumper kablo
  • 1 adet 10K Potansiyometre – WH148
  • 1 adet Potansiyometre kapağı
  • 1 adet breadboard

Önce satın alınan 2×16 Lcd Ekran’a 1×40 12 mm 180 Derece Erkek Pin Header geçirilerek lehimlenir. Çünkü satın alınan 2×16 Lcd Ekran’ın breadboard’a geçirilecek ayakları yoktur. Bu şekilde breadboard’a geçirilmek için gerekli ayaklar lehimlenmiş olacaktır.

Daha sonra breadboard’a oturtulan LCD ekran aşağıdaki şekil gibi Rasberry Pi 3’e bağlanmalıdır. Breadboard’ın üzerinde düğmeye benzeyen ve üzerinde artı işareti bulunan alet potansiyometre’dir ve LCD ekrana uygun voltaj değerini vermeye yarar. Eğer potansiyometre veya direnç kullanmazsanız Şekil 3’teki gibi ekranda kare kutular oluşacaktır.

Şekil Referans: https://pimylifeup.com/raspberry-pi-lcd-16×2/

Deney düzeneği;

Şimdi Netbeans’te yeni proje oluşturup Pi4J kütüphanesini projeye ekliyoruz. Bu işlemin nasıl yapıldığı daha önceki yazıda (http://fatihadak.com/?p=31 ) anlatılmaktadır. Oluşan projede main metodunun olduğu sınıfta, aşağıdaki iki değişkeni sınıfa ekliyoruz. Bu iki değişken LCD ekrandaki satırları temsil etmektedir. Kullanılan LCD ekran 2 satır ve 16 sütuna sahiptir.

public final static int EkranSatir1 = 0;
public final static int EkranSatir2 = 1;

Daha sonra main metodu içerisine aşağıdaki kodu ekliyoruz.

final GpioController gpio = GpioFactory.getInstance();

try{
	System.out.println("16x2 LCD CPU Sicaklik Örneği");

	// LCD Sıfırlar ve Başlatır
	final GpioLcdDisplay lcd = new GpioLcdDisplay(2,    // LCD Satır Sayısı
												16,       // LCD Sütun Sayısı
												RaspiPin.GPIO_06,  // LCD RS pini
												RaspiPin.GPIO_05,  // LCD E pini
												RaspiPin.GPIO_04,  // LCD D4 Veri Biti
												RaspiPin.GPIO_00,  // LCD D5 Veri Biti
												RaspiPin.GPIO_01,  // LCD D6 Veri Biti
												RaspiPin.GPIO_03); // LCD D7 Veri Biti
	lcd.clear();
	Thread.sleep(2000);
	lcd.write(EkranSatir1, "  CPU Sicaklik");
	int kontrolSayisi=0;
	while(kontrolSayisi < 100){
		lcd.clear(EkranSatir2);

		Thread.sleep(500);
		lcd.write(EkranSatir2, "      "+SystemInfo.getCpuTemperature()+" C");

		Thread.sleep(5000);
		kontrolSayisi++;
	}
}
catch(Exception e){

}
gpio.shutdown(); 

Burada dikkat edilmesi gereken LCD ekrana bir ifade yazılacağı zaman belli bir müddet beklemek gereklidir. LCD ekranın bu mesajı kodlayabilmesi için. Bu işlem Thread.sleep metodu ile yapılmaktadır.

Kod incelendiğinde GpioLcdDisplay türünden bir nesne oluşturulmaktadır. Bu işlem LCD ekranı sıfırlayıp başlatan komuttur aynı zamanda. LCD ekran 2×16’lık bir LCD ekran olduğu için parametre olarak 2 ve 16 gönderilmiştir. Diğer parametreler LCD ekranın Raspberry Pi üzerinde hangi GPIO’lara bağlandığını göstermektedir. Burası çok önemlidir çünkü bir sayı bile yanlış yazılırsa ekrana herhangi bir mesaj gönderilemez. LCD ekrana 4 veya 8 bitlik mesajlar gönderilebilir. Bu örnekte 4 bitlik mesaj kullanılmıştır. Dolayısıyla LCD ekran üzerindeki 4 pin boştur. Birçok uygulama için 4 bit yeterlidir. Raspberry Pi üzerinde hangi GPIO’ya hangi pin’in bağlandığı ve ne anlama geldiği kod üzerinde yorum olarak verilmiştir. Nesne oluşturulduktan sonra ekranı temizlemek için lcd.clear(); komutu kullanılır. Ekrana bir şey yazmak için lcd.write komutu kullanılır. Bu metotların hepsi Pi4J kütüphanesinin içerisinde bulunmaktadır. Daha sonra döngü kullanılarak 100 defa belli aralıklarla CPU sıcaklığı kontrol edilip ekrana yazdırılmıştır. Çalışan örnek aşağıda verilmiştir.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir