Server Web ESP8266 Menghemat Daya 60% Dengan Penundaan 1 Ms

Arduino memiliki perpustakaan untuk dengan cepat dan mudah menyiapkan server web sederhana pada papan berbasis ESP8622, dan [Tomaž] menemukan bahwa konsumsi daya pada ESP-01 dapat dikurangi cukup banyak hanya dengan memasukkan penundaan 1 ms di tempat yang tepat. Alasan ini bekerja bukan karena beberapa bug aneh atau fitur eksentrik — itu benar-benar hanya efek samping dari bagaimana perangkat keras beroperasi di bawah tenda.

[Tomaž] menggunakan contoh “hello world” dari ESP8266WebServer untuk menjelaskan. Di dalamnya, loop utama pada dasarnya terdiri dari pemanggilan server.handleClient() selamanya. Proses itu memeriksa koneksi HTTP yang masuk, menanganinya, mengirim respons, keluar — dan kemudian melakukannya lagi. Server web sederhana seperti ini menghabiskan sebagian besar waktunya untuk menunggu.

Cara yang jauh lebih efisien untuk menangani berbagai hal adalah dengan meluncurkan server.handleClient() hanya ketika koneksi jaringan yang masuk memanggilnya, dan menidurkan perangkat keras kapan pun itu tidak terjadi. Namun, tingkat kontrol itu tidak mungkin dalam konteks perpustakaan ESP8266WebServer Arduino.

Jadi apa yang harus dilakukan? Hal terbaik berikutnya ternyata adalah pernyataan delay(1) sederhana tepat setelah setiap panggilan server.handleClient() di loop utama.

Mengapa ini berhasil? Menambahkan delay(1) sebenarnya menyebabkan CPU menghabiskan sebagian besar waktunya dalam satu putaran milidetik. Dan menghitung mikrodetik ternyata menjadi tugas yang jauh lebih sulit, dari segi daya, daripada memeriksa permintaan jaringan yang masuk sekitar seratus ribu kali per detik. Di [Tomaž]Dalam pengujiannya, penundaan satu milidetik mengurangi konsumsi daya idle pada 3,3 V dari sekitar 230 mW menjadi sekitar 70 mW — sekitar 60% — sementara hanya menunda waktu respons server web sebesar 6-8 milidetik.

Untuk aplikasi server web sederhana, ini adalah trik yang bagus untuk diingat. Ada juga teknik yang lebih canggih untuk menghemat daya pada papan berbasis ESP8266; dari papan yang hampir tidak menyesap satu microamp saat tidur, hingga papan bertenaga sel koin yang sejauh ini memodifikasi tumpukan TCP/IP untuk membantu memeras setiap penghematan daya yang dimungkinkan.