Daftar Isi:

Weather Station Menggunakan Raspberry Pi Dengan BME280 dengan Python: 6 Langkah
Weather Station Menggunakan Raspberry Pi Dengan BME280 dengan Python: 6 Langkah

Video: Weather Station Menggunakan Raspberry Pi Dengan BME280 dengan Python: 6 Langkah

Video: Weather Station Menggunakan Raspberry Pi Dengan BME280 dengan Python: 6 Langkah
Video: Raspberry Pi Pico W - BME280 Weather Station Dashboard 2024, Juli
Anonim
Image
Image
Tagihan Peralatan Imper-t.webp
Tagihan Peralatan Imper-t.webp

is maith an scéalaí an aimir(Cuaca adalah Pendongeng yang Baik)

Dengan isu pemanasan global dan perubahan iklim, pola cuaca global menjadi tidak menentu di seluruh dunia kita yang mengarah ke sejumlah bencana alam terkait cuaca (kekeringan, suhu ekstrim, banjir, badai, dan kebakaran hutan), stasiun cuaca tampaknya diperlukan jahat di rumah. Anda belajar banyak tentang elektronik dasar dari proyek stasiun cuaca menggunakan banyak suku cadang dan sensor murah. Ini cukup mudah diatur dan dalam waktu singkat Anda dapat memilikinya.

Langkah 1: Tagihan Peralatan Imperatif

Tagihan Peralatan Imper-t.webp
Tagihan Peralatan Imper-t.webp
Tagihan Peralatan Imper-t.webp
Tagihan Peralatan Imper-t.webp
Tagihan Peralatan Imper-t.webp
Tagihan Peralatan Imper-t.webp

1. Pi Raspberry

Dapatkan tangan Anda di papan Raspberry Pi. Raspberry Pi adalah komputer papan tunggal bertenaga Linux. Raspberry Pi benar-benar murah, mungil dan serbaguna dibangun dari komputer yang dapat diakses dan fungsional bagi pelajar untuk melatih dasar-dasar pemrograman dan pengembangan perangkat lunak.

2. Perisai I2C untuk Raspberry Pi

INPI2 (adaptor I2C) menyediakan Raspberry Pi 2/3 port I²C untuk digunakan dengan beberapa perangkat I2C. Ini tersedia di DCUBE Store.

3. Sensor Kelembaban, Tekanan dan Suhu Digital, BME280

BME280 adalah sensor kelembaban, tekanan, dan suhu yang memiliki waktu respons cepat dan akurasi keseluruhan yang tinggi. Kami membeli sensor ini dari DCUBE Store.

4. Kabel Penghubung I2C

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

5. Kabel USB mikro

Kabel USB mikro Catu daya adalah pilihan ideal untuk memberi daya pada Raspberry Pi.

6. Menafsirkan Akses Internet melalui EthernetCable/WiFi Adapter

Akses internet dapat diaktifkan melalui kabel Ethernet yang terhubung ke jaringan lokal dan internet. Atau, Anda dapat menyambung ke jaringan nirkabel menggunakan dongle nirkabel USB, yang memerlukan konfigurasi.

7. Kabel HDMI (Kabel layar & konektivitas)

Monitor HDMI/DVI dan TV apa pun harus berfungsi sebagai tampilan untuk Pi. Atau, Anda dapat mengakses Pi dari jarak jauh melalui SSH yang meniadakan kebutuhan akan monitor (khusus pengguna tingkat lanjut).

Langkah 2: Koneksi Perangkat Keras untuk Sirkuit

Koneksi Perangkat Keras untuk Sirkuit
Koneksi Perangkat Keras untuk Sirkuit
Koneksi Perangkat Keras untuk Sirkuit
Koneksi Perangkat Keras untuk Sirkuit

Buat rangkaian sesuai skema yang ditunjukkan. Secara umum, sambungannya sangat sederhana. Tetap tenang dan Ikuti petunjuk dan gambar di atas, dan Anda seharusnya tidak memiliki masalah. Sambil belajar, kami benar-benar menguasai dasar-dasar elektronika mengenai pengetahuan perangkat keras dan perangkat lunak. Kami ingin membuat skema elektronik sederhana untuk proyek ini. Skema elektronik seperti cetak biru. Buat cetak biru dan ikuti desainnya dengan cermat. Beberapa konsep dasar elektronik mungkin berguna di sini!

Koneksi Raspberry Pi dan I2C Shield

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

Koneksi Sensor dan Raspberry Pi

Ambil sensor dan Hubungkan kabel I²C dengannya. Pastikan Output I²C SELALU terhubung ke Input I²C. Hal yang sama harus diikuti untuk Raspberry Pi dengan pelindung I²C yang dipasang di atasnya pada pin GPIO. Kami merekomendasikan penggunaan kabel I²C karena meniadakan kebutuhan untuk membaca pinout, menyolder, dan malaise yang disebabkan oleh kesalahan sekecil apa pun.. Dengan kabel plug and play sederhana ini, Anda dapat memasang, menukar papan, atau menambahkan lebih banyak papan ke aplikasi dengan mudah.

Catatan: Kabel coklat harus selalu mengikuti koneksi Ground (GND) antara output dari satu perangkat dan input dari perangkat lain

Konektivitas Internet adalah kuncinya

Anda memiliki dua pilihan di sini. Anda dapat menghubungkan Raspberry Pi ke jaringan menggunakan kabel ethernet atau menggunakan Adaptor USB ke WiFi untuk Konektivitas WIFI. Either way, selama terhubung ke internet Anda tertutup.

Menghidupkan Sirkuit

Colokkan kabel Micro USB ke colokan listrik Raspberry Pi. Pukulan dan voila! Pasukan kami adalah informasi.

Koneksi ke Layar

Kita dapat menghubungkan kabel HDMI ke monitor atau ke TV. Selain itu, kita dapat mengakses Raspberry Pi tanpa menghubungkannya ke monitor menggunakan akses jarak jauh. SSH adalah alat yang berguna untuk akses jarak jauh yang aman. Anda juga dapat menggunakan perangkat lunak PUTTY untuk itu. Opsi ini untuk pengguna tingkat lanjut jadi kami tidak akan membahasnya secara detail di sini.

Ini adalah metode yang ekonomis jika Anda tidak ingin menghabiskan banyak uang

Langkah 3: Pemrograman Raspberry Pi dengan Python

Pemrograman Raspberry Pi dengan Python
Pemrograman Raspberry Pi dengan Python

Kode Python untuk Sensor Raspberry Pi dan BME280. Ini tersedia di repositori Github kami.

Sebelum melanjutkan ke kode, pastikan Anda membaca instruksi yang diberikan dalam file Readme dan Atur Raspberry Pi Anda sesuai dengan itu. Sedikit waktu akan membuat Anda siap untuk setup. Sebuah stasiun cuaca adalah fasilitas, baik di darat atau laut, dengan instrumen dan peralatan untuk mengukur kondisi atmosfer untuk memberikan informasi prakiraan cuaca dan untuk mempelajari cuaca dan iklim.

Kodenya jelas ada di depan Anda dan dalam bentuk paling sederhana yang dapat Anda bayangkan dan Anda seharusnya tidak memiliki masalah. Masih bertanya jika ada (Bahkan jika Anda tahu seribu hal, masih bertanya kepada seseorang yang tahu).

Anda dapat menyalin kode Python yang berfungsi untuk sensor ini dari sini juga.

# Didistribusikan dengan lisensi kehendak bebas.# Gunakan sesuka Anda, untung atau gratis, asalkan sesuai dengan lisensi karya terkait. # BME280 # Kode ini dirancang untuk bekerja dengan Modul Mini BME280_I2CS I2C yang tersedia dari ControlEverything.com. #

impor smbus

waktu impor

# Dapatkan bus I2C

bus = smbus. SMBus(1)

# Alamat BME280, 0x76 (118)

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

# Konversi data

# Koefisien suhu 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

# Koefisien 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 data kembali dari 0xA1(161), 1 byte dig_H1 = bus.read_byte_data(0x76, 0xA1)

# Alamat BME280, 0x76 (118)

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

# Konversi data

# Koefisien kelembaban 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: gali_H6 -= 256

# Alamat BME280, 0x76 (118)

# Pilih register kontrol kelembaban, 0xF2(242) # 0x01(01) Kelembaban Oversampling = 1 bus.write_byte_data(0x76, 0xF2, 0x01) # alamat BME280, 0x76(118) # Pilih register pengukuran kontrol, 0xF4(244) # 0x27(39) Tingkat Oversampling Tekanan dan Suhu = 1 # Mode normal bus.write_byte_data(0x76, 0xF4, 0x27) # Alamat BME280, 0x76(118) # Pilih Register konfigurasi, 0xF5(245) # 0xA0(00) Waktu siaga = 1000 ms bus.write_byte_data(0x76, 0xF5, 0xA0)

waktu.tidur(0.5)

# Alamat BME280, 0x76 (118)

# Baca data kembali dari 0xF7(247), 8 byte # Tekanan MSB, Tekanan LSB, Tekanan xLSB, Suhu MSB, Suhu LSB # Suhu xLSB, Kelembaban MSB, Kelembaban LSB data = bus.read_i2c_block_data (0x76, 0xF7, 8)

# Ubah 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

# Konversi data kelembaban

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

# Perhitungan offset 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

# Perhitungan offset tekanan

var1 = (t_fine / 2.0) - 640000.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

# Perhitungan offset kelembaban

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) + digvar_H)) kelembaban = var_H * (1.0 - dig_H1 * var_H / 524288.0) jika kelembaban > 100.0: kelembaban = 100.0 elif kelembaban < 0.0: kelembaban = 0.0

# Keluarkan data ke layar

print "Suhu dalam Celcius: %.2f C" %c Cetak suhu "Suhu dalam Fahrenheit: %.2f F" %f Cetak suhu "Tekanan: %.2f hPa " %tekanan cetak "Kelembaban Relatif: %.2f %%" %kelembaban

Langkah 4: Kode Berjalan

Kode Berjalan
Kode Berjalan

Sekarang, unduh (atau git pull) kode dan buka di Raspberry Pi.

Jalankan perintah untuk Kompilasi dan Unggah kode di terminal dan lihat hasilnya di Tampilan. Setelah beberapa detik, itu akan menampilkan semua parameter. Setelah memastikan semuanya berfungsi dengan baik, Anda dapat mengembangkan beberapa yang lebih menarik.

Langkah 5: Pemanfaatan di Dunia Praktis

BME280 mencapai kinerja tinggi di semua aplikasi yang membutuhkan pengukuran kelembaban dan tekanan. Aplikasi yang muncul ini adalah kesadaran Konteks, mis. Deteksi Kulit, Deteksi Perubahan Ruangan, Pemantauan Kebugaran / Kesejahteraan, Peringatan Mengenai Kekeringan atau Suhu Tinggi, Pengukuran Volume dan Aliran Udara, Kontrol Otomatisasi Rumah, Kontrol Pemanasan, Ventilasi, Pendingin Udara (HVAC), Internet of Things (IoT), Penyempurnaan GPS (mis. Peningkatan Waktu ke Perbaikan Pertama, Perhitungan Mati, Deteksi Kemiringan), Navigasi Dalam Ruangan (Perubahan Deteksi Lantai, Deteksi Lift), Navigasi Luar Ruangan, Aplikasi Kenyamanan & Olahraga, Prakiraan Cuaca Dan Indikasi Kecepatan Vertikal (Naik/Turun Kecepatan).

Langkah 6: Kesimpulan

Semoga proyek ini menginspirasi eksperimen lebih lanjut. Membuat stasiun cuaca yang lebih canggih dapat melibatkan beberapa sensor lagi seperti Rain Gauge, Sensor cahaya, anemometer (kecepatan angin), dll. Anda dapat menambahkannya dan mengubah kodenya. Kami memiliki video tutorial di YouTube yang memiliki fungsi dasar sensor I²C dengan Rasp Pi. Sungguh menakjubkan melihat hasil dan kerja komunikasi I²C. Periksa juga. Selamat membangun dan belajar! Beri tahu kami pendapat Anda tentang instruksi ini. Kami akan senang untuk melakukan beberapa perbaikan jika perlu.

Direkomendasikan: