Daftar Isi:
Video: RuuviTag dan PiZero W dan Blinkt! Termometer Berbasis Bluetooth Beacon: 3 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Instruksi ini menjelaskan pendekatan untuk membaca data suhu dan kelembaban dari RuuviTag menggunakan Bluetooth dengan Raspberry Pi Zero W dan untuk menampilkan nilai dalam bilangan biner pada kedipan Pimoroni! pHAT. Atau singkatnya: bagaimana membangun keadaan seni dan termometer yang sedikit kutu buku.
RuuviTag adalah suar bluetooth sensor open source yang dilengkapi dengan sensor suhu/kelembaban/tekanan dan akselerasi, tetapi juga dapat bertindak sebagai suar proximity Eddystone™ / iBeacon standar. Itu adalah proyek Kickstarter yang sangat sukses dan saya mendapatkannya beberapa minggu yang lalu. Ada Github dengan perangkat lunak python untuk membaca RuuviTag menggunakan raspberry, dan saya telah menggunakan salah satu contohnya, dengan beberapa tambahan.
Raspberry Pi Zero W adalah anggota terbaru dari keluarga RPi, pada dasarnya Pi Zero dengan Bluetooth dan WLAN ditambahkan.
Yang berkedip! pHAT dari Pimoroni pada dasarnya adalah strip delapan LED RBG yang dikonfigurasi sebagai HAT untuk Raspberry Pi. Sangat mudah digunakan dan dilengkapi dengan pustaka python. Idenya adalah untuk membaca data dari RuuviTag dan menampilkannya menggunakan blinkt! TOPI. Nilai ditampilkan sebagai bilangan biner menggunakan 7 LED, sedangkan yang delapan digunakan untuk menunjukkan apakah nilai kelembaban atau suhu (+/-/0) ditampilkan.
Langkah 1: Menyiapkan Sistem
Menyiapkan sistem itu mudah:- Nyalakan RuuviTag (versi sensor suhu RuuviTag).
- Siapkan RPi Zero W, RPi3, atau RPi lainnya dengan kapasitas bluetooth yang ditambahkan, dengan mengikuti petunjuk di www.raspberrypi.org.
- Tempatkan kedipan! HAT pada RPi (saat off).
- Instal blinkt! dan perangkat lunak RuuviTag, seperti yang ditunjukkan pada halaman GitHub yang sesuai.
- Anda sekarang harus mengidentifikasi alamat MAC RuuviTag
- salin program Python terlampir, buka dengan IDLE untuk Python 3
- ubah alamat MAC RuuviTag menjadi milik Anda, lalu simpan dan jalankan program.
- jangan ragu untuk memodifikasi dan mengoptimalkan program. Program datang apa adanya, untuk digunakan dengan risiko Anda sendiri, tidak ada kewajiban yang diambil untuk kerusakan apa pun.
Langkah 2: Perangkat dan Program
Seperti disebutkan di atas, idenya adalah untuk membangun sistem yang sederhana dan murah untuk membaca data dari suar dan menampilkan nilai numerik pada blinkt! HAT, atau strip LED serupa.
Kisaran nilai suhu yang akan diukur dengan sistem berbasis RPi dalam banyak kasus akan berada di antara - 50°C dan +80°C, untuk kelembapan antara 0 dan 100%. Jadi tampilan yang dapat memberikan nilai dari -100 hingga +100 akan cukup untuk sebagian besar aplikasi. Bilangan desimal yang lebih kecil seperti 128 dapat ditampilkan sebagai bilangan biner dengan 7 bit (atau LED). Jadi program mengambil nilai suhu dan kelembaban dari RuuviTag sebagai angka "mengambang" dan mengubahnya menjadi angka biner, yang kemudian ditampilkan pada blinkt!.
Sebagai langkah awal, bilangan dibulatkan, dianalisis apakah positif, negatif atau nol, kemudian diubah menjadi bilangan positif menggunakan "abs". Kemudian angka desimal diubah menjadi angka biner 7 digit, pada dasarnya string 0s dan 1s, yang dianalisis dan ditampilkan pada 7 piksel terakhir dari blinkt!.
Untuk nilai suhu, piksel pertama menunjukkan apakah nilainya positif (merah), nol (magenta) atau negatif (biru). Menampilkan nilai kelembaban itu diatur ke hijau. Untuk menyederhanakan diskriminasi antara nilai suhu dan kelembaban, piksel biner diatur putih untuk suhu dan kuning untuk kelembaban. Untuk meningkatkan keterbacaan bilangan biner, piksel "0" tidak dimatikan sepenuhnya, melainkan disetel jauh lebih lemah daripada di status "1". Seperti berkedip! piksel sangat cerah, Anda dapat mengatur kecerahan umum dengan mengubah parameter "terang"
Program menampilkan nilai dan bagian dari proses juga di layar. Selain itu, Anda akan menemukan beberapa instruksi cetak yang diredam (#). Saya membiarkannya masuk, karena Anda mungkin merasa terbantu untuk memahami prosesnya jika diaktifkan.
Nilai mungkin juga disimpan dalam file log.
Langkah 3: Kode Program
Kode sedikit di-debug dan dioptimalkan. Anda sekarang dapat menemukan versi 3 (20_03_2017).
' Program ini dimaksudkan untuk membaca nilai suhu, kelembaban dan tekanan membentuk RuuviTag '' dan untuk menampilkan nilai suhu dan kelembaban sebagai angka biner pada kedipan Pimorini! TOPI. ' '' ' Ini didasarkan pada contoh print_to_screen.py dari perpustakaan ruuvitag di github. ' ' Memerlukan Pi Zero W, Pi 3 atau RPi lain yang dilengkapi dengan bluetooth dan semua pustaka yang diperlukan terpasang.'
waktu impor
impor os dari datetime impor datetime
dari ruuvitag_sensor.ruuvi impor RuuviTagSensor
dari blinkt impor set_clear_on_exit, set_pixel, clear, show
def temp_blinkt(bt):
# rutin ini mengambil nilai suhu dan menampilkannya sebagai bilangan biner di blinkt!
jernih ()
# warna dan intensitas piksel "1": putih
r1 = 64 g1 = 64 b1 = 64
#warna dan intensitas piksel "0": putih
r0 = 5 g0 = 5 b0 = 5
# Bulatkan dan ubah menjadi bilangan bulat
r = bulat (bt)
# vz mewakili tanda aljabar untuk piksel indikator
if (r>0): vz = 1 # positif elif (r<0): vz= 2 # negatif lain: vz= 0 # nol # print (vz) i = abs(r) #print (i)
# berubah menjadi bilangan biner 7 digit absolut
i1 = i + 128 # untuk i menghasilkan angka biner 8 digit dimulai dengan 1 # print (i1)
b = "{0:b}".format(i1) # konversi ke biner
# cetak (b)
b0 = str (b) # konversi ke string
b1 = b0[1:8] #memotong bit pertama
print("bilangan biner: ", b1)
# Atur piksel pada blinkt!
# atur bilangan biner
untuk h dalam rentang (0, 7): f = (h+1) if (b1[h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit ", h, " adalah 1, piksel ", f) else: set_pixel (f, r0, g0, b0) # print("nil")
# Atur piksel indikator
if (vz==1): set_pixel (0, 64, 0, 0) # merah untuk nilai positif elif (vz==2): set_pixel (0, 0, 0, 64) # biru untuk nilai negatif else: set_pixel (0, 64, 0, 64) # magenta jika nol
menunjukkan()
# akhir temp_blinkt()
def hum_blinkt(bh):
# ini mengambil nilai kelembaban dan menampilkannya sebagai angka biner di blinkt!
jernih()
# warna dan intensitas piksel "1": kuning
r1 = 64 g1 = 64 b1 = 0
#warna dan intensitas piksel "0":
r0 = 5 g0 = 5 b0 = 0
# Bulatkan dan ubah menjadi bilangan bulat
r = bulat (bh)
# transformasi ke mutlak, bilangan biner 7-digit i = abs(r) #print (i)
i1 = i + 128 # untuk i memberikan angka biner 8 digit dimulai dengan 1
# cetak (i1)
b = "{0:b}".format(i1)
# cetak (b)
b0 = str (b)
b1 = b0[1:8] #memotong bit pertama
print("bilangan biner: ", b1)
# Atur piksel pada blinkt!
# atur angka biner ke piksel
untuk h dalam rentang (0, 7): f = (h+1) if (b1[h] == "1"): set_pixel (f, r1, g1, b1) else: # mute to blank LED set_pixel (f, r0, g0, b0) # bisu ke LED kosong
# Atur piksel indikator
set_pixel (0, 0, 64, 0) # hijau untuk kelembapan
menunjukkan()
# akhir hum_blinkt()
set_clear_on_exit()
# Membaca data dari RuuviTag
mac = 'EC:6D:59:6D:01:1C' # Ubah ke alamat mac perangkat Anda
print('Mulai')
sensor = RuuviTagSensor(mac)
sementara Benar:
data = sensor.update()
line_sen = str.format('Sensor - {0}', mac)
line_tem = str.format('Suhu: {0} C', data['suhu']) line_hum = str.format('Kelembaban: {0} %', data['kelembaban']) line_pre = str.format('Tekanan: {0}', data['tekanan'])
mencetak()
# menampilkan suhu di blinkt! ba = str.format('{0}', data['temperature']) bt = float (ba) print (bt, " °C") temp_blinkt (bt) print()
time.sleep (10) # suhu tampilan selama 10 detik
# tampilkan kelembapan di blinkt!
bg = str.format('{0}', data['humidity']) bh = float (bg) print (bh, " %") hum_blinkt (bh) print ()
# Bersihkan layar dan cetak data sensor ke layar
os.system('clear') print('Tekan Ctrl+C untuk keluar.\n\n') print(str(datetime.now())) print(line_sen) print(line_tem) print(line_hum) print(line_pre) print('\n\n\r…….')
# Tunggu beberapa detik dan mulai dari awal lagi
try: time.sleep(8) kecuali KeyboardInterrupt: # Ketika Ctrl+C ditekan, eksekusi while loop dihentikan print('Exit') clear() show() break
Direkomendasikan:
Gunakan Smartphone Sebagai Termometer Non Kontak / Termometer Portabel: 8 Langkah (dengan Gambar)
Gunakan Smartphone Sebagai Termometer Non Kontak / Portable Thermometer : Mengukur suhu tubuh dengan non-kontak / contactless seperti thermo gun. Saya membuat proyek ini karena Thermo Gun sekarang sangat mahal, jadi saya harus mendapatkan alternatif untuk membuat DIY. Dan tujuannya dibuat dengan versi anggaran rendah.SuppliesMLX90614Ardu
Pelacak Mobil GPS Dengan Pemberitahuan SMS dan Unggah Data Thingspeak, Berbasis Arduino, Otomatisasi Rumah: 5 Langkah (dengan Gambar)
Pelacak Mobil GPS Dengan Pemberitahuan SMS dan Unggah Data Thingspeak, Berbasis Arduino, Otomatisasi Rumah: Saya membuat pelacak GPS ini tahun lalu dan karena berfungsi dengan baik, saya menerbitkannya sekarang di Instructable. Terhubung ke colokan aksesori di bagasi saya. Pelacak GPS mengunggah posisi mobil, kecepatan, arah, dan suhu yang diukur melalui data seluler
Termometer Inframerah Non Kontak Berbasis Arduino - Termometer Berbasis IR Menggunakan Arduino: 4 Langkah
Termometer Inframerah Non Kontak Berbasis Arduino | Termometer Berbasis IR Menggunakan Arduino: Hai teman-teman dalam instruksi ini kami akan membuat Termometer non-kontak menggunakan arduino. Karena terkadang suhu cairan / padat terlalu tinggi atau terlalu rendah dan kemudian sulit untuk melakukan kontak dengannya dan membacanya suhu kemudian dalam adegan itu
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266): 4 Langkah (dengan Gambar)
Weather Based Music Generator (ESP8266 Based Midi Generator): Hai, hari ini saya akan menjelaskan cara membuat generator Musik berbasis Cuaca kecil Anda sendiri. Ini didasarkan pada ESP8266, yang mirip dengan Arduino, dan merespons suhu, hujan dan intensitas ringan. Jangan berharap untuk membuat seluruh lagu atau program akord
Termometer Digital Berbasis Picaxe Dengan Maks dan Min: 13 Langkah
Termometer Digital Berbasis Picaxe Dengan Max dan Min: (Silakan tinggalkan pesan, tetapi jangan terlalu kritis, ini adalah instruksi pertama saya!!) Ini adalah termometer yang saya buat untuk van kemping kami, untuk menunjukkan suhu eksternal. Ini didasarkan pada chip Picaxe karena murah dan mudah digunakan. Jika ini untuk