3.7 KiB
Terbitkan suhu - Perkakasan IoT Maya dan Raspberry Pi
Dalam bahagian pelajaran ini, anda akan menerbitkan nilai suhu yang dikesan oleh Raspberry Pi atau Peranti IoT Maya melalui MQTT supaya ia boleh digunakan kemudian untuk mengira GDD.
Terbitkan suhu
Setelah suhu dibaca, ia boleh diterbitkan melalui MQTT kepada beberapa kod 'server' yang akan membaca nilai tersebut dan menyimpannya untuk digunakan dalam pengiraan GDD.
Tugasan - terbitkan suhu
Programkan peranti untuk menerbitkan data suhu.
-
Buka projek aplikasi
temperature-sensor
jika ia belum dibuka. -
Ulang langkah yang anda lakukan dalam pelajaran 4 untuk menyambung ke MQTT dan menghantar telemetri. Anda akan menggunakan broker Mosquitto awam yang sama.
Langkah-langkahnya adalah seperti berikut:
- Tambahkan pakej pip MQTT
- Tambahkan kod untuk menyambung ke broker MQTT
- Tambahkan kod untuk menerbitkan telemetri
⚠️ Rujuk kepada arahan untuk menyambung ke MQTT dan arahan untuk menghantar telemetri dari pelajaran 4 jika diperlukan.
-
Pastikan
client_name
mencerminkan nama projek ini:client_name = id + 'temperature_sensor_client'
-
Untuk telemetri, bukannya menghantar nilai cahaya, hantarkan nilai suhu yang dibaca dari sensor DHT dalam satu sifat pada dokumen JSON yang dipanggil
temperature
:_, temp = sensor.read() telemetry = json.dumps({'temperature' : temp})
-
Nilai suhu tidak perlu dibaca terlalu kerap - ia tidak akan berubah banyak dalam masa yang singkat, jadi tetapkan
time.sleep
kepada 10 minit:time.sleep(10 * 60);
💁 Fungsi
sleep
mengambil masa dalam saat, jadi untuk memudahkan pembacaan, nilai tersebut dihantar sebagai hasil pengiraan. 60 saat dalam satu minit, jadi 10 x (60 saat dalam satu minit) memberikan kelewatan selama 10 minit. -
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 kelembapan serta suhu telah dicipta pada pin yang betul.
pi@raspberrypi:~/temperature-sensor $ python3 app.py MQTT connected! Sending telemetry {"temperature": 25} Sending telemetry {"temperature": 25}
💁 Anda boleh menemui kod ini dalam folder code-publish-temperature/virtual-device atau folder code-publish-temperature/pi.
😀 Anda telah berjaya menerbitkan suhu sebagai telemetri dari peranti anda.
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI 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.