Isi kandungan:

Sensor Pintu Bertenaga Bateri Dengan Integrasi Automasi Rumah, WiFi dan ESP-SEKARANG: 5 Langkah (dengan Gambar)
Sensor Pintu Bertenaga Bateri Dengan Integrasi Automasi Rumah, WiFi dan ESP-SEKARANG: 5 Langkah (dengan Gambar)

Video: Sensor Pintu Bertenaga Bateri Dengan Integrasi Automasi Rumah, WiFi dan ESP-SEKARANG: 5 Langkah (dengan Gambar)

Video: Sensor Pintu Bertenaga Bateri Dengan Integrasi Automasi Rumah, WiFi dan ESP-SEKARANG: 5 Langkah (dengan Gambar)
Video: Bardi DOOR/Window Sensor - Salah satu Item penting untuk Rumah bebas Maling !!! 2024, November
Anonim
Image
Image

Dalam arahan ini saya tunjukkan kepada anda bagaimana saya membuat sensor pintu berkuasa bateri dengan integrasi automasi rumah. Saya telah melihat beberapa sensor dan sistem penggera yang bagus, tetapi saya mahu membuatnya sendiri.

Matlamat saya:

  • Sensor yang mengesan dan melaporkan pintu terbuka dengan cepat (<5 saat)
  • Sensor yang mengesan penutupan pintu
  • Sensor yang dikendalikan bateri dan beroperasi selama beberapa bulan pada bateri

Perkakasan dan perisian diilhamkan oleh

  • Trigboard Kevin Darrah (TPL5111 dan TPS73733).
  • Video ini

Saya membuat sensor untuk pintu depan dan pintu belakang saya. Satu-satunya perbezaan adalah kedudukan dipimpin dan suis kuasa luaran (pada sensor pintu belakang).

Saya membuat beberapa penambahbaikan semasa pengembangan perkakasan dan perisian, ia dapat dilihat dalam foto.

Bekalan

Saya membeli komponen elektronik dari Aliexpress, bahagian utama:

  • Bateri LiPo
  • TPS73733 LDO
  • TPL5111
  • Suis reed
  • P-channel mosfet: IRLML6401TRPBF
  • Magnet
  • Plat penyesuai PCB untuk komponen SMD dan lain-lain.

Langkah 1: Perkakasan - Litar

Perkakasan - Litar
Perkakasan - Litar
Perkakasan - Litar
Perkakasan - Litar
Perkakasan - Litar
Perkakasan - Litar

Lihat skema yang dilampirkan untuk litar. Saya menyolder bahagian-bahagian SMD pada plat PCB penyesuai dan menyolder semua komponen ke papan perf dua sisi. Saya menyambungkan ESP-01 melalui header wanita, jadi saya dapat mengeluarkannya untuk memprogramnya melalui penyesuai yang ditunjukkan pada langkah 3 dari Instructable ini.

Litar berfungsi seperti berikut:

  • Apabila pintu dibuka, TPL5111 menerima tembakan pada pin DELAY / M_DRV dan membolehkan TPS73733 LDO yang memberi kuasa kepada ESP-01. Untuk operasi ini, EN / ONE_SHOT mesti ditarik rendah, Lihat lembaran data TPL5111.
  • Setelah program dijalankan (lihat langkah Perisian), ESP-01 menghantar isyarat Selesai ke TPL5111 yang kemudian mematikan TPS73733 yang mengakibatkan keadaan kuasa yang sangat rendah untuk TPL5111 dan TPS73733.

Saya menggunakan suis reed dengan sambungan NO dan NC. Saya menyambungkan plumbum NC, kerana suis reed mesti menutup litar ketika magnet dikeluarkan (pintu terbuka) dan terbuka ketika magnet dekat (pintu ditutup).

Untuk sensor pintu belakang saya menambahkan beberapa kondensator dan perintang ketika saya menemui beberapa ketidakstabilan, namun ketidakstabilan disebabkan oleh perisian (esp_now_init) seperti yang saya temui kemudian.

Langkah 2: Perkakasan - Kandang

Perkakasan - Kandang
Perkakasan - Kandang
Perkakasan - Kandang
Perkakasan - Kandang
Perkakasan - Kandang
Perkakasan - Kandang

Saya merancang kandang di Autodesk Fusion360, yang diilhamkan oleh video ini oleh 'lelaki dengan loghat swiss'.

Fail STL dari tiga bahagian:

  • Kotak
  • Tudung
  • Pemegang magnet

diterbitkan di halaman Thingiverse saya.

Langkah 3: Perisian

Perisian
Perisian

Program ini ada di Github saya.

Aliran program ditunjukkan dalam gambar. Lihat Arahan saya yang lain untuk penjelasan bagaimana saya menggunakan ESP-SEKARANG.

Apabila modul dihidupkan, ia akan mula-mula menghantar mesej 'BUKA' melalui ESP-SEKARANG. Sekiranya ini tidak berjaya, ia beralih ke sambungan WiFi dan MQTT.

Saya mendapat tahu bahawa, sekurang-kurangnya dalam persediaan saya, mesej 'TUTUP' tidak berjaya dihantar melalui ESP-SEKARANG, jadi saya membuangnya dari program dan hanya menggunakan WiFi dan MQTT.

Semasa pintu dibuka dan modul menunggu pintu ditutup, ia menggunakan masa ini untuk menyambung ke WiFi dan MQTT, jadi apabila pintu ditutup, ia hanya perlu menghantar voltan yang diukur dan mesej TUTUP dan kemudian ia langsung tidur.

Program ini memeriksa sama ada mesej tertutup diterima oleh penerima melalui mendengar mesej MQTT pada topik yang betul.

Langkah 4: Automasi Rumah dan Telegram

Automasi Rumah dan Telegram
Automasi Rumah dan Telegram
Automasi Rumah dan Telegram
Automasi Rumah dan Telegram
Automasi Rumah dan Telegram
Automasi Rumah dan Telegram

Sensor pintu saya berkomunikasi dengan Openhab Home Automation saya di Raspberry Pi Zero saya.

Aplikasi utama:

  • Baca keadaan pintu: DIBUKA atau TUTUP.
  • Alarm saya melalui telegram jika pintu dibuka (Sekiranya Penggera dihidupkan atau fungsi Monitor dihidupkan).
  • Baca kali terakhir pintu dibuka atau ditutup.
  • Hitung jumlah bukaan yang dapat dikendalikan oleh sensor pintu sebelum bateri habis.

Contohnya, jika kita bercuti dan jiran datang untuk menyiram tanaman, saya mendapat mesej. Lihat video di intro.

Item, peraturan dan fail peta laman Openhab saya ada di Github saya. Dalam fail-fail ini, anda juga dapat melihat sensor pintu gudang saya, yang menggunakan suis reed kabel biasa dan suis kenalan kecil (akhir) dari pencetak 3D di bukaan kunci (lihat gambar).

Cara menggunakan tindakan Telegram di Openhab dijelaskan di sini.

Langkah 5: Penambahbaikan dan Penambahbaikan Lebih Lanjut

Penambahbaikan dan Penambahbaikan Lebih Lanjut
Penambahbaikan dan Penambahbaikan Lebih Lanjut
Penambahbaikan dan Penambahbaikan Lebih Lanjut
Penambahbaikan dan Penambahbaikan Lebih Lanjut

Dalam beberapa bulan kebelakangan ini saya membuat peningkatan berikut.

Kendalikan bukaan pintu yang panjang melalui isyarat nadi pertukaran diri

Pada musim panas, kami membiarkan pintu belakang dibuka selama beberapa jam ketika kami berada di rumah. ESP-01 yang berjalan dengan sambungan WiFi kemudian akan menghabiskan bateri secara tidak perlu. Oleh itu, saya memasukkan suis hidup / mati untuk mematikan modul dalam situasi seperti ini.

Walau bagaimanapun, ini kadang-kadang mengakibatkan modul dimatikan secara kekal (ketika saya lupa menghidupkannya) dan bateri terkuras setelah beberapa petang pintu yang dibuka dan modul berjalan (Apabila saya terlupa untuk mematikannya).

Oleh itu, saya mahu mematikan modul melalui perisian setelah modul dihidupkan untuk masa yang telah ditentukan (1 minit).

Walau bagaimanapun, di mana denyut ‘SELESAI’ ESP-01 mematikan TPL5111 ketika pintu ditutup, saya mendapat tahu bahawa TPL5111 tidak ditukar dengan denyut ‘SELESAI’ sementara pin DELAY / M_DRV TINGGI. Isyarat TINGGI ini pada pin DELAY / M_DRV disebabkan oleh pintu yang dibuka dan kenalan NC suis buluh disambungkan ke voltan bateri.

Jadi, isyarat ke pin DELAY / M_DRV tidak boleh berterusan TINGGI, tetapi harus berdenyut. Dalam lembar data TPL5111, anda dapat mengetahui bahawa ia mestilah nadi> 20 ms. Saya membuat isyarat menukar diri ini melalui mosfet saluran-P, kapasitor dan perintang 10K dan 300K, lihat skema yang disertakan.

Ia berfungsi seperti berikut:

  • Sekiranya kenalan NC suis buluh ditutup, Gerbang RENDAH dan Mosfet dihidupkan, menghasilkan isyarat TINGGI pada pin DELAY / M_DRV yang mengaktifkan modul.
  • Kapasitor diisi dengan cepat, mengakibatkan voltan meningkat di Gerbang.
  • Setelah kira-kira 20 ms, voltan di Gerbang adalah 97% daripada voltan bateri (300K / (300K + 10K) yang TINGGI dan Mosfet dimatikan, menghasilkan isyarat RENDAH pada pin DELAY / M_DRV.
  • Apabila pin DELAY / M_DRV RENDAH, isyarat SELESAI ESP-01 mengakibatkan penutupan modul.

Ini dilaksanakan dalam perisian; loop sementara tidak hanya memeriksa sama ada pintu masih dibuka, tetapi juga memeriksa apakah modul tidak dihidupkan terlalu lama. Sekiranya dihidupkan terlalu lama, ia akan menerbitkan nilai NULL (keadaan pintu yang tidak ditentukan). Dalam kes ini, saya tidak tahu sama ada pintu dibuka atau ditutup dan saya tidak mencapai semua tujuan yang dinyatakan dalam intro, tetapi jangka hayat bateri lebih penting dan kebiasaannya kita membuka pintu lagi pada hari itu, mengakibatkan keadaan tertutup yang disahkan dari pintu.

Penting untuk menggunakan Mosfet saluran-P yang sesuai untuk julat voltan yang digunakan di sini. Mosfet harus dihidupkan sepenuhnya pada VGS kira-kira - 3.8V dan mati sepenuhnya pada VGS sekitar -0.2 V. Saya mencuba beberapa Mosfets dan mendapati bahawa IRLML6401TRPBF berfungsi dengan baik untuk tujuan ini dalam kombinasi dengan perintang 10K dan 300K. Kapasitor 1 uF berfungsi dengan baik untuk mendapatkan panjang pulsa sekitar 20 ms. Kapasitor yang lebih besar menghasilkan nadi yang lebih lama, yang tidak diperlukan, kerana TPL5111 diaktifkan. Saya menggunakan osiloskop DSO150 saya untuk memeriksa voltan dan panjang pulsel.

Penambahbaikan yang dirancang: kemas kini OTA

Saya merancang untuk memasukkan kemas kini OTA melalui prosedur berikut, yang sudah termasuk dalam perisian semasa

  • Melalui Openhab dari NodeRed saya menerbitkan mesej 'kemas kini' yang tersimpan dan 'topik kemas kini'.
  • Sekiranya modul dihidupkan dan dihubungkan ke pelayan MQTT dan melanggan 'topik kemas kini', ia akan menerima mesej kemas kini.
  • Mesej kemas kini akan menghalang modul daripada dimatikan dan memulakan
  • Melalui laman web HTTPUpdateServer, anda boleh mengemas kini perisian.
  • Melalui Openhab dari NodeRed saya menerbitkan mesej 'kosong' yang tersimpan dan 'topik kemas kini'.

Peningkatan yang dirancang: penutupan perkakasan selepas masa yang telah ditentukan

Dalam skema semasa, saya menggunakan perintang 200K antara DELAY / M_DRV dan GND TPL5111. Ini menghidupkan modul selama lebih dari 2 jam (lihat 7.5.3. Lembaran data TPL5111). Namun, saya tidak mahu modul dihidupkan begitu lama, kerana bateri kemudian habis. Sekiranya penyelesaian perisian (lihat di atas) gagal mematikan modul, atau mesej kemas kini yang tidak disengajakan menetapkan modul dalam mod kemas kini, modul tetap dihidupkan untuk waktu yang lama.

Oleh itu, lebih baik menggunakan perintang yang lebih kecil antara DELAY / M_DRV dan GND TPL5111, jadi modul dimatikan setelah waktu yang singkat, misalnya perintang 50K yang menghasilkan waktu 7 minit.

Disyorkan: