3.1 KiB
Kendalikan lampu malam Anda melalui Internet - Perangkat IoT Virtual dan Raspberry Pi
Dalam bagian pelajaran ini, Anda akan mengirimkan telemetri dengan tingkat cahaya dari Raspberry Pi atau perangkat IoT virtual Anda ke broker MQTT.
Mengirimkan telemetri
Langkah berikutnya adalah membuat dokumen JSON dengan telemetri dan mengirimkannya ke broker MQTT.
Tugas
Kirimkan telemetri ke broker MQTT.
-
Buka proyek lampu malam di VS Code.
-
Jika Anda menggunakan perangkat IoT virtual, pastikan terminal menjalankan lingkungan virtual. Jika Anda menggunakan Raspberry Pi, Anda tidak akan menggunakan lingkungan virtual.
-
Tambahkan impor berikut di bagian atas file
app.py
:import json
Library
json
digunakan untuk mengkodekan telemetri sebagai dokumen JSON. -
Tambahkan berikut ini setelah deklarasi
client_name
:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
adalah topik MQTT tempat perangkat akan mengirimkan tingkat cahaya. -
Ganti isi dari loop
while True:
di akhir file dengan yang berikut ini: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)
Kode ini mengemas tingkat cahaya ke dalam dokumen JSON dan mengirimkannya ke broker MQTT. Kemudian, kode ini akan berhenti sejenak untuk mengurangi frekuensi pengiriman pesan.
-
Jalankan kode dengan cara yang sama seperti Anda menjalankan kode dari bagian tugas sebelumnya. Jika Anda menggunakan perangkat IoT virtual, pastikan aplikasi CounterFit sedang berjalan dan sensor cahaya serta LED telah dibuat pada pin yang benar.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 Anda dapat menemukan kode ini di folder code-telemetry/virtual-device atau folder code-telemetry/pi.
😀 Anda telah berhasil mengirimkan telemetri dari perangkat Anda.
Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI Co-op Translator. Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.