Isi kandungan:

Stesen Cuaca Menggunakan Raspberry Pi Dengan BME280 di Python: 6 Langkah
Stesen Cuaca Menggunakan Raspberry Pi Dengan BME280 di Python: 6 Langkah

Video: Stesen Cuaca Menggunakan Raspberry Pi Dengan BME280 di Python: 6 Langkah

Video: Stesen Cuaca Menggunakan Raspberry Pi Dengan BME280 di Python: 6 Langkah
Video: ESP32 DHT Web Server Project 2024, Julai
Anonim
Image
Image
Bil Peralatan Imper-t.webp
Bil Peralatan Imper-t.webp

adalah maith a scéalaí an bertujuan (The Weather is a Good Storyteller)

Dengan masalah pemanasan global dan perubahan iklim, corak cuaca global menjadi tidak menentu di seluruh dunia kita sehingga menyebabkan sejumlah bencana alam yang berkaitan dengan cuaca (kemarau, suhu yang melampau, banjir, ribut, dan kebakaran hutan), stesen cuaca nampaknya diperlukan jahat di rumah. Anda banyak belajar mengenai elektronik asas dari projek stesen cuaca menggunakan sekumpulan alat dan sensor yang murah. Sangat mudah untuk disiapkan dan dalam masa yang singkat anda dapat memilikinya.

Langkah 1: Bil Peralatan Imperatif

Bil Peralatan Imper-t.webp
Bil Peralatan Imper-t.webp
Bil Peralatan Imper-t.webp
Bil Peralatan Imper-t.webp
Bil Peralatan Imper-t.webp
Bil Peralatan Imper-t.webp

1. A Raspberry Pi

Dapatkan tangan anda di papan Raspberry Pi. Raspberry Pi adalah komputer papan tunggal berkuasa Linux. Raspberry Pi dibina dengan sangat murah, kecil dan serba boleh dari komputer yang mudah diakses dan berfungsi untuk pelajar menggunakan asas pengaturcaraan dan pengembangan perisian.

2. Perisai I2C untuk Raspberry Pi

INPI2 (penyesuai I2C) menyediakan port Raspberry Pi 2/3 dan I²C untuk digunakan dengan pelbagai peranti I2C. Ia boleh didapati di DCUBE Store.

3. Sensor Kelembapan Digital, Tekanan dan Suhu, BME280

BME280 adalah sensor kelembapan, tekanan dan suhu yang mempunyai masa tindak balas yang cepat dan ketepatan keseluruhan yang tinggi. Kami membeli sensor ini dari DCUBE Store.

4. Kabel Penyambung I2C

Kami menggunakan kabel I²C yang terdapat di sini DCUBE Store.

5. Kabel USB mikro

Bekalan kuasa kabel USB mikro adalah pilihan yang sesuai untuk menghidupkan Raspberry Pi.

6. Tafsirkan Akses Internet melalui Penyesuai EthernetCable / WiFi

Akses internet dapat diaktifkan melalui kabel Ethernet yang disambungkan ke rangkaian tempatan dan internet. Sebagai alternatif, anda boleh menyambung ke rangkaian tanpa wayar menggunakan dongle wayarles USB, yang memerlukan konfigurasi.

7. Kabel HDMI (Kabel paparan & sambungan)

Mana-mana monitor HDMI / DVI dan TV apa pun harus berfungsi sebagai paparan untuk Pi. Sebagai alternatif, anda boleh mengakses Pi melalui SSH dari jauh yang menafikan keperluan monitor (pengguna lanjutan sahaja).

Langkah 2: Sambungan Perkakasan untuk Litar

Sambungan Perkakasan untuk Litar
Sambungan Perkakasan untuk Litar
Sambungan Perkakasan untuk Litar
Sambungan Perkakasan untuk Litar

Buat litar mengikut skema yang ditunjukkan. Secara umum, sambungannya sangat mudah. Tetap tenang dan Ikuti arahan dan gambar di atas, dan anda semestinya tidak menghadapi masalah. Semasa belajar, kami memahami asas elektronik mengenai pengetahuan perkakasan dan perisian. Kami ingin merangka skema elektronik mudah untuk projek ini. Skema elektronik seperti cetak biru. Rangka cetak biru dan ikuti reka bentuknya dengan teliti. Beberapa konsep asas elektronik mungkin berguna di sini!

Sambungan Raspberry Pi dan I2C Shield

Pertama, ambil Raspberry Pi dan letakkan I²C Shield di atasnya. Tekan Perisai dengan lembut dan kami selesai dengan langkah ini semudah pai (lihat gambar).

Sambungan Sensor dan Raspberry Pi

Ambil sensor dan Sambungkan kabel I²C dengannya. Pastikan Output I²C SELALU menghubungkan ke Input I²C. Perkara yang sama harus diikuti untuk Raspberry Pi dengan pelindung I²C yang terpasang di atasnya pin GPIO. Kami mengesyorkan penggunaan kabel I²C kerana ia menolak keperluan membaca pinout, pematerian, dan malaise yang disebabkan oleh sedikit pun slip-up. Dengan kabel plug and play yang mudah ini, anda boleh memasang, menukar papan, atau menambahkan lebih banyak papan ke aplikasi dengan mudah.

Catatan: Kawat coklat harus selalu mengikuti hubungan Ground (GND) antara output satu peranti dan input peranti lain

Kesambungan Internet adalah kunci

Anda mempunyai dua pilihan di sini. Anda boleh menyambungkan Raspberry Pi ke rangkaian menggunakan kabel ethernet atau menggunakan Penyesuai USB ke WiFi untuk Kesambungan WIFI. Walau apa pun, selagi ia disambungkan ke internet, anda dilindungi.

Menghidupkan Litar

Pasangkan kabel Micro USB ke soket kuasa Raspberry Pi. Tumbuk dan voila! Pasukan kami adalah maklumat.

Sambungan ke Skrin

Kita boleh menyambungkan kabel HDMI ke monitor atau ke TV. Selain itu, kita dapat mengakses Raspberry Pi tanpa menyambungkannya ke monitor menggunakan akses jauh. SSH adalah alat yang berguna untuk akses jauh yang selamat. Anda juga boleh menggunakan perisian PUTTY untuk itu. Pilihan ini adalah untuk pengguna lanjutan sehingga kami tidak akan membahasnya secara terperinci di sini.

Ini adalah kaedah yang menjimatkan jika anda tidak mahu mengeluarkan banyak perbelanjaan

Langkah 3: Pengaturcaraan Raspberry Pi di Python

Pengaturcaraan Raspberry Pi di Python
Pengaturcaraan Raspberry Pi di Python

Kod Python untuk Raspberry Pi dan BME280 Sensor. Ia tersedia di repositori Github kami.

Sebelum meneruskan kod, pastikan anda membaca arahan yang diberikan dalam fail Readme dan Siapkan Pi Raspberry anda sesuai dengannya. Hanya sedikit masa akan membuat anda siap untuk persediaan. Stesen cuaca adalah kemudahan, baik di darat atau laut, dengan instrumen dan peralatan untuk mengukur keadaan atmosfera untuk memberikan maklumat untuk ramalan cuaca dan mengkaji cuaca dan iklim.

Kodnya jelas di hadapan anda dan terdapat dalam bentuk termudah yang dapat anda bayangkan dan anda semestinya tidak mempunyai masalah. Masih bertanya apakah ada (Walaupun anda mengetahui seribu perkara, tetap bertanya kepada seseorang yang tahu).

Anda juga boleh menyalin kod Python yang berfungsi untuk sensor ini dari sini.

# Diagihkan dengan lesen kehendak bebas. # Gunakan dengan cara yang anda mahukan, untung atau percuma, dengan syarat ia sesuai dengan lesen karya-karya yang berkaitan. # BME280 # Kod ini dirancang untuk berfungsi dengan Modul Mini BME280_I2CS I2C yang tersedia dari ControlEverything.com. #

import smbus

masa import

# Dapatkan bas I2C

bas = smbus. SMBus (1)

# Alamat BME280, 0x76 (118)

# Baca kembali data dari 0x88 (136), 24 byte b1 = bus.read_i2c_block_data (0x76, 0x88, 24)

# Tukarkan data

# Pekali temp dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] jika dig_T2> 32767: dig_T2 - = 65536 dig_T3 = b1 [5] * 256 + b1 [4] jika dig_T3> 32767: dig_T3 - = 65536

# Pekali tekanan

dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] jika dig_P2> 32767: dig_P2 - = 65536 dig_P3 = b1 [11] * 256 + b1 [10] jika dig_P3 > 32767: dig_P3 - = 65536 dig_P4 = b1 [13] * 256 + b1 [12] jika dig_P4> 32767: dig_P4 - = 65536 dig_P5 = b1 [15] * 256 + b1 [14] jika dig_P5> 32767: dig_P5 - = 65536 dig_P6 = b1 [17] * 256 + b1 [16] jika dig_P6> 32767: dig_P6 - = 65536 dig_P7 = b1 [19] * 256 + b1 [18] jika dig_P7> 32767: dig_P7 - = 65536 dig_P8 = b1 [21] * 256 + b1 [20] jika dig_P8> 32767: dig_P8 - = 65536 dig_P9 = b1 [23] * 256 + b1 [22] jika dig_P9> 32767: dig_P9 - = 65536

# Alamat BME280, 0x76 (118)

# Baca kembali data dari 0xA1 (161), 1 byte dig_H1 = bus.read_byte_data (0x76, 0xA1)

# Alamat BME280, 0x76 (118)

# Baca kembali data dari 0xE1 (225), 7 bait b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)

# Tukarkan data

# Pekali kelembapan dig_H2 = b1 [1] * 256 + b1 [0] jika dig_H2> 32767: dig_H2 - = 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) jika dig_H4> 32767: dig_H4 - = 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) jika dig_H5> 32767: dig_H5 - = 65536 dig_H6 = b1 [6] jika dig_H6> 127: dig_H6 - = 256

# Alamat BME280, 0x76 (118)

# Pilih daftar kelembapan kawalan, 0xF2 (242) # 0x01 (01) Pengambilan Kelembapan Kelembapan = 1 bas.write_byte_data (0x76, 0xF2, 0x01) # Alamat BME280, 0x76 (118) # Pilih Daftar pengukuran kawalan, 0xF4 (244) # 0x27 (39) Tekanan dan Suhu Oversampling rate = 1 # Bus mod normal.write_byte_data (0x76, 0xF4, 0x27) # Alamat BME280, 0x76 (118) # Select Configuration register, 0xF5 (245) # 0xA0 (00) Waktu siaga = 1000 ms bas.write_byte_data (0x76, 0xF5, 0xA0)

masa. tidur (0.5)

# Alamat BME280, 0x76 (118)

# Baca kembali data dari 0xF7 (247), 8 bita # Tekanan MSB, Tekanan LSB, Tekanan xLSB, Suhu MSB, Suhu LSB # Suhu xLSB, Kelembapan MSB, Kelembapan data LSB = bas.read_i2c_block_data (0x76, 0xF7, 8)

# Tukar data tekanan dan suhu menjadi 19-bit

adc_p = ((data [0] * 65536) + (data [1] * 256) + (data [2] & 0xF0)) / 16 adc_t = ((data [3] * 65536) + (data [4] * 256) + (data [5] & 0xF0)) / 16

# Tukarkan data kelembapan

adc_h = data [6] * 256 + data [7]

# Pengiraan mengimbangi suhu

var1 = ((adc_t) / 16384.0 - (dig_T1) / 1024.0) * (dig_T2) var2 = (((adc_t) / 131072.0 - (dig_T1) / 8192.0) * ((adc_t) /131072.0 - (dig_T1) /8192.0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120.0 fTemp = cTemp * 1.8 + 32

# Pengiraan mengimbangi tekanan

var1 = (t_fine / 2.0) - 64000.0 var2 = var1 * var1 * (dig_P6) / 32768.0 var2 = var2 + var1 * (dig_P5) * 2.0 var2 = (var2 / 4.0) + ((dig_P4) * 65536.0) var1 = ((dig_P3) * var1 * var1 / 524288.0 + (dig_P2) * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * (dig_P1) p = 1048576.0 - adc_p p = (p - (var2 / 4096.0)) * 6250.0 / var1 var1 = (dig_P9) * p * p / 2147483648.0 var2 = p * (dig_P8) / 32768.0 tekanan = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100

# Pengiraan mengimbangi kelembapan

var_H = ((t_fine) - 76800.0) var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 * var_ kelembapan = var_H * (1.0 - dig_H1 * var_H / 524288.0) jika kelembapan> 100.0: kelembapan = 100.0 kelembapan elif <0.0: kelembapan = 0.0

# Keluarkan data ke skrin

cetak "Suhu dalam Celsius:%.2f C"% cTemp cetak "Suhu dalam Fahrenheit:%.2f F"% fTemp cetak "Tekanan:%.2f hPa"% tekanan cetak "Kelembapan Relatif:%.2f%%"% kelembapan

Langkah 4: Kod Berlari

Kod Berlari
Kod Berlari

Sekarang, muat turun (atau git tarik) kod dan buka di Raspberry Pi.

Jalankan perintah untuk Menyusun dan Memuat naik kod di terminal dan melihat hasilnya di Paparan. Setelah beberapa saat, ia akan memaparkan semua parameter. Setelah memastikan semuanya berfungsi dengan baik, anda boleh mengembangkan beberapa yang lebih menarik.

Langkah 5: Penggunaan dalam Dunia Praktikal

BME280 mencapai prestasi tinggi dalam semua aplikasi yang memerlukan pengukuran kelembapan dan tekanan. Aplikasi yang muncul ini adalah kesedaran Konteks, mis. Pengesanan Kulit, Pengesanan Perubahan Bilik, Pemantauan / Kesejahteraan Kesihatan, Amaran Mengenai Kekeringan atau Suhu Tinggi, Pengukuran Isipadu dan Aliran Udara, Kawalan Automasi Rumah, Pemanasan Kawalan, Pengudaraan, Penyaman Udara (HVAC), Internet of Things (IoT), Peningkatan GPS (mis. Peningkatan Masa ke Pertama-Perbaikan, Perhitungan Mati, Pengesanan Cerun), Navigasi Dalam Ruangan (Penggantian Lantai, Pengesanan Lif), Navigasi Luar, Aplikasi Riadah & Sukan, Ramalan Cuaca dan Petunjuk Kecepatan Vertikal (Naik / Tenggelam Kelajuan).

Langkah 6: Kesimpulannya

Semoga projek ini memberi inspirasi kepada eksperimen lebih lanjut. Membuat stesen cuaca yang lebih canggih boleh melibatkan lebih banyak sensor seperti Rain Gauge, Sensor cahaya, anemometer (kelajuan angin) dan lain-lain. Anda boleh menambahkannya dan mengubah kodnya. Kami mempunyai tutorial video di YouTube yang mempunyai fungsi asas sensor I²C dengan Rasp Pi. Sangat mengagumkan apabila melihat hasil dan hasil komunikasi I²C. Periksa juga. Selamat membina dan belajar! Sila beritahu kami pendapat anda mengenai perkara ini. Kami ingin membuat beberapa penambahbaikan sekiranya perlu.

Disyorkan: