- Kaedah yang berbeza untuk Meminimumkan Penggunaan Tenaga
- Komponen Diperlukan
- Jenis Mod Tidur di ESP8266
- Pengaturcaraan Mod Tidur Dalam ESP8266
- Menguji DeepSleep di ESP8266
Oleh kerana revolusi IoT berkembang pesat setiap hari, bilangan peranti yang disambungkan meningkat dengan pesat. Pada masa akan datang, kebanyakan peranti akan dihubungkan antara satu sama lain dan akan berkomunikasi dalam masa nyata. Salah satu masalah yang dihadapi oleh peranti ini ialah penggunaan tenaga. Faktor penggunaan kuasa ini adalah salah satu faktor kritikal dan penentu bagi mana-mana peranti IoT dan Projek IoT.
Seperti yang kita ketahui bahawa ESP8266 adalah salah satu modul yang paling popular untuk membina mana-mana projek IoT, jadi dalam artikel ini kita belajar tentang penjimatan kuasa semasa menggunakan ESP8266 dalam aplikasi IoT mana pun. Di sini kami memuat naik data sensor suhu LM35 ke awan ThingSpeak dalam selang 15 saat dan selama 15 saat itu ESP8266 tetap dalam mod DeepSleep untuk menjimatkan tenaga
Kaedah yang berbeza untuk Meminimumkan Penggunaan Tenaga
Terdapat beberapa cara untuk mengoptimumkan penggunaan kuasa pada peranti tertanam dan IoT. Pengoptimuman dapat dilakukan pada perkakasan dan perisian. Kadang-kadang kita tidak dapat mengoptimumkan komponen perkakasan untuk mengurangkan penggunaan Daya, tetapi pasti kita dapat melakukannya di sisi perisian dengan mengubah dan mengoptimumkan arahan dan fungsi kod. Bukan hanya itu, pembangun juga dapat Mengubah Frekuensi Jam untuk Mengurangkan Penggunaan Daya Mikrokontroler.Kita boleh menulis firmware untuk membuat perkakasan tidak berfungsi ketika tidak ada pertukaran data dan melakukan tugas yang ditentukan dalam selang waktu tertentu. Dalam mod tidur, perkakasan yang disambungkan menggunakan tenaga yang sangat sedikit dan dengan itu bateri dapat bertahan lama Anda juga boleh membaca Meminimumkan Penggunaan Daya di Mikrokontroler, jika anda ingin mengetahui lebih lanjut mengenai teknik penggunaan kuasa.
Modul ESP8266 adalah modul Wi-Fi yang paling banyak digunakan dilengkapi dengan banyak ciri dalam ukuran kecil yang mempunyai mod yang berbeza termasuk mod tidur dan mod ini dapat diakses menggunakan beberapa modifikasi dalam perkakasan dan perisian. Untuk mengetahui lebih lanjut mengenai ESP8266, anda boleh menyemak projek berasaskan IoT kami menggunakan modul Wi-Fi ESP826, beberapa di antaranya disenaraikan di bawah:
- Memadankan ESP8266 NodeMCU dengan Mikrokontroler Atmega16 untuk Menghantar E-mel
- Menghantar data sensor Suhu dan Kelembapan ke Pangkalan Data Masa Nyata Firebase menggunakan NodeMCU ESP8266
- LED terkawal IoT menggunakan Google Firebase Console dan ESP8266 NodeMCU
Di sini kita akan menerangkan cara tidur yang berbeza yang terdapat dalam ESP8266 dan menunjukkannya dengan menghantar data suhu ke pelayan Thingspeak dalam selang waktu biasa menggunakan mod tidur dalam.
Komponen Diperlukan
- Modul Wi-Fi ESP8266
- Sensor suhu LM35
- Wayar pelompat
Jenis Mod Tidur di ESP8266
Modul Esp8266 beroperasi dalam mod berikut:
- Mod aktif: Dalam mod ini, keseluruhan cip dihidupkan dan cip dapat menerima, menghantar data. Jelas, ini adalah mod yang paling memakan masa.
- Mod mod-sleep: Dalam mod ini, CPU beroperasi dan radio Wi-Fi dilumpuhkan. Mod ini dapat digunakan dalam aplikasi yang memerlukan CPU berfungsi, seperti di PWM. Ini menjadikan rangkaian Modem Wi-Fi mati ketika dihubungkan dengan Wi-Fi AP (Jalur Akses) tanpa transmisi data untuk mengoptimumkan penggunaan tenaga.
- Mod tidur ringan: Dalam mod ini, CPU dan semua periferal dijeda. Sebarang bangun seperti gangguan luaran akan membangkitkan cip. Tanpa penghantaran data, rangkaian Modem Wi-Fi dapat dimatikan dan CPU digantung untuk menjimatkan penggunaan tenaga.
- Mod tidur nyenyak: Dalam mod ini hanya RTC berfungsi dan semua komponen cip lain dimatikan. Mod ini berguna di mana data dihantar setelah selang waktu yang lama.
Sambungkan sensor suhu LM35 dengan pin A0 NodeMCU.
Apabila modul ESP mempunyai pin RST yang TINGGI, ia berada dalam keadaan berjalan. Sebaik sahaja menerima isyarat RENDAH pada pin RST, ESP dimulakan semula.
Tetapkan pemasa menggunakan mod tidur dalam, setelah pemasa berakhir maka pin D0 menghantar isyarat RENDAH ke pin RST dan modul akan bangun dengan menghidupkannya semula.
Kini, perkakasan sudah siap dan dikonfigurasikan dengan baik. Pembacaan suhu akan dihantar di pelayan Thingspeak. Untuk ini, buat akaun di thingspeak.com dan buat saluran dengan mengikuti langkah-langkah di bawah.
Sekarang, salin kunci Tulis API. Yang akan digunakan dalam kod ESP.
Pengaturcaraan Mod Tidur Dalam ESP8266
Arduino IDE yang mudah didapati akan digunakan untuk memprogram modul ESP8266. Pastikan semua fail papan ESP8266 dipasang.
Mulakan dengan memasukkan semua perpustakaan penting yang diperlukan.
#sertakan
Setelah semua perpustakaan disertakan untuk mengakses fungsi, kemudian tetapkan kunci tulis API, konfigurasikan nama dan kata laluan Wi-Fi anda. Kemudian nyatakan semua pemboleh ubah untuk penggunaan selanjutnya di mana data akan disimpan.
Rentetan apiWritekey = "*************"; // ganti dengan kunci THINGSPEAK WRITEAPI anda di sini char ssid = "******"; // nama SSID wifi anda kata laluan = "******"; // kata laluan wifi
Sekarang, buat fungsi untuk menghubungkan modul dengan rangkaian Wi-Fi menggunakan fungsi wifi.begin () dan kemudian periksa secara berterusan sehingga modul tidak disambungkan ke Wi-Fi menggunakan while loop.
batal connect1 () { WiFi.disconnect (); kelewatan (10); WiFi.begin (ssid, kata laluan); sementara (WiFi.status ()! = WL_CONNECTED) {
Buat fungsi lain untuk menghantar data ke pelayan thingspeak. Di sini, rentetan akan dihantar yang mengandungi kunci tulis API, nombor bidang dan data yang harus dihantar. Kemudian hantarkan rentetan ini menggunakan fungsi client.print ().
batal data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& bidang1 ="; tsData + = Rentetan (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / kemas kini HTTP / 1.1 \ n"); client.print ("Host: api.thingspeak.com \ n");
Panggil fungsi connect1 yang akan memanggil fungsi untuk menyambungkan Wi-Fi kemudian mengambil bacaan suhu dan mengubahnya menjadi Celsius.
persediaan tidak sah () { Serial.begin (115200); Serial.println ("peranti dalam mod Bangun"); sambung1 (); nilai int = analogRead (A0); voltan apungan = (nilai / 1024.0) * 5.0; tempC = volt * 100.0;
Sekarang, panggil fungsi data () untuk memuat naik data di cloud thingspeak. Akhirnya, fungsi penting untuk dipanggil ialah ESP.deepSleep (); ini akan menjadikan modul tidur untuk selang waktu yang ditentukan iaitu dalam mikrodetik.
data (); Serial.println ("tidur nyenyak selama 15 saat"); ESP.deepSleep (15e6);
Fungsi gelung akan tetap kosong kerana semua tugas harus dilakukan sekali dan kemudian menetapkan semula modul setelah selang waktu yang ditentukan.
Video dan kod penuh diberikan pada akhir tutorial ini. Muat naik kod dalam modul ESP8266. Tanggalkan wayar yang disambungkan RST dan D0 sebelum memuat naik program, ini akan menyebabkan ralat.
Menguji DeepSleep di ESP8266
Setelah memuat naik program, anda akan melihat bahawa bacaan suhu dimuat di awan ThingSpeak setiap 15 saat dan kemudian modul masuk dalam mod tidur dalam.
Ini melengkapkan tutorial penggunaan modul Sleep Sleep dalam ESP8266. Deepsleep adalah ciri yang sangat penting dan telah disertakan dalam kebanyakan peranti. Anda boleh merujuk tutorial ini dan menggunakan kaedah ini untuk projek yang berbeza. Sekiranya terdapat keraguan atau cadangan, sila tulis dan beri komen di bawah. Anda juga boleh sampai ke forum kami.