1 poin oleh GN⁺ 2023-08-17 | 1 komentar | Bagikan ke WhatsApp
  • Ini adalah proyek membuat bel pintu DIY yang terintegrasi secara lokal ke Home Assistant menggunakan ESP32-CAM dan ESPHome, ditujukan bagi pengguna yang ingin menghindari bel pintu pintar yang bergantung pada cloud
  • Konfigurasi dasarnya mencakup Home Assistant, add-on ESPHome, dan aplikasi pendamping Home Assistant di ponsel, yang mengirim snapshot kamera sebagai notifikasi ke ponsel saat input tombol dipicu
  • Perangkat kerasnya terdiri dari ESP32-CAM, tombol push sesaat, cincin LED RGB 8 opsional, kabel Micro USB 10 m, dan enclosure cetak 3D, dengan LED bawaan yang bisa menggantikan flash
  • Bergantung pada varian ESP32-CAM, susunan pin dan perilaku pull-down dapat berbeda, sehingga input tombol GPIO14 memerlukan pemasangan resistor pull-down 10kΩ ke GND
  • Enclosure PLA digunakan pada contoh cetak, tetapi PETG atau ABS lebih cocok untuk tujuan tahan cuaca, dan karena adanya lubang kamera, diperlukan lokasi pemasangan yang terlindung dari hujan

Konfigurasi bel pintu lokal dan perlengkapan yang dibutuhkan

  • Bel pintu pintar ini ditujukan untuk konfigurasi yang ramah privasi dan terintegrasi dengan Home Assistant melalui ESPHome
  • Untuk memulai, diperlukan konfigurasi berikut
    • Instance Home Assistant yang sedang berjalan
    • Add-on ESPHome
    • Aplikasi pendamping Home Assistant di ponsel untuk menerima notifikasi saat tombol ditekan
  • Pada build contoh digunakan cincin lampu LED RGB 8, tetapi jika ingin lebih sederhana, komponen ini bisa dihilangkan dan LED bawaan ESP32-CAM dapat dipakai sebagai flash
  • Versi AI-Thinker dari ESP32-CAM mungkin tidak memiliki semua resistor pull-up dan pull-down seperti ESP32 biasa
    • Fitur INPUT_PULLDOWN milik ESPHome dicoba pada GPIO14 tetapi tidak berfungsi
    • Ada banyak varian ESP32-CAM buatan Tiongkok, jadi tiap papan bisa memiliki perbedaan

Komponen dan berkas yang dibagikan

  • Komponen utamanya sebagai berikut
    • ESP32-CAM
      • Disarankan memakai papan yang memiliki tombol flash/download/io0 agar lebih mudah saat pertama kali mem-flash ESPHome
      • Papan tanpa tombol tersebut harus di-flash menggunakan adaptor FTDI
    • Tombol push sesaat
    • Cincin lampu LED RGB 8
    • Kabel Micro USB 10 m
  • Berkas cetak 3D dan berkas konfigurasi juga dibagikan

Mencetak dan merakit enclosure

  • Enclosure dicetak dalam tiga bagian
    • Bodi utama
    • Pelat penahan ESP32-CAM
    • Pelat belakang yang juga berfungsi sebagai dudukan dinding
  • Enclosure depan dan belakang harus dicetak dengan support
  • Contoh cetak menggunakan PLA, tetapi untuk tujuan tahan cuaca direkomendasikan filamen PETG atau ABS dengan infill 20–30%
  • Setelah dicetak, tambahkan dua insert sekrup M2.5
    • Dipasang pada penutup depan agar braket penahan ESP32-CAM bisa dikencangkan
    • Dipasang di bagian bawah backplate agar face plate bisa dikencangkan dengan sekrup M2.5 10 mm

Mem-flash ESP32-CAM dengan ESPHome

  • Untuk mem-boot ESP32-CAM ke mode flashing, tahan tombol flash/download/io0 lalu sambungkan ke komputer dengan kabel Micro USB
  • Di Home Assistant, buka add-on ESPHome dan buat perangkat baru
    • Jalurnya Settings -> Add-ons -> ESPHome -> Open Web UI
    • Nama perangkat baru bisa diisi misalnya Doorbell
    • Pilih tipe perangkat ESP32 dan centang use recommended settings
  • Pada konfigurasi YAML yang dibuat, tempelkan kode konfigurasi dari repositori GitHub di bawah captive_portal:
  • Tekan Save dan Install, lalu pilih Plug into this computer
  • Gunakan ESPHome Web untuk mem-flash firmware lewat browser
    • Google Chrome digunakan sebagai browser paling stabil untuk mem-flash firmware ESP32-CAM
    • Setelah firmware dikompilasi, Anda dapat menekan Download Project, dan proses ini mungkin memakan waktu beberapa menit
  • Setelah firmware baru di-flash, Home Assistant akan mendeteksi perangkat baru, dan entitas yang diinginkan dapat ditambahkan ke dashboard

Otomasi notifikasi tombol

  • Saat tombol bel pintu ditekan, disiapkan otomasi untuk mengambil snapshot kamera dan mengirimkannya ke ponsel
  • Di Home Assistant, buat otomasi baru
    • Jalurnya Settings -> Automations -> + Create Automation
    • Buat otomasi baru dari awal lalu pilih Edit in YAML dari menu kanan atas
  • Tempelkan YAML otomasi dari repositori GitHub, lalu ubah nama entitas perangkat seperti ponsel agar sesuai dengan lingkungan Anda
  • Setelah disimpan, restart Home Assistant agar otomasi baru aktif

Pengkabelan dan batasan pemasangan

  • Ada banyak varian papan ESP32-CAM, jadi perlu memeriksa susunan pin pada papan yang digunakan
  • Pengkabelan disusun dengan cara menyolder ke sisi belakang PCB bagian bawah yang memiliki port Micro USB
  • Tambahkan resistor pull-down 10kΩ di antara GPIO14 dan GND
    • Tanpa resistor ini, teramati masalah GPIO14 yang sering melayang pada status high
    • Disarankan membungkus resistor dengan heat-shrink tube
  • Karena adanya lubang untuk kamera bawaan, strukturnya tidak sepenuhnya kedap air dan harus dipasang di lokasi yang terlindung dari hujan
  • Daya disuplai melalui kabel Micro USB 10 m yang termasuk dalam daftar komponen

1 komentar

 
GN⁺ 2023-08-17
Komentar Hacker News
  • Bagus. Saya juga suka pencahayaannya
    Bisa juga menempelkan reed switch (seperti sensor buka/tutup pintu biasa) di dekat kumparan magnet yang membunyikan bel pintu bodoh, lalu mengirim informasinya ke Home Assistant
    Sambungkan reed switch seharga $0,50 ke bel pintu yang sudah ada, lalu keluarkan ke port I/O digital ESP yang mendapat daya dari sumber yang sama dengan kumparan bel pintu. Saat bel pintu ditekan, sistem mengirim snapshot email dari kamera pintu depan yang hanya lokal, dan memutar rekaman chime bel pintu di stereo lantai atas. Awalnya saya mencoba memantau tegangan kumparan dengan input analog, tetapi terlalu tidak stabil; pendekatan reed switch yang lebih sederhana membuat deteksi arus sangat stabil

    • Ide sumber daya yang sama dengan kumparan bel pintu itu keren. Saya jadi penasaran sumber tegangan aneh apa lagi yang bisa dipakai di dalam rumah. Unit kepala HVAC, saluran telepon analog, dan semacamnya
      Saluran telepon POTS (Plain Old Telephone Service) seharusnya menghasilkan sekitar 48V DC saat semua telepon dalam keadaan on-hook. Jika telepon pada saluran yang sama menjadi off-hook, tegangannya turun ke kisaran 3–9V. Telepon off-hook biasanya mengonsumsi arus DC sekitar 20mA untuk beroperasi, dan resistansi DC-nya sekitar 180Ω. Sisa penurunan tegangan terjadi pada jalur kabel tembaga dan rangkaian perusahaan telepon, yang biasanya memiliki resistor seri 200–400Ω untuk perlindungan hubung singkat dan pemisahan rangkaian audio
      https://www.jkaudio.com/article_03.htm
    • Saya juga melakukan persis dengan cara yang sama, dan menaruh sensor kontak Aqara Zigbee yang di dalamnya ada reed switch ke dalam bel pintu sungguhan. Kebetulan ada tempat datar di atas kumparan, jadi bekerja dengan baik
    • Apakah ada masalah reed switch menempel lalu tidak lepas? Untuk kegunaan ini sensor Hall bekerja sangat baik, meski mungkin saya hanya pernah melihat reed switch berkualitas rendah
    • Reed switch sangat bagus untuk dipakai dengan cara seperti ini
      Saya pernah menggunakannya dengan cara serupa, ditempelkan di casing atas relay untuk mendeteksi apakah kumparan mendapat daya tanpa perlu menusuk langsung rangkaian kontrol atau rangkaian beban
  • Yang saya inginkan dari perangkat IoT seperti ini hanyalah tidak bergantung pada cloud dan memakai PoE. Daripada berurusan dengan baterai bodoh yang terus mati, saya lebih rela menarik kabel sebanyak apa pun. Harga baterai juga makin lama makin terlalu mahal

    • Referensi PoE ESP32 untuk DIY IoT
      Non-isolated: https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/open-sou...
      Isolated: https://www.olimex.com/Products/IoT/ESP32/ESP32-POE-ISO/open...
    • Betul. Mengupas dan menarik kabel sekali memang kerja besar, tetapi skenario terburuknya pun hanya bertambah secara linear. Jika perangkat makin banyak, kabel yang dibutuhkan juga bertambah, dan karena bisa bercabang dari junction box yang sudah ada, mungkin malah lebih mendekati pertumbuhan logaritmik
      Mengganti baterai setahun sekali memang kerja kecil, tetapi kalau jumlahnya puluhan, cepat menumpuk dan berulang secara berkala, jadi tidak lebih baik daripada pertumbuhan linear
    • Untuk penggunaan seperti ini, menurut saya Zigbee adalah protokol yang sangat bagus. Bekerja secara lokal, tidak naik ke Wi-Fi, dan sensornya bisa bertahan bertahun-tahun dengan satu coin cell
    • Saya ingin daya surya. Bel pintu mungkin ditekan cuma sekitar sekali tiap 5 hari, bukan? Tutupi casing dengan panel surya dan masukkan superkapasitor untuk daya malam hari
    • Baterai-baterai seperti itu benar-benar merepotkan. Perangkat berbaterai juga cenderung tidak stabil. Setiap minggu ada saja yang harus dipair ulang atau baterainya diganti
      Kalau saya punya rumah sendiri, saya berencana memakai KNX
  • Sedikit keluar topik, tetapi istri saya punya ADD yang cukup berat sehingga sering kehilangan barang. Tile hanya bisa menemukan barang dalam jarak tertentu, dan tampaknya sering rusak
    Kemungkinannya kecil, tetapi saya penasaran apakah ada yang pernah membuat sistem pelacakan lokasi dalam ruangan yang dapat menemukan objek di ruang 3D dengan galat beberapa cm menggunakan beacon Bluetooth Low Energy di dalam rumah
    Lebih mendekati topik utama, ESP32 memang cukup luar biasa. Namun dengan MicroPython atau CircuitPython saya tidak bisa menjaga koneksi Wi-Fi tetap stabil, meski rentang hal yang bisa dilakukan memang mencengangkan. Board saya cukup tua, jadi mungkin akan berbeda kalau saya membeli board baru

    • DIY AirTags: https://github.com/seemoo-lab/openhaystack
    • Saya memasang MicroPython di board ESP32 devkit, menghubungkannya ke Wi-Fi dan MQTT, lalu mengirim nilai sensor 24 jam sehari; berjalan tanpa masalah selama berminggu-minggu
    • Tidak sepenuhnya sesuai kebutuhan, tetapi sudah coba https://www.room-assistant.io/?
    • Kalau MicroPython atau CircuitPython, entah apa yang diharapkan. Untuk sistem embedded yang membutuhkan keandalan, itu nyaris masuk kategori terlarang
  • Menarik bahwa di beberapa tempat di dunia, keberadaan bel pintu begitu penting sampai muncul kebutuhan untuk membuatnya “smart”. Kesuksesan produk bel pintu pintar menunjukkan permintaan semacam itu dengan jelas
    Saya tidak punya bel pintu. Jika pengunjung tidak tahu cara menghubungi saya atau orang lain di rumah, besar kemungkinan sejak awal tidak banyak alasan bagi mereka untuk datang ke sana
    Bukan cuma saya. Berdasarkan survei yang sangat tidak ilmiah saat berjalan-jalan minggu lalu, sebagian besar jalan kami tampak serupa, dan mungkin sebagian besar kota saya juga begitu

    • Kedengarannya cukup dingin. Saat saya membeli rumah dan pindah, para tetangga datang menyapa, bahkan ada yang membawa hadiah penyambutan. Saya tidak ingin dengan sengaja memutus diri dari komunitas lingkungan seperti itu
    • Sebagian permintaan untuk bel pintu pintar sepertinya untuk menangani masalah pengunjung tak dikenal. Bahkan saat pemilik rumah tidak ada, perangkat ini bisa memberi tahu siapa yang ada di depan pintu dan menyembunyikan fakta bahwa rumah sedang kosong
    • Rumah di Inggris sangat kecil, jadi biasanya mengetuk saja sudah cukup
      Bel pintu terasa anakronistis. Hampir tidak ada orang di jalan kami yang memasangnya
    • Apakah Anda sama sekali tidak pernah memesan paket lewat internet? Tidak pernah menerima surat tercatat dari otoritas pajak? Alasan bel pintu pintar menjadi populer terutama karena posisinya mudah dihubungkan ke sumber daya yang sudah ada di luar rumah
    • Bukan karena orang benar-benar ingin membuat bel pintu menjadi “smart”, melainkan karena perkembangan elektronik konsumen membuat pemasangan kamera keamanan/pengawasan di lokasi prioritas tinggi, yaitu pintu masuk, menjadi mudah dengan memanfaatkan daya sekitar 20V yang sudah terpasang kabelnya ke posisi yang sempurna di sebagian besar rumah
  • Berdasarkan ulasan yang saya lihat, kamera bel pintu Reolink tampaknya satu-satunya opsi komersial yang memenuhi kebutuhan penulis. Perangkat ini berjalan secara lokal dan bisa diintegrasikan dengan Home Assistant
    Namun untuk interkom perlu aplikasi terpisah. Solusi rakitan penulis sendiri sepertinya tidak menyediakan komunikasi audio, dan setidaknya dari protokol kamera saja tampaknya tidak ada cara untuk memakai audio dua arah langsung di Home Assistant

    • Bagaimana dengan UniFi Doorbell? Tidak perlu koneksi cloud, tetap lokal, dan bisa diintegrasikan dengan HomeAssistant / Scrypted / Homebridge
    • Amcrest juga membuat produk yang mendukung mode lokal saja dan terintegrasi dengan Home Assistant
  • ESP32 benar-benar terasa seperti lubang kelinci yang sangat dalam. Sudah ada banyak sekali proyek yang memakai ESP32 atau sedang dikembangkan dengannya, dan sekarang ada satu hal lagi yang perlu saya pertimbangkan

    • Anda sedang membuat apa saja?
  • Proyek yang keren. Kamera ESP32 bisa punya kualitas gambar yang cukup buruk. Akan membantu kalau di blog ada foto resolusi penuh yang diambil dari bel pintu itu

  • Proyek yang luar biasa. Senang melihat beragam bel pintu ESP32 yang dibuat para maker
    Akan bagus kalau ada contoh video atau foto. Dulu saya pernah memakai ESP32 Cam, dan meski perangkat itu sendiri mengesankan, secara pribadi kualitasnya belum seperti yang saya inginkan. Tentu saja, penggunaan bel pintu pintar saya lebih dekat ke keamanan daripada sekadar “siapa yang ada di sana”

  • Saat ini saya memakai bel pintu PoE yang cukup mahal dan saya beli dalam kondisi AS-IS untuk menghemat biaya. Produknya dari Axis Communications
    Saya sangat suka kemampuannya untuk menerima event ONVIF. Jika bisa mengonsumsi event, pada dasarnya kita bisa melakukan apa pun yang diinginkan, sehingga fleksibilitas produk seperti ini meningkat. Misalnya, ada cara membuat event kustom untuk kasus seperti ketika seseorang menutup lensa kamera dengan tangan
    Home Assistant memiliki dukungan ONVIF yang sangat baik. Saya ingin membuat semacam wrapper di sekitar skrip (seperti boolean pintu terbuka/tertutup) agar bisa mendapatkan event ONVIF native

  • Salah satu komentar di situs ini menyinggung masalah performa ESP32. Saya belum pernah menangani perangkat IoT atau board seperti ini, tetapi harganya relatif murah jadi saya tertarik mencobanya, dan setelah mencari tahu saya mengetahui bahwa ESP32 diproduksi dengan proses 40nm
    Saya penasaran apakah ada versi terbaru yang diproduksi dengan proses lebih maju dan memberikan performa lebih tinggi dengan anggaran daya serupa

    • Dua core RISC 240MHz sudah cukup bertenaga. 40nm tidak buruk untuk mikrokontroler. Misalnya, seri nRF52 dari Nordic yang menjadi pesaing dibuat dengan proses 55nm
    • Tidak ada yang benar-benar seperti itu. Ada versi chip yang lebih baru, termasuk versi RISC-V dan Zigbee/Thread, tetapi sulit melihat peningkatan dramatis dalam performa/daya. Di segmen pasar ini, batasan performa adalah hal umum, dan itu trade-off yang diterima
      Ada lini SoC lain yang memberi trade-off lebih baik, tetapi tidak banyak yang seramah ESP32 bagi pengembang hobi. Mungkin Nordic, atau beralih ke komputer single-board kecil seperti Pi Zero
      Meski begitu, ESP32 jauh lebih bertenaga daripada yang dibutuhkan sebagian besar perangkat otomasi rumah. Batasnya baru mulai terasa pada beberapa pekerjaan yang lebih berat seperti streaming video atau machine learning. Bahkan saat itu pun, dengan pendekatan cerdas, ia masih bisa melakukan cukup banyak hal