Daftar Isi:

Sensor Pintu Nirkabel - Daya Sangat Rendah: 5 Langkah
Sensor Pintu Nirkabel - Daya Sangat Rendah: 5 Langkah

Video: Sensor Pintu Nirkabel - Daya Sangat Rendah: 5 Langkah

Video: Sensor Pintu Nirkabel - Daya Sangat Rendah: 5 Langkah
Video: Langkah2 yang dilakukan sebelum mengevakuasi korban yang tersengat listrik tegangan 220-400 Volt 2024, November
Anonim
Sensor Pintu Nirkabel - Daya Sangat Rendah
Sensor Pintu Nirkabel - Daya Sangat Rendah
Sensor Pintu Nirkabel - Daya Sangat Rendah
Sensor Pintu Nirkabel - Daya Sangat Rendah
Sensor Pintu Nirkabel - Daya Sangat Rendah
Sensor Pintu Nirkabel - Daya Sangat Rendah
Sensor Pintu Nirkabel - Daya Sangat Rendah
Sensor Pintu Nirkabel - Daya Sangat Rendah

Namun sensor pintu lain !! Nah motivasi saya untuk membuat sensor ini adalah karena banyak yang saya lihat di internet memiliki satu batasan atau yang lain. Beberapa tujuan dari sensor bagi saya adalah:

1. Sensor harus sangat cepat - sebaiknya kurang dari 5 detik

2. Sensor harus menggunakan baterai Li-ion 3,7V karena saya memiliki lusinan yang tergeletak di sekitar

3. Sensor harus berjalan selama berbulan-bulan dengan sekali pengisian daya baterai. Itu harus mengkonsumsi <10uA dalam mode tidur

4. Sensor harus dapat menyala untuk mengirimkan data penting seperti status baterai meskipun pintu tidak dioperasikan dalam waktu lama.

5. Sensor harus mengirimkan data ke topik MQTT saat pintu dibuka dan juga saat pintu ditutup

6. Sensor harus mengkonsumsi jumlah daya yang sama terlepas dari keadaan pintu

Bekerja dari sensor:

Sensor memiliki 2 pengontrol utama. Yang pertama adalah mikrokontroler kecil ATiny 13A. Yang kedua adalah ESP yang biasanya dalam mode tidur dan bangun hanya ketika ATiny mengaktifkannya. Seluruh rangkaian juga dapat dibuat hanya dengan ESP dengan menggunakannya dalam mode tidur tetapi arus yang dikonsumsi jauh lebih besar dari yang dibutuhkan baterai untuk bertahan selama berbulan-bulan sehingga ATTiny datang untuk menyelamatkan. Ini hanya berfungsi untuk bangun setiap N detik, mencari acara pintu atau acara pemeriksaan kesehatan, jika ada, itu menahan pin CH_PD dari ESP ke HIGH dan mengirimkan sinyal yang sesuai dari jenis acara ke ESP. Perannya berakhir di sana.

ESP kemudian mengambil alih, membaca jenis sinyal, menghubungkan ke WiFi/MQTT, menerbitkan pesan yang diperlukan termasuk tingkat baterai dan kemudian mematikan sendiri dengan membawa pin EN kembali ke RENDAH.

Dengan menggunakan chip ini dengan cara ini saya memanfaatkan arus sleep rendah dari ATtiny dan arus idle nol dari ESP ketika chip dinonaktifkan melalui pin CH_PD.

Perlengkapan

Pra-permintaan:

- Pengetahuan tentang pemrograman ATTiny & ESP 01

- Pengetahuan tentang komponen solder pada PCB

ESP-01 (atau ESP apa pun)

ATTiny 13A - AVR

LDO 7333-A - Pengatur tegangan putus sekolah rendah

Resistor - 1K, 10K, 3K3

Kapasitor: 100uF, 0,1 uF

Sakelar tombol tekan, sakelar ON/OFF mikro - (keduanya opsional)

Dioda - IN4148 (atau yang setara)

Baterai Li-ion

Saklar buluh

Sebuah kasus untuk menampung semuanya

Solder, PCB, dll

Langkah 1: Skema & Kode Sumber

Skema & Kode Sumber
Skema & Kode Sumber

Skema seperti yang ditunjukkan pada diagram terlampir.

Saya telah menyertakan MOSFET P Channel untuk perlindungan polaritas terbalik. Jika Anda tidak membutuhkan ini, Anda dapat menghilangkannya. Setiap MOSFET P Channel dengan Rds ON rendah dapat digunakan.

Saat ini ESP tidak memiliki kemampuan OTA tapi itu untuk perbaikan kedepannya.

Kode sumber sensor pintu pintar

Langkah 2: Kerja Sirkuit

Alur Kerja ATTiny

Keajaiban di sini terjadi dalam cara ATTiny memantau posisi sakelar pintu.

Opsi normal adalah memasang resistor pull up ke sakelar dan terus memantau statusnya. Ini memiliki kelemahan arus konstan yang dikonsumsi oleh resistor pull up. Cara menghindarinya di sini adalah saya menggunakan dua pin untuk memantau sakelar daripada satu. Saya telah menggunakan PB3 & PB4 di sini. PB3 didefinisikan sebagai input dan PB4 sebagai output dengan INPUT_PULLUP internal pada PB3. Biasanya PB4 ditahan TINGGI ketika ATtiny dalam mode tidur. Ini memastikan tidak ada aliran arus melalui resistor pull up input terlepas dari posisi sakelar buluh. yaitu. Jika sakelar ditutup, PB3 & PB4 keduanya TINGGI sehingga tidak ada arus yang mengalir di antara keduanya. Jika sakelar terbuka maka tidak ada jalur di antara keduanya sehingga arusnya nol. Ketika ATtiny bangun, ia menulis LOW pada PB4 dan kemudian memeriksa status PB3. Jika PB3 TINGGI maka saklar buluh BUKA jika tidak maka TUTUP. Kemudian menulis kembali TINGGI pada PB4.

Komunikasi antara ATtiny & ESP terjadi melalui dua pin PB1 / PB2 yang terhubung ke Tx/RX dari ESP. Saya telah mendefinisikan sinyal sebagai

PB1 PB2 ====== Tx Rx

0 0 ====== WAKE_UP (Pemeriksaan Kesehatan)

0 1 ====== SENSOR_OPEN

1 0 ====== SENSOR_CLOSED

1 1 ====== TIDAK DIGUNAKAN

Selain mengirimkan sinyal ke ESP juga mengirimkan pulsa HIGH pada PB0 yang terhubung ke pin ESP CH_PD. Ini membangunkan ESP. Hal pertama yang dilakukan ESP untuk menahan GPIO0 HIGH yang terhubung ke CH_PD sehingga memastikan kekuatannya bahkan jika ATTiny menghilangkan PB0 HIGH. Kontrol sekarang ada pada ESP untuk menentukan kapan ingin dimatikan.

Kemudian terhubung ke WiFi, MQTT, memposting pesan dan mematikannya sendiri dengan menulis LOW pada GPIO0.

ESP 01 Alur kerja:

Aliran ESP lurus ke depan. Itu bangun dan membaca nilai pin Tx/Rx untuk menentukan jenis pesan apa yang akan diposting. Menghubungkan ke WiFi dan MQTT, memposting pesan dan mematikannya sendiri.

Sebelum dimatikan, ia kembali memeriksa nilai pin input untuk melihat apakah mereka telah berubah sejak terakhir kali dibaca. Ini untuk menjaga pembukaan dan penutupan pintu dengan cepat. Jika Anda tidak memiliki cek ini maka dalam beberapa kasus Anda mungkin melewatkan penutupan pintu jika ditutup dalam waktu 5-6 detik setelah pembukaan. Skenario praktis dari pintu yang dibuka dan ditutup dalam waktu 2 detik atau lebih ditangkap dengan baik oleh loop while yang terus memposting pesan selama keadaan pintu saat ini berbeda dari yang sebelumnya. Satu-satunya skenario yang mungkin terlewatkan untuk merekam semua acara buka/tutup adalah ketika pintu dibuka/tutup berulang kali dalam jendela 4-5 detik yang merupakan kasus yang sangat tidak mungkin - mungkin kasus beberapa anak bermain dengan pintu.

Langkah 3: Pemeriksaan Kesehatan

Saya juga membutuhkan cara untuk mendapatkan pesan pemeriksaan kesehatan dari ESP di mana ia mengirimkan tingkat baterai ESP juga untuk memastikan bahwa sensor berfungsi dengan baik tanpa pemeriksaan manual. Untuk ini, ATTiny mengirimkan sinyal WAKE_UP setiap 12 jam. Itu dapat dikonfigurasi melalui variabel WAKEUP_COUNT dalam kode ATtiny. Ini sangat berguna untuk pintu atau jendela yang jarang dibuka sehingga Anda mungkin tidak mengetahui apakah ada yang salah dengan sensor atau baterainya.

Jika Anda tidak memerlukan fungsionalitas pemeriksaan kesehatan maka seluruh konsep penggunaan ATTiny tidak diperlukan. Dalam hal ini Anda dapat menemukan desain lain yang telah dibuat orang di mana pasokan ke ESP diumpankan melalui MOSFET sehingga Anda dapat mencapai penarikan arus nol saat pintu tidak dioperasikan. Ada hal-hal lain yang harus diperhatikan seperti penarikan arus yang sama pada posisi pintu terbuka dan pintu tertutup - untuk itu saya di suatu tempat melihat desain yang menggunakan sakelar buluh 3 keadaan alih-alih keadaan 2 yang biasa.

Langkah 4: Pengukuran Daya dan Masa Pakai Baterai

Saya telah mengukur konsumsi sirkuit saat ini dan dibutuhkan ~30uA saat tidur dan sekitar. Pergi dengan lembar data ATTiny, seharusnya sekitar 1-4 uA untuk seluruh rangkaian termasuk arus diam dari LDO tetapi kemudian pengukuran saya menunjukkan 30. MOSFET dan LDO mengkonsumsi arus yang tidak signifikan.

Jadi baterai 800mAH harus bertahan lama. Saya tidak memiliki statistik yang tepat tetapi saya telah menggunakannya di 2 pintu saya selama lebih dari satu tahun sekarang dan setiap sel 18650 dengan sekitar 800mAH tersisa di dalamnya bertahan selama sekitar 5-6 bulan di pintu utama saya yang membuka dan menutup pada minimal 30 kali sehari. Yang di pintu atap yang hanya dibuka beberapa kali dalam seminggu, tahan 7-8 bulan.

Langkah 5: Perbaikan di Masa Depan

1. ESP tidak mengakui pengiriman pesan MQTT. Program dapat ditingkatkan dengan berlangganan topik yang menerbitkan pesan untuk mengonfirmasi pengiriman atau perpustakaan Async MQTT dapat digunakan untuk mengirim pesan dengan QoS 1.

2. Pembaruan OTA: Kode ESP dapat dimodifikasi untuk membaca topik MQTT untuk pembaruan dan masuk ke mode OTA untuk menerima file.

3. ESP01 dapat diganti dengan ESP-12 untuk mendapatkan akses ke lebih banyak PIN input sehingga dapat memasang lebih banyak sensor pada PIN yang sama. Dalam hal ini komunikasi melalui metode 2 bit tidak dimungkinkan. Ini kemudian dapat ditingkatkan untuk mengimplementasikan komunikasi I2C antara ATtiny & ESP. Ini agak rumit tetapi bisa diterapkan. Saya membuatnya bekerja di pengaturan lain di mana ATTiny mengirimkan nilai rotary encoder ke ESP melalui jalur I2C.

4. Rangkaian arus memonitor Vcc internal ESP, Jika kita menggunakan ESP12 maka ini dapat dimodifikasi untuk membaca level baterai aktual melalui pin ADC.

5. Di masa depan saya juga akan memposting modifikasi ini yang dapat digunakan sebagai sensor mandiri tanpa memerlukan MQTT atau sistem otomasi rumah apa pun. Sensor akan beroperasi secara standalone dan dapat melakukan panggilan telepon ketika dipicu - tentu saja dibutuhkan koneksi internet untuk ini.

6. Dan daftarnya terus berlanjut…

7. Perlindungan baterai terbalik - SELESAI (Gambar perangkat yang sebenarnya adalah yang lama sehingga tidak mencerminkan MOSFET)

Direkomendasikan: