Haberler

Wio Terminal Güncellemesi: Raspberry Pi ile Entegre Etme ve Sistem Verilerini LCD Ekranda Gösterme

4K çözünürlükte çift ekran desteği sunan Raspberry Pi, neredeyse her türlü ekranı çalıştırma kapasitesine sahiptir (En popüler 21 Raspberry Pi Ekranı ve Dokunmatik Ekranlar hakkında yazımıza göz atın: TOP 21 Popular Raspberry Pi Displays & Screens!). Ancak, taşınabilir ve kolay kurulumlu şık bir seçenek arandığında, seçenekler sınırlı gibi görünüyor.

Burada, Raspberry Pi ile uyumlu, ATSAMD51 tabanlı bir mikrodenetleyici olan Wio Terminal’i tanıtıyoruz; Ekran + Geliştirme Kartı + Giriş/Çıkış Arayüzü + Kasa ile donatılmıştır. Wio Terminal, gömülü IMU (LIS3DHTR), mikrofon, ışık sensörü, kızılötesi verici (IR 940nm) ve iki çok işlevli Grove portu ile entegre edilmiştir. Bu sayede Wio Terminal, çevresel verileri toplar ve Raspberry Pi’ye göndererek daha ileri işlem ve analiz (örneğin, makine öğrenimi) için zahmetsiz bir şekilde donanım veya yazılım ayarı yapmadan kullanılabilir.

Artık Raspberry Pi ile yüksek uyumluluğunu bildiğinize göre, nasıl çalıştığını merak ediyor olabilirsiniz?

Wio Terminal, Raspberry Pi’ye 40 pinli GPIO başlığı veya USB Type-C konektörü aracılığıyla bağlanabilir. Bugün, Wio Terminal’in USB seri üzerinden Raspberry Pi’nin sistem durumunu nasıl okuyup görüntüleyeceğini gösteren bir demo tanıtacağız. Bu demoda, Raspberry Pi’nin 40 pinli GPIO’su kullanılmamış olup, Raspberry Pi projelerinizde gerekli olabilecek diğer Pi şapkaları için daha uygun olacaktır.

Bu demo için Python kodu, Arduino kodu ve kütüphaneler hazırladık. Wio Terminal hakkında tam eğitimler ve detaylı talimatlar için lütfen wiki sayfamızı kontrol edin. Ayrıca, herhangi bir teknik sorun için forum

Wio Terminal Kullanarak Raspberry Pi’nin Sistem Durumunu Okuma

1. Donanım Gereksinimleri

2. Raspberry Pi Ana Programını Hazırlama

2.1 Python Kodu

Aşağıdaki Python kodunu Raspberry Pi’de çalıştırarak sistem bilgilerini Wio Terminal’e USB Seri üzerinden gönderin.

Not: Lütfen Python kodundaki Seri portun doğru olduğundan emin olun, cihazınıza göre değiştirin.

import os
import time 
import serial

# Arduino Seri'den okuma ayarları
serialPort= "/dev/ttyACM0" # Bunu Seri Portunuza göre değiştirin, Arduino IDE'de kontrol edin
baudRate = 115200
ser = serial.Serial(serialPort, baudRate, timeout=0.5)
time.sleep(2)

# CPU sıcaklığını karakter dizesi olarak döndür
def getCPUtemperature():
    res = os.popen('vcgencmd measure_temp').readline()
    return(res.replace("temp=","").replace("'C\n",""))

# RAM bilgilerini (birim=kb) bir liste olarak döndür
# İndeks 0: toplam RAM
# İndeks 1: kullanılan RAM
# İndeks 2: boş RAM
def getRAMinfo():
    p = os.popen('free')
    i = 0
    while 1:
        i = i + 1
        line = p.readline()
        if i==2:
            return(line.split()[1:4])

# Kullanıcı tarafından kullanılan CPU yüzdesini karakter dizesi olarak döndür
def getCPUuse():
    return(str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip()))

# Disk alanı hakkında bilgileri bir liste olarak döndür (birim dahil)
# İndeks 0: toplam disk alanı
# İndeks 1: kullanılan disk alanı
# İndeks 2: kalan disk alanı
# İndeks 3: kullanılan disk yüzdesi
def getDiskSpace():
    p = os.popen("df -h /")
    i = 0
    while 1:
        i = i +1
        line = p.readline()
        if i==2:
            return(line.split()[1:5])

def main():
    while True:
        # CPU bilgisi
        CPU_temp = getCPUtemperature()
        CPU_usage = getCPUuse()

        # RAM bilgisi
        # Çıktı kb cinsindendir, burada okunabilirlik için Mb'ye çeviriyorum
        RAM_stats = getRAMinfo()
        RAM_total = str(round(int(RAM_stats[0]) / 1000,1))
        RAM_used = str(round(int(RAM_stats[1]) / 1000,1))
        RAM_free = str(round(int(RAM_stats[2]) / 1000,1))

        # Disk bilgisi
        DISK_stats = getDiskSpace()
        DISK_total = DISK_stats[0]
        DISK_used = DISK_stats[1]
        DISK_perc = DISK_stats[3]

        temp=ser.write(str.encode(CPU_temp+' '+CPU_usage))

        data=ser.write(str.encode(CPU_temp+':'+CPU_usage+':'+RAM_total+':'+RAM_used+':'+RAM_free+':'+DISK_total+':'+DISK_used+':'+DISK_perc))
        ser.flush()
        time.sleep(2)

        print('')
        print('CPU Sıcaklığı = '+CPU_temp)
        print('CPU Kullanımı = '+CPU_usage)
        print('')
        print('RAM Toplam = '+str(RAM_total)+' MB')
        print('RAM Kullanılan = '+str(RAM_used)+' MB')
        print('RAM Boş = '+str(RAM_free)+' MB')
        print('')  
        print('DISK Toplam Alan = '+str(DISK_total)+'B')
        print('DISK Kullanılan Alan = '+str(DISK_used)+'B')
        print('DISK Kullanım Yüzdesi = '+str(DISK_perc)) 

if __name__ == '__main__':
    try:    
        main()
    except KeyboardInterrupt:    
        if ser != None:    
            ser.close()

2.2 Arduino Kodu

Adım 1. Arduino kütüphanelerini yükleyin

  • LCD ekran Kütüphanesi Seeed_Arduino_LCD‘yi yükleyin, daha fazla bilgi için Wio Terminal LCD sayfasını ziyaret edin.
  • LCD kütüphanesinde bulunan ücretsiz fontlar için kısaltmalar kullanabilmeniz için Free_Fonts.h başlık dosyasını indirin. Lütfen bu başlık dosyasını Arduino Sketch ile aynı konuma koyduğunuzdan emin olun.

Adım 2. Tam Kodu İndirin

Tam kodu buradan indirin.

3. Kurulum Nasıl Yapılır

  1. Arduino Kodunu Wio Terminal’e yükleyin. Yükledikten sonra bir başlangıç ekranında olmalıdır.
  2. Wio Terminal’i USB Type-C Kablosu ile Raspberry Pi’ye bağlayın.
  3. Raspberry Pi’de Python kodunu çalıştırın.
  4. Artık Wio Terminal’in LCD Ekranında Raspberry Pi Sistem bilgilerini görebilmeniz gerekir.

Github & Forum’da Daha Fazla Keşfedin

Wio Terminal hakkında daha fazla bilgi mi edinmek istiyorsunuz? Yepyeni Forumumuz yayınlandı ve tartışmamıza katılmanızı bekliyor! Wio Terminal ile ilgili sorularınızı veya herhangi bir teknik sorunu forum

Bugünkü güncelleme bu kadar, bizimle kalın ve Wio Terminal hakkında en son haberleri alın!

Leave a Reply

Your email address will not be published. Required fields are marked *