You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/tr/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md

93 lines
4.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "90fb93446e03c38f3c0e4009c2471906",
"translation_date": "2025-08-28T03:33:11+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
"language_code": "tr"
}
-->
# Gece lambanızı İnternet üzerinden kontrol edin - Sanal IoT Donanımı ve Raspberry Pi
IoT cihazının, ışık sensörü okumasıyla telemetri değerlerini göndermek ve LED'i kontrol etmek için komutlar almak üzere MQTT kullanarak *test.mosquitto.org* ile iletişim kuracak şekilde kodlanması gerekiyor.
Bu dersin bu bölümünde, Raspberry Pi veya sanal IoT cihazınızı bir MQTT brokerine bağlayacaksınız.
## MQTT istemci paketini yükleyin
MQTT broker ile iletişim kurmak için, Pi'nize veya sanal bir cihaz kullanıyorsanız sanal ortamınıza bir MQTT kütüphanesi pip paketi yüklemeniz gerekiyor.
### Görev
Pip paketini yükleyin
1. VS Code'da gece lambası projesini açın.
1. Sanal bir IoT cihazı kullanıyorsanız, terminalin sanal ortamı çalıştırdığından emin olun. Raspberry Pi kullanıyorsanız sanal bir ortam kullanmayacaksınız.
1. MQTT pip paketini yüklemek için aşağıdaki komutu çalıştırın:
```sh
pip3 install paho-mqtt
```
## Cihazı kodlayın
Cihaz kodlamaya hazır.
### Görev
Cihaz kodunu yazın.
1. `app.py` dosyasının en üstüne aşağıdaki import'u ekleyin:
```python
import paho.mqtt.client as mqtt
```
`paho.mqtt.client` kütüphanesi, uygulamanızın MQTT üzerinden iletişim kurmasını sağlar.
1.ık sensörü ve LED tanımlarından sonra aşağıdaki kodu ekleyin:
```python
id = '<ID>'
client_name = id + 'nightlight_client'
```
`<ID>` yerine bu cihaz istemcisi için kullanılacak benzersiz bir kimlik girin. Bu kimlik, daha sonra bu cihazın yayınladığı ve abone olduğu konular için kullanılacaktır. *test.mosquitto.org* brokeri herkese açık ve birçok kişi tarafından, bu ödevi yapan diğer öğrenciler de dahil olmak üzere, kullanılmaktadır. Benzersiz bir MQTT istemci adı ve konu adları kullanmak, kodunuzun başkalarının koduyla çakışmamasını sağlar. Bu kimliği, bu ödevin ilerleyen bölümlerinde sunucu kodunu oluştururken de kullanmanız gerekecek.
> 💁 Benzersiz bir kimlik oluşturmak için [GUIDGen](https://www.guidgen.com) gibi bir web sitesi kullanabilirsiniz.
`client_name`, broker üzerindeki bu MQTT istemcisi için benzersiz bir isimdir.
1. MQTT istemci nesnesi oluşturmak ve MQTT brokerine bağlanmak için bu yeni kodun altına aşağıdaki kodu ekleyin:
```python
mqtt_client = mqtt.Client(client_name)
mqtt_client.connect('test.mosquitto.org')
mqtt_client.loop_start()
print("MQTT connected!")
```
Bu kod, istemci nesnesini oluşturur, herkese açık MQTT brokerine bağlanır ve arka planda bir işleme döngüsü başlatır. Bu döngü, abone olunan konulardaki mesajları dinler.
1. Ödevin önceki bölümündeki kodu çalıştırdığınız şekilde bu kodu çalıştırın. Sanal bir IoT cihazı kullanıyorsanız, CounterFit uygulamasının çalıştığından ve ışık sensörü ile LED'in doğru pinlerde oluşturulduğundan emin olun.
```output
(.venv) ➜ nightlight python app.py
MQTT connected!
Light level: 0
Light level: 0
```
> 💁 Bu kodu [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) klasöründe veya [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi) klasöründe bulabilirsiniz.
😀 Cihazınızı başarıyla bir MQTT brokerine bağladınız.
---
**Feragatname**:
Bu belge, AI çeviri hizmeti [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.