Raspberry Pi

Memantau Suhu di Raspberry Pi

Memantau Suhu di Raspberry Pi


Memantau suhu mungkin menjadi persyaratan di banyak proyek Raspberry Pi Anda. Relatif mudah dilakukan di Raspberry Pi dan komponen yang dibutuhkan untuk proyek ini tidak terlalu mahal.Artikel ini menunjukkan cara menggunakan modul termometer digital DS18B20 untuk memantau suhu menggunakan Raspberry Pi. Artikel ini juga menunjukkan cara membuat aplikasi web untuk menampilkan suhu.

Hal-hal yang Anda Butuhkan:

Untuk mencoba contoh dalam artikel ini, Anda memerlukan yang berikut:

  1. Komputer papan tunggal Raspberry Pi
  2. Adaptor daya untuk perangkat Raspberry Pi
  3. Kartu microSD dengan Raspberry Pi OS terpasang
  4. Konektivitas jaringan pada perangkat Raspberry Pi
  5. Papan tempat memotong roti
  6. 3 buah kabel penghubung wanita-ke-wanita
  7. Beberapa kabel penghubung pria-ke-pria
  8. Resistor 10k
  9. Modul Termometer Digital DS18B20

Pinout Termometer Digital DS18B20

Jika Anda memegang termometer digital DS18B20 seperti yang ditunjukkan pada gambar di bawah ini, pin pertama akan di-ground (GND), pin kedua adalah DATA, dan pin ketiga adalah VCC.

Diagram Sirkuit

Diagram sirkuit monitor suhu ditunjukkan pada gambar di bawah ini.

Di sini, PIN2/5V perangkat Raspberry Pi harus terhubung ke PIN3/VCC dari modul termometer digital.

Itu PIN7/GPIO4 perangkat Raspberry Pi harus terhubung ke PIN2/DATA dari modul termometer digital.

Itu PIN9/GND perangkat Raspberry Pi harus terhubung ke PIN1/GND dari modul termometer digital.

SEBUAH resistor 10kΩ harus terhubung antara PIN2 dan PIN3 dari modul termometer digital.

Anda harus memegang Raspberry Pi Anda seperti yang ditunjukkan pada gambar di bawah ini. Kemudian, pin kiri atas adalah PIN1. Pin tepat di sebelah PIN1 akan PIN2. Kemudian, jika Anda bergerak maju satu baris, baris kiri akan menjadi PIN3 dan yang benar akan menjadi PIN4, dan seterusnya.

Setelah Anda menghubungkan semua komponen ke perangkat Raspberry Pi Anda, seharusnya terlihat seperti ini:

Lihatlah lebih dekat bagaimana saya menempatkan komponen di papan tempat memotong roti.

Setelah Anda menghubungkan semua komponen ke perangkat Raspberry Pi Anda, hidupkan perangkat Raspberry Pi. Kemudian, sambungkan ke perangkat Raspberry Pi Anda melalui VNC atau SSH.

Membaca Data Suhu dari Termometer Digital DS18B20

Modul termometer DS18B20 menggunakan protokol komunikasi 1-kawat untuk mengirim data ke Raspberry Pi. Secara default, antarmuka 1-kawat tidak diaktifkan. Anda dapat dengan mudah mengaktifkan antarmuka dari alat konfigurasi Raspberry Pi.

Untuk mengaktifkan antarmuka 1-kawat, jalankan raspi-config dengan perintah berikut:

$ sudo raspi-config

Pilih Opsi Antarmuka dan tekan .

Pilih 1-Kawat dan tekan .

Pilih dan tekan .

tekan .

Untuk keluar dari raspi-config utilitas, tekan .

Agar perubahan diterapkan, reboot Raspberry Pi Anda sebagai berikut:

$ sudo reboot

Untuk memeriksa apakah w1_gpio dan w1_term modul kernel dimuat, jalankan perintah berikut:

$ sudo lsmod | grep w1

Jika karena alasan tertentu, w1_term modul tidak dimuat, maka Anda dapat memuatnya secara manual dengan perintah berikut:

$ sudo modprobe w1_therm

Setelah Anda mengaktifkan komunikasi 1-kawat dan memuat w1_term modul, perangkat baru (28-00000ba693e9, dalam kasus saya) harus terdaftar di /sys/bus/w1/devices direktori, seperti yang Anda lihat pada tangkapan layar di bawah ini.

$ ls /sys/bus/w1/devices/

Arahkan ke direktori baru, sebagai berikut:

$ cd /sys/bus/w1/devices/28-00000ba693e9

Anda harus menemukan suhu file di direktori, seperti yang Anda lihat pada tangkapan layar di bawah ini.

$ ls -lh

Itu suhu file adalah file teks biasa. Anda dapat membaca data suhu menggunakan kucing perintah, sebagai berikut:

$ suhu kucing

Seperti yang Anda lihat, data suhu dicetak di konsol. Sini, 30375 cara 30.375 °C.

Anda dapat menggunakan bahasa pemrograman, seperti Python atau Node.js, untuk mengurai data suhu ini dan menggunakannya di aplikasi Anda. Saya akan menunjukkan cara melakukannya di bagian selanjutnya dari artikel ini.

Untuk mengurai data suhu menggunakan bahasa pemrograman, Anda memerlukan jalur absolut ke suhu mengajukan. Anda dapat menemukan ini menggunakan tautan baca perintah, sebagai berikut:

$ readlink -f suhu

Buat Aplikasi Web untuk Menampilkan Data Suhu:

Di bagian ini, Anda akan mempelajari cara mengurai data suhu dari modul termometer DS18B20 dan menampilkannya di aplikasi web.

Dalam contoh ini, saya akan membuat API, yang akan mengurai data suhu dari modul termometer DS18B20 yang dapat diakses dari API. Saya juga akan membuat aplikasi web yang akan mengambil data suhu dari API dan menampilkannya dengan baik. Saya akan menggunakan Node.bahasa pemrograman js untuk melakukannya. Kode diunggah di repositori GitHub saya shovon8/ds18b20-raspberrypi-api. Anda mungkin ingin memeriksanya jika Anda mengalami kesulitan menyalin dan menempelkan kode dari artikel ini.

simpul.js tidak diinstal pada Raspberry Pi OS secara default. Tapi, ini tersedia di repositori paket resmi Raspberry Pi OS. Anda dapat dengan mudah menginstal Node.js dari repositori paket Raspberry Pi OS.

Pertama, perbarui cache repositori paket APT dengan perintah berikut:

$ sudo apt update

Selanjutnya, instal Node.js dan NPM dengan perintah berikut:

$ sudo apt install nodejs npm

Untuk mengonfirmasi penginstalan, tekan kamu lalu tekan .

Manajer paket APT akan mengunduh dan menginstal semua paket yang diperlukan. Mungkin perlu beberapa saat untuk menyelesaikannya.

Pada titik ini, Node.js dan NPM harus diinstal.

Sekali Node.js dan NPM terinstal, periksa apakah whether simpul dan npm perintah yang tersedia, sebagai berikut:

$ simpul --versi
$npm --versi

Tingkatkan NPM dengan perintah berikut:

$ sudo npm install --global npm

NPM harus ditingkatkan.

Seperti yang Anda lihat, NPM telah diperbarui dari versi 5.8.0 ke versi 6.14.8.

$ simpul --versi $ npm --versi

Sekarang Node itu.js dan NPM diinstal, buat direktori proyek baru ~/ds18b20, sebagai berikut:

$ mkdir -v ~/ds18b20

Navigasikan ke ~/ds18b20 direktori, sebagai berikut:

$cd ~/ds18b20

Buat yang kosong paket.json file dengan perintah berikut:

$npm init --y

Instal Mengekspresikan.js perpustakaan untuk proyek dengan perintah berikut:

$npm install --save express

Ekspres.perpustakaan js sekarang harus diinstal.

Buat file baru server.js dalam direktori proyek, sebagai berikut:

$nano server.js

Masukkan baris kode berikut di server.js mengajukan.

biarkan ekspres = membutuhkan('ekspres');
biarkan fs = membutuhkan('fs');
biarkan server = ekspres();
const PORT = 8080;
const WEBROOT = './publik';
server.dapatkan('/', ekspres.statis (WEBROOT));
server.get('/temperature', (req, res) =>
biarkan tempDataPath = '/sys/bus/w1/devices/28-00000ba693e9/temperature';
misalkan suhu = fs.readFileSync(tempDataPath, pengkodean: 'utf8', bendera: 'r') / 1000;
res.json(suhu, rentangMulai: -55, rentangEnd: 125);
);
server.mendengarkan(PORT, () =>
menghibur.log('server berjalan pada port $PORT');
);

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyimpan server.file js.

Di sini, impor baris 1 mengekspresikan, dan baris 2 mengimpor fs modul.

Baris 4 menginisialisasi express.

Baris 6 dan 7 mendefinisikan PELABUHAN dan WEBROOT variabel konstan, masing-masing. API dan server web akan berjalan pada PELABUHAN (yang mana 8080, dalam artikel ini), dan server web akan menyajikan konten statis dari WEBROOT (yang merupakan publik/ direktori di dalam direktori proyek dalam artikel ini).

Baris 9 digunakan untuk mengonfigurasi express untuk menyajikan konten statis dari from WEBROOT.

Baris 11-15 mendefinisikan titik akhir API /suhu, yang akan digunakan untuk mendapatkan data suhu ke dalam format JSON.

Pada baris 12, tempDataPath variabel memegang jalur absolut ke suhu file modul termometer digital DS18B20, ditunjukkan di bagian awal artikel ini this.

Pada baris 13, data suhu dibaca dari suhu file menggunakan Node.js fs modul, dan data suhu disimpan di suhu variabel.

Pada baris 14, data suhu dicetak dalam format JSON. Modul termometer digital DS18B20 dapat mengukur antara suhu -55 °C hingga 125 °C. Saya telah menambahkan bahwa dalam output JSON menggunakan rentangMulai dan rangeEnd properti.

Akhirnya, baris 17-19 menjalankan API dan server web pada PELABUHAN (yang mana 8080, dalam artikel ini).

Membuat publik/ direktori di direktori proyek, sebagai berikut:

$ mkdir -v publik

Jalankan server.js program dengan perintah berikut:

$ server simpul.js

Server harus berjalan di port 8080.

Anda dapat mengakses data suhu modul termometer DS18B20 dari /suhu titik akhir API.

Untuk menguji apakah Anda bisa mendapatkan data suhu dari API, jalankan keriting, sebagai berikut:

$ curl -s http://localhost:8080/temperature | json_pp

Seperti yang Anda lihat, data suhu dicetak di konsol dalam format JSON. Jadi, API berfungsi.

tekan + C untuk menghentikan server.

Sekarang, saya akan membuat halaman web yang akan meminta server API untuk data suhu dan menampilkannya dengan baik di halaman. Data suhu akan diperbarui setiap 5 detik.

Buat yang baru indeks.html file di publik/ direktori proyek, sebagai berikut:

$ nano publik/indeks.html

Masukkan baris kode berikut di indeks.html mengajukan.




Pemantau Suhu







00.00°C


Pembaruan suhu setiap 5 detik



Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan indeks.html mengajukan.

File HTML-nya indeks.html mudah dimengerti. Ini adalah format di mana data suhu akan ditampilkan di aplikasi web.

Di sini, baris 53-55 digunakan untuk menampilkan bilah kemajuan, dan baris 57-60 digunakan untuk menampilkan suhu.

Baris 5-49 digunakan untuk mendekorasi aplikasi web dengan baik menggunakan CSS (Cascading Style Sheet).

Baris 62-109 digunakan untuk membuat aplikasi web berfungsi. Kode JavaScript digunakan untuk menganimasikan bilah kemajuan, mengambil data suhu dari API, dan menampilkan informasi.

Jalur 63 menjalankan utama berfungsi setelah aplikasi web dimuat di browser.

Itu utama fungsinya sangat panjang. Ini membentang dari jalur 65 ke jalur 108. Di dalam fungsi utama, kami memiliki beberapa fungsi lain, seperti dapatkanSuhu, perbaruiSuhu, updateProgress, aplikasi, dan Mulailah.

Itu updateProgress fungsi, pada baris 83-86, mengambil persentase kemajuan sebagai input dan memperbarui bilah kemajuan.

Itu perbaruiSuhu fungsi di baris 77-81 mengambil data suhu sebagai input dan memperbarui aplikasi web dengan data suhu.

Itu dapatkanSuhu fungsi di baris 66-75 membuat permintaan ke /suhu titik akhir API dan mendapatkan data suhu. Setelah data diterima, ia memanggil perbaruiSuhu fungsi dengan data. Itu perbaruiSuhu berfungsi kemudian memperbarui aplikasi web dengan data suhu baru.

Itu aplikasi fungsi, di baris 88-99, menganimasikan bilah kemajuan dan meminta data suhu dari API setiap 5 detik.

Itu Mulailah fungsi, di baris 101-104, memulai aplikasi web.

Buka paket.json file dengan editor teks nano sebagai berikut:

$paket nano.json

Perubahan utama untuk server.js dan tambahkan skrip baru Menyajikan dalam skrip bagian, seperti yang ditandai pada tangkapan layar di bawah ini.

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan paket.json mengajukan.

Sekarang semuanya sudah siap, jalankan aplikasi web dan API dengan perintah berikut:

$npm menjalankan servis

Server harus berjalan pada port 8080.

Sekarang, buka browser web di perangkat Raspberry Pi Anda dan kunjungi http://localhost:8080. Data suhu dari modul termometer digital DS18B20 harus ditampilkan di browser web Anda, seperti yang dapat Anda lihat pada gambar di bawah.

Data suhu harus diperbarui setiap 5 detik.

Seperti yang Anda lihat, suhu berubah setiap 5 detik.

Jika Anda ingin mengakses aplikasi web dari komputer lain di jaringan Anda, Anda perlu mengetahui alamat IP perangkat Raspberry Pi Anda.

Anda dapat menemukan alamat IP perangkat Raspberry Pi Anda dengan perintah berikut:

$ nama host -I

Seperti yang Anda lihat, alamat IP perangkat Raspberry Pi saya adalah 192.168.0.107. Ini akan berbeda untukmu. Jadi, pastikan untuk mengganti alamat IP mulai sekarang.

Setelah Anda mengetahui alamat IP perangkat Raspberry Pi Anda, Anda seharusnya dapat mengakses aplikasi web dari komputer mana pun di jaringan Anda menggunakan browser web. Kunjungi saja http://192.168.0.107:8080, dan aplikasi web akan menampilkan data suhu dari modul termometer digital DS18B20.

Kesimpulan

Pada artikel ini, Anda mempelajari cara menggunakan modul termometer digital DS18B20 di Raspberry Pi untuk mengukur suhu. Anda juga belajar cara membuat Node.js API untuk menampilkan data suhu di aplikasi web, yang mengakses data suhu dari API dan menampilkannya. Artikel ini akan membantu Anda memulai pemantauan suhu Raspberry Pi dengan modul termometer digital DS18B20 dan IoT dengan Raspberry Pi.

Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...
OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...
Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...