Isi kandungan:

Penggera Air IoT: 5 Langkah (dengan Gambar)
Penggera Air IoT: 5 Langkah (dengan Gambar)

Video: Penggera Air IoT: 5 Langkah (dengan Gambar)

Video: Penggera Air IoT: 5 Langkah (dengan Gambar)
Video: Mesin penggerak Honda GX 200 Asli Dan KW diamana Bedanya? 2024, Julai
Anonim
Penggera Air IoT
Penggera Air IoT

Saya baru-baru ini mengalami sandaran saliran dapur. Sekiranya saya tidak berada di rumah pada masa itu, ia akan menyebabkan kerosakan lantai dan drywall di apartmen saya. Nasib baik, saya menyedari masalah itu dan bersedia mengambil air dengan baldi. Ini membuat saya berfikir untuk membeli penggera banjir. Saya menemui banyak produk yang berpatutan di Amazon, tetapi produk yang mempunyai sambungan internet mempunyai peratusan ulasan negatif yang besar, terutamanya kerana masalah dengan perkhidmatan pemberitahuan hak milik. Itulah sebabnya saya memutuskan untuk membuat penggera air IoT saya sendiri yang akan menggunakan kaedah pemberitahuan pilihan saya yang boleh dipercayai.

Langkah 1: Prinsip Operasi

Prinsip operasi
Prinsip operasi

Penggera mempunyai mikrokontroler AVR ATtiny85 sebagai otaknya. Ia memerlukan bacaan voltan dari bateri dan sensor air dan membandingkannya dengan nilai yang telah ditentukan untuk mengesan kehadiran air atau keadaan bateri rendah.

Sensor air hanya dua wayar yang terletak kira-kira 1 mm. Salah satu wayar disambungkan ke 3.3 V, dan yang lain disambungkan ke pin pengesan pada mikrokontroler, yang juga disambungkan ke tanah melalui perintang 0.5 MOhm. Biasanya, rintangan antara wayar sensor sangat tinggi (lebih dari 10 MOhm), jadi pin penginderaan ditarik hingga 0 V. Namun, apabila terdapat air di antara wayar, rintangan turun menjadi kurang dari 1 MOhm, dan pin pengesan melihat beberapa voltan (dalam kes saya kira-kira 1.5 V). Apabila ATtiny85 mengesan voltan ini pada pin penginderaan, ia mengaktifkan MOSFET untuk menghidupkan buzzer, dan mengirimkan isyarat bangun ke modul ESP8266 yang bertanggungjawab untuk menghantar amaran (pemberitahuan e-mel dan push). Setelah berdengung selama satu minit, penggera dilucutkan senjata, dan dapat diset semula hanya dengan power cycle.

Unit ini mengandungi dua sel alkali atau NiMH. Pengawal mikro sering tertidur untuk menjimatkan bateri, bangun sebentar untuk memeriksa sensor air dan juga voltan bateri. Sekiranya bateri rendah, pengawal mikro menghidupkan modul ESP8266 untuk menghantar amaran bateri rendah. Selepas amaran, penggera dilucutkan senjata untuk mengelakkan bateri habis.

Oleh kerana modul ESP8266 bertanggungjawab untuk menghantar amaran bateri rendah dan juga amaran banjir, ia memerlukan isyarat kawalan dari ATiny85. Kerana bilangan pin yang terhad, isyarat kawalan ini dihasilkan oleh pin yang sama yang bertanggungjawab untuk petunjuk LED bateri. Semasa operasi normal (penggera bersenjata dan bateri diisi), LED berkelip sekejap-sekejap. Apabila keadaan bateri rendah dikesan, LED menyala untuk memberi isyarat tinggi ke pin RX modul ESP. Sekiranya air dikesan, LED bateri akan mati semasa ESP8266 terjaga..

Langkah 2: Reka Bentuk dan Pemasangan

Reka Bentuk dan Pemasangan
Reka Bentuk dan Pemasangan
Reka Bentuk dan Pemasangan
Reka Bentuk dan Pemasangan
Reka Bentuk dan Pemasangan
Reka Bentuk dan Pemasangan

Saya merancang litar untuk dibina di atas protoboard 4x6 cm dua sisi menggunakan sebahagian besar 0805 bahagian SMD. Skema yang dibentangkan berdasarkan struktur ini, tetapi dapat disesuaikan dengan mudah untuk komponen lubang melalui (tip: untuk meminimumkan ruang, solder melalui lubang perintang secara menegak).

Bahagian berikut diperlukan:

- Perintang: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Satu kapasitor seramik 10 µF - Satu MOSFET saluran N peringkat logik (contohnya RFP30N06LE atau AO3400) - Satu LED merah dan satu kuning (atau warna lain jika anda suka). - Penyambung terminal skru dua wayar x 3 (tidak semestinya perlu, tetapi ia menjadikannya lebih mudah untuk menyambung dan memutuskan pinggiran semasa ujian) - Buzzer piezo yang kuat untuk 3.3 V- Pengawal mikro ATtiny85 (versi PDIP) - Soket PDIP 8-pin untuk mikrokontroler- Modul ESP-01 (ia boleh diganti dengan modul berasaskan ESP8266 yang lain, tetapi akan terdapat banyak perubahan dalam susun atur dalam hal itu) - Penukar dorongan DC-DC 3.3 V yang mampu menyampaikan arus 200 mA (500 mA pecah) pada 2.2 V input. (Saya cadangkan https://www.canton-electronics.com/power-converter… kerana arus sepi yang sangat rendah) - Satu header wanita 3 pin- Dua header wanita 4-pin atau satu header 2x4- wayar padat 22 AWG untuk sensor air - wayar terdampar 22 AWG (atau jenis wayar terdedah nipis lain untuk membuat jejak)

Saya mengesyorkan nilai perintang yang disenaraikan di atas, tetapi anda boleh menggantikan kebanyakannya dengan nilai yang serupa. Bergantung pada jenis LED yang ingin anda gunakan, anda mungkin perlu menyesuaikan nilai perintang yang mengehadkan arus untuk mendapatkan kecerahan yang diinginkan. MOSFET boleh melalui lubang atau SMT (SOT23). Hanya orientasi perintang 330 Ohm yang dipengaruhi oleh jenis MOSFET. Sekering PTC (mis. Dinilai untuk 1 A) disyorkan jika anda merancang untuk menggunakan litar ini dengan bateri NiMH. Walau bagaimanapun, ia tidak diperlukan dengan bateri alkali. Petua: bahagian yang diperlukan untuk penggera ini boleh dibeli dengan murah dari ebay atau aliexpress.

Sebagai tambahan, anda memerlukan papan roti, beberapa perintang 10k lubang, kabel jumper lelaki-lelaki dan wanita-lelaki ("dupont") dan penyesuai USB-UART untuk memprogram modul ESP-01.

Sensor air boleh dibuat dengan pelbagai cara, tetapi yang paling mudah ialah dua wayar 22 AWG dengan hujung yang terdedah (panjang 1 cm) yang jaraknya kira-kira 1 mm. Tujuannya adalah untuk mempunyai rintangan kurang dari 5 MΩ antara kenalan sensor ketika air ada.

Litar ini direka untuk ekonomi bateri maksimum. Ini hanya menarik 40-60 µA dalam rejim pemantauan (dengan LED kuasa dikeluarkan pada modul ESP-01). Setelah penggera dipicu, litar akan menarik 300-500 mA (pada input 2.4 V) untuk sesaat atau kurang, dan selepas itu arus akan turun di bawah 180 mA. Setelah modul ESP selesai menghantar pemberitahuan, penggunaan semasa akan turun ke bawah 70 mA sehingga buzzer dimatikan. Kemudian penggera akan melucutkan senjata, dan penggunaan semasa berada di bawah 30 µA. Oleh itu, satu set bateri AA dapat menghidupkan litar selama berbulan-bulan (mungkin lebih dari satu tahun). Sekiranya anda menggunakan penukar rangsangan yang berbeza, katakan dengan arus tenang 500 µA, bateri perlu diganti lebih kerap.

Petua pemasangan:

Gunakan penanda tetap untuk melabel semua jejak dan komponen pada protoboard untuk pematerian lebih mudah. Saya cadangkan untuk meneruskan urutan berikut:

- LED SMT sebelah atas dan jambatan wayar terlindung

- MOSFET sisi atas (perhatikan: jika anda mempunyai SOT-23 MOSFET, letakkan secara menyerong seperti dalam foto. Jika anda menggunakan MOSFET lubang melalui lubang, letakkan secara mendatar dengan pin pintu di kedudukan I3.)

- bahagian atas melalui bahagian lubang (nota: bel tidak disolder dan bahkan tidak perlu dipasang ke PCB)

- bahagian dan jejak SMT sisi belakang (mis. helai individu dari wayar AWG22)

Langkah 3: Perisian firmware

Kod C untuk ATtiny85

Main.c mengandungi kod yang perlu disusun dan dimuat naik ke mikrokontroler. Sekiranya anda akan menggunakan papan Arduino sebagai pengaturcara, anda boleh mendapatkan gambarajah pendawaian dalam tutorial ini. Anda hanya perlu mengikuti bahagian berikut (abaikan yang lain):

- Mengkonfigurasi Arduino Uno sebagai ISP (Pengaturcaraan Dalam Sistem)

- Menghubungkan ATtiny85 dengan Arduino Uno.

Untuk menyusun dan memuat naik firmware, anda memerlukan CrossPack (untuk Mac OS) atau rantai alat AVR (untuk Windows). Perintah berikut perlu dilaksanakan untuk menyusun kod:

avr-gcc -Os -mmcu = attiny85 -c main.c; avr-gcc -mmcu = attiny85 -o main.elf main.o; avr-objcopy -j.text -j.data -O ihex main.elf main.hex

Untuk memuat naik firmware, jalankan yang berikut:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

Daripada "/dev/cu.usbmodem1411", anda mungkin perlu memasukkan port bersiri yang menghubungkan Arduino anda (anda boleh mencarinya di Arduino IDE: Tools Port).

Kod tersebut mengandungi pelbagai fungsi. deep_sleep () menjadikan mikrokontroler memasuki keadaan daya yang sangat rendah selama lebih kurang 8 saat. read_volt () digunakan untuk mengukur voltan bateri dan sensor. Voltan bateri diukur melawan rujukan voltan dalaman (2.56 V plus atau minus beberapa peratus) sedangkan voltan sensor diukur melawan Vcc = 3.3 V. Bacaan dibandingkan dengan BATT_THRESHOLD dan SENSOR_THRESHOLD yang masing-masing ditakrifkan sebagai 932 dan 102, yang sesuai dengan ~ 2.3 dan 0.3 V. Anda mungkin dapat mengurangkan nilai ambang bateri untuk jangka hayat bateri yang lebih baik, tetapi tidak digalakkan (lihat Pertimbangan bateri untuk maklumat terperinci).

activate_alarm () memberitahu modul ESP mengenai pengesanan air dan membunyikan bel. low_batt_notification () memberitahu modul ESP bateri rendah dan juga membunyikan bel. Sekiranya anda tidak mahu terjaga di tengah malam untuk menukar bateri, keluarkan "| 1 <" di low_batt_notification ().

Lakaran Arduino untuk ESP-01

Saya memilih untuk memprogram modul ESP menggunakan Arduino HAL (ikuti pautan untuk arahan persediaan). Sebagai tambahan, saya menggunakan dua perpustakaan berikut:

ESP8266 Hantar E-mel oleh Górász Péter

ESP8266 Pushover oleh pasukan Arduino Hannover

Perpustakaan pertama menghubungkan ke pelayan SMTP dan menghantar amaran ke alamat e-mel anda. Cukup buat akaun gmail untuk ESP anda, dan tambahkan kelayakan ke kod. Perpustakaan kedua menghantar pemberitahuan push melalui perkhidmatan Pushover (pemberitahuan percuma, tetapi anda perlu membayar sekali untuk memasang aplikasi di telefon / tablet anda). Muat turun kedua-dua perpustakaan. Masukkan isi pustaka Kirim E-mel ke dalam folder lakaran anda (arduino akan membuatnya ketika anda membuka sketsa arduino untuk pertama kalinya). Pasang pustaka Pushover melalui IDE (Sketsa -> Sertakan Perpustakaan -> Tambah perpustakaan. ZIP).

Untuk memprogram modul ESP-01, anda boleh mengikuti tutorial berikut: https://www.allaboutcircuits.com/projects/breadbo… Tidak perlu bersusah payah menyelesaikan satu baris pin seperti yang ditunjukkan dalam panduan - hanya gunakan dupont wanita-lelaki wayar untuk menyambungkan pin modul ke papan roti. Jangan lupa bahawa penukar rangsangan dan penyesuai USB-UART harus berkongsi tanah (nota: anda mungkin dapat menggunakan output 3.3 V dari penyesuai USB-UART dan bukannya penukar rangsangan, tetapi kemungkinan besar ia tidak akan dapat mengeluarkan arus yang mencukupi).

Langkah 4: Pertimbangan Bateri

Kod firmware yang dibekalkan telah dikonfigurasikan untuk menghantar amaran bateri rendah dan ditutup pada ~ 2.3 V. Ambang ini berdasarkan andaian bahawa dua bateri NiMH digunakan secara bersiri. Tidak disarankan untuk melepaskan sel NiMH mana-mana individu di bawah 1 V. Dengan andaian kedua-dua sel mempunyai kapasiti dan ciri pelepasan yang sama, kedua-duanya akan dipotong pada ~ 1,15 V - dengan baik dalam julat selamat. Walau bagaimanapun, sel NiMH yang telah digunakan untuk banyak kitaran pembuangan cenderung berbeza dalam kapasiti. Perbezaan kapasiti hingga 30% dapat ditoleransi kerana masih akan menghasilkan titik pemotongan sel voltan terendah sekitar 1 V.

Walaupun mungkin untuk mengurangkan ambang bateri rendah dalam firmware, tindakan itu akan menghilangkan margin keselamatan, dan dapat mengakibatkan kelebihan bateri dan kerusakan bateri sementara hanya diharapkan peningkatan jangka hayat bateri (sel NiMH adalah> 85% habis pada 1.15 V).

Faktor lain yang perlu dipertimbangkan adalah kemampuan penukar penguat untuk menyediakan sekurang-kurangnya 3.0 V (2.5 V mengikut bukti anekdot) pada arus puncak 300-500 mA pada bateri rendah. Rintangan dalaman bateri NiMH yang rendah hanya menyebabkan penurunan 0.1 V yang dapat diabaikan pada arus puncak, jadi sepasang sel NiMH yang dilepaskan ke 2,3 V (litar terbuka) dapat memberikan sekurang-kurangnya 2,2 V ke penukar penguat. Walau bagaimanapun, ia lebih rumit dengan bateri alkali. Dengan sepasang bateri AA yang duduk pada 2.2-2.3 V (litar terbuka) penurunan voltan 0.2-0.4 V dijangka pada arus puncak. Walaupun saya telah mengesahkan bahawa rangkaian berfungsi dengan penukar dorongan yang disyorkan dengan hanya 1.8 V yang dibekalkan pada arus puncak, ini mungkin menyebabkan voltan output merosot seketika di bawah nilai yang disarankan oleh Espressiff. Oleh itu, ambang pemotongan 2.3 V meninggalkan sedikit margin keselamatan dengan bateri alkali (ingat bahawa pengukuran voltan yang dilakukan oleh mikrokontroler hanya tepat dalam tambah atau tolak beberapa peratus). Untuk memastikan modul ESP tidak terganggu ketika bateri alkali rendah, saya cadangkan untuk meningkatkan voltan pemotongan menjadi 2.4 V (#define BATT_THRESHOLD 973). Pada 1.2 V (litar terbuka) sel alkali habis 70% yang hanya 5-10 titik peratusan lebih rendah daripada tahap pelepasan pada 1.15 V setiap sel.

Kedua-dua sel NiMH dan alkali mempunyai kelebihan dan kekurangan untuk aplikasi ini. Bateri alkali lebih selamat (jangan terbakar jika dipendekkan), dan ia mempunyai kadar pelepasan diri yang jauh lebih rendah. Walau bagaimanapun, bateri NiMH menjamin pengoperasian ESP8266 yang boleh dipercayai pada titik pemotongan yang lebih rendah berkat rintangan dalamannya yang rendah. Tetapi akhirnya, kedua-dua jenis ini boleh digunakan dengan beberapa langkah berjaga-jaga, jadi ini hanya soal pilihan peribadi.

Langkah 5: Penafian Undang-Undang

Litar ini direka oleh hobi bukan profesional untuk aplikasi hobi sahaja. Reka bentuk ini dikongsi dengan niat baik, tetapi tanpa jaminan sama sekali. Gunakan dan berkongsi dengan orang lain dengan risiko anda sendiri. Dengan membuat litar semula, anda bersetuju bahawa penemu tidak akan bertanggungjawab atas sebarang kerosakan (termasuk tetapi tidak terhad kepada kerosakan aset dan kecederaan peribadi) yang mungkin berlaku secara langsung atau tidak langsung melalui kerosakan atau penggunaan biasa litar ini. Sekiranya undang-undang negara anda membatalkan atau melarang pengecualian tanggungjawab ini, anda tidak boleh menggunakan reka bentuk ini. Sekiranya anda berkongsi reka bentuk ini atau rangkaian yang diubah berdasarkan reka bentuk ini, anda mesti memberi penghargaan kepada pencipta asal dengan menunjukkan url arahan ini.

Disyorkan: