Isi kandungan:
- Langkah 1: Modul Tidur Dalam ESP-01
- Langkah 2: Kod Tidur Dalam ESP-01
- Langkah 3: Modul Buzzer ESP-01
- Langkah 4: Kod Modul Buzzer ESP-01
- Langkah 5: Pemikiran Akhir
Video: Sensor Gerak ESP-01 Dengan Tidur Sedang: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Saya telah berusaha membuat sensor gerakan buatan sendiri yang menghantar mesej e-mel ketika dicetuskan. Terdapat banyak contoh arahan dan contoh lain untuk melakukan ini. Baru-baru ini saya perlu melakukan ini dengan sensor gerakan PIR yang dikendalikan bateri dan ESP-01. ESP-01 sangat berfungsi dan mempunyai semua keupayaan yang diperlukan, jadi mengapa tidak menggunakan keperluan minimum dan paling murah? Ditambah pada campuran adalah satu lagi modul ESP-01 yang terpisah dan jauh yang memicu buzzer ketika sensor gerakan dipicu.
Kod dan susun atur litar akhirnya telah dikumpulkan dari pelbagai sumber di seluruh web dan saya rasa saya tidak dapat mengenal pasti secara khusus. Idea untuk menghantar e-mel melalui gmail berasal dari sumber yang boleh dipesan dan sumber lain dan kod terakhir adalah gabungan dari sumber tersebut. Tidur yang nyenyak untuk bekerja membawa saya ke banyak jalan yang sering terbukti tidak membuahkan hasil. Lucunya, apabila jalan terbukti berbuah, anda berhenti mencari lebih banyak jalan. Oleh itu, saya mengucapkan terima kasih kepada semua pihak yang telah menyumbang kepada kejayaan saya dan belum diketahui.
Saya mempunyai masalah yang sama dengan membuat sensor PIR berfungsi untuk memicu tidur nyenyak ESP-01. Banyak jalan sehingga ada yang berjaya.
Tidak perlu dikatakan, terdapat beberapa rintangan yang menarik atau mungkin lebih relevan, pemahaman yang lebih baik mengenai elektronik yang saya perlukan. Anda terus belajar sehingga sesuatu berfungsi dan anda tidak perlu belajar lagi.
ESP-01 tidur nyenyak serta modul ESP8266 lain selagi anda tidak memerlukan waktu tidur. Sekiranya anda mahu modul bangun setelah jangka masa yang ditentukan, ESP-01 bukanlah modul yang akan digunakan. Tetapi bukan itu yang saya mahukan. Masa yang berlalu tidak berguna ketika menggunakan PIR. Saya mahu ESP-01 terbangun hanya apabila dicetuskan oleh gerakan yang dirasakan oleh PIR. Sekiranya tidak ada gerakan yang dirasakan selama berjam-jam atau berhari-hari, ESP-01 tetap tidur dengan menggunakan tenaga bateri minimum.
Anda akan melihat banyak litar yang menggunakan GPIO16 disambungkan ke ESP8266 Reset kerana GPIO16 adalah isyarat bangun. Ini benar, tetapi ini adalah isyarat bangun dari waktu tidur. Kami boleh mengabaikan PIN ini, yang bagus kerana tidak terdapat pada ESP-01.
Pada dasarnya, yang kita perlukan adalah mendapatkan isyarat dari PIR untuk mencetuskan pin Reset ESP-01. Kesukaran pertama yang akan anda duga ialah Reset dipicu pada isyarat RENDAH dan PIR menghantar isyarat TINGGI ketika dicetuskan. Reset juga perlu TINGGI atau melayang semasa boot. Oleh itu, setelah mencuba beberapa litar yang berbeza, saya menggunakan transistor NPN dengan perintang penarik untuk memastikan pin RESET tetap TINGGI semasa boot. Keluaran dari PIR adalah minimum tetapi memberikan arus asas yang mencukupi menghidupkan transistor.
Seperti yang akan anda lihat dalam rajah litar di bawah, ESP-01 terbangun dari tidur nyenyak setiap kali gerakan PIR merasakan.
Tetapi ada masalah lain. Reset ESP-01 hanya berlaku setelah PIR berhenti mengesan gerakan dan kembali ke isyarat rendah mematikan transistor dan mengembalikan pin Reset ke TINGGI kerana perintang penarik. Ini bermaksud bahawa e-mel tidak akan dihantar, dan juga bel tidak diaktifkan sehingga SELEPAS PIR berhenti mengesan gerakan. Saya mahu pencetus itu berlaku sebaik sahaja gerakan dirasakan.
Apa yang saya tentukan dari tingkah laku ini adalah bahawa ESP-01 benar-benar mencetuskan kenaikan isyarat. Memegang pin Reset ke tanah sebenarnya tidak memicu ESP-01 dari tidur nyenyak tetapi ketika voltan meningkat ke isyarat TINGGI, maka tetapan semula berlaku.
Tanggapan saya yang sangat sederhana terhadap tingkah laku ini adalah dengan menambahkan kapasitor ke garis antara output PIR dan pangkalan transistor. Ini menyebabkan transistor hanya dihidupkan semasa kapasitor sedang dicas. Setelah dicas, tidak ada arus lagi dan transistor dimatikan. Perintang 5k membenarkan arus mengalir ke tanah. Saya menguji ini dengan LED sebagai ganti ESP-01 dan dapat melihat LED menyala sekejap sebelum dimatikan. Nadi kecil ini cukup untuk menarik pin Reset ke tanah sesaat dan cukup lama untuk mencetuskan Reset daripada tidur nyenyak.
Langkah 1: Modul Tidur Dalam ESP-01
Modul tidur nyenyak menggunakan dua voltan kerja. Pek bateri 5v + rawak untuk PIR dan juga papan pengatur 3.3 volt untuk ESP-01. Saya juga memasukkan diod ke dalam litar untuk mengelakkan bahagian yang rosak daripada voltan terbalik. Ini menggunakan sedikit tenaga tambahan dan menurunkan voltan pek bateri sebanyak 0.7 volt. Diod boleh ditinggalkan dari litar jika anda pasti tidak akan membalikkan plumbum bateri. Suis juga ditambah kerana kemudahan.
Modul ini adalah kemas kini kecil pada susun atur tidur yang tidak asli. Dalam konfigurasi tidur nyenyak, PIR disambungkan secara langsung ke pin RX ESP-01. Saya menggunakan pin RX ESP-01 sebagai pin input untuk PIR kerana beberapa sebab. GPIO0 tidak berfungsi kerana semasa boot, PIN output PIR akan RENDAH menyebabkan ESP-01 memasuki mod kilat. Saya tidak menggunakan GPIO2 kerana ketika itu saya tidak dapat menggunakan LED terbina dalam untuk suapan visual. Pin RX dan TX sering digambarkan sebagai pin IO tambahan tetapi pengalaman saya ialah RX adalah pin INPUT tambahan dan TX adalah pin OUTPUT tambahan.
Dalam konfigurasi tidur nyenyak, sambungan RX tidak begitu diperlukan. Saya menggunakannya hanya untuk memantau berapa lama PIR dipicu dengan menghidupkan LED semasa inputnya TINGGI. Seperti disebutkan sebelumnya, jika anda membersihkan fungsi gelung dan hanya menggunakan rutin persediaan maka sambungan RX tidak diperlukan.
Berikut adalah senarai bahagian untuk modul tidur nyenyak ESP-01:
Papan Prototaip PCB 1 - 5 x 7 cm
Penyambung 1 - 2 pin
2 - 1 x 3 tajuk wanita
1 - AMS1117 - 3.3 papan litar pengatur voltan
1 - 1 x 3 Pin header Lelaki Sudut Kanan
1 - 1 x 3 pin kepala soket wanita
1 - 1 x 4 pin kepala soket wanita
Header wanita 1 - 2 x 4
Kapasitor 1 - 1uf
1 - Sensor Gerakan PIR HC-SR501
Transistor 1 - 2N2222
Perintang 1 - 10k
Perintang 1 - 4.7k
Perintang 1 - 1k
1 - 1N4148 dioda
1 - tukar SS12D00G4 SPDT
1 - ESP-01
1 - Pek Bateri 4AA
Harap maklum bahawa dalam video papan litar menggunakan penyesuai papan roti ESP-01 dan bukannya tajuk 2 x 4. Walaupun penyesuai ini lebih mudah disolder, header 2 x 4 berfungsi dengan baik dan sebenarnya lebih sesuai.
Langkah 2: Kod Tidur Dalam ESP-01
Kod Tidur Dalam melakukan dua fungsi. Kirim mesej e-mel (melalui gmail sebagai lalai) dan hantarkan permintaan web http ke modul buzzer ESP-01 yang berkaitan untuk mencetuskan buzzer.
Apabila dicetuskan, modul ini memberikan dua pilihan pemberitahuan dan mungkin sangat berguna ketika anda tidak memperhatikan mesej e-mel.
Anda perlu mengemas kini enam baris kod dengan nilai khusus anda untuk membuat lakaran berfungsi:
const char * ssid = "xxxxx"; // Kod SSIDconst WiFi anda * kata laluan = "xxxxx"; // Pengirim Rentetan Kata Laluan WiFi Anda_Login = "xxxxx"; // log masuk penyedia e-mel anda String Senders_Password = "xxxxx"; // kata laluan penyedia e-mel anda
Ke = "xxxxxx"; Dari = "xxxxxx"; // Gmail umumnya lebih suka ini sama dengan Senders_Login dan boleh menggantikannya
Saya dapati modul tidur nyenyak tidak dapat diramalkan apabila sensor PIR diatur ke bawah 10 saat untuk jangka masa peristiwa pencetus. Saya mempunyai set untuk 20 saat. Ini terbukti sangat boleh dipercayai tetapi ini juga bermaksud bahawa peristiwa pencetus boleh berlaku dengan kekerapan itu.
Saya juga telah menambahkan kod pada fungsi gelung untuk memastikan ESP-01 tetap aktif selagi PIR masih mengesan gerakan. Semua kod dalam fungsi gelung dapat dihapus dan panggilan untuk tidur nyenyak dipindahkan ke akhir fungsi persediaan.
Saya menggunakan fungsi sekelip mata untuk penunjuk visual aktiviti dengan modul ESP-01.
Walaupun saya telah menggunakan dan menguji kesambungan dengan gmail, penyedia e-mel lain juga berfungsi. Saya telah mencuba pasangan. Sebenarnya, saya mendapati gmail lebih menyusahkan. Gmail menghendaki agar akaun anda dikonfigurasi untuk diakses oleh aplikasi yang kurang selamat. Tetapan akaun ini MATI secara lalai, jadi pastikan anda menemuinya dan ubah menjadi kurang selamat. Gmail TIDAK akan berfungsi sebaliknya.
Sekiranya anda memilih untuk mempunyai lebih daripada satu modul buzzer, tambahkan panggilan tambahan klien http (ulangi tiga baris kod tetapi ubah alamat ip yang digunakan dan juga hanya menentukan pemboleh ubah httpCode sebagai int sekali!
Perhatikan bahawa alamat ip buzzer dikodkan keras dalam modul ini. Anda tidak perlu menggunakan alamat ip yang saya pilih, tetapi anda harus memadankan alamat ip panggilan web dalam modul ini dengan alamat ip penyediaan pelayan web di modul berikutnya.
Langkah 3: Modul Buzzer ESP-01
Modul buzzer mempunyai persediaan yang cukup mudah. Ia menggunakan penyambung USB dan bukannya pek bateri kerana saya rasa modul ini tidak sesuai untuk pek bateri. Ia mesti tetap aktif dan nework / wifi sentiasa tersambung kerana tidak pernah tahu bila permintaan web akan dibuat. Ini memerlukan kuasa yang lebih berterusan daripada pek bateri yang berguna untuknya.
Modul buzzer dapat ditempatkan dengan mudah di beberapa lokasi memberikan pemberitahuan mengenai peristiwa pencetus sensor gerakan di mana sahaja anda berada!
Buzzer disambungkan ke 5v penyambung USB dan terdapat papan pengatur 3.3v lain yang memberikan kuasa kepada ESP-01.
Modul buzzer akan berfungsi menggunakan TX, GPIO0 atau GPIO2 untuk output. Dalam konfigurasi saya menggunakan GPIO0. (Dalam gambar modul, wayar disambungkan ke GPIO2 tetapi sejak itu saya memindahkannya.) Walaupun GPIO0 tidak berfungsi untuk modul tidur nyenyak (sebagai INPUT) ia berfungsi dengan baik dengan susun atur ini sebagai OUTPUT. Ia tidak ditarik ke tanah pada but yang akan menyebabkan masalah. Saya menggunakan GPIO2 tetapi kemudian saya tidak dapat menggunakan onboard LED untuk sebarang maklum balas tetapi dengan menggunakan GPIO0 untuk OUTPUT saya dapat menggunakan LED onboard.
Saya cuba menggunakan transistor NPN untuk menghidupkan buzzer di litar ketika ESP-01 meletakkan isyarat TINGGI pada pin GPIO0 tetapi hasilnya sangat tidak konsisten. Bunyi bel mahu sentiasa berbunyi, walaupun dengan sedikit daya. Oleh itu, saya menggunakan saluran N MOSFET (2n7000) dan hasilnya hebat. Pin IO menggerakkan Gerbang seperti yang diperlukan.
Walaupun kami hanya memerlukan dua pin dari penyambung USB Vcc (+) dan Gnd (-) saya menggunakan header 5 pin untuk menyambung ke papan PCB untuk kestabilan tambahan dan untuk pematerian sebelum menyambungkan USB ke pengatur. Papan pengatur 3.3v saya disertakan dengan pin yang terpasang dan dalam fikiran saya, terbalik. Oleh itu, untuk memasukkan pengatur ke pin header, anda dapat melihat bahawa papan litar tersembunyi, tetapi lebih buruk daripada itu, vcc dan gnd pada pengatur dibalikkan dari vcc dan gnd pada penyambung USB. Jadi wayar menyeberang.
Perhatikan juga bahawa + kuasa untuk buzzer aktif berasal dari 5v USB. Juga, header soket wanita 4 pin berfungsi dengan baik dengan penempatan pin buzzer.
Senarai Bahagian Modul Buzzer ESP-01:
1 - 5 x 7 Papan PCB
1 - Penyambung mini USB dengan header pin (7 pin)
2 - 1 x 3 tajuk wanita
1 - Papan pengatur voltan AMS1117-3.3 v
Header wanita 1 - 2 x 4
2 - 1 x 4 tajuk soket wanita
1 - 2N7000 N-saluran MOSFET
Perintang 1 - 10 ohm
Buzzer Aktif 1 - 5v
Langkah 4: Kod Modul Buzzer ESP-01
Modul buzzer berfungsi sebagai pelayan web ESP-01 yang ringkas. Ia bertindak balas dengan pesan sederhana untuk permintaan root dan ketika mendapat permintaan buzz, itu akan memicu buzzer. GPIO0 digunakan untuk pin GPIO untuk isyarat buzzer.
Perhatikan bahawa ESP-01 dikonfigurasikan dengan alamat ip berkod keras. Ini diperlukan supaya modul tidur nyenyak digabungkan ke alamat buzzer.
Seperti modul sebelumnya, anda perlu mengemas kini dua baris kod dengan nilai khusus anda:
// SSID dan Kata Laluan WiFi routerconst char * ssid = "xxxxxxx";
const char * kata laluan = "xxxxxxxx";
Sekiranya anda mempunyai beberapa modul buzzer yang dibuat, masing-masing harus dimuat dengan alamat ip yang tersendiri.
Anda juga boleh menambahkan kaedah buzz yang berbeza yang menghasilkan melodi buzzer yang berbeza. Sebagai contoh, jika anda memiliki sensor PIR di pintu depan dan satu di pintu belakang, mereka masing-masing dapat membuat permintaan web ke setiap modul buzzer anda tetapi satu sensor mungkin memiliki lakaran yang memanggil buzz dan sketsa yang lain dapat memanggil buzz2 supaya anda dapat mengetahui dari mana sensor yang dicetuskan. Dan seterusnya dan seterusnya! Fungsi buzz2 tidak ada tetapi hanya menyalin fungsi buzz dan menukar nilai kelewatan.
Untuk pelayan web anda hanya perlu menambahkan sebaris kod seperti ini:
pelayan.on ("/ buzz2", buzz2);
Langkah 5: Pemikiran Akhir
Ini adalah arahan pertama saya jadi saya mungkin terlepas beberapa perkara praktikal yang semestinya saya sertakan. Papan pengatur AMS1117-3.3 yang saya gunakan menyertakan lampu kecil yang menyala ketika dihidupkan. Untuk modul tidur nyenyak, saya tidak mahu ini menyala dan mengalirkan kuasa secara tidak perlu. Oleh itu, saya tidak dapat menyelesaikan apa yang saya dapat di satu sisi plumbum di papan dan kemudian menggunakan pisau utiliti untuk memotong garis jejak. Ini lebih mudah daripada yang saya fikirkan dan menghalang LED menyala. Saya belum dapat menentukan apakah daya tarikan ketika ESP-01 sedang tidur nyenyak tetapi saya mungkin mempunyai jawapan dalam beberapa minggu. Seorang rakan saya menjalankan sensor (tidak dalam tidur nyenyak) dan mendapati bateri habis (5AA) dalam masa lebih kurang seminggu. Saya rasa penyediaan ini harus memberi sebulan atau lebih. Kita akan melihat.
Modul tidur nyenyak berharga kira-kira $ 8 CDN dalam bahagian (bateri tidak termasuk!) Dan modul buzzer $ 5.
Disyorkan:
Sensasi Gerak Di Bawah Lampu Tempat Tidur: 16 Langkah (dengan Gambar)
Motion Sensing Under Lighting Light: Pernah cuba keluar dari tempat tidur dengan tenang pada waktu malam hanya untuk meredah sesuatu dan membangunkan seluruh rumah? Lampu malam penginderaan gerakan yang dipasang secara diam-diam di bawah katil anda memberikan cahaya tahap rendah yang cukup terang untuk memandu anda di sekitar batu bata LEGO yang sesat itu
Bermula Dengan Esp 8266 Esp-01 Dengan Arduino IDE - Memasang Esp Papan di Arduino Ide dan Pengaturcaraan Esp: 4 Langkah
Bermula Dengan Esp 8266 Esp-01 Dengan Arduino IDE | Memasang Papan Esp di Arduino Ide dan Pengaturcaraan Esp: Dalam instruksional ini kita akan belajar bagaimana memasang papan esp8266 di Arduino IDE dan cara memprogramkan esp-01 dan memuat naik kod di dalamnya. Oleh kerana papan esp sangat popular jadi saya terfikir untuk membetulkan instruktor untuk ini dan kebanyakan orang menghadapi masalah
Pek Bateri Boleh Diisi Semula Pengawal Xbox One DIY (projek Sedang berlangsung): 3 Langkah (dengan Gambar)
Pek Bateri Boleh Diisi Semula Pengendali Xbox One DIY (projek Sedang Berlangsung): Sebelum kita menyelami perinciannya, saya ingin membahas tajuknya. Projek ini sedang berjalan kerana beberapa penemuan setelah menguji reka bentuk pertama. Yang dikatakan bahawa saya merancang semula papan untuk menampung beberapa perubahan yang akan saya bahas. Saya merangkumi e
Jalur LED Diaktifkan Dengan Sensor Gerak Dengan Pemasa: 6 Langkah (dengan Gambar)
Jalur LED Diaktifkan Motion Sensor Dengan Pemasa: Hai semua! Saya sangat gembira dapat menulis arahan lain sekarang. Projek ini berlaku ketika saya dihubungi oleh rakan-rakan instruksional-er (?!) (David @dducic) beberapa bulan yang lalu untuk meminta bantuan reka bentuk. Jadi, inilah spesifikasi asal: & q
Outlet Dikawal Gerak - Dari Lampu Sensor Gerak: 6 Langkah
Outlet Dikawal Gerakan - Dari Lampu Sensor Gerak: Bayangkan anda adalah tipu muslihat atau pergi ke rumah paling menakutkan di blok itu. Setelah melewati semua hantu, hantu dan kubur anda akhirnya sampai ke jalan terakhir. Anda dapat melihat gula-gula dalam mangkuk di hadapan anda! Tetapi tiba-tiba gho