Daftar Isi:
- Langkah 1: Bahan yang Digunakan
- Langkah 2: Perakitan
- Langkah 3: Menggunakan Perangkat
- Langkah 4: Skrip BME280
- Langkah 5: Skrip BMP280
Video: Stasiun Cuaca Inky_pHAT: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Saya di sini ingin menjelaskan stasiun cuaca berbasis Raspberry Pi Zero yang sangat sederhana dan ringkas, yang menampilkan nilai yang diukur oleh sensor suhu/tekanan/kelembaban BME280 pada layar e-paper/e-ink Pimoroni Inky pHAT. Untuk memungkinkan koneksi sensor dan pHAT ke GPIO Pi, saya menempatkan peretas Pimorini Pico HAT dengan dua header wanita yang terpasang di antara GPIO dan layar. Perangkat telah digunakan untuk memasang beberapa sensor, jadi versi BME280 yang dijelaskan di sini hanyalah sebuah contoh.
Tidak seperti layar LCD, layar e-ink menyimpan gambar meskipun daya telah dimatikan. Oleh karena itu mereka adalah solusi yang sangat baik jika Anda ingin menampilkan informasi yang diperbarui hanya dari waktu ke waktu, terutama untuk membangun perangkat hemat energi. Manfaat utama dari versi monokrom/hitam dari Inky pHAT adalah bahwa memperbarui tampilan hanya membutuhkan waktu sekitar satu detik, bukan sepuluh hingga lima belas detik yang dibutuhkan oleh versi tiga warna. Melihat film.
Pustaka Blinka Adafruit memungkinkan untuk menjalankan kode Circuit Python pada Raspberry Pi, dan sampel Circuit Python untuk berbagai macam sensor tersedia dari Adafruit. Penjelasan rinci cara menginstal Blinka dan kode Circuit Python dapat ditemukan di situs web Adafruit. Pustaka yang saya uji sejauh ini (BMP280, BME280, TSL2591, TCS34785, VEML7065, …) bekerja dengan sangat baik, sementara ada masalah kecil di beberapa kode contoh.
BME280 adalah sensor untuk mengukur suhu, kelembaban dan tekanan atmosfer. Jerawat BMP280 tersedia dari banyak vendor, termasuk Adafruit, tetapi saya di sini menggunakan versi Cina yang murah. Perlu diketahui bahwa ini menggunakan alamat i2c yang berbeda (Adafruit: 0x77, lainnya: 0x76).
Breakout terhubung ke Pi oleh i2c, dan membaca sensor sangat sederhana menggunakan perpustakaan dan kode contoh.
Langkah 1: Bahan yang Digunakan
Sebuah Raspberry Pi Zero, dengan header laki-laki terpasang. Tetapi versi Raspberry Pi apa pun bisa digunakan.
Pimoroni Inky pHAT, versi hitam/monokrom, 25€|22£|20US$, di Pimoroni.
Seorang hacker Pimoroni Pico HAT, 2,50€|2£, dengan dua header wanita terpasang, salah satunya header booster dengan pin yang lebih panjang. Saya telah membangun dua versi yang berbeda, lihat deskripsi di bawah ini.
Sebuah terobosan BME280, AZ Pengiriman melalui Amazon.de @ 7,50 €, dengan header terpasang.
Kabel jumper pemanjangan
Opsional:
Paket daya USB, untuk aplikasi seluler
Perumahan untuk Pi atau perangkat (tidak ditampilkan di sini)
Langkah 2: Perakitan
- Solder tajuk wanita ke peretas Pico HAT. Sebelum menyolder, periksa orientasi yang benar. Saya telah membangun dua versi ini, untuk tujuan yang berbeda. Satu dengan header booster menghadap ke bawah ditempatkan di baris depan dan header normal, menghadap ke 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, sedangkan versi dengan header menghadap ke dalam memungkinkan untuk melampirkan Pi, sensor dan Inky pHAT ke dalam housing. Atau Anda dapat menyolder kabel yang menghubungkan GPIO dan sensor langsung ke peretas Pico HAT dan/atau menyolder peretas Pico HAT langsung ke pin GPIO. Bagaimanapun, gunakan jumlah minimal solder yang dibutuhkan.
- Solder header ke sensor, jika diperlukan.
- Tumpuk unit peretas Pico HAT yang dimodifikasi di Pi, lalu tambahkan Inky pHAT. Jika diperlukan, masukkan beberapa dukungan, mis. Sebuah blok busa atau stand-off, untuk pHAT Inky.
- Pasang kabel dan sensor menggunakan port 3V, GND, SDA dan SCL. Tidak semua sensor akan bertahan 5V, jadi harap periksa sebelum Anda menghubungkannya ke port 5V.
- Instal library Blinka, lalu instal library Circuit Python BME280 dari Adafruit.
- Instal perpustakaan Inky pHAT dari Pimoroni.
- Instal contoh kode Python yang dijelaskan pada langkah selanjutnya dan dilampirkan ke instruksi ini.
- Jalankan kodenya.
Langkah 3: Menggunakan Perangkat
Ada dua opsi untuk menggunakan perangkat.
Kode seperti yang ditunjukkan di sini harus dimulai menggunakan layar yang terpasang, tetapi kemudian bisa berjalan tanpanya.
Dengan sedikit modifikasi pada kode, Anda dapat menggunakan crontab untuk melakukan pengukuran pada titik waktu yang ditentukan. Ini akan memungkinkan untuk mengurangi konsumsi daya lebih jauh. Deskripsi yang sangat baik tentang cara menggunakan crontab dapat ditemukan di tempat lain.
Dalam hubungannya dengan power pack Anda dapat membangun perangkat mobile dan menggunakannya untuk mengukur kondisi di dalam atau di luar, di lemari es, di sauna, humidor Anda, gudang anggur, di pesawat, ….
Dengan menggunakan Zero W, Anda tidak hanya dapat menampilkan nilai pada layar, tetapi juga mengirimkannya ke server atau situs web Anda melalui WLAN, seperti yang dijelaskan di tempat lain.
Langkah 4: Skrip BME280
Seperti disebutkan sebelumnya, Anda perlu menginstal pustaka Adafruit Blinka dan Circuit Python BME280 serta pustaka Pimoroni Inky pHAT.
Kode pertama menginisialisasi sensor dan Inky pHAT, kemudian membaca nilai suhu, tekanan dan kelembaban dari sensor dan menampilkannya di layar dan tampilan e-ink. Menggunakan perintah time.sleep(), pengukuran dilakukan setiap menit. Sesuaikan sesuai kebutuhan. Dengan mengatur parameter bahasa, Anda dapat mengubah bahasa yang digunakan untuk menampilkan hasil.
Menggunakan tampilan e-ink Inky pHAT, Anda terlebih dahulu membuat gambar untuk ditampilkan di memori sebelum akhirnya ditransfer ke layar menggunakan perintah inkyphat.show(). Pustaka PHAT Inky menyederhanakan proses, menawarkan perintah untuk menggambar dan memformat teks, garis, persegi panjang, lingkaran atau menggunakan gambar latar belakang.
Selain nilai yang terukur, waktu pengukuran juga ditampilkan.
Harap diingat bahwa skrip serta pustaka ditulis dengan Python 3, jadi buka dan jalankan menggunakan Py3 IDLE atau yang setara.
# Skrip untuk sensor suhu/tekanan/kelembaban bme280 (versi non-Adafruit)# dan pHAT bertinta - versi hitam # # versi 01 Desember 2018, Dr H # # Memerlukan perpustakaan Adafruit Blinka dan Circuit Python BME280 # dan Pimoroni Inky perpustakaan pHAT waktu impor waktu impor papan impor tanggalwaktu impor busio dari adafruit_bme280 impor Adafruit_BME280 dari adafruit_bme280 impor Adafruit_BME280_I2C impor inkyphat impor sys dari PIL impor ImageFont inkyphat.set_colour('hitam') # untuk b/w inky phat inkyphat.set_rotation(180) 180° font1 = ImageFont.truetype(inkyphat.fonts. FredokaOne, 27) # Pilih font standar font2 = ImageFont.truetype(inkyphat.fonts. FredokaOne, 19) # Pilih data font standar # lang ="DE" # atur parameter bahasa, default ("") -> english lang="EN" i2c = busio. I2C(board. SCL, board. SDA) bmp = Adafruit_BME280_I2C(i2c, address=0x76) # alamat i2c default (untuk Adafruit BMP280) 0x77 (default), 0x76 untuk pelarian cina) #setel tekanan referensi # diperlukan untuk al perhitungan stitut, silahkan sesuaikan. Nilai standar 1013.25 hPa # input manual: #reference_hPa =input ("Masukkan tekanan referensi dalam hPa: ") # atau # setel tekanan pada waktu mulai sebagai referensi, mis. untuk waktu pengukuran tinggi relatif.tidur (1) # tunggu sebentar sebelum pengukuran pertama j= 0 pres_norm_sum = 0 saat j dalam rentang (5): # lakukan lima pengukuran untuk menentukan nilai referensi pres_norm_sum = pres_norm_sum + bmp.pressure j= j+ 1 time.sleep (1) reference_hPa=(pres_norm_sum/j) # setel pengukuran awal sebagai titik referensi untuk mengaktifkan pengukuran ketinggian bmp.sea_level_pressure = float (reference_hPa) print () while True: #runs forever, modifikasi untuk versi crontab # terukur nilai t=bmp.temperature p=bmp.pressure h=bmp.humidity a=bmp.altitude # dihitung oleh adafruit library dari tekanan #timestamp ts = datetime.datetime.now() # timestamp ts0_EN ='{:%Y-% m-%d}'.format(ts) # stempel waktu - tanggal, format EN ts0_DE ='{:%d.%m.%Y}'.format(ts) # stempel waktu - tanggal, format Jerman ts1='{: %H:%M:%S}'.format(ts) # timestamp - waktu 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 = "Kelembaban: " hText_DE = "rel. LF: " aText_EN = "Ketinggian: " aText_DE = "Höhe üNN: " # tepat: ü. NHN, über Normal Höhen Null if (lang =="DE"): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = hText_DE else: # default inggris ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # nilai cetak untuk menampilkan print (ts) print (tText, tmp, "°C") print (pText, pre, " hPa") print (hText, hyg, " %") print (aText, alt, " m") print () # nilai cetak ke Inky pHAT t1 = 5 # tab 1, kolom pertama, menyederhanakan optimasi tata letak t2 = 110 # tab 2, kolom kedua inkyphat. clear() inkyphat.text((t1, 0), ts0, inkyphat. BLACK, font2) # tulis tanggal stempel waktu inkyphat.text((t2, 0), ts1, inkyphat. BLACK, font2) # tulis waktu stempel waktu inkyphat.line ((t1, 25, 207, 25), 1, 3) # menggambar 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), (pra + " hPa"), inkyphat. HITAM, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # sebagai alternatif menampilkan tinggi yang dihitung # inkyphat.text((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text((t2, 80), (alt + " m"), inkyphat. BLACK, font2) inkyphat.show() time.sleep(51) # tunggu beberapa detik sebelum pengukuran berikutnya, +19 detik per siklus inkyphat.clear() # prosedur tampilan pHAT Inky kosong, inkyphat.show() # diam untuk versi crontab
Langkah 5: Skrip BMP280
BMP280 sangat mirip dengan sensor BME280, tetapi hanya mengukur suhu dan tekanan. Skripnya sangat mirip, tetapi Anda memerlukan pustaka Circuit Python yang berbeda. Di sini, alih-alih kelembaban, ketinggian yang dihitung, berdasarkan tekanan referensi, ditampilkan.
Terlampir Anda menemukan skrip.
Direkomendasikan:
Stasiun Cuaca Profesional Menggunakan ESP8266 dan ESP32 DIY: 9 Langkah (dengan Gambar)
Stasiun Cuaca Profesional Menggunakan ESP8266 dan ESP32 DIY: LineaMeteoStazione adalah stasiun cuaca lengkap yang dapat dihubungkan dengan sensor profesional dari Sensirion serta beberapa komponen Instrumen Davis (Rain Gauge, Anemometer) Proyek ini ditujukan sebagai stasiun cuaca DIY tetapi hanya membutuhkan
HC-12 Stasiun Cuaca Jarak Jauh dan Sensor DHT: 9 Langkah
HC-12 Stasiun Cuaca Jarak Jauh dan Sensor DHT: Dalam tutorial ini kita akan belajar cara membuat stasiun cuaca jarak jauh menggunakan dua sensor dht, modul HC12 dan Layar LCD I2C. Tonton Videonya
Stasiun Cuaca NaTaLia: Stasiun Cuaca Bertenaga Surya Arduino Dilakukan dengan Cara yang Benar: 8 Langkah (dengan Gambar)
Stasiun Cuaca NaTaLia: Stasiun Cuaca Bertenaga Surya Arduino Selesai dengan Cara yang Benar: Setelah 1 tahun beroperasi dengan sukses di 2 lokasi berbeda, saya membagikan rencana proyek stasiun cuaca bertenaga surya saya dan menjelaskan bagaimana hal itu berkembang menjadi sistem yang benar-benar dapat bertahan lama periode dari tenaga surya. Jika Anda mengikuti
Stasiun Cuaca DIY & Stasiun Sensor WiFi: 7 Langkah (dengan Gambar)
Stasiun Cuaca DIY & Stasiun Sensor WiFi: Dalam proyek ini saya akan menunjukkan cara membuat stasiun cuaca bersama dengan stasiun sensor WiFi. Stasiun sensor mengukur data suhu dan kelembaban lokal dan mengirimkannya, melalui WiFi, ke stasiun cuaca. Stasiun cuaca kemudian menampilkan
Stasiun Cuaca 5 in 1 Acurite Menggunakan Raspberry Pi dan Weewx (Stasiun Cuaca lain Kompatibel): 5 Langkah (dengan Gambar)
Stasiun Cuaca Acurite 5 in 1 Menggunakan Raspberry Pi dan Weewx (Stasiun Cuaca Lainnya Kompatibel): Ketika saya membeli stasiun cuaca Acurite 5 in 1, saya ingin dapat memeriksa cuaca di rumah saya saat saya pergi. Ketika saya sampai di rumah dan memasangnya, saya menyadari bahwa saya harus menghubungkan layar ke komputer atau membeli hub pintar mereka