Isi kandungan:
- Langkah 1: Bahan Yang Digunakan
- Langkah 2: Perhimpunan
- Langkah 3: Menggunakan Peranti
- Langkah 4: Skrip BME280
- Langkah 5: Skrip BMP280
Video: Stesen Cuaca Inky_pHAT: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Saya di sini ingin menerangkan stesen cuaca Raspberry Pi Zero yang sangat ringkas dan padat, yang memaparkan nilai yang diukur oleh sensor suhu / tekanan / kelembapan BME280 pada paparan e-kertas / e-dakwat pHim Pimoroni Inky. Untuk membolehkan penyambungan sensor dan pHAT ke GPIO Pi I meletakkan penggodam Pimorini Pico HAT dengan dua header wanita terpasang di antara GPIO dan paparan. Peranti telah digunakan untuk memasang beberapa sensor, jadi versi BME280 yang dijelaskan di sini hanyalah contoh.
Tidak seperti paparan LCD, paparan e-ink menyimpan gambar walaupun kuasa telah dimatikan. Oleh itu, mereka adalah penyelesaian yang sangat baik jika anda ingin memaparkan maklumat yang dikemas kini dari semasa ke semasa, terutamanya untuk membina peranti bertenaga rendah. Manfaat utama versi monokrom / hitam dari pHAT Inky adalah bahawa mengemas kini paparan hanya memerlukan sekitar satu saat, bukannya sepuluh hingga lima belas saat yang diperlukan oleh versi tiga warna. Lihat filem.
Perpustakaan Blafka Adafruit memungkinkan untuk menjalankan kod Circuit Python pada Raspberry Pi, dan sampel Circuit Python untuk pelbagai jenis sensor tersedia dari Adafruit. Penerangan terperinci mengenai cara memasang kod Blinka dan Circuit Python boleh didapati di laman web Adafruit. Perpustakaan yang saya uji sejauh ini (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) berfungsi dengan baik, sementara terdapat sedikit masalah dalam beberapa contoh kod.
BME280 adalah sensor untuk mengukur suhu, kelembapan dan tekanan atmosfera. Breakout BMP280 tersedia dari banyak vendor, termasuk Adafruit, tetapi saya di sini menggunakan versi Cina yang murah. Perlu diketahui bahawa alamat ini menggunakan alamat i2c yang berbeza (Adafruit: 0x77, yang lain: 0x76).
Breakout disambungkan ke Pi oleh i2c, dan membaca sensor sangat mudah menggunakan perpustakaan dan kod contoh.
Langkah 1: Bahan Yang Digunakan
Raspberry Pi Zero, dengan kepala lelaki dilampirkan. Tetapi versi Raspberry Pi akan berlaku.
PHAT Pimoroni Inky, versi hitam / monokrom, 25 € | 22 £ | 20US $, di Pimoroni.
Seorang penggodam Pimoroni Pico HAT, 2,50 € | 2 £, dengan dua header wanita terpasang, salah satunya header booster dengan pin yang lebih panjang. Saya telah membina dua versi berbeza, lihat keterangan di bawah.
Pelarian BME280, Penghantaran AZ melalui Amazon.de @ 7.50 €, dengan header terpasang.
Kabel pelompat pemanjangan
Pilihan:
Pek kuasa USB, untuk aplikasi mudah alih
Perumahan untuk Pi atau peranti (tidak ditunjukkan di sini)
Langkah 2: Perhimpunan
- Selesaikan pengepala wanita ke penggodam Pico HAT. Sebelum menyolder, periksa orientasi yang betul. Saya telah membina dua versi ini, untuk tujuan yang berbeza. Satu dengan header booster menghadap ke bawah diletakkan di baris depan dan header normal, atas / menghadap di baris belakang, dan versi dengan header booster menghadap ke bawah di baris belakang, dan header wanita sudut kanan di baris depan. Lihat gambar. Versi pertama memungkinkan untuk memasang dan menukar sensor dan kabel dengan sangat mudah, sementara versi dengan header menghadap ke dalam memungkinkan untuk memasukkan PiAT sensor, dan Inky pHAT ke dalam perumahan. Sebagai alternatif, anda boleh menyolder kabel yang menghubungkan GPIO dan sensor terus ke penggodam Pico HAT dan / atau menyolet penggodam Pico HAT terus ke pin GPIO. Walau apa pun, gunakan jumlah minimum pateri yang diperlukan.
- Padankan header ke sensor, jika diperlukan.
- Tumpukan unit penggodam Pico HAT yang diubah suai pada Pi, kemudian tambahkan pHAT Inky. Sekiranya diperlukan, masukkan beberapa sokongan, mis. Blok busa atau penyekat, untuk pHAT Inky.
- Pasang kabel dan sensor, menggunakan port 3V, GND, SDA dan SCL. Tidak semua sensor akan bertahan 5V, jadi periksa sebelum anda menyambungkannya ke port 5V.
- Pasang perpustakaan Blinka, kemudian pasang perpustakaan Circuit Python BME280 dari Adafruit.
- Pasang pustaka pHAT Inky dari Pimoroni.
- Pasang contoh kod Python yang dijelaskan pada langkah kemudian dan dilampirkan pada arahan ini.
- Jalankan kod.
Langkah 3: Menggunakan Peranti
Terdapat dua pilihan untuk menggunakan peranti ini.
Kod seperti yang ditunjukkan di sini harus dimulakan menggunakan layar yang terpasang, tetapi kemudian dapat berjalan tanpa.
Dengan sedikit pengubahsuaian pada kod, anda boleh menggunakan crontab untuk melakukan pengukuran pada titik waktu yang ditentukan. Ini memungkinkan untuk mengurangkan penggunaan kuasa lebih jauh. Penerangan yang sangat baik bagaimana menggunakan crontab terdapat di tempat lain.
Bersama dengan power pack, anda boleh membina peranti mudah alih dan menggunakannya untuk mengukur keadaan di dalam atau di luar, di dalam peti sejuk, di sauna, kelembapan anda, bilik wain, di dalam pesawat,….
Dengan menggunakan Zero W, Anda tidak hanya dapat menampilkan nilai pada layar, tetapi juga mengirimnya ke pelayan atau laman web anda melalui WLAN, seperti yang dijelaskan di tempat lain.
Langkah 4: Skrip BME280
Seperti yang telah disebutkan sebelumnya, anda perlu memasang perpustakaan Adafruit Blinka dan Circuit Python BME280 serta perpustakaan pHAT Pimoroni Inky.
Kod pertama kali menginisialisasi sensor dan pHAT Inky, kemudian membaca nilai suhu, tekanan dan kelembapan dari sensor dan memaparkannya di layar dan paparan e-ink. Dengan menggunakan perintah time.sleep (), pengukuran dilakukan setiap minit. Laraskan mengikut keperluan. Dengan menetapkan parameter bahasa, Anda dapat mengubah bahasa yang digunakan untuk menampilkan hasilnya.
Dengan menggunakan paparan e-ink Ink pHAT, pertama-tama anda membina gambar yang akan dipaparkan dalam memori sebelum akhirnya dipindahkan ke layar menggunakan perintah inkyphat.show (). Perpustakaan pHAT Inky mempermudah proses, menawarkan perintah untuk menggambar dan memformat teks, garis, segi empat tepat, bulatan atau menggunakan gambar latar.
Selain nilai yang diukur, waktu pengukuran juga ditampilkan.
Perlu diingat bahawa skrip dan perpustakaan ditulis dalam Python 3, jadi buka dan jalankan menggunakan Py3 IDLE atau setara.
# Skrip untuk sensor suhu / tekanan / kelembapan bme280 (versi bukan Adafruit) # dan pHAT dakwat - versi hitam # # versi 01 Dis 2018, Dr H # # Memerlukan Adafruit Blinka dan Circuit Python BME280 perpustakaan # dan Pimoroni Inky pustaka pHAT masa import import datetime import board import busio dari adafruit_bme280 import Adafruit_BME280 dari adafruit_bme280 import Adafruit_BME280_I2C import inkyphat import sys dari PIL import ImageFont inkyphat.set_colour ('black') # for b / w inky phat inkyphat.set_set 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Pilih font font2 standard = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Pilih data fon standard # lang = "DE" # tetapkan parameter bahasa, lalai ("") -> english lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # alamat i2c lalai (untuk Adafruit BMP280) 0x77 (lalai), 0x76 untuk pelarian cina) #set tekanan rujukan # diperlukan untuk al pengiraan tajuk, sila sesuaikan. Nilai standard 1013.25 hPa # input manual: #reference_hPa = input ("Masukkan tekanan rujukan dalam hPa:") # atau # tetapkan tekanan pada waktu permulaan sebagai rujukan, mis. untuk masa pengukuran ketinggian relatif. tidur (1) # tunggu sebentar sebelum pengukuran pertama j = 0 pres_norm_sum = 0 sementara j dalam julat (5): # ambil lima pengukuran untuk menentukan nilai rujukan pres_norm_sum = pres_norm_sum + bmp. tekanan j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum / j) # tetapkan ukuran inital sebagai titik rujukan untuk membolehkan pengukuran ketinggian bmp.sea_level_pressure = float (Reference_hPa) mencetak () sementara True: #runs selamanya, ubah suai untuk versi crontab # diukur nilai t = bmp.temperature p = bmp.pressure h = bmp.humidity a = bmp.altitude # dikira oleh perpustakaan adafruit dari tekanan #timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:% Y-% m-% d} '. format (ts) # cap waktu - tarikh, format EN ts0_DE =' {:% d.% m.% Y} '. format (ts) # cap waktu - tarikh, format Jerman ts1 =' {: % H:% M:% S} '. Format (ts) # timestamp - time tmp = "{0: 0.1f}". Format (t) pre = "{0: 0.1f}". Format (p) hyg = "{0: 0.1f}". Format (h) alt="{0: 0.1f}". Format (a) tText = "Temp.:" pText_EN = "Tekanan:" pText_DE = "Luftdruck:" h Text_EN = "Kelembapan:" hText_DE = "rel. LF: "aText_EN =" Ketinggian: "aText_DE =" Höhe üNN: "# exakt: ü. NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = hText = hText: # default english ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # nilai cetak untuk memaparkan cetakan (ts) cetak (tText, tmp, "° C") cetak (pText, pre, "hPa") cetak (hText, hyg, "%") print (aText, alt, "m") print () # print value to Inky pHAT t1 = 5 # tab 1, frist column, memudahkan pengoptimuman susun atur t2 = 110 # tab 2, inkyphat lajur kedua. kosongkan () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # tulis tarikh cap waktu inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # tulis masa cap waktu inkyphat.line ((t1, 25, 207, 25), 1, 3) # lukis garis inkyphat.text ((t1, 30), tText, inkyphat. BLACK, font2) inkyphat.text ((t2, 30), (tmp + "° C"), inkyphat. BLACK, font2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, font2) inkyphat.text ((t2, 55), (pre + "hPa"), inkyphat. HITAM, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + "%"), inkyphat. BLACK, font2) # secara alternatif memaparkan ketinggian yang dikira # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # tunggu beberapa saat sebelum pengukuran seterusnya, +19 saat setiap kitaran
Langkah 5: Skrip BMP280
BMP280 sangat mirip dengan sensor BME280, tetapi hanya mengukur suhu dan tekanan. Skripnya sangat serupa, tetapi anda memerlukan perpustakaan Circuit Python yang berbeza. Di sini, bukannya kelembapan, ketinggian yang dikira, berdasarkan tekanan rujukan, ditunjukkan.
Dilampirkan anda menemui skrip.
Disyorkan:
Stesen Cuaca Profesional Menggunakan ESP8266 dan ESP32 DIY: 9 Langkah (dengan Gambar)
Stesen Cuaca Profesional Menggunakan ESP8266 dan ESP32 DIY: LineaMeteoStazione adalah stesen cuaca lengkap yang dapat dihubungkan dengan sensor profesional dari Sensirion serta beberapa komponen Alat Davis (Rain Gauge, Anemometer) Projek ini bertujuan sebagai stesen cuaca DIY tetapi hanya memerlukan
Stesen Cuaca NaTaLia: Stesen Cuaca Bertenaga Suria Arduino Selesai Dengan Cara yang Betul: 8 Langkah (dengan Gambar)
Stesen Cuaca NaTaLia: Stesen Cuaca Bertenaga Suria Arduino Selesai Dengan Cara yang Betul: Setelah 1 tahun beroperasi di 2 lokasi yang berbeza, saya berkongsi rancangan projek stesen cuaca berkuasa solar saya dan menerangkan bagaimana ia berkembang menjadi sistem yang benar-benar dapat bertahan dalam jangka masa yang lama tempoh dari tenaga suria. Sekiranya anda mengikuti
Stesen Cuaca DIY & Stesen Sensor WiFi: 7 Langkah (dengan Gambar)
DIY Weather Station & WiFi Sensor Station: Dalam projek ini saya akan menunjukkan kepada anda cara membuat stesen cuaca bersama dengan stesen sensor WiFi. Stesen sensor mengukur data suhu dan kelembapan tempatan dan menghantarnya, melalui WiFi, ke stesen cuaca. Stesyen cuaca kemudian memaparkan
Stesen Cuaca Acurite 5 dalam 1 Menggunakan Pi Raspberry dan Weewx (Stesen Cuaca lain Sesuai): 5 Langkah (dengan Gambar)
Stesen Cuaca Acurite 5 in 1 Menggunakan Raspberry Pi dan Weewx (Stesen Cuaca yang Lain Sesuai): Semasa saya membeli stesen cuaca Acurite 5 in 1, saya ingin dapat memeriksa cuaca di rumah saya semasa saya tiada. Semasa saya pulang dan menyiapkannya, saya menyedari bahawa saya mesti mempunyai paparan yang disambungkan ke komputer atau membeli hab pintar mereka
Stesen Tenaga Dorm / Stesen Pengisian NiMH yang Dilengkapkan: 3 Langkah
Stesen Janakuasa Dorm / Stesen Pengisian NiMH yang Dikemas: Saya mempunyai kekacauan stesen janakuasa. Saya mahu memadamkan semua yang dikenakan ke satu meja kerja dan mempunyai ruang untuk solder / dll di atasnya. Senarai kuasa: Telefon bimbit (rosak, tetapi mengecas bateri telefon saya, jadi ia selalu dipasang dan meneteskan