03-05-2017, 07:45 PM
Merhaba arkadaşlar, sizlere Zero W ile wiring pi de LCD ye sıcaklık datasını yazdıracağım.
Bunun için tüm raspberry lerde /sys/class/thermal/thermal_zone0/temp dosyasını açtığımızda string olarak datayı okuyabiliriz. C de ise bu işlemi fopen fonksiyonu ile string datayı okuyup wiring pi nin LCD fonksiyonları ile ekrana yazdıracağız.

WiringPi Kodu aşağıdaki gibidir:
derleyip çalıştırdığınızda lcd ekranda ve ekranda CPU sıcaklığını göreceksiniz.
Bunun için tüm raspberry lerde /sys/class/thermal/thermal_zone0/temp dosyasını açtığımızda string olarak datayı okuyabiliriz. C de ise bu işlemi fopen fonksiyonu ile string datayı okuyup wiring pi nin LCD fonksiyonları ile ekrana yazdıracağız.

WiringPi Kodu aşağıdaki gibidir:
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#include <wiringPi.h>
#include <lcd.h>
#include <stdio.h>
FILE *fp;
char filebuffer[10];
char lcdline0str[20];
char lcdline1str[20];
uint16_t cputemp=0;
static int lcdHandle;
//LCD pin baglantilari
#define LCD_RS 3
#define LCD_E 0
#define LCD_D4 6
#define LCD_D5 1
#define LCD_D6 5
#define LCD_D7 4
int main ()
{
//wirinpi ve lcd ayarla
wiringPiSetup();
lcdHandle = lcdInit (2,16,4,LCD_RS,LCD_E,LCD_D4,LCD_D5,LCD_D6,LCD_D7,0,0,0,0);
printf ("Raspberry Pi 2x16 LCD test\r\n");
printf ("CPU Sicaklik Gostergesi\r\n");
lcdPosition (lcdHandle, 0, 0);
lcdPuts (lcdHandle, "RaspberryPi Zero") ;
lcdPosition (lcdHandle, 0, 1);
lcdPuts (lcdHandle, "LCD Test Umut K.") ;
delay (3000);
while(1)
{
fp=fopen("/sys/class/thermal/thermal_zone0/temp","r");
fread(filebuffer, sizeof(filebuffer), 1, fp);
fclose(fp);
cputemp = atoi(filebuffer);
sprintf(lcdline0str,"CPU Temp:%5.3fC", (float) cputemp / 1000);
sprintf(lcdline1str,"RaspberryPi Zero");
lcdPosition (lcdHandle, 0, 0);
lcdPuts (lcdHandle, lcdline0str) ;
lcdPosition (lcdHandle, 0, 1);
lcdPuts (lcdHandle, lcdline1str) ;
printf("%s\r\n",lcdline0str);
delay (1000);
}
}
derleyip çalıştırdığınızda lcd ekranda ve ekranda CPU sıcaklığını göreceksiniz.
