tcp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
tcp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Bu çalışmada raspberry pi üzerindeki cpu'nun sıcaklık değerini okuyacağız. Bu okuduğumuz sıcaklık değerini TCP ile oluşturacağımız server'a aktaracağız. Programlama dili olarak Python kullanacağız.

Hadi başlayalım. 

Öncelikle raspberry pi üzerindeki cpu'nun sıcaklığını ölçmek ile başlayalım.

import os
import time

def measure_temp():
    temp = os.popen("vcgencmd measure_temp").readline()
    return (temp.replace("temp= ",""))
while True:
    print(measure_temp)
    time.sleep(1)



Bir saniye aralıklarla console ekranında cpu sıcaklık değerini yazdıracaktır. Biz programı durdurana kadar devam edecektir.




Evet artık cpu sıcaklık değerini okuyabiliyoruz. Şimdi client ve server'larımızı oluşturabiliriz. 

Önce TCP için yapalım:

Server kısmı: 

import socket

host = "192.168.1.42"
port = 12345

try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("socket oluşturuldu")

s.bind((host, port))
print("socket {} nolu porta bağlandı".format(port))

s.listen(5)
print("socket dinleniyor")

except socket.error as msg:
print("Hata:", msg)

while True:
# Client ile bağlantı kurulursa
c, addr = s.accept()
print('Gelen bağlantı:', addr)

# Bağlanan client tarafına bağlandığını belirtelim
mesaj = 'Bağlantı sağlandı'
c.send(mesaj.encode('utf-8'))

# client tarafından gönderilen cpu sıcaklık değeri
yanit = c.recv(1024)
print( yanit.decode("utf-8") )

# Bağlantıyı sonlandıralım
c.close()

Client kısmı:

# -*- coding: utf-8 -*-
import socket                
#cpu temp
import os
import time


while True:
    # Socket oluşturulması
    s = socket.socket()          
    
    # Bağlanılacak adres ve port
    host = "192.168.1.42"
    
    port = 12345                

    try:
        # Bağlantıyı yap
        s.connect((host, port))
        

        # serverden yanıtı al
        yanit = s.recv(1024)
        print(yanit.decode("utf-8"))
       
        #cpu sıcaklığı ölçülür ve server'a gönderilir
        temp = os.popen("vcgencmd measure_temp").readline()
        mesaj= temp
        s.send(mesaj.encode("utf-8"))
    

        # bağlantıyı kapat
        s.close() 
    except socket.error as msg:
        print("[Server aktif değil.] Mesaj:", msg)
    
    time.sleep(1)

Biz server'dan bağlantıyı kesene kadar, client cpu sıcaklık değerini göndermeye devam edecektir. 
Şimdi çalıştıralım:

Server'a herhangi bir bağlantı olmadan önce:



Client çalıştırılınca server:



Client çıktısı:


Bu şekilde TCP ile veri aktarımını başarılı bir şekilde tamamlamış olduk.