Isi kandungan:

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

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

Video: Pemantauan Suhu dan Kelembapan Menggunakan Raspberry Pi: 6 Langkah (dengan Gambar)
Video: Membuat Temperature System Menggunakan Raspberry Pi, Sensor Suhu, dan Ubidots 2024, November
Anonim
Pemantauan Suhu dan Kelembapan Menggunakan Raspberry Pi
Pemantauan Suhu dan Kelembapan Menggunakan Raspberry Pi
Pemantauan Suhu dan Kelembapan Menggunakan Raspberry Pi
Pemantauan Suhu dan Kelembapan Menggunakan Raspberry Pi

Musim panas akan tiba, dan mereka yang tidak mempunyai penghawa dingin harus bersedia untuk mengawal suasana di dalam rumah secara manual. Dalam catatan ini, saya menerangkan cara moden untuk mengukur parameter terpenting untuk keselesaan manusia: suhu dan kelembapan. Data yang dikumpulkan ini dihantar ke awan dan diproses di sana.

Saya menggunakan papan Raspberry Pi 1 dan sensor DHT22. Anda boleh melakukan perkara yang sama di mana-mana komputer yang mempunyai Internet, GPIO, dan Python. Sensor DHT11 yang lebih murah juga berfungsi dengan baik.

Langkah 1: Menyiapkan Perkakasan

Menyiapkan Perkakasan
Menyiapkan Perkakasan
Menyiapkan Perkakasan
Menyiapkan Perkakasan

Mari kita mulakan sejak awal, kerana saya sudah lama tidak menggunakan Raspberry Pi saya.

Kami memerlukan:

  • Papan Raspberry Pi (atau platform berorientasikan IoT lain).
  • Kad SD atau microSD (bergantung pada platform).
  • 5V / 1A melalui mikro-USB.
  • Kabel LAN, yang menyediakan sambungan Internet.
  • Paparan HDMI, paparan RCA, atau port UART (untuk mengaktifkan SSH).

Langkah pertama ialah memuat turun Raspbian. Saya telah memilih versi Lite, kerana saya akan menggunakan SSH dan bukannya paparan. Perkara telah berubah sejak kali terakhir saya melakukannya: sekarang ada perisian pembakar yang hebat yang disebut Etcher, yang berfungsi dengan sempurna, dan mempunyai reka bentuk yang menakjubkan.

Setelah pembakaran gambar selesai, saya memasukkan kad SD ke dalam Pi saya, menyambungkan LAN dan kabel kuasa, dan setelah beberapa ketika, penghala saya mendaftarkan peranti baru.

Langkah 2: Mengaktifkan SSH

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

SSH dilumpuhkan secara lalai. Saya boleh menggunakan penukar UART-USB atau hanya menyambungkan paparan untuk mengakses shell dan mengaktifkan SSH.

Selepas reboot, saya akhirnya masuk. Pertama-tama, mari kita kemas kini:

sudo apt update & sudo apt upgrade -y

Sekarang mari kita sambungkan peranti baru ini ke Cloud.

Langkah 3: Memasang Cloud4RPi

Memasang Cloud4RPi
Memasang Cloud4RPi

Saya memutuskan untuk mencuba platform awan bernama Cloud4RPi, yang direka untuk IoT.

Menurut dokumen, kami memerlukan pakej berikut untuk menjalankannya:

sudo apt install git python python-pip -y

Perpustakaan pelanggan boleh dipasang dalam satu arahan:

sudo pip pasang cloud4rpi

Sekarang kita memerlukan beberapa contoh kod 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 menyukai data palsu. Nasib baik, saya melihat kaedah mudah untuk menjadikan data diagnostik menjadi nyata dalam contoh ini. Tambahkan satu lagi import ke bahagian import:

dari rpi import *

Kemudian padamkan fungsi ini yang menyediakan data palsu (rpi.py menentukannya sekarang):

def cpu_temp ():

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

Sekarang kita memerlukan token, yang membolehkan Cloud4RPi menghubungkan peranti dengan akaun. Untuk mendapatkannya, buat akaun di cloud4rpi.io dan tekan butang Peranti Baru di halaman ini. Ganti rentetan _YOUR_DEVICE_TOKEN_ dalam fail minimal.py dengan token peranti anda dan simpan fail tersebut. Sekarang kami sudah bersedia untuk pelancaran pertama.

python minimum.py

Buka halaman peranti dan periksa bahawa data ada.

Sekarang mari kita beralih ke data dunia nyata.

Langkah 4: Menyambungkan Sensor

Menyambungkan Sensor
Menyambungkan Sensor

Kami memerlukan:

  • Sensor kelembapan DHT22 atau DHT11
  • Perintang tarik (5-10 KΩ)
  • Wayar

Sensor DHT22 mengukur suhu dan kelembapan secara serentak. Protokol komunikasi tidak standard, jadi kami tidak perlu mengaktifkannya dalam raspi-config - pin GPIO sederhana lebih daripada cukup.

Untuk memperoleh data, saya akan menggunakan perpustakaan hebat Adafruit untuk sensor DHT, tetapi mungkin tidak berfungsi seperti sedia kala. Saya pernah menemui kelewatan berterusan dalam kod, yang tidak berfungsi untuk perkakasan saya, dan setelah dua tahun permintaan penarik saya masih belum selesai. Saya juga telah menukar pemalar pengesanan papan kerana Raspberry Pi 1 saya dengan BCM2835 secara mengejutkan dikesan sebagai Raspberry Pi 3. Saya harap ia benar … Oleh itu, saya cadangkan menggunakan garpu saya. Sekiranya anda mengalami masalah dengannya, cubalah repositori asal, mungkin ia berfungsi untuk seseorang, tetapi saya bukan salah satu dari mereka.

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

Oleh kerana perpustakaan ditulis dalam C, ia memerlukan penyusunan, jadi anda memerlukan pakej build-esensial dan python-dev.

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

Semasa pakej dipasang, sambungkan DHT22 seperti yang ditunjukkan dalam gambar.

Dan mengujinya:

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

Sekiranya anda melihat sesuatu seperti (39.20000076293945, 22.600000381469727), anda harus tahu bahawa ini adalah kelembapan dalam sen dan suhu dalam Celsius.

Sekarang, mari kita mengumpulkan semuanya!

Langkah 5: Menghantar Bacaan Sensor ke Cloud

Menghantar Bacaan Sensor ke Cloud
Menghantar Bacaan Sensor ke Cloud

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

cd cloud4rpi-raspberrypi-python

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

Oleh kerana DHT22 mengembalikan suhu dan kelembapan dalam satu panggilan, saya menyimpannya secara global dan mengemas kini hanya sekali dalam permintaan, dengan anggapan kelewatan di antara mereka melebihi 10 saat. Pertimbangkan kod berikut, yang memperoleh data DHT22:

import Adafruit_DHT

temp, hum = None, None last_update = time.time () - 20 def update_data (): last_update global, 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 pusingan (temp, 2) jika temp tidak ada Tiada yang lain

Masukkan kod ini setelah import yang ada dan edit bahagian pemboleh ubah sehingga menggunakan fungsi baru:

pemboleh ubah = {

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

Tekan butang merah untuk memulakan pemindahan data:

python cloud_dht22.py

Kemudian anda boleh menyemak halaman peranti.

Anda boleh membiarkannya seperti sedia ada, tetapi saya lebih suka mempunyai perkhidmatan untuk semuanya. Ini memastikan bahawa skrip sentiasa berjalan. Membuat perkhidmatan dengan skrip automatik sepenuhnya:

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

Memulakan perkhidmatan:

perkhidmatan sudo cloud4rpi bermula

Dan memeriksanya:

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

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

Sekiranya semuanya berfungsi seperti yang diharapkan, kita boleh terus menggunakan dan menggunakan kemampuan platform Cloud4RPi untuk memanipulasi data.

Langkah 6: Carta dan Penggera

Carta dan Penggera
Carta dan Penggera
Carta dan Penggera
Carta dan Penggera
Carta dan Penggera
Carta dan Penggera

Pertama sekali, mari kita plot pemboleh ubah untuk melihat bagaimana perubahannya. Ini dapat dilakukan dengan menambahkan Panel Kawalan baru dan meletakkan carta yang diperlukan di dalamnya.

Perkara lain yang boleh kita lakukan di sini ialah menetapkan Makluman. Ciri ini membolehkan anda mengkonfigurasi julat selamat untuk pemboleh ubah. Sebaik sahaja rentang dilampaui, ia akan mengirimkan pemberitahuan e-mel. Pada halaman pengeditan Panel Kawalan, anda boleh beralih ke Makluman dan menetapkannya.

Sejurus selepas itu, kelembapan di bilik saya mulai berkurang dengan cepat tanpa sebab yang jelas, dan penggera segera menyusul.

Anda boleh menggunakan Cloud4RPi secara percuma dengan mana-mana perkakasan yang dapat melaksanakan Python. Bagi saya, sekarang saya selalu tahu kapan menghidupkan pelembap udara, dan saya juga boleh menyambungkannya ke geganti untuk kawalan jauh melalui Cloud4RPi. Saya bersedia untuk panas! Selamat datang musim panas!

Disyorkan: