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=203 ) 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.

1
2
public final static int EkranSatir1 = 0;
3
public final static int EkranSatir2 = 1;
4

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

01
02
final GpioController gpio = GpioFactory.getInstance();
03
try{
04
System.out.println("16x2 LCD CPU Sicaklik Örneği");
05
 
06
// LCD Sıfırlar ve Başlatır
07
final GpioLcdDisplay lcd = new GpioLcdDisplay(2,    // LCD Satır Sayısı
08
16,       // LCD Sütun Sayısı
09
RaspiPin.GPIO_06,  // LCD RS pini
10
RaspiPin.GPIO_05,  // LCD E pini
11
RaspiPin.GPIO_04,  // LCD D4 Veri Biti
12
RaspiPin.GPIO_00,  // LCD D5 Veri Biti
13
RaspiPin.GPIO_01,  // LCD D6 Veri Biti
14
RaspiPin.GPIO_03); // LCD D7 Veri Biti
15
 
16
lcd.clear();
17
 
18
Thread.sleep(2000);
19
lcd.write(EkranSatir1, "  CPU Sicaklik");
20
int kontrolSayisi=0;
21
 
22
while(kontrolSayisi < 100){
23
lcd.clear(EkranSatir2);
24
Thread.sleep(500);
25
lcd.write(EkranSatir2, "      "+SystemInfo.getCpuTemperature()+" C");
26
Thread.sleep(5000);
27
kontrolSayisi++;
28
}
29
 
30
}
31
 
32
catch(Exception e){
33
 
34
}
35
 
36
gpio.shutdown(); 
37

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 2x16’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.

Bir Cevap Yazın