Tutorial IoT untuk Pemula: Streaming Data Suhu dari Raspberry Pi
“Hello World!” – Ini mungkin output dari program pertama yang pernah Anda tulis saat belajar mengkode. Menyiapkan perangkat untuk streaming data suhu dengan cepat menjadi proyek “Hello World!” de facto Internet of Things (IoT). Jika mencetak “Hello World!” pertama kali adalah tugas yang panjang dan frustrasi, Anda mungkin tidak pernah menulis program lagi. Proyek IoT pertama Anda seharusnya hanya membuat Anda tersenyum lebar. Proyek menyenangkan dan mudah ini akan memperkenalkan Anda ke dunia yang luar biasa dari streaming data IoT.
Tutorial video untuk seluruh proyek ini dapat ditemukan di:
https://youtu.be/HMqPbfvCshs
Berikut adalah perlengkapan yang Anda butuhkan:
- Raspberry Pi yang terhubung internet atau komputer papan tunggal pilihan Anda.
- Sensor suhu DS18B20 (https://www.adafruit.com/product/381).
- Breadboard untuk merangkai rangkaian sederhana (dalam kit starter Adafruit Pi).
- Resistor 4,7K hingga 10K (juga dalam kit starter Adafruit Pi).
Langkah 1: Pengaturan Hardware
Sensor suhu DS18B20 bekerja baik dengan Raspberry Pi karena memiliki output digital, dan Pi tidak memiliki konverter analog-ke-digital (ADC) papan atas. Raspbian mencakup antarmuka untuk membaca output sensor. Kita hanya perlu menulis sedikit kode untuk mengambil dan mem-parsing suhu. Adafruit memiliki tutorial yang bagus di sini untuk menggunakan DS18B20 yang kami akan ikuti dan modifikasi untuk streaming suhu daripada hanya menampilkannya di layar.
Pengaturan hardware sederhana. Kabel merah DS18B20 ke 3,3V. Kabel hitam ke GND. Kabel biru ke resistor pull-up dan ke pin GPIO 4 Pi Anda.
Langkah 2: Baca Suhu
Untuk memulai antarmuka pembacaan sensor suhu, kita perlu menjalankan dua perintah. Pergi ke prompt perintah di Pi Anda atau SSH ke Pi Anda. Ketik perintah berikut:
sudo modprobe w1-gpio
sudo modprobe w1-therm
Output sensor suhu Anda sekarang ditulis ke berkas di Pi Anda. Untuk menemukan berkas itu,
cd /sys/bus/w1/devices
Dalam direktori ini, akan ada sub-direktori yang dimulai dengan “28-”. Apa yang datang setelah “28-” adalah nomor serial sensor Anda. cd ke direktori itu. Dalam direktori ini, berkas bernama w1_slave berisi output sensor Anda. Isi berkas akan terlihat seperti ini:
a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YES
a2 01 4b 46 7f ff 0e 10 d8 t=26125
Angka setelah “t=” adalah angka yang kita inginkan. Ini adalah suhu dalam 1/1000 derajat Celsius (dalam contoh di atas, suhu adalah 26,125 C). Kita hanya perlu program sederhana yang membaca berkas ini dan mem-parsing angka itu. Untungnya, Adafruit telah membuat skrip Python untuk kita yang melakukan ini dan mencetak suhu ke layar. Buat berkas baru di Pi Anda (misalnya temperature.py) dan salin-tempel kode berikut ini:
Klik di sini untuk melihat kode
Jalankan skrip ini (“sudo python temperature.py”) untuk melihat output sensor suhu Anda di layar.
Langkah 3: Stream Suhu
Ini adalah titik di mana kita menyimpang dari tutorial Adafruit. Mengirim suhu ke layar itu membosankan. Kami ingin streaming data ini ke tempat tempat kita dapat melihat tidak hanya suhu saat ini tetapi sejarah data suhu yang tertangkap (plus, siapa yang ingin “membaca” sekumpulan suhu sebagai teks; kita ingin visualisasi data yang menarik). Pertama, instal streamer Initial State untuk memberi pengukuran suhu kami tujuan untuk pergi (pergi ke sini untuk instruksi pengaturan streamer Initial State; ini sangat mudah dan memakan waktu kurang dari dua menit). Kami akan memodifikasi skrip di atas untuk streaming suhu ke akun Initial State kami daripada menampilkannya di layar. Berikut adalah modifikasi:
Klik di sini untuk melihat kode
Anda perlu menyalin-tempel kunci klien yang terkait dengan akun Initial State Anda di antara tanda kutip pada baris 6 di mana kata client_key = “”. Anda dapat menemukan kunci klien Anda di bawah pengaturan akun atau di halaman landing setelah Anda login ke akun Anda.
Ini adalah modifikasi yang kami buat:
- Pada baris 4, kami mengimpor modul streamer data Initial State.
- Pada baris 6, kami membuat bucket baru yang disebut “Temperature Stream” dan mengaitkannya dengan akun kami melalui kunci klien kami.
- Pada baris 30, kami memodifikasi fungsi read_temp() untuk hanya mengembalikan suhu dalam Celsius.
- Pada baris 34, kami mengonversi output read_temp() ke fahrenheit.
- Pada baris 35 dan 36, kami streaming kedua suhu.
Untuk detail lebih lanjut: IoT 101 Project: Stream Temperature from your Raspberry Pi