Isi kandungan:

Relay Penggera Freezer: 5 Langkah
Relay Penggera Freezer: 5 Langkah

Video: Relay Penggera Freezer: 5 Langkah

Video: Relay Penggera Freezer: 5 Langkah
Video: cara pasang relay kompresor kulkas 2024, Julai
Anonim
Relay Penggera Freezer
Relay Penggera Freezer

Pembeku kami berada di bilik utiliti yang terpencil dari ruang tamu kami. Kadang-kadang pintu peti sejuk tidak ditutup dengan betul dan penggera berbunyi. Masalahnya ialah kita tidak dapat mendengarnya jika kita berada di tempat tinggal kita. Bagaimana kita mendapat mesej bahawa pintu peti sejuk terbuka? Ini adalah masalah biasa, kami mempunyai peranti di rumah kami yang boleh bercakap dengan kami, tetapi apa yang berlaku jika kami tidak dapat mendengarnya dengan alasan apa pun. Saya memulakannya sebagai sesuatu yang menyeronokkan, tetapi mungkin berguna dalam aplikasi yang lebih serius.

Terdapat 2 bahagian untuk masalah ini, kita memerlukan kaedah untuk mengesan penggera sudah mati dan kaedah untuk menyampaikan fakta ini ke ruang tamu kita. Reka bentuk yang saya buat adalah menggunakan Raspberry Pi untuk mendengar penggera peti sejuk berbunyi, dan kemudian menghantar mesej penggera yang dapat didengar ke radio domestik saya yang diaktifkan oleh uPNP. Universal Plug and Play (UpnP) adalah standard untuk mencari dan berinteraksi dengan perkhidmatan yang ditawarkan oleh pelbagai peranti di rangkaian, termasuk pelayan media dan pemain, walaupun saya tidak fikir pembeku dibayangkan ketika standard dikembangkan. Mesej amaran dibuat keras dan menjengkelkan dan berulang tanpa henti sehingga radio dimatikan.

Saya memilih untuk mengesan penggera dengan Raspberry Pi Zero W dan Seeed ReSpeaker 2-Mics Pi HAT Raspberry PI Zero adalah versi kos rendah dari Raspberry Pi dan pilihan W telah membina WiFi, sementara Seeed Pi HAT dijual dengan harga kurang dari $ 10, mempunyai LED terbina dalam dan Butang Pengguna. Pi HAT adalah kad lanjutan yang dipasang terus ke Raspberry Pi membuat prosedur pemasangan yang sangat mudah. Mana-mana versi Pi lebih sesuai untuk pekerjaan itu, dan mikrofon yang dipilih dapat diganti, walaupun saya menggunakan LED bawaan dalam binaan ini.

Sangat mudah untuk memeriksa sama ada radio atau TV berfungsi untuk anda. Kemungkinan besar ia akan digambarkan sebagai "DLNA enabled" atau serupa. Ini menggunakan uPNP untuk berkomunikasi. Pada PC Windows, pilih fail mp3 dan "Cast to Device". Sekiranya peranti anda muncul dan anda boleh memainkan fail, maka anda boleh pergi.

Saya membahagikan perisian menjadi 2 skrip python, checkFreezer.py untuk memeriksa sama ada amaran pembeku telah dicetuskan dan menaikkanAlarm.py untuk menaikkan penggera. Skrip ini dapat dikembangkan dan diuji secara berasingan dan dapat dengan mudah disesuaikan atau diganti dengan kaedah penggera penggera mikrofon yang berbeza.

Bekalan

  • Perisian -https://github.com/wapringle/freezer-alarm
  • Raspberry PI Zero W
  • Melihat ReSpeaker 2-Mics Pi HAT
  • radio berdaya uPNP

Langkah 1: Merancang Pengesan

Apabila pintu pembeku dibiarkan terbuka dan suhu meningkat, peti sejuk beku memberikan penggera "beep beep beep" yang terdengar. Sama seperti kebanyakan bunyi bip elektronik, ini adalah frekuensi tunggal. Ideanya adalah untuk mengambil sampel input audio, melakukan Transformasi Fourier Cepat (FFT) yang mengubah isyarat berdasarkan masa menjadi isyarat berdasarkan frekuensi, dengan kata lain memecah isyarat untuk menunjukkan frekuensi yang berbeza dalam isyarat. Lihat Alat Analisis Spectrum Raspberry Pi Dengan Jalur LED RGB Kami dapat mencari puncak pada frekuensi buzzer dan memicu penggera ketika bel telah aktif untuk beberapa waktu.

Pengesan ini mempunyai 2 keperluan

  • Ia harus mengesan bel, walaupun terdapat bunyi persekitaran (menghilangkan negatif palsu)
  • Ia tidak boleh dipicu oleh kebisingan ambien (menghilangkan positif palsu)

Saya memutuskan bahawa menjalankan Hoover di bilik utiliti akan menjadi ujian yang baik. Ia tidak boleh mencetuskan penggera, dan penggera harus dipicu ketika bel pembeku mati dan Hoover sedang berjalan.

Langkah 2: Mengkonfigurasi Pengesan

Mengkonfigurasi Pengesan
Mengkonfigurasi Pengesan
Mengkonfigurasi Pengesan
Mengkonfigurasi Pengesan
Mengkonfigurasi Pengesan
Mengkonfigurasi Pengesan

Dengan telefon saya, saya mengambil sampel audio sebagai fail WAV dari buzzer freezer sahaja, dengan latar belakang yang bising, dan dengan Hoover berjalan. Saya mengadaptasi kod untuk melaksanakan FFT dari post Reading Audio Stream untuk FFT (Apabila ragu-ragu, plagarise) dan menggunakan skrip FourierTest.py untuk memplot sampel buzzer mentah dan Fourier Transformed dalam latar yang tenang, bising dan sangat bising. Lonjakan tahap pada frekuensi 645 ketara pada plot pertama dan masih ketara dengan latar belakang yang sangat bising.

Langkah 3: Membina Pengesan

Memasang pengesan

Sangat ringkas. Pi W dilengkapi dengan Wifi bawaan dan HAT dipasang dengan tepat ke pin GPIO pada Pi. Mengkonfigurasi perisian memerlukan langkah-langkahnya

  • Pasang distro raspbian di Raspberry Pi. Terdapat banyak panduan mengenai perkara ini yang dapat menjelaskannya dengan lebih baik daripada yang saya dapat.
  • Sediakan Wifi (ditto di atas)
  • Ia memerlukan pakej alsa yang dipasang

$ sudo apt-get install libasound-dev

$ pip memasang pyalsaaudio

  • Sambungkan HAT ke raspberry PI
  • Ikuti Arahan di laman web yang dilihat untuk memasang pemacu untuk HAT.
  • Jalankan diagnostik yang dilihat untuk memastikan HAT berfungsi dan dikonfigurasi dengan betul.

Program pengesan membaca sekumpulan data sebagai sampel dari mikrofon, melakukan FFT dan memutuskan sama ada ia telah mengesan buzzer dalam sampel atau tidak. Saya cuba membuat blok selama mungkin dengan mengurangkan kadar sampel audio menjadi 16kHz dan menggunakan penyangga terbesar yang akan diterima oleh pembaca. Saya bimbang bahawa pengiraan FFT mungkin menyebabkan bingkai dijatuhkan, tetapi itu tidak berlaku.

Mempunyai sampel yang telah dirakam di telefon saya menjadikan pembinaan pengesan menjadi lebih mudah kerana saya dapat membuat binaan lengkap di bangku sebelum menguji in-situ oleh peti sejuk.

Melatih pengesan

Pengesan dilatih dengan mengimbas setiap sampel ketika rakaman WAV buzzer dimainkan kepada pengesan. Program menghasilkan kedudukan dalam spektrum FFT dengan tahap daya tertinggi (frekuensi puncak), bersama dengan tahap frekuensi puncak itu. Adalah mudah untuk mencari frekuensi bel dan tahap kuasa yang dipancarkannya.

Ada 2 cara untuk mengetahui apakah bunyi bip terjadi: -

  1. Adakah frekuensi buzzer adalah frekuensi puncak dalam sampel?
  2. atau adakah tahap daya pada frekuensi buzzer melebihi ambang?

Mana-mana kaedah berfungsi dalam sampel yang tenang, tetapi yang kedua lebih baik dengan sampel yang bising, jadi saya menggunakannya.

Kadang-kadang sampel meliputi bip, kadang-kadang antara bip, dan setelah setiap 3 bip ada jeda panjang sebelum bip berikutnya. Untuk mengesan dengan pasti bahawa satu set bunyi bip telah berlaku setiap sampel mempunyai suara positif jika bunyi bip dikesan dan suara rendah jika tidak. Undian ini ditimbang untuk menetapkan jumlah yang akan disusun dengan sampel bip dan perlahan-lahan merosot di antara waktu. Setelah penghitungan mencapai ambang, penggera dapat dipicu. Sekiranya bunyi rawak dikesan sebagai sampel bip, kiraan akan berubah menjadi sifar.

Kita memerlukan timbang untuk menaikkan undi dan undi bersama dengan ambang. Ini saya lakukan dengan percubaan dan ralat terhadap sejumlah sampel. Saya tidak perlu menentukan frekuensi buzzer sebenar, saya hanya mencari frekuensi menonjol dalam spektrum fft.

Langkah 4: Menghantar Mesej ke Radio

Meningkatkan penggera dilakukan dengan skrip yang terpisah. Tugasnya adalah menghidupkan radio jika perlu, masuk ke dalam apa sahaja radio yang dimainkan dan ulangi mesej penggera sehingga radio dimatikan lagi. Saya terpaksa membalikkan protokol uPnP yang digunakan kerana saya menghadapi masalah untuk mendapatkan maklumat atau contoh yang boleh dipercayai. Beberapa rujukan yang saya dapati berguna

  • www.electricmonk.nl/log/2016/07/05/exploring-upnp-with-python/ Ini mempunyai gambaran keseluruhan yang bagus bagaimana semuanya sesuai
  • developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file.
  • stackoverflow.com/questions/28422609/how-to-send-setavtransporturi-using-upnp-c/35819973

Saya menggunakan Wireshark yang berjalan di PC windows untuk memilih urutan mesej ketika memainkan contoh fail dari PC saya di radio saya, dan setelah sedikit bermain, saya mendapat urutan arahan yang berfungsi. Ini adalah

  • Lancarkan pelayan web pop timbul untuk menyampaikan mesej amaran ketika radio memintanya
  • Tetapkan tahap kelantangan ke LOUD (Mesej pesanan harus menarik perhatian semua orang)
  • Hantarkan uri mesej amaran ke radio
  • Undi radio sehingga keadaan semasa "DITANGGUHKAN"
  • Dapatkan radio untuk "MAINKAN" uri
  • Ulangi 2 langkah terakhir sehingga keadaan saat ini adalah "TIDAK MEDIA MENGADAKAN", yang bermaksud penggera telah diakui dengan mematikan radio
  • Akhirnya tutup pelayan web dan keluar.

Ini adalah skrip raiseAlarm.py

Langkah 5: Melakukannya Sendiri

Melakukannya Sendiri
Melakukannya Sendiri

Model "pengesan" dan "penggera penggera" bukan hanya untuk penyejuk beku, ia juga berguna di mana sahaja penggera automatik perlu disalurkan melalui media lain. Sekiranya ini menarik, jangan ragu untuk mencuba.

Menyiapkan PI Zero W, termasuk mikrofon

  • Pasang perkakasan seperti pada langkah 3
  • Muat turun skrip penggera beku dari Instructable ini, atau dari git repositori yang merangkumi beberapa trek bonus

$ git klon

Anda juga perlu memasang perisian untuk menggunakan LED APA102 on-board. Saya telah memasukkan salinan apa102.py dalam direktori kerja git

Latih pengesan anda

Saya telah menambah pilihan latihan pada skrip checkFreezer.py. Ini menjalankannya secara bersendirian dan mencetak diagnostik ke baris arahan, tetapi pertama-tama anda perlu merakam beberapa contoh penggera dalam persekitaran yang tenang seperti fail WAV, dan melakukan perkara yang sama dalam keadaan bising. Untuk menyelesaikan latihan, anda perlu terlebih dahulu mencari frekuensi FFT dengan tahap tertinggi ("frekuensi puncak") dan kemudian tahap ambang untuk frekuensi tersebut untuk menetapkan pencetus. Untuk melakukan ini, jalankan script checkFreezer dalam mod latihan, dengan pilihan '-t' dan mainkan rakaman penggera.

$ python checkFreezer.py -t

Ini menjalankan skrip dalam mod latihan. Ia mencetak "siap" apabila HAT yang dilihat telah diinisialisasi dan LED berubah menjadi hijau, kemudian garis untuk setiap bunyi tidak sepele yang didengarnya, misalnya

$ python checkFreezer.py -t

Siap frekuensi puncak 55 pencetus tahap 1 dicetuskan? Frekuensi puncak palsu 645 tahap pencetus 484 dicetuskan? Frekuensi puncak palsu 645 tahap pencetus dicetuskan 380? Salah

Frekuensi puncak adalah, dalam kes ini 645 dan itu menjadi frekuensi pencetus. Sekarang untuk mendapatkan tahap pemicu, jalankan semula checkFreezer, tetapkan pencetus

$ python checkFreezer.py -t --trigger = 645

Siap puncak frekuensi 645 tahap pencetus 1273 dicetuskan? Frekuensi puncak palsu 645 tahap pencetus dicetuskan 653? Frekuensi puncak palsu 645 tahap pencetus dicetuskan 641? Frekuensi puncak palsu 645 tahap pencetus 616 dicetuskan? Salah

Akhirnya kita memerlukan ambang pencetus yang menyala ketika bunyi bip dikesan, tetapi mengabaikan bunyi, misalnya

$ python checkFreezer.py -t --trigger = 645 --threshold = 500

Siap frekuensi puncak 645 tahap pencetus 581 dicetuskan? Frekuensi puncak benar 645 tahap pencetus 798 dicetuskan? Frekuensi puncak benar 645 tahap pencetus 521 dicetuskan? Betul

Uji ini terhadap beberapa sampel yang bising dan anda harus dapat menentukan nilai ambang yang membezakan antara bunyi bleeper dan bunyi ambien. Anda juga harus melihat LED menjadi merah ketika rakaman bip dimainkan selama beberapa saat. Sekiranya cepat / lambat datang, edit tetapan dalam skrip

Menyambung ke radio

Untuk mengkonfigurasi skrip untuk persediaan anda sendiri, anda perlu mencari alamat IP dan nombor port yang digunakan oleh peranti anda untuk perkhidmatan UPnP. Penyediaan radio harus menyediakan ini. Nombor port lalai adalah 8080 dan akan mengejutkan jika berbeza.

Saya telah memberikan mesej penggera lalai, freezer.mp3. Jangan ganti dengan mesej anda sendiri.

Edit skrip dengan alamat IP yang sesuai dan jalankan skrip.

$ python raiseAlarm.py

Sekiranya semuanya baik, mesej penggera yang kuat dan menjengkelkan akan keluar dari radio anda sehingga radio dimatikan, membatalkan penggera.

Semasa skrip dijalankan, ia menjalankan pelayan web mini untuk menyampaikan mp3 penggera ke radio, mungkin masalah keselamatan, tetapi hanya aktif semasa mesej penggera dimainkan.

Berlangsung

Keluarkan bendera latihan ‘-t’, dan jalankan checkFreezer dengan nilai anda sendiri, mis

$ python checkFreezer.py --trigger = 645 --threshold = 200

Untuk memulakannya pada reboot, tambahkan ke /etc/rc.local, cd / home / pi / freezer-alarm

(python checkFreezer.py --trigger = 645 --threshold = 200> / tmp / freezer 2> / tmp / freezererror &) & keluar 0

LED hijau akan menyala dan anda sudah bersedia untuk bertindak. Mainkan rakaman bip penggera anda dan setelah beberapa saat, LED akan menjadi merah dan mesej penggera akan dimainkan di radio anda.

Akhirnya

Letakkan PI di lokasi yang berdekatan dengan penyejuk beku, di luar jalan dan dengan bekalan kuasa. Hidupkan dan LED hijau akan menyala. Uji mencetuskan penggera dengan membiarkan pintu terbuka. Lampu akan menjadi merah dan mesej penggera dimainkan di radio.

Berjaya !! Anda telah berjaya. Manjakan diri anda dengan minuman panjang dengan ais dari peti sejuk, tetapi jangan lupa tutup pintu pembeku!

Disyorkan: