Isi kandungan:
- Langkah 1: Kotak Kawalan Sistem Penggera
- Langkah 2: Mengukur Voltan Zon Penggera
- Langkah 3: Membuat Pembahagi Voltan
- Langkah 4: Wire Up LM339
- Langkah 5: Memasang Wemos D1 Mini
- Langkah 6: Pengujian dan Konfigurasi OpenHAB
Video: Penggera PIR ke WiFi (dan Automasi Rumah): 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Gambaran keseluruhan
Instruksional ini akan memberi anda kemampuan untuk melihat tarikh / waktu terakhir (dan opsional sejarah waktu) ketika PIR House Alarm anda (sensor inframerah pasif) dipicu, dalam perisian automasi rumah anda. Dalam projek ini, saya akan membincangkan cara menggunakan dengan OpenHAB (perisian automasi rumah percuma, yang saya gunakan sendiri) walaupun akan berfungsi dengan perisian atau aplikasi automasi rumah lain yang menyokong MQTT (juga dijelaskan kemudian dalam artikel ini). Petunjuk ini akan memandu anda melalui langkah-langkah yang diperlukan mengenai cara memasang papan litar dan Wemos D1 mini (papan IOT yang menggunakan cip ESP8266) yang memasuki zon penggera di kotak kawalan penggera anda sehingga ketika zon (yang mengandungi satu atau lebih PIR) dipicu, Wemos menghantar mesej tanpa wayar menggunakan protokol MQTT ke perisian automasi rumah anda yang seterusnya, akan menunjukkan tarikh / masa terakhir pencetus itu. Kod Arduino untuk memprogram Wemos juga disediakan.
Pengenalan
Gambar di atas adalah yang saya lihat melalui salah satu skrin pada aplikasi OpenHAB pada iPhone saya. Teks tarikh / masa dikodkan warna untuk memberikan gambaran yang lebih cepat ketika PIR dipicu - ia akan menunjukkan merah (dipicu dalam 1 minit terakhir), oren (dipicu dalam 5 minit terakhir), hijau (dipicu dalam 30 minit terakhir), biru (dicetuskan dalam satu jam terakhir) atau sebaliknya, hitam. Mengklik tarikh / waktu, akan memaparkan pandangan sejarah pemicu PIR, di mana 1 bermaksud dipicu, dan 0 tidak aktif. Terdapat banyak kegunaan untuk ini, misalnya ia dapat melengkapkan penyelesaian kehadiran di rumah anda, ia dapat mengesan pergerakan jika anda pergi dan melalui peraturan OpenHAB, menghantar pemberitahuan ke telefon anda, anda boleh menggunakannya seperti yang saya lakukan untuk melihat apakah anak-anak saya bangun di tengah malam, dicetuskan oleh PIR yang berada di luar bilik tidur mereka!
OpenHAB hanyalah perisian automasi rumah yang saya gunakan, ada banyak yang lain - dan jika mereka menyokong MQTT, maka anda boleh dengan mudah menyesuaikan projek ini agar sesuai dengan perisian yang anda gunakan.
Andaian
Instruksional ini menganggap anda sudah memiliki (atau akan menyiapkan):
- Sudah tentu sistem penggera rumah dengan PIR (sensor inframerah pasif) dan anda mempunyai akses ke kotak kawalan penggera untuk menyambungkan pendawaian yang diperlukan
- OpenHAB (perisian automasi rumah sumber terbuka percuma) berjalan, walaupun seperti yang dibahas, ia harus berfungsi dengan perisian automasi rumah yang dapat menyertakan MQTT. Sebagai pilihan, anda boleh mengubah kod anda sendiri untuk memenuhi keperluan anda sendiri.
- Broker Mosquitto MQTT (atau yang serupa) dipasang dan mengikat yang dikonfigurasi dengan OpenHAB (MQTT adalah protokol jenis langganan / penerbitan pesanan yang ringan dan bagus untuk komunikasi antara peranti)
Sekiranya anda tidak menjalankan OpenHAB dan broker MQTT, lihat artikel hebat ini di laman web MakeUseOf
Apa yang saya perlukan?
Untuk membuat alat kawalan tanpa wayar, anda perlu mendapatkan bahagian berikut:
- Wemos D1 mini V2 (mempunyai built-in CHIP tanpa wayar ESP8266)
- Pembanding LM339 (ini akan melakukan pemeriksaan PIR idle vs dicetuskan)
- Sumber kuasa 5V DC untuk Wemos (ATAU, penukar buck DC-DC. Catatan: pengatur voltan LM7805 mungkin tidak berfungsi untuk aplikasi ini seperti yang dibincangkan kemudian dalam projek ini)
- Dua perintang untuk pembahagi voltan (ukuran akan bergantung pada voltan penggera anda, yang akan dibincangkan kemudian dalam projek)
- Satu perintang ohm 1K untuk bertindak sebagai perintang tarik ke bawah untuk mengawal kuasa LM339
- Satu MOSFET 2N7000 (atau serupa) untuk menghidupkan LM339 secara logik (mungkin pilihan, dibincangkan kemudian dalam projek)
- Papan roti bersaiz sesuai untuk penyediaan dan ujian litar
- Sekumpulan wayar papan roti untuk menghubungkan semuanya bersama-sama
- Alat yang diperlukan: pemotong sisi, wayar teras tunggal
- Multi meter DC (wajib!)
Langkah 1: Kotak Kawalan Sistem Penggera
Mula-mula beberapa amaran dan penafian
Secara peribadi, saya mempunyai sistem penggera Bosch. Saya sangat mengesyorkan anda memuat turun manual yang relevan untuk sistem penggera khusus anda dan membiasakannya sebelum anda memulakan kerana anda perlu mematikan sistem penggera untuk memasang zon. Saya juga mengesyorkan anda membaca artikel ini secara keseluruhan sebelum anda memulakan!
Berikut adalah senarai beberapa perkara yang harus anda ketahui sebelum memulakan - pastikan anda membaca dan memahami setiap perkara sebelum meneruskan! Saya tidak bertanggungjawab sekiranya anda mengacaukan sistem penggera anda dan / atau perlu membayar pemasang anda untuk memperbaikinya. Sekiranya anda membaca dan memahami perkara berikut dan mengambil langkah berjaga-jaga yang sewajarnya, anda harus baik-baik saja:
1. Sistem penggera saya mempunyai bateri sandaran di dalam kotak dan juga sakelar tamper di bahagian dalam penutup (yang menyediakan akses ke papan sistem penggera) sehingga mematikan penggera secara luaran, ketika melepaskan panel depan kawalan kotak itu mencetuskan penggera! Untuk menyelesaikan ini semasa saya mengerjakan projek ini, saya memintas perlindungan tamper dengan mencabut plag dan kemudian memutar arus sesak suis (wayar merah tebal seperti yang ditunjukkan dalam foto di atas)
2. Semasa menghidupkan kembali sistem penggera, setelah kira-kira ~ 12 jam panel kawalan penggera mulai berbunyi dengan kod kesalahan. Setelah menentukan kod kesalahan melalui manual, saya mendapat tahu bahawa saya memberi amaran bahawa:
- Tarikh / masa tidak ditetapkan (saya memerlukan kod induk dan urutan kunci dari manual untuk mengkonfigurasi semula)
- Bahawa bateri sandaran tidak disambungkan (mudah diperbaiki, saya terlupa memasang bateri semula)
3. Dalam penggera saya, terdapat 4 blok sambungan zon x (berlabel Z1-Z4) untuk PIR dipasang di papan penggera utama, bagaimanapun - sistem penggera saya sebenarnya mampu 8 zon. Setiap blok sambungan zon sebenarnya boleh menjalankan 2 zon masing-masing (Z1 tidak Z1 dan Z5, Z2 tidak Z2 dan Z6 dan sebagainya). Sistem penggera mempunyai perlindungan gangguan internal untuk menghentikan seseorang mengatakan, membuka penutup ke sistem penggera seperti yang disebutkan di atas, atau memotong wayar ke PIR. Ia membezakan antara setiap gangguan zon melalui perintang EOL (hujung garisan). Ini adalah perintang berukuran khusus yang berada di "hujung talian" - dengan kata lain, di dalam PIR (atau suis pengatur kotak kawalan, atau kotak siren atau apa sahaja yang disambungkan ke zon itu) Seperti yang disebutkan, perintang ini digunakan sebagai 'tamper perlindungan '- secara teknikal, jika seseorang memotong kabel ke PIR - kerana sistem penggera menjangkakan akan melihat rintangan tertentu dari PIR itu, maka sekiranya rintangan berubah, ia menganggap seseorang telah mengganggu sistem dan akan mencetuskan penggera.
Sebagai contoh:
Pada penggera saya, Zon "Z4" mempunyai 2 wayar di dalamnya, satu pergi ke PIR di lorong saya dan satu lagi ke suis gangguan kotak kawalan penggera. Di dalam lorong PIR, ia mempunyai perintang 3300 ohm. Kawat lain yang berjalan ke suis pengatur kotak kawalan, mempunyai perintang 6800 ohm yang disambungkan secara bersiri. Ini adalah bagaimana sistem penggera (secara logik) membezakan antara tampers "Z4" dan "Z8". Begitu juga, zon "Z3" mempunyai PIR (dengan perintang 3300 ohm di dalamnya) dan juga suis tamper siren (dengan perintang 6800 ohm di dalamnya) yang membentuk "Z7". Pemasang penggera telah membuat pra-konfigurasi sistem penggera sehingga ia tahu peranti apa yang disambungkan ke setiap zon (dan mengubah ukuran perintang EOL agar sesuai, kerana sistem penggera diprogramkan untuk mengetahui ukuran perintang EOL yang berbeza. anda tidak boleh mengubah nilai perintang ini!)
Jadi berdasarkan perkara di atas, kerana setiap zon mungkin mempunyai beberapa peranti yang terpasang juga (dengan nilai rintangan yang berbeza), dan mengingat formula V = IR (voltan = amp x rintangan) maka itu juga mungkin bermaksud setiap zon mungkin mempunyai voltan yang berbeza. Yang membawa kita ke langkah seterusnya, mengukur setiap zon voltan IDLE vs TRIGGERED…
Langkah 2: Mengukur Voltan Zon Penggera
Setelah anda mendapat akses ke papan utama pada sistem penggera anda (dan melewati suis tamper jika anda mempunyai satu; seperti pada langkah sebelumnya) hidupkan semula sistem penggera anda. Kita sekarang perlu mengukur voltan setiap zon ketika IDLE-nya (tidak ada pergerakan di depan PIR) vs TRIGGERED (PIR telah mengesan pergerakan) Ambil pen dan kertas supaya anda dapat menuliskan bacaan voltan anda.
PERINGATAN: Sebahagian besar sistem penggera anda kemungkinan besar berjalan pada 12V DC, namun ia akan mempunyai suapan kuasa awal pada 220V (atau 110V) AC, dengan transformer menukar kuasa dari AC ke DC. BACA manual dan berhati-hati dengan memastikan anda TIDAK mengukur sebarang terminal AC !!! Mengikut tangkapan skrin sistem penggera saya di halaman ini, anda dapat melihat bahawa bahagian bawah gambar adalah kuasa AC, berubah menjadi 12V DC. Kami mengukur DC 12V di kotak merah yang diserlahkan. Jangan sesekali menyentuh kuasa AC. Berhati-hati!
Mengukur Voltan PIR
Saya mempunyai 4 x PIR yang disambungkan ke Z1 hingga ke Z4. Ukur setiap zon anda seperti berikut.
- Pertama, kenal pasti terminal GND dan terminal zon pada panel penggera. Saya telah mengetengahkannya dalam gambar yang ditunjukkan dari manual penggera Bosch saya.
- Ambil multimeter anda dan tetapkan pengukuran voltan anda ke 20V DC. Sambungkan kabel hitam (COM) dari multimeter anda ke terminal GND pada penggera. Letakkan plumbum merah (+) dari multimeter anda pada zon pertama - dalam kes saya berlabel "Z1". Tuliskan bacaan voltan. Lakukan langkah yang sama untuk zon yang tinggal. Pengukuran voltan saya adalah seperti berikut:
- Z1 = 6.65V
- Z2 = 6.65V
- Z3 = 7.92V
- Z4 = 7.92V
Seperti di atas, dua zon pertama saya hanya mempunyai PIR. Kedua-dua zon terakhir mempunyai kedua-dua PIR dan perlindungan tamper yang disambungkan ke dalamnya (peredam kotak kawalan Z3, gangguan siren Z4) Perhatikan perbezaan voltan.
3. Anda mungkin memerlukan 2 orang untuk langkah seterusnya. Anda juga perlu mengetahui PIR mana yang berada di zon mana. Kembali dan baca voltan pada zon pertama. Sekarang minta seseorang di rumah anda berjalan di hadapan PIR, voltan akan turun. Perhatikan bacaan voltan baru. Dalam kes saya, voltan dibaca seperti berikut apabila PIR dipicu:
- Z1 = 0V
- Z2 = 0V
- Z3 = 4.30V
- Z4 = 4.30V
Seperti di atas, saya dapat melihat bahawa apabila zon 1 dan 2 dicetuskan, voltan turun dari 6.65V ke 0V. Tetapi apabila zon 3 dan 4 dicetuskan, voltan turun dari 7.92V hingga 4.30V.
Mengukur bekalan kuasa 12V
Kami akan menggunakan terminal DC 12V dari kotak kawalan penggera untuk menghidupkan projek kami. Kita perlu mengukur voltan dari 12V DC feed pada penggera. Walaupun sudah menyatakan 12V, kita perlu mengetahui bacaan yang lebih tepat. Dalam kes saya, ia sebenarnya berbunyi 13.15V. Tuliskan ini, anda memerlukan nilai ini pada langkah seterusnya.
Mengapa kita mengukur voltan?
Sebab mengapa kita perlu mengukur voltan untuk setiap PIR adalah kerana litar yang akan kita buat. Kami akan menggunakan cip pembanding pembezaan quad LM339 (atau pembanding quad op-amp) sebagai komponen elektrik teras untuk projek ini. LM339 mempunyai 4 pembanding voltan bebas (4 saluran) di mana setiap saluran mengambil 2 x voltan input (satu input terbalik (-) dan satu input tidak terbalik (+), lihat rajah) Sekiranya voltan voltan masukan penyongsang harus turun lebih rendah daripada voltan bukan pembalik, maka output yang berkaitan akan ditarik ke tanah. Begitu juga, jika voltan input bukan pembalik turun lebih rendah daripada input pembalik, maka output ditarik hingga Vcc. Dengan senang hati, di rumah saya mempunyai 4 x alarm / PIR penggera - oleh itu setiap zon akan disambungkan ke setiap saluran pada pembanding. Sekiranya anda mempunyai lebih daripada 4 x PIR, anda memerlukan pembanding dengan lebih banyak saluran, atau LM339 yang lain!
Catatan: LM339 menggunakan tenaga dalam nano-amp, jadi tidak akan mempengaruhi ketahanan EOL sistem penggera yang ada.
Sekiranya ini membingungkan, lanjutkan ke langkah seterusnya pula, ia akan menjadi lebih masuk akal setelah kami memasangnya!
Langkah 3: Membuat Pembahagi Voltan
Apakah pembahagi voltan?
Pembahagi voltan adalah litar dengan 2 x perintang (atau lebih) secara bersiri. Kami memberikan voltan di (Vin) ke perintang pertama (R1) Kaki lain R1 menghubungkan ke kaki pertama perintang kedua (R2), dan hujung R2 yang lain menghubungkan ke GND. Kami kemudian mengambil voltan keluaran (Vout) dari sambungan antara R1 dan R2. Voltan tersebut akan menjadi voltan rujukan kita untuk LM339. Untuk maklumat lebih lanjut mengenai cara pembahagi voltan berfungsi, lihat video youtube Adohms
(Catatan: perintang tidak mempunyai kekutuban, jadi mereka boleh disambungkan dengan kabel)
Mengira voltan rujukan kami
Dengan andaian bahawa voltan menurun ketika PIR anda dicetuskan (ini seharusnya berlaku untuk kebanyakan penggera) maka yang ingin kita capai adalah dengan mendapatkan bacaan voltan yang berada di tengah-tengah antara voltan terbiar terendah kita dan voltan terpicu tertinggi kita, ini akan menjadi voltan rujukan kita.
Mengambil penggera saya sebagai contoh …
Voltan idle zon ialah Z1 = 6.65V, Z2 = 6.65V, Z3 = 7.92V, Z4 = 7.92V. Oleh itu, voltan terbiar paling rendah ialah 6.65V
Voltan yang dicetuskan zon adalah: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. Oleh itu, voltan terpicu tertinggi ialah 4.30V
Oleh itu, kita perlu memilih nombor di antara 4.30V dan 6.65V (tidak semestinya tepat, kira-kira) Dalam kes saya, voltan rujukan saya mestilah sekitar 5.46V. Catatan: Sekiranya voltan terbiar terendah dan terpicu paling tinggi saling berdekatan kerana banyak zon menyebabkan julat voltan yang berbeza, anda mungkin perlu membuat 2 atau lebih pembahagi voltan.
Mengira nilai perintang kita untuk pembahagi voltan
Sekarang kita mempunyai voltan rujukan, kita perlu mengira ukuran perintang yang kita perlukan untuk membuat pembahagi voltan yang akan memberikan voltan rujukan kita. Kami akan menggunakan sumber voltan DC 12V (Vs) dari penggera. Namun, seperti pada langkah sebelumnya ketika kita mengukur suapan 12V DC, kita benar-benar mendapat 13.15V. Kita perlu mengira pembahagi voltan menggunakan nilai ini sebagai sumbernya.
Kira Vout menggunakan undang-undang ohms…
Vout = Vs x R2 / (R1 + R2)
… atau gunakan kalkulator pembahagi voltan dalam talian:-)
Anda perlu bereksperimen dengan nilai perintang sehingga anda mencapai output yang diinginkan. Dalam kes saya, ia berfungsi dengan R1 = 6.8k ohm dan R2 = 4.7K ohm, dikira dalam bentuk panjang seperti berikut:
Vout = Vs x R2 / (R1 + R2)
Vout = 13.15 x 4700 / (6800 + 4700)
Vout = 61, 805/11, 500
Vout = 5.37V
Langkah 4: Wire Up LM339
Pembahagi voltan ke input terbalik LM339
Seperti yang telah dibincangkan sebelumnya mengenai pembanding LM339, ia akan mengambil 2 x input. Satu akan menjadi voltan dari setiap PIR ke setiap saluran saluran non-pembalik (+), yang lain akan menjadi voltan rujukan kami ke terminal pembalik (-) kami. Voltan rujukan perlu memberi makan keempat-empat input pembalik pembanding. Matikan sistem penggera anda sebelum melakukan langkah-langkah ini.
- Jalankan wayar dari blok DC 12V pada sistem penggera ke rel + di papan roti anda *
- Jalankan wayar dari blok GND pada sistem penggera ke - rel di papan roti anda **
- Pasang pembanding LM339 di tengah papan roti (takuk menunjukkan yang paling dekat dengan pin 1)
- Pasang perintang 2 x untuk membuat litar pembahagi voltan dan wayar untuk voltan terbahagi keluar
- Jalankan wayar dari 'voltan terbahagi' Vout ke setiap terminal pembalik LM339
* PETUA: gunakan klip buaya untuk kekuatan jika mungkin, kerana ini menjadikannya lebih mudah untuk memberi kuasa ON / OFF ke projek anda ** PENTING! MOSFET mungkin diperlukan JIKA anda menghidupkan Wemos dari panel Penggera! Dalam kes saya, LM339, Wemos dan Alarm semuanya menerima kuasa dari sumber yang sama (iaitu: sistem penggera itu sendiri) Ini membolehkan saya menghidupkan kuasa ke segalanya dengan satu sambungan kuasa. Namun, secara lalai pin GPIO di Wemos ditakrifkan sebagai pin "INPUT" - bermaksud mereka mengambil voltan apa pun yang dilemparkan ke arah mereka dan bergantung pada sumber tersebut untuk memberikan tahap voltan yang betul (tahap min / maksimum) sehingga Wemos menang ' t crash atau terbakar. Dalam kes saya, sistem penggera mendapat kuasa dan mula melakukan urutan boot up dengan sangat pantas - begitu cepat, sehingga ia melakukan ini sebelum Wemos dapat boot dan menyatakan pin GPIO sebagai "INPUT_PULLUP" (voltan ditarik secara dalaman di dalam cip). Ini tidak bermaksud bahawa perbezaan voltan akan menyebabkan Wemos mogok ketika seluruh sistem mendapat kuasa. Satu-satunya jalan di sekitarnya adalah mematikan dan mematikan Wemos secara manual. Untuk menyelesaikannya, MOSFET ditambahkan dan bertindak sebagai "logik suis" untuk menghidupkan LM339. Ini membolehkan Wemos melakukan boot, menetapkan pin GPIO pembanding 4 x sebagai "INPUT_PULLUP's", menunda beberapa saat dan KEMUDIAN (melalui pin GPIO lain D5 yang ditakrifkan sebagai OUTPUT) menghantar isyarat "TINGGI" melalui GPIO pin D5 ke MOSFET, yang secara logik menghidupkan LM339. Saya akan mengesyorkan pemasangan kabel seperti di atas, tetapi JIKA anda mendapati bahawa Wemos crash seperti yang saya lakukan, maka anda perlu memasukkan MOSFET dengan perintang tarik 1k ohm. Untuk maklumat lebih lanjut mengenai cara melakukan ini, lihat akhir arahan ini.
Zon penggera ke input LM339 bukan pembalik
Kita sekarang perlu menjalankan wayar dari setiap zon pada panel kawalan penggera ke input pembanding LM339. Dengan sistem penggera masih dimatikan, untuk setiap zon menyalurkan wayar ke setiap input bukan pembalik (+) pada pembanding LM339. Contohnya, dalam sistem saya:
- Kawat dari Z1 menuju ke input LM339 1+
- Kawat dari Z2 menuju ke input LM339 2+
- Kawat dari Z3 menuju ke input LM339 3+
- Kawat dari Z4 menuju ke input LM339 4+
Lihat pin-out LM339 di bawah langkah 3 jika anda mengingatkan (ia berwarna dengan gambar papan roti). Setelah selesai, papan roti anda akan kelihatan serupa dengan gambar yang ditunjukkan dalam langkah ini.
Hidupkan sistem penggera dan ukur voltan yang keluar dari pembahagi voltan untuk memastikan ia sama dengan voltan rujukan anda seperti yang dikira sebelumnya.
Langkah 5: Memasang Wemos D1 Mini
Pendawaian mini Wemos D1
Sekarang kita telah mengurus semua input LM339, kita sekarang perlu memasukkan Wemos D1 mini. Setiap pin output LM339 menuju ke pin Wemos GPIO (input / output tujuan umum) yang akan kami tetapkan melalui kod sebagai pin penarik input. Wemos mengambil maksimum 5V sebagai voltan (sumber input) Vcc (walaupun mengaturnya secara dalaman hingga 3.3V) Kami akan menggunakan pengatur voltan LM7805 yang sangat umum (EDIT: lihat di bawah) untuk menjatuhkan rel 12V di papan roti ke 5V untuk memberi kuasa kepada Wemos. Lembar data untuk LM7805 menunjukkan kita memerlukan kapasitor yang disambungkan pada setiap sisi pengatur untuk melancarkan daya, seperti yang ditunjukkan pada gambar papan roti. Kaki kapasitor yang lebih panjang positif (+) jadi pastikan ini disambungkan dengan cara yang betul.
Pengatur voltan mengambil voltan masuk (pin sisi kiri), ground (pin tengah) dan voltan keluar (pin sisi kanan) Periksa semula pin-out jika pengatur voltan anda berbeza dari LM7805.
(EDIT: Saya mendapati amp yang datang dari panel penggera terlalu tinggi untuk dikendalikan oleh LM7805. Ini menyebabkan banyak haba di sink haba kecil LM7805 dan menyebabkannya gagal, dan seterusnya menyebabkan Wemos berhenti berfungsi. Saya menggantikan LM7805 dan kapasitor dengan penukar buck DC-DC dan tidak mempunyai masalah sejak itu. Ini sangat mudah untuk disambungkan. Cukup sambungkan voltan input dari Penggera, sambungkan ke multimeter terlebih dahulu dan gunakan skru potensiometer dan sesuaikan sehingga voltan keluaran ~ 5V)
Pin input GPIO
Untuk projek ini, kami menggunakan pin berikut:
- zon Z1 => pin D1
- zon Z2 => pin D2
- zon Z3 => pin D3
- zon Z4 => pin D5
Kabelkan output dari LM339, ke pin GPIO yang berkaitan pada papan Wemos, seperti gambar papan roti yang ditunjukkan dalam langkah ini. Sekali lagi, saya mempunyai warna yang diberi input dan output yang sepadan, untuk mempermudah untuk melihat apa yang merujuk kepada apa. Setiap pin GPIO di Arduino didefinisikan sebagai 'INPUT_PULLUP', yang bermaksud mereka akan ditarik hingga 3.3V dalam penggunaan normal (IDLE) dan LM339 akan menariknya ke bawah jika PIR dipicu. Kod tersebut mengesan perubahan HIGH to LOW, dan menghantar mesej secara wayarles ke perisian automasi rumah anda. Sekiranya anda menghadapi masalah dengan cara ini, mungkin anda mempunyai input terbalik dan bukan pembalik dengan cara yang salah (jika voltan dari PIR anda naik tinggi ketika dicetuskan, seperti yang berlaku dengan kebanyakan PIR hobi, maka anda akan menginginkan sambungan yang sebaliknya)
Arduino IDE
Keluarkan Wemos dari papan roti, kita sekarang perlu memuat naik kod padanya (pautan gantian di sini) Saya tidak akan menjelaskan secara terperinci mengenai cara melakukannya, kerana terdapat banyak artikel di web mengenai memuat naik kod ke Wemos atau ESP8266 lain papan jenis. Pasangkan kabel USB anda ke papan Wemos dan ke PC anda dan nyalakan Arduino IDE. Muat turun kod dan buka di projek anda. Anda perlu memastikan papan yang betul dipasang dan dimuat untuk projek anda serta port COM yang betul dipilih (Alat, Port). Anda juga memerlukan perpustakaan yang sesuai dipasang (PubSubClient, ESP8266Wifi) Untuk memasukkan papan Wemos dalam lakaran anda, lihat artikel ini.
Anda perlu mengubah baris kod berikut, dan mengganti dengan SSID dan kata laluan anda sendiri untuk sambungan tanpa wayar anda. Juga, ubah alamat IP untuk menunjukkan kepada broker MQTT anda sendiri.
// Wifi
const char * ssid = "your_wifi_ssid_here"; const char * kata laluan = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (172, 16, 223, 254)
Setelah diubah, sahkan kod anda kemudian muat naik ke papan Wemos melalui kabel USB.
Catatan:
- Sekiranya anda menggunakan port GPIO yang berbeza, anda perlu menyesuaikan kodnya. Sekiranya anda menggunakan lebih banyak atau lebih sedikit zon daripada yang saya ada, anda juga perlu menyesuaikan kod dan TOTAL_ZONES = 4; berterusan untuk sesuai.
- Di bawah sistem penggera saya yang dimulakan, sistem penggera akan melakukan ujian kuasa ke semua 4 x PIR yang menarik semua GPIO yang dihubungkan ke tanah, menyebabkan Wemos berfikir bahawa zon sedang dipicu. Kod tersebut akan mengabaikan penghantaran mesej MQTT jika melihat semua zon 4 x aktif pada masa yang sama, kerana menganggap sistem penggera dihidupkan.
Pautan muat turun alternatif ke kod DI SINI
Langkah 6: Pengujian dan Konfigurasi OpenHAB
Ujian MQTT
MQTT adalah sistem pesanan "langganan / terbitkan". Satu atau lebih peranti boleh bercakap dengan "broker MQTT" dan "melanggan" topik tertentu. Sebarang mesej masuk dari peranti lain yang "diterbitkan" untuk topik yang sama, akan dihantar oleh broker ke semua peranti yang telah melanggannya. Ini adalah protokol yang sangat ringan dan mudah digunakan dan sempurna sebagai sistem pencetus mudah seperti yang ada di sini. Untuk ujian, anda dapat melihat mesej MQTT masuk dari Wemos ke broker MQTT anda dengan menjalankan perintah berikut pada pelayan Mosquitto anda (Mosquitto adalah salah satu daripada banyak perisian MQTT Broker yang tersedia). Perintah ini melanggani mesej tetap yang masuk:
mosquitto_sub -v -t openhab / alarm / status
Anda mesti melihat mesej masuk dari Wemos setiap 30 saat atau lebih dengan nombor "1" (bermaksud "Saya masih hidup") Sekiranya anda melihat "0" yang berterusan (atau tidak ada tindak balas) maka tidak ada komunikasi. Sebaik sahaja anda melihat nombor 1 masuk, maka itu bermaksud Wemos berkomunikasi dengan broker MQTT (cari "Wasiat dan Perjanjian Terakhir MQTT" untuk maklumat lebih lanjut mengenai cara kerjanya, atau lihat entri blog yang sangat baik ini)
Setelah anda membuktikan komunikasi berfungsi, kita dapat menguji bahawa keadaan zon dilaporkan melalui MQTT. Langgan topik berikut (# adalah wildcard)
mosquitto_sub -v -t openhab / alarm / #
Mesej status biasa harus masuk, begitu juga alamat IP Wemos itu sendiri. Berjalan di hadapan PIR, dan anda juga harus melihat maklumat zon yang menunjukkan bahawa ia DIBUKA, kemudian sesaat kemudian, bahawa TUTUP, serupa dengan yang berikut:
openhab / penggera / status 1
openhab / alarm / zone1 DIBUKA
openhab / alarm / zon1 TUTUP
Setelah ini berfungsi, kita dapat mengkonfigurasi OpenHAB agar dapat digambarkan dengan baik di GUI.
Konfigurasi OpenHAB
Perubahan berikut diperlukan untuk OpenHAB:
fail transform 'alarm.map': (pilihan, untuk ujian)
DITUTUP = IdleOPEN = DipicuNULL = Tidak diketahui- = Tidak diketahui
fail status 'status.map':
0 = Gagal
1 = Dalam Talian - = TURUN! NULL = tidak diketahui
fail 'item':
String alarmMonitorState "Alarm Monitor [MAP (status.map):% s]" {mqtt = "<[mqttbroker: openhab / alarm / status: state: default]"} String alarmMonitorIPAddress "Alarm Monitor IP [% s]" {mqtt = "<[mqttbroker: openhab / alarm / ipaddress: state: default]"} Number zone1_Chart_Period "Chart 1 Chart" Contact alarmZone1State "Zon 1 State [MAP (alarm.map):% s]" {mqtt = "<[mqttbroker: openhab / alarm / zone1: state: default "} String alarmZone1Trigger" Lounge PIR [% 1 $ ta% 1 $ tr] "Number zone2_Chart_Period" Chart 2 Chart "Contact alarmZone2State" Zon 2 State [PETA (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab / alarm / zone2: state: default "} String alarmZone2Trigger" First Hall PIR [% 1 $ ta% 1 $ tr] "Number zone3_Chart_Period" Chart 3 Chart "Contact alarmZone3State" Zone 3 Nyatakan [PETA (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab / alarm / zone3: state: default "} String alarmZone3Trigger" PIR Bilik Tidur [% 1 $ ta% 1 $ tr] "Nombor zone4_Chart_Period "Chart Zon 4" Contact alarmZone4State "Zon 4 State [MAP (alarm.map):% s]" {mqtt = "<[mqttbroker: openha b / alarm / zone4: state: default "} String alarmZone4Trigger" Main Hall PIR [% 1 $ ta% 1 $ tr]"
fail 'sitemap' (termasuk grafik rrd4j):
Item teks = alarmZone1Trigger valuecolor = [<= 60 = "# ff0000", <= 300 = "# ffa500", <= 600 = "# 008000", 3600 = "# 000000"] {Bingkai {Tukar item = zon1_Chart_Period label = Pemetaan "Period" = [0 = "Jam", 1 = "Hari", 2 = "Minggu"] Url gambar = "https:// localhost: 8080 / rrdchart.png" jarak pandang = [zone1_Chart_Period == 0, zone1_Chart_Period = = Tidak dimulakan] Url gambar = "https:// localhost: 8080 / rrdchart.png" visibility = [zone1_Chart_Period == 1] Url gambar = "https:// localhost: 8080 / rrdchart.png" visibility = [zone1_Chart_Period == 2]}} Item teks = alarmZone2Trigger valuecolor = [<= 60 = "# ff0000", <= 300 = "# ffa500", <= 600 = "# 008000", 3600 = "# 000000"] {Bingkai {Tukar item = zon2_Chart_Period label = "Period" pemetaan = [0 = "Jam", 1 = "Hari", 2 = "Minggu"] Url gambar = "https:// localhost: 8080 / rrdchart.png" keterlihatan = [zone2_Chart_Period == 0, zone2_Chart_Period == Uninitialized] Imej url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone2_Chart_Period == 1] Url gambar = "https:// localhost: 8080 / rrdchart.png" keterlihatan = [zon2_Chart_Period == 2]}} Item teks = alarmZone3Trigger valuecolor = [<= 60 = "# ff0000", <= 300 = "# ffa500", <= 600 = "# 008000", 3600 = "# 000000"] {Bingkai {Tukar item = zon3_Chart_Period label = pemetaan "Period" = [0 = "Jam", 1 = "Hari", 2 = "Minggu"] Url gambar = "https:// localhost: 8080 / rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Tidak Diinisialisasi] Imej url = "https:// localhost: 8080 / rrdchart.png" keterlihatan = [zone3_Chart_Period == 1] Imej url = "https:// localhost: 8080 / rrdchart.png" keterlihatan = [zone3_Chart_Period == 2]}} Teks item = alarmZone4Trigger valuecolor = [<= 60 = "# ff0000", <= 300 = "# ffa500", <= 600 = "# 008000", 3600 = "# 000000"] {Bingkai {Tukar item = zon4_Chart_Period label = " Tempoh "pemetaan = [0 =" Jam ", 1 =" Hari ", 2 =" Minggu "] Url gambar =" https:// localhost: 8080 / rrdchart.png "keterlihatan = [zone4_Chart_Period == 0, zone4_Chart_Period == Uninitialized] Url gambar = "https:// localhost: 8080 / rrdchart.png" visibility = [zone4_Chart_Period == 1] Url gambar = "https:// localhost: 8080 / rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // PILIHAN tetapi berguna untuk mendiagnosis status dan alamat IP Item teks ss = alarmMonitorState Item teks = alarmMonitorIPAddress
fail 'peraturan':
peraturan "Perubahan keadaan Zon 1 Penggera"
apabila Item alarmZone1State diubah menjadi OPEN kemudian postUpdate (alarmZone1Trigger, DateTimeType baru ()) alarmZone1State.state = TUTUP ditutup
peraturan "Perubahan keadaan Zon 2 Penggera"
apabila Item alarmZone2State diubah menjadi OPEN kemudian postUpdate (alarmZone2Trigger, DateTimeType baru ()) alarmZone2State.state = TUTUP akhir
peraturan "Perubahan keadaan Zon 3 penggera"
apabila Item alarmZone3State diubah menjadi OPEN kemudian postUpdate (alarmZone3Trigger, DateTimeType baru ()) alarmZone3State.state = TUTUP ditutup
peraturan "Perubahan keadaan Zon 4 penggera"
apabila Item alarmZone4State diubah menjadi BUKA kemudian postUpdate (alarmZone4Trigger, DateTimeType baru ()) alarmZone4State.state = TUTUP akhir
Anda mungkin perlu mengubah sedikit konfigurasi OpenHAB di atas agar sesuai dengan persediaan anda sendiri.
Sekiranya anda mempunyai masalah dengan PIR dicetuskan, mulailah dari awal, dan ukur voltan untuk setiap bahagian litar. Setelah anda berpuas hati, periksa pendawaian anda, pastikan ada persamaan, periksa mesej di Wemos melalui konsol debug bersiri, periksa komunikasi MQTT dan periksa sintaks fail transformasi, item dan peta laman anda.
Semoga berjaya!
Disyorkan:
Sistem Penggera Pencerobohan Automasi Rumah DIY !: 5 Langkah (dengan Gambar)
Sistem Penggera Pengganggu Rumah Automatik DIY: Dalam projek ini saya akan menunjukkan kepada anda bagaimana menggunakan perisian Pembantu Rumah untuk membuat sistem penggera penyusup untuk rumah anda. Sistem pada dasarnya akan mengesan jika pintu dibuka tanpa izin dan kemudian akan menghantar notifikasi
Suis Lampu WiFi Automasi Rumah Dengan ESP-01 dan Modul Relay Dengan Butang Tekan: 7 Langkah
Suis Lampu WiFi Automasi Rumah Dengan ESP-01 dan Modul Relay Dengan Tombol Tekan: Oleh itu, dalam arahan sebelumnya kami memprogramkan ESP-01 dengan Tasmota menggunakan ESP Flasher dan menghubungkan ESP-01 ke rangkaian wifi kami. Sekarang kita boleh mula memprogramnya untuk menghidupkan / mematikan suis lampu menggunakan WiFi atau butang tekan. Untuk masalah elektrik
Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay - Idea Automasi Rumah: 15 Langkah (dengan Gambar)
Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay | Idea Automasi Rumah: Dalam projek automasi rumah ini, kami akan merancang modul relai rumah pintar yang dapat mengawal 5 peralatan rumah. Modul relay ini dapat dikendalikan dari telefon bimbit atau telefon pintar, jauh IR atau TV jauh, suis manual. Relay pintar ini juga dapat merasakan
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: Dalam arahan ini saya menunjukkan 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 doo
Automasi Rumah: Bunyikan Penggera dan Paparan di LCD Apabila Suhu Melebihi Nilai Ambang: 5 Langkah
Automasi Rumah: Bunyikan Penggera dan Paparan di LCD Apabila Suhu Melebihi Nilai Ambang: Blog ini akan menunjukkan cara membuat Sistem Automasi Rumah yang akan mula membunyikan penggera setiap kali suhu mencapai lebih dari nilai ambang yang diprogramkan. Ia akan terus memaparkan suhu bilik semasa di LCD dan keperluan aksi