Bangun ESP32 daripada Tidur Nyenyak Menggunakan Pemasa-MicroPython

Bangun Esp32 Daripada Tidur Nyenyak Menggunakan Pemasa Micropython



ESP32 ialah platform IoT berasaskan mikropengawal. Penggunaan kuasa adalah salah satu kebimbangan utama semasa bekerja dengan papan mikropengawal. Selagi kami membekalkan ESP32 dengan bekalan DC, kami tidak lagi mengambil berat tentang penggunaan kuasa tetapi dengan projek sandaran bateri untuk jangka masa panjang kami perlu mengoptimumkan kuasa keseluruhan.

Di sini kita akan membincangkan bagaimana kita boleh menetapkan ESP32 dalam mod tidur dalam pada masa tetap untuk menjimatkan kuasa. Sebelum kita belajar cara membangunkan ESP32 daripada tidur nyenyak menggunakan pemasa, mari kita fahami konsep tidur nyenyak:

Apakah Tidur Nyenyak dalam ESP32

ESP32 boleh menjadi peranti yang haus kuasa kerana modul WiFi dan Bluetooth bersepadunya. ESP32 biasanya melukis 75mA untuk operasi nominal sementara ia boleh naik ke 240mA apabila menghantar data melalui WiFi. Walau bagaimanapun, kami boleh mengoptimumkan ini dengan mendayakan mod tidur dalam.









Dalam mod tidur dalam, peranti digital ESP32, RAM dan CPU yang tidak digunakan dimatikan. Hanya senarai bahagian berikut yang masih beroperasi:



  • Pengawal RTC
  • ULP Coprocessor
  • RTC ingatan cepat dan perlahan
  • Peranti RTC





Apabila mod tidur dalam didayakan, CPU utama dimatikan; walau bagaimanapun, Coprocessor ULP (UltraLowPower) masih boleh membaca data daripada penderia dan membangunkan CPU apabila diperlukan.

Aplikasi ESP32 ini berguna apabila kita ingin menjana output pada masa tertentu atau apabila gangguan atau peristiwa luaran berlaku. Ini menjimatkan kuasa ESP32 kerana CPUnya kekal dimatikan sepanjang masa dan hanya dihidupkan apabila ia dipanggil.



Bersama-sama dengan memori utama CPU ESP32 juga dipancarkan atau dipadamkan, jadi apa-apa yang disimpan di dalam memori ini tidak akan tersedia lagi. Hanya memori RTC yang disimpan di sana. Oleh itu, ESP32 menyimpan data WiFi dan Bluetooth di dalam memori RTC sebelum masuk ke mod tidur nyenyak.

Sebaik sahaja mod tidur dalam ditetapkan semula atau dialih keluar cip ESP32 memulakan pelaksanaan program dari awal lagi.

Dari tidur nyenyak kita boleh bangunkan ESP32 menggunakan kaedah yang berbeza.

Sumber Bangun Tidur dalam ESP32

Pelbagai Sumber tersedia untuk membangunkan ESP32 daripada tidur nyenyak:

  • Pemasa
  • Pin sentuh
  • Bangun luaran ext0
  • Bangun luaran samb1

Dalam panduan ini kami akan membincangkan Pemasa bangun sumber untuk ESP32.

Cara menggunakan Pemasa untuk Bangun ESP32 daripada Tidur Nyenyak

ESP32 dilengkapi dengan pengawal RTC yang mempunyai modul pemasa terbina dalam yang boleh membangunkan ESP32 selepas tempoh masa yang telah ditetapkan. Ciri ini mempunyai aplikasi yang luas di mana kita memerlukan cap masa atau perlu melaksanakan arahan pada masa tertentu sambil mengekalkan penggunaan kuasa yang optimum.

Untuk meletakkan ESP32 dalam mod tidur dalam menggunakan kod MicroPython tidur nyenyak() fungsi daripada modul mesin akan digunakan. Berikut ialah sintaks fungsi tidur nyenyak dalam MicroPython:

mesin. tidur nyenyak ( sleep_time_ms )

Fungsi ini mengambil 1 hujah yang merupakan masa yang telah ditetapkan dalam milisaat .

Untuk memahami penggunaan pemasa ESP32 untuk bangun tidur, kami akan mengambil contoh yang berkelip LED selepas setiap masa yang ditetapkan berlalu dan tidur semula setelah tugasan selesai.

Contoh Kod

Buka mana-mana editor MicroPython dan muat naik kod yang diberikan di bawah dalam papan ESP32. Di sini kami akan menggunakan Thonny IDE untuk memuat naik lakaran MicroPython.

# Sumber Kod Linuxhint.com

daripada mesin import tidur nyenyak

daripada mesin import Pin

daripada masa import tidur

dipimpin = Pin ( 4 , Pin. KELUAR ) #PIN 4 ditakrifkan untuk output LED

dipimpin. nilai ( 1 ) #HIDUPKAN LED selama 1 saat

tidur ( 1 )

dipimpin. nilai ( 0 ) #Matikan LED selama 1 saat

tidur ( 1 )

cetak ( 'Tidur Sekarang' )

tidur nyenyak ( 5000 ) #Tidur selama 5 saat

Kod dimulakan dengan mengimport perpustakaan yang diperlukan seperti kami mengimport perpustakaan deepsleep.

Selepas itu objek baru untuk ESP32 pin 4 dicipta. Pin ini akan menunjukkan output setiap kali ESP32 bangun.

dipimpin = Pin ( 4 , Pin. KELUAR )

Di bawah arahan yang diberikan akan berkelip LED dengan kelewatan selama 1 saat.

dipimpin. nilai ( 1 )

tidur ( 1 )

dipimpin. nilai ( 0 )

tidur ( 1 )

Di sini untuk tujuan demonstrasi, kami kelipkan LED. Walau bagaimanapun, mana-mana peranti lain juga boleh dikawal.

Sebelum tidur, kami mencetak mesej bahawa ESP32 sedang dalam mod tidur.

cetak ( 'Tidur Sekarang' )

Catatan: Kami juga boleh menambah kelewatan selama 5 saat atau lebih di sini sebelum ESP32 masuk ke mod tidur. Ini membantu kami semasa membina projek dan menulis skrip baharu. Semasa memuat naik kod baharu, papan mesti terjaga dan bukan dalam mod tidur. Jika kami tidak menambah kelewatan, sukar bagi kami untuk menangkap ESP32 dalam mod terjaga dan memuat naik skrip baharu.

Selepas menulis skrip baharu dan setelah kod akhir sedia, kami boleh mengalih keluar kelewatan ini dalam versi akhir skrip.

Akhirnya, papan ESP32 diletakkan dalam tidur yang mendalam selama 5 saat (5000 ms).

mesin. tidur nyenyak ( 5000 )

Setelah masa 5 saat berlalu, ESP32 bangun dan memulakan semula kod yang serupa dengan kod DALAM butang.

  Antara muka pengguna grafik, teks, Perihalan aplikasi dijana secara automatik

Pengeluaran

Output berikut boleh diperhatikan pada terminal shell Thonny IDE. Di sini kita dapat melihat bahawa selepas setiap 5 saat ESP32 bangun dari tidur nyenyak dan berkelip LED pada pin GPIO 4.

LED pada GPIO 4 akan bertukar HIDUP selama 1 saat.

Selepas 1 saat LED akan bertukar DIMATIKAN .

Kini papan ESP32 sekali lagi akan masuk ke mod tidur selama 5 saat dan selepas itu keseluruhan proses berulang. Jadi itu sahaja kami telah berjaya mengawal mod tidur dalam ESP32 menggunakan kod pemasa.

Kesimpulan

Di sini dalam tutorial ini, kami telah mengkonfigurasi ESP32 untuk bangun dari tidur nyenyak menggunakan program pemasa yang ditulis dalam MicroPython. Kami memuat naik kod menggunakan Thonny IDE . Kami hanya mencetak mesej sebaik sahaja ESP32 bangun dan berkelip LED; walau bagaimanapun, menggunakan artikel ini seseorang boleh melaksanakan apa-apa tugas sebaik sahaja ESP32 bangun dari tidur nyenyak.