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.