Proyek IoT 101:Aliran Suhu dari Raspberry Pi
"Halo Dunia!" – Ini mungkin keluaran dari program pertama yang pernah Anda tulis saat mempelajari cara membuat kode. Menyiapkan perangkat untuk mengalirkan data suhu dengan cepat menjadi Internet of Things (IoT) de facto “Halo Dunia!” proyek. Jika mencetak "Halo Dunia!" pertama kali adalah tugas yang panjang dan membuat frustrasi, Anda mungkin belum pernah menulis program lain. Proyek IoT pertama Anda seharusnya hanya membuat Anda tersenyum lebar. Proyek yang menyenangkan dan mudah ini akan memperkenalkan Anda pada dunia indah streaming data IoT.
Video tutorial dari keseluruhan proyek ini dapat ditemukan di:
http://youtu.be/HMqPbfvCshs
Berikut adalah perlengkapan yang Anda perlukan:
- Raspberry Pi yang tersambung ke internet atau komputer single-board pilihan Anda.
- Sensor suhu DS18B20 (https://www.adafruit.com/product/381).
- Breadboard untuk memasang kabel sirkuit sederhana (dalam starter kit Adafruit Pi).
- Resistor 4,7K hingga 10K (juga ada dalam starter kit Adafruit Pi).
Langkah 1:Penyiapan Perangkat Keras
Sensor suhu DS18B20 bekerja dengan baik dengan Raspberry Pi karena memiliki output digital, dan Pi tidak memiliki konverter analog ke digital (ADC) on-board. Raspbian menyertakan antarmuka untuk membaca output dari sensor. Kita hanya perlu menulis sedikit kode untuk mengambil dan menguraikan suhu. Adafruit memiliki tutorial yang bagus di sini untuk menggunakan DS18B20 yang akan kita ikuti dan modifikasi untuk mengalirkan suhu alih-alih hanya menampilkannya ke layar.
Pengaturan perangkat kerasnya sederhana. Kabel merah DS18B20 ke 3.3V. Kabel hitam ke GND. Kabel biru ke resistor pull-up dan ke GPIO pin 4 dari Pi Anda.
Langkah 2:Baca Suhu
Untuk memulai antarmuka pembacaan sensor suhu, kita perlu menjalankan dua perintah. Buka prompt perintah di Pi Anda atau SSH ke Pi Anda. Ketik perintah berikut:
sudo modprobe w1-gpio
sudo modprobe w1-therm
Output dari sensor suhu Anda sekarang sedang ditulis ke file di Pi Anda. Untuk menemukan file itu,
cd /sys/bus/w1/devices
Di direktori ini, akan ada sub-direktori yang dimulai dengan “28-“. Apa yang muncul setelah "28-" adalah nomor seri sensor Anda. cd ke direktori itu. Di dalam direktori ini, file bernama w1_slave berisi output dari sensor Anda. Isi file ini akan terlihat seperti ini:
a2 01 4b 46 7f ff 0e 10 d8 :crc=d8 YA
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 Celcius (pada contoh di atas, suhunya adalah 26,125 C). Kami hanya membutuhkan program sederhana yang membaca file ini dan mem-parsing nomor tersebut. Beruntung bagi kami, Adafruit telah membuat skrip Python untuk kami yang melakukan hal ini dan menampilkan suhu ke layar. Buat file baru di Pi Anda (mis. temperature.py) dan salin-tempel kode berikut di:
Klik di sini untuk melihat kodenya
Jalankan skrip ini (“sudo python temperature.py”) untuk melihat output dari sensor suhu Anda di layar.
Langkah 3:Alirkan Suhu
Di sinilah kita menyimpang dari tutorial Adafruit. Mengirim suhu ke layar membosankan. Kami ingin mengalirkan data ini ke suatu tempat yang kami tidak hanya dapat melihat suhu saat ini tetapi juga riwayat data suhu yang diambil (ditambah, siapa yang ingin "membaca" sekelompok suhu sebagai teks; kami menginginkan visualisasi data yang cantik). Pertama-tama instal streamer Status Awal untuk memberikan pengukuran suhu kami tujuan yang harus dituju (buka di sini untuk instruksi tentang menyiapkan streamer Status Awal; ini sangat mudah dan membutuhkan waktu kurang dari dua menit). Kami akan memodifikasi skrip di atas untuk mengalirkan suhu ke akun Status Awal kami alih-alih menampilkannya ke layar. Berikut modifikasinya:
Klik di sini untuk melihat kodenya
Anda perlu menyalin+menempel kunci klien yang terkait dengan akun Status Awal Anda di antara tanda kutip pada baris 6 di mana dikatakan client_key =“”. Anda dapat menemukan kunci klien Anda di bawah pengaturan akun Anda atau di halaman arahan setelah Anda masuk ke akun Anda.
Ini adalah modifikasi yang baru saja kami buat:
- Pada baris 4, kami mengimpor modul streamer data Status Awal.
- Di baris 6, kami membuat keranjang baru yang disebut "Aliran Suhu" dan mengaitkannya dengan akun kami melalui kunci klien kami.
- Pada baris 30, kami memodifikasi fungsi read_temp() agar hanya mengembalikan suhu dalam Celcius.
- Pada baris 34, kami mengonversi output read_temp() ke fahrenheit.
- Di jalur 35 dan 36, kami mengalirkan dua suhu tersebut.
Untuk detail lebih lanjut:Proyek IoT 101:Aliran Suhu dari Raspberry Pi Anda