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.
74 lines
3.1 KiB
74 lines
3.1 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "1226517aae5f5b6f904434670394c688",
|
|
"translation_date": "2025-08-27T22:14:15+00:00",
|
|
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md",
|
|
"language_code": "ms"
|
|
}
|
|
-->
|
|
# Kawal lampu malam anda melalui Internet - Perkakasan IoT Maya dan Raspberry Pi
|
|
|
|
Dalam bahagian pelajaran ini, anda akan menghantar telemetri dengan tahap cahaya dari Raspberry Pi atau peranti IoT maya anda ke broker MQTT.
|
|
|
|
## Hantar telemetri
|
|
|
|
Langkah seterusnya adalah untuk mencipta dokumen JSON dengan telemetri dan menghantarnya ke broker MQTT.
|
|
|
|
### Tugas
|
|
|
|
Hantar telemetri ke broker MQTT.
|
|
|
|
1. Buka projek lampu malam dalam VS Code.
|
|
|
|
1. Jika anda menggunakan peranti IoT maya, pastikan terminal sedang menjalankan persekitaran maya. Jika anda menggunakan Raspberry Pi, anda tidak akan menggunakan persekitaran maya.
|
|
|
|
1. Tambahkan import berikut di bahagian atas fail `app.py`:
|
|
|
|
```python
|
|
import json
|
|
```
|
|
|
|
Pustaka `json` digunakan untuk mengekod telemetri sebagai dokumen JSON.
|
|
|
|
1. Tambahkan yang berikut selepas deklarasi `client_name`:
|
|
|
|
```python
|
|
client_telemetry_topic = id + '/telemetry'
|
|
```
|
|
|
|
`client_telemetry_topic` adalah topik MQTT yang akan digunakan oleh peranti untuk menghantar tahap cahaya.
|
|
|
|
1. Gantikan kandungan gelung `while True:` di akhir fail dengan yang berikut:
|
|
|
|
```python
|
|
while True:
|
|
light = light_sensor.light
|
|
telemetry = json.dumps({'light' : light})
|
|
|
|
print("Sending telemetry ", telemetry)
|
|
|
|
mqtt_client.publish(client_telemetry_topic, telemetry)
|
|
|
|
time.sleep(5)
|
|
```
|
|
|
|
Kod ini membungkus tahap cahaya ke dalam dokumen JSON dan menghantarnya ke broker MQTT. Ia kemudian berhenti seketika untuk mengurangkan kekerapan mesej dihantar.
|
|
|
|
1. Jalankan kod dengan cara yang sama seperti anda menjalankan kod dari bahagian tugasan sebelumnya. Jika anda menggunakan peranti IoT maya, pastikan aplikasi CounterFit sedang berjalan dan sensor cahaya serta LED telah dicipta pada pin yang betul.
|
|
|
|
```output
|
|
(.venv) ➜ nightlight python app.py
|
|
MQTT connected!
|
|
Sending telemetry {"light": 0}
|
|
Sending telemetry {"light": 0}
|
|
```
|
|
|
|
> 💁 Anda boleh menemui kod ini dalam folder [code-telemetry/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/virtual-device) atau folder [code-telemetry/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/pi).
|
|
|
|
😀 Anda telah berjaya menghantar telemetri dari peranti anda.
|
|
|
|
---
|
|
|
|
**Penafian**:
|
|
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. |