- Berbagai Metode untuk Meminimalkan Konsumsi Daya
- Komponen Diperlukan
- Jenis Mode Tidur di ESP8266
- ESP8266 Pemrograman Mode Tidur Pulas
- Menguji DeepSleep di ESP8266
Karena revolusi IoT berkembang pesat setiap hari, jumlah perangkat yang terhubung meningkat dengan sangat cepat. Di masa mendatang, sebagian besar perangkat akan saling terhubung dan akan berkomunikasi secara real time. Salah satu masalah yang dihadapi perangkat ini adalah konsumsi daya. Faktor konsumsi daya ini adalah salah satu faktor penting dan menentukan untuk setiap perangkat IoT dan Proyek IoT.
Seperti yang kita ketahui bahwa ESP8266 adalah salah satu modul paling populer untuk membangun proyek IoT apa pun, jadi dalam artikel ini kita belajar tentang menghemat daya saat menggunakan ESP8266 di aplikasi IoT apa pun. Di sini kami mengunggah data sensor suhu LM35 ke cloud ThingSpeak dalam interval 15 detik dan selama 15 detik tersebut ESP8266 tetap dalam mode DeepSleep untuk menghemat daya.
Berbagai Metode untuk Meminimalkan Konsumsi Daya
Ada beberapa cara untuk mengoptimalkan konsumsi daya di perangkat tertanam dan IoT. Optimasi dapat dilakukan pada perangkat keras dan perangkat lunak. Terkadang kita tidak dapat mengoptimalkan komponen perangkat keras untuk mengurangi konsumsi daya, tetapi tentunya kita dapat melakukannya di sisi perangkat lunak dengan mengubah dan mengoptimalkan instruksi dan fungsi kode. Tidak hanya itu, pengembang juga dapat Memodifikasi Frekuensi Jam untuk Mengurangi Konsumsi Daya Mikrokontroler.Kami dapat menulis firmware untuk membuat perangkat keras tidur ketika tidak ada pertukaran data dan melakukan tugas yang ditentukan dalam interval tertentu. Dalam mode tidur, perangkat keras yang terhubung menggunakan daya yang sangat sedikit dan karenanya baterainya dapat bertahan lama. Anda juga dapat membaca Meminimalkan Konsumsi Daya di Mikrokontroler, jika Anda ingin mengetahui lebih banyak tentang teknik konsumsi daya.
Modul ESP8266 adalah modul Wi-Fi yang paling banyak digunakan hadir dengan banyak fitur dalam ukuran kecil yang memiliki mode berbeda termasuk mode tidur dan mode ini dapat diakses menggunakan beberapa modifikasi pada perangkat keras dan perangkat lunak. Untuk mempelajari lebih lanjut tentang ESP8266, Anda dapat memeriksa proyek berbasis IoT kami menggunakan modul Wi-Fi ESP826, beberapa di antaranya tercantum di bawah ini:
- Menghubungkan NodeMCU ESP8266 dengan Mikrokontroler Atmega16 untuk Mengirim Email
- Mengirim data sensor Suhu dan Kelembaban ke Firebase Real-Time Database menggunakan NodeMCU ESP8266
- IoT Controlled LED menggunakan Google Firebase Console dan ESP8266 NodeMCU
Di sini kami akan menjelaskan mode tidur berbeda yang tersedia di ESP8266 dan mendemonstrasikannya dengan mengirimkan data suhu ke server Thingspeak dalam interval reguler menggunakan mode tidur nyenyak.
Komponen Diperlukan
- Modul Wi-Fi ESP8266
- Sensor suhu LM35
- Kabel jumper
Jenis Mode Tidur di ESP8266
Modul Esp8266 beroperasi dalam mode berikut:
- Mode aktif: Dalam mode ini, seluruh chip dihidupkan dan chip dapat menerima, mengirimkan data. Jelas, ini adalah mode yang paling banyak menghabiskan daya.
- Modem-sleep mode: Dalam mode ini, CPU beroperasi dan radio Wi-Fi dinonaktifkan. Mode ini dapat digunakan pada aplikasi yang membutuhkan CPU untuk bekerja, seperti pada PWM. Itu membuat sirkuit Modem Wi-Fi mati saat terhubung dengan Wi-Fi AP (Titik Akses) tanpa transmisi data untuk mengoptimalkan konsumsi daya.
- Mode tidur-ringan: Dalam mode ini, CPU dan semua periferal dijeda. Bangun apa pun seperti interupsi eksternal akan membangunkan chip. Tanpa transmisi data, rangkaian Modem Wi-Fi dapat dimatikan dan CPU ditangguhkan untuk menghemat konsumsi daya.
- Mode tidur nyenyak: Dalam mode ini hanya RTC yang berfungsi dan semua komponen chip lainnya dimatikan. Mode ini berguna di mana data dikirim setelah interval waktu yang lama.
Hubungkan sensor suhu LM35 dengan pin A0 dari NodeMCU.
Ketika modul ESP memiliki pin HIGH on RST, itu dalam keadaan berjalan. Segera setelah menerima sinyal RENDAH pada pin RST, ESP memulai ulang.
Atur timer menggunakan mode deep sleep, setelah timer berakhir maka pin D0 mengirimkan sinyal LOW ke pin RST dan modul akan bangun dengan memulai ulang.
Sekarang, perangkat keras sudah siap dan dikonfigurasi dengan baik. Pembacaan suhu akan dikirim ke server Thingspeak. Untuk ini, buat akun di thingspeak.com dan buat saluran dengan melalui langkah-langkah di bawah ini.
Sekarang, salin kunci Write API. Yang akan digunakan dalam kode ESP.
ESP8266 Pemrograman Mode Tidur Pulas
Arduino IDE yang tersedia dengan mudah akan digunakan untuk memprogram modul ESP8266. Pastikan semua file papan ESP8266 diinstal.
Mulailah dengan memasukkan semua perpustakaan penting yang diperlukan.
#include
Setelah semua pustaka disertakan untuk mengakses fungsi kemudian tetapkan kunci tulis API, konfigurasikan nama dan kata sandi Wi-Fi Anda. Kemudian nyatakan semua variabel untuk digunakan lebih lanjut di mana data akan disimpan.
String apiWritekey = "*************"; // ganti dengan kunci THINGSPEAK WRITEAPI Anda di sini char ssid = "******"; // nama SSID wifi Anda char password = "******"; // wifi pasword
Sekarang buat fungsi untuk menghubungkan modul dengan jaringan Wi-Fi menggunakan fungsi wifi.begin () dan kemudian periksa terus menerus sampai modul tidak terhubung ke Wi-Fi menggunakan while loop.
void connect1 () { WiFi.disconnect (); penundaan (10); WiFi.begin (ssid, kata sandi); sementara (WiFi.status ()! = WL_CONNECTED) {
Buat fungsi lain untuk mengirim data ke server thingspeak. Disini akan dikirim string yang berisi API write key, field number dan data yang harus dikirim. Kemudian kirim string ini menggunakan fungsi client.print ().
void data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& field1 ="; tsData + = String (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / perbarui HTTP / 1.1 \ n"); client.print ("Host: api.thingspeak.com \ n");
Panggil fungsi connect1 yang akan memanggil fungsi untuk menghubungkan Wi-Fi kemudian mengambil pembacaan suhu dan mengubahnya menjadi Celcius.
void setup () { Serial.begin (115200); Serial.println ("perangkat dalam mode Bangun"); hubungkan1 (); nilai int = analogRead (A0); volt float = (nilai / 1024.0) * 5.0; tempC = volt * 100,0;
Sekarang, panggil fungsi data () untuk mengunggah data di cloud thingspeak. Terakhir, fungsi penting untuk dipanggil adalah ESP.deepSleep (); ini akan membuat modul tertidur selama interval waktu yang ditentukan dalam mikrodetik.
data(); Serial.println ("tidur nyenyak selama 15 detik"); ESP.deepSleep (15e6);
Fungsi loop akan tetap kosong karena semua tugas harus dilakukan satu kali dan kemudian mengatur ulang modul setelah interval waktu yang ditentukan.
Video yang berfungsi dan kode lengkap diberikan di akhir tutorial ini. Unggah kode di modul ESP8266. Hapus kabel yang terhubung RST dan D0 sebelum mengunggah program lain itu akan memberikan kesalahan.
Menguji DeepSleep di ESP8266
Setelah mengunggah program, Anda akan melihat bahwa pembacaan suhu diunggah di cloud ThingSpeak setelah setiap 15 detik dan kemudian modul masuk ke mode tidur nyenyak.
Ini melengkapi tutorial tentang penggunaan Deep Sleep di modul ESP8266. Fitur deepsleep adalah fitur yang sangat penting dan telah disertakan di sebagian besar perangkat. Anda dapat merujuk tutorial ini dan menerapkan metode ini untuk berbagai proyek. Jika ada keraguan atau saran, silakan tulis dan beri komentar di bawah ini. Anda juga dapat menghubungi forum kami.