Daftar Isi:

Pemantauan Suhu dan Kelembaban Menggunakan Raspberry Pi: 6 Langkah (dengan Gambar)
Pemantauan Suhu dan Kelembaban Menggunakan Raspberry Pi: 6 Langkah (dengan Gambar)

Video: Pemantauan Suhu dan Kelembaban Menggunakan Raspberry Pi: 6 Langkah (dengan Gambar)

Video: Pemantauan Suhu dan Kelembaban Menggunakan Raspberry Pi: 6 Langkah (dengan Gambar)
Video: Raspberry pi DHT11 menggunakan Python, PHP, MySQL dan Jquery 2024, Juli
Anonim
Pemantauan Suhu dan Kelembaban Menggunakan Raspberry Pi
Pemantauan Suhu dan Kelembaban Menggunakan Raspberry Pi
Pemantauan Suhu dan Kelembaban Menggunakan Raspberry Pi
Pemantauan Suhu dan Kelembaban Menggunakan Raspberry Pi

Musim panas akan datang, dan mereka yang tidak memiliki AC harus bersiap untuk mengontrol suasana di dalam ruangan secara manual. Dalam posting ini, saya menjelaskan cara modern untuk mengukur parameter terpenting untuk kenyamanan manusia: suhu dan kelembaban. Data yang dikumpulkan ini dikirim ke cloud dan diproses di sana.

Saya menggunakan papan Raspberry Pi 1 dan sensor DHT22. Anda dapat melakukan hal yang sama di komputer mana pun yang memiliki Internet, GPIO, dan Python. Sensor DHT11 yang lebih murah juga berfungsi dengan baik.

Langkah 1: Mempersiapkan Perangkat Keras

Mempersiapkan Perangkat Keras
Mempersiapkan Perangkat Keras
Mempersiapkan Perangkat Keras
Mempersiapkan Perangkat Keras

Mari kita mulai dari awal, karena saya tidak menggunakan Raspberry Pi untuk waktu yang cukup lama.

Kita akan butuh:

  • Papan Raspberry Pi (atau platform berorientasi IoT lainnya).
  • Kartu SD atau microSD (tergantung platform).
  • 5V/1A melalui micro-USB.
  • Kabel LAN, yang menyediakan koneksi Internet.
  • Tampilan HDMI, tampilan RCA, atau port UART (untuk mengaktifkan SSH).

Langkah pertama adalah mengunduh Raspbian. Saya telah memilih versi Lite, karena saya akan menggunakan SSH daripada tampilan. Banyak hal telah berubah sejak terakhir kali saya melakukannya: sekarang ada perangkat lunak pembakaran hebat yang disebut Etcher, yang bekerja dengan sempurna, dan memiliki desain yang menakjubkan.

Setelah pembakaran gambar selesai, saya memasukkan kartu SD ke Pi saya, menyambungkan LAN dan kabel daya, dan setelah beberapa saat, router saya mendaftarkan perangkat baru.

Langkah 2: Mengaktifkan SSH

Mengaktifkan SSH
Mengaktifkan SSH
Mengaktifkan SSH
Mengaktifkan SSH
Mengaktifkan SSH
Mengaktifkan SSH

SSH dinonaktifkan secara default. Saya dapat menggunakan konverter UART-USB atau hanya menghubungkan layar untuk mengakses shell dan mengaktifkan SSH.

Setelah reboot, saya akhirnya masuk. Hal pertama yang pertama, mari perbarui:

sudo apt update && sudo apt upgrade -y

Sekarang mari kita hubungkan perangkat baru ini ke Cloud.

Langkah 3: Menginstal Cloud4RPi

Menginstal Cloud4RPi
Menginstal Cloud4RPi

Saya memutuskan untuk mencoba platform cloud yang disebut Cloud4RPi, yang dirancang untuk IoT.

Menurut dokumen, kami membutuhkan paket-paket berikut untuk menjalankannya:

sudo apt install git python python-pip -y

Pustaka klien dapat diinstal dalam satu perintah:

sudo pip instal cloud4rpi

Sekarang kita membutuhkan beberapa contoh kode untuk memastikannya berfungsi.

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://Gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re

Saya memutuskan untuk menjalankan minimal.py, tetapi saya tidak suka data palsu. Untungnya, saya melihat cara mudah untuk membuat data diagnostik menjadi nyata dalam contoh ini. Tambahkan satu impor lagi ke bagian impor:

dari rpi impor *

Kemudian hapus fungsi-fungsi ini yang menyediakan data palsu (rpi.py mendefinisikannya sekarang):

def cpu_temp():

return 70 def ip_address(): return '8.8.8.8' def host_name(): return 'hostname' def os_name(): return 'osx'

Sekarang kita membutuhkan token, yang memungkinkan Cloud4RPi menautkan perangkat dengan akun. Untuk mendapatkannya, buat akun di cloud4rpi.io dan tekan tombol Perangkat Baru di halaman ini. Ganti string _YOUR_DEVICE_TOKEN_ di file minimal.py dengan token perangkat Anda dan simpan file tersebut. Sekarang kita siap untuk peluncuran pertama.

python minimal.py

Buka halaman perangkat dan periksa apakah ada data.

Sekarang mari kita beralih ke data dunia nyata.

Langkah 4: Menghubungkan Sensor

Menghubungkan Sensor
Menghubungkan Sensor

Kita akan butuh:

  • Sensor kelembaban DHT22 atau DHT11
  • Resistor pull-up (5-10 KΩ)
  • kabel

Sensor DHT22 mengukur suhu dan kelembaban secara bersamaan. Protokol komunikasi tidak standar, jadi kita tidak perlu mengaktifkannya di raspi-config - pin GPIO sederhana sudah lebih dari cukup.

Untuk memperoleh data, saya akan menggunakan perpustakaan Adafruit yang bagus untuk sensor DHT, tetapi mungkin tidak berfungsi apa adanya. Saya pernah menemukan penundaan konstan yang aneh dalam kode, yang tidak berfungsi untuk perangkat keras saya, dan setelah dua tahun permintaan tarik saya masih tertunda. Saya juga telah mengubah konstanta deteksi papan karena Raspberry Pi 1 saya dengan BCM2835 secara mengejutkan terdeteksi sebagai Raspberry Pi 3. Saya berharap itu benar… Jadi, saya sarankan menggunakan garpu saya. Jika Anda mengalami masalah dengan itu, silakan coba repositori asli, mungkin itu berfungsi untuk seseorang, tetapi saya bukan salah satunya.

git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

Karena perpustakaan ditulis dalam C, itu memerlukan kompilasi, jadi Anda memerlukan paket build-essential dan python-dev.

sudo apt install build-essential python-dev -ysudo python setup.py install

Saat paket sedang diinstal, sambungkan DHT22 seperti yang ditunjukkan pada gambar.

Dan mengujinya:

cd ~python -c "import Adafruit_DHT sebagai d; print d.read_retry(d. DHT22, 4)"

Jika Anda melihat sesuatu seperti (39.200000076293945, 22.600000381469727), Anda harus tahu bahwa ini adalah kelembapan dalam persen dan suhu dalam Celcius.

Sekarang, mari kita kumpulkan semuanya bersama-sama!

Langkah 5: Mengirim Pembacaan Sensor ke Cloud

Mengirim Pembacaan Sensor ke Cloud
Mengirim Pembacaan Sensor ke Cloud

Saya akan menggunakan minimal.py sebagai basis dan menambahkan interaksi DHT22 ke dalamnya.

cd cloud4rpi-raspberrypi-python

cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py

Karena DHT22 mengembalikan suhu dan kelembaban dalam satu panggilan, saya menyimpannya secara global dan memperbarui hanya sekali dalam permintaan, dengan asumsi penundaan di antara keduanya lebih dari 10 detik. Pertimbangkan kode berikut, yang memperoleh data DHT22:

impor Adafruit_DHT

temp, hum = Tidak ada, Tidak ada last_update = time.time() - 20 def update_data(): global last_update, hum, temp if time.time() - last_update > 10: hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) last_update = time.time() def get_t(): update_data() return round(temp, 2) jika temp tidak Tidak ada lagi None def get_h(): update_data() return round(hum, 2) jika hum tidak Tidak ada yang lain Tidak ada

Masukkan kode ini setelah impor yang ada dan edit bagian variabel sehingga menggunakan fungsi baru:

variabel = {

'DHT22 Temp': { 'type': 'numeric', 'bind': get_t }, 'DHT22 Humidity': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'type ': 'numerik', 'mengikat': cpu_temp } }

Tekan tombol merah untuk memulai transfer data:

python cloud_dht22.py

Kemudian Anda dapat memeriksa halaman perangkat.

Anda dapat membiarkannya apa adanya, tetapi saya lebih suka memiliki layanan untuk semuanya. Ini memastikan bahwa skrip selalu berjalan. Membuat layanan dengan skrip yang sepenuhnya otomatis:

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

Memulai layanan:

layanan sudo cloud4rpi mulai

Dan memeriksanya:

pi@raspberrypi:~ $ sudo layanan cloud4rpi status -l

● cloud4rpi.service - daemon Cloud4RPi Dimuat: dimuat (/lib/systemd/system/cloud4rpi.service; diaktifkan) Aktif: aktif (berjalan) sejak Rabu-17-05-17 20:22:48 UTC; 1 menit yang lalu PID Utama: 560 (python) CGroup: /system.slice/cloud4rpi.service 560, /usr/bin/python /home/pi/cloud_dht22.py17 Mei 20:22:51 raspberrypi python[560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]}17 Mei 20:22:53 raspberrypi python[560]: Menerbitkan iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20:2…40'}}17 Mei 20:22:53 raspberrypi python[560]: Menerbitkan iot-hub/messages: {'type': 'sistem', 'ts': '2017-05-17T20….4'}}

Jika semuanya berjalan seperti yang diharapkan, kita dapat melanjutkan dan menggunakan kemampuan platform Cloud4RPi untuk memanipulasi data.

Langkah 6: Grafik dan Alarm

Grafik dan Alarm
Grafik dan Alarm
Grafik dan Alarm
Grafik dan Alarm
Grafik dan Alarm
Grafik dan Alarm

Pertama-tama, mari kita plot variabel untuk melihat bagaimana mereka berubah. Ini dapat dilakukan dengan menambahkan Panel Kontrol baru dan meletakkan grafik yang diperlukan di dalamnya.

Hal lain yang bisa kita lakukan di sini adalah mengatur Alert. Fitur ini memungkinkan Anda untuk mengonfigurasi rentang aman untuk suatu variabel. Segera setelah rentang terlampaui, ia mengirimkan pemberitahuan email. Pada halaman pengeditan Panel Kontrol, Anda dapat beralih ke Peringatan dan mengaturnya.

Tepat setelah itu, kelembaban di kamar saya mulai berkurang dengan cepat tanpa alasan yang jelas, dan alarm segera berbunyi.

Anda dapat menggunakan Cloud4RPi secara gratis dengan perangkat keras apa pun yang dapat menjalankan Python. Bagi saya, sekarang saya selalu tahu kapan harus menyalakan pelembab udara, dan saya bahkan dapat menghubungkannya ke relai untuk kendali jarak jauh melalui Cloud4RPi. Saya siap untuk panas! Selamat datang musim panas!

Direkomendasikan: