Cara Membuat Tombol Terhubung Wi-Fi Anda Sendiri Dengan ESP8266

Cara Membuat Tombol Terhubung Wi-Fi Anda Sendiri Dengan ESP8266

Internet of Things memiliki potensi DIY yang besar. Dengan pengetahuan yang cukup dan beberapa komponen murah, Anda dapat membangun sistem kompleks dari perangkat yang terhubung.





Namun, terkadang Anda menginginkan sesuatu yang sederhana. Tidak ada lonceng atau peluit, hanya tombol yang melakukan satu tugas. Anda mungkin sudah terbiasa dengan hal seperti ini jika Anda pernah menggunakan tombol Amazon Dash untuk menyusun ulang barang-barang rumah tangga sehari-hari.





Hari ini kita akan membuat tombol berkemampuan Wi-Fi menggunakan NodeMCU, dan memprogramnya menggunakan IFTTT untuk melakukan… yah, apa saja! Instruksi tertulis mengikuti video, jika Anda mau.





Apa yang Anda Butuhkan

Anda akan perlu:

  • 1 x papan NodeMCU (ESP8266), tersedia untuk -3 di AliExpress
  • 1 x Tombol Tekan
  • 1 x LED (opsional)
  • 1x220 Ohm resistor (opsional)
  • Papan tempat memotong roti dan kabel hookup
  • Micro USB untuk pemrograman
  • Komputer dengan Arduino IDE terpasang

Terlepas dari NodeMCU, Anda seharusnya dapat menemukan sebagian besar bagian ini di starter kit Arduino apa pun. Tutorial ini akan menganggap Anda menggunakan LED dan resistor opsional, tetapi itu tidak penting.



Langkah 1: Menyiapkan Sirkuit

Pengaturan perangkat keras sangat sederhana untuk proyek ini. Atur papan Anda sesuai dengan diagram ini.

Kabel ungu menempel pin D0 ke satu sisi tombol. Kabel hijau menghubungkan sisi lain tombol ke pin RST . Kabel biru berjalan dari pin D1 ke resistor dan LED. Kaki negatif LED menempel pada pin GND dari NodeMCU.





Ketika papan tempat memotong roti diatur, itu akan terlihat seperti ini:

bilah bawah tidak berfungsi windows 10

Jika Anda bertanya-tanya bagaimana saya membuat LED saya terhubung ke pin ground hanya dengan menggunakan kabel kecil itu, cepat kami kursus kilat papan tempat memotong roti harus membantu membersihkannya! Periksa pengaturan Anda dan pasang NodeMCU Anda ke komputer melalui USB.





Langkah 2: Menyiapkan IDE

Sebelum melanjutkan dengan pengkodean, Anda perlu melakukan beberapa persiapan. Jika Anda belum melakukannya, atur Arduino IDE untuk mengenali papan NodeMCU Anda. Anda dapat menambahkannya ke daftar papan Anda melalui File > Preferensi .

Anda dapat menemukan penjelasan lebih rinci tentang langkah ini di artikel pengenalan NodeMCU kami.

Dua perpustakaan diperlukan untuk proyek ini. Navigasi ke Sketsa > Sertakan Perpustakaan > Kelola Perpustakaan . Pencarian untuk ESP8266WIFI oleh Ivan Grokhotkov dan menginstalnya. Pustaka ini ditulis untuk membuat koneksi Wi-Fi dengan papan NodeMCU.

Pencarian selanjutnya untuk IFTTTWebhook oleh John Romkey dan instal versi terbaru. Pustaka ini dirancang untuk menyederhanakan proses pengiriman webhook ke IFTTT.

Itu saja persiapan yang kita butuhkan, ayo kode!

Bagaimana Kode Akan Bekerja

Kami akan menggunakan ESP8266WIFI perpustakaan untuk membuat koneksi Wi-Fi. NS IFTTTWebhook perpustakaan membuat permintaan ke IFTTT---dalam hal ini, untuk memposting ke Twitter. Kemudian, instruksikan papan NodeMCU untuk tidur saat tidak digunakan untuk menghemat daya.

Ketika tombol ditekan, itu akan menghubungkan D0 dan RST pin. Ini mengatur ulang papan, dan prosesnya terjadi lagi.

Sebagian besar kode dalam tutorial ini cukup sederhana untuk pemula. Yang mengatakan, jika Anda memulai, Anda akan merasa jauh lebih mudah untuk memahami setelah mengikuti kami Panduan pemula Arduino .

Tutorial ini membahas kode dalam potongan untuk membantu pemahaman. Jika Anda ingin langsung berbisnis, Anda dapat menemukan kode lengkap di Pastebin . Perhatikan bahwa Anda masih perlu mengisi kredensial Wi-Fi dan IFTTT Anda dalam kode ini agar berfungsi!

Langkah 3: Menguji Deep Sleep

Untuk memulai, kami akan membuat tes sederhana untuk menunjukkan bagaimana tidur nyenyak bekerja. Buka sketsa baru di Arduino IDE. Masukkan dua potongan kode berikut.

#include
#include
#define ledPin 5
#define wakePin 16
#define ssid 'YOUR_WIFI_SSID'
#define password 'YOUR_WIFI_PASSWORD'
#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Di sini, kami menyertakan perpustakaan kami, bersama dengan mendefinisikan beberapa variabel yang kami perlukan dalam sketsa kami. Anda akan melihat bahwa ledPin dan wakePin diberi nomor berbeda di sini dibandingkan dengan diagram Fritzing di atas. NodeMCU memiliki pinout yang berbeda dengan papan Arduino. Ini bukan masalah, karena diagram praktis ini:

Sekarang buat fungsi pengaturan:

void setup() {
Serial.begin(115200);
while(!Serial) {
}
Serial.println(' ');// print an empty line before and after Button Press
Serial.println('Button Pressed');
Serial.println(' ');// print an empty line
ESP.deepSleep(wakePin);
}

Di sini, kami mengatur port serial kami, dan menggunakan loop sementara untuk menunggu sampai dimulai. Karena kode ini akan terpicu setelah menekan tombol reset, kami mencetak 'Tombol Ditekan' ke monitor serial. Kemudian, kami memberi tahu NodeMCU untuk tidur nyenyak sampai tombol menghubungkan bangun pin ke RST pin ditekan.

Terakhir, untuk pengujian, tambahkan ini ke lingkaran() metode:

void loop(){
//if deep sleep is working, this code will never run.
Serial.println('This shouldn't get printed');
}

Biasanya, sketsa Arduino menjalankan fungsi loop terus menerus setelah pengaturan. Karena kami mengirim papan untuk tidur sebelum penyiapan berakhir, loop tidak pernah berjalan.

Simpan sketsa Anda dan unggah ke papan tulis. Buka monitor serial dan Anda akan melihat 'Tombol Ditekan.' Setiap kali tombol dipicu, papan disetel ulang dan pesan dicetak lagi. Berhasil!

Catatan Tentang Monitor Serial

Anda mungkin telah memperhatikan beberapa karakter yang tidak masuk akal di monitor serial selama beberapa proyek Anda. Ini biasanya karena tidak menyetel monitor serial ke baud rate yang sama dengan Serial.begin(XXXX) kecepatan.

Banyak panduan menyarankan memulai koneksi serial pada baud rate 115200 untuk proyek seperti ini. Saya mencoba banyak kombinasi, dan semuanya memiliki berbagai tingkat omong kosong sebelum dan sesudah pesan serial. Menurut berbagai posting forum, ini bisa disebabkan oleh masalah kompatibilitas papan atau perangkat lunak yang salah. Karena itu tidak terlalu mempengaruhi proyek, saya memilih untuk berpura-pura itu tidak terjadi.

apa gunanya ponsel dual sim?

Jika Anda mengalami masalah dengan monitor serial, coba baud rate yang berbeda dan lihat mana yang paling cocok untuk Anda.

Langkah 4: Menghubungkan ke Wi-Fi

Sekarang buat fungsi untuk menghubungkan ke jaringan Wi-Fi Anda.

void connectToWifi() {
Serial.print('Connecting to: SSID NAME'); //uncomment next line to show SSID name
//Serial.print(ssid);
WiFi.begin(ssid, password);
Serial.println(' ');// print an empty line
Serial.print('Attempting to connect: ');
//try to connect for 10 seconds
int i = 10;
while(WiFi.status() != WL_CONNECTED && i >=0) {
delay(1000);
Serial.print(i);
Serial.print(', ');
i--;
}
Serial.println(' ');// print an empty line
//print connection result
if(WiFi.status() == WL_CONNECTED){
Serial.print('Connected.');
Serial.println(' ');// print an empty line
Serial.print('NodeMCU ip address: ');
Serial.println(WiFi.localIP());
}
else {
Serial.println('Connection failed - check your credentials or connection');
}
}

Metode ini mencoba menyambung ke jaringan Anda sepuluh kali dengan satu detik di antaranya. Berhasil atau gagalnya koneksi mencetak ke monitor serial.

Langkah 5: Memanggil Metode Koneksi

Saat ini, terhubungKeWifi() tidak pernah dipanggil. Tambahkan panggilan ke fungsi pengaturan Anda antara pesan 'Tombol Ditekan' dan mengirim papan ke mode tidur.

connectToWifi();

Jika Anda bertanya-tanya di mana ini cocok, seharusnya terlihat seperti ini:

Di bagian atas sketsa, ganti ssid dan kata sandi variabel dengan kredensial Wi-Fi Anda. Simpan sketsa Anda dan unggah ke papan.

Sekarang ketika papan boot akan mencoba untuk terhubung ke jaringan Wi-Fi Anda, sebelum kembali ke fungsi pengaturan. Sekarang, mari kita atur integrasi IFTTT.

Langkah 6: Menyiapkan Integrasi IFTTT

IFTTT memungkinkan integrasi dengan beragam layanan web. Kami menggunakannya dalam tutorial LED menara PC Wi-Fi kami untuk mengirim peringatan setiap kali email baru diterima. Hari ini kita akan menggunakannya untuk mengirim tweet dengan menekan sebuah tombol.

Navigasikan ke Applet Saya halaman, dan pilih Applet Baru

Klik + ini dan sambungkan ke Webhook . Pilih 'Terima permintaan web' dan beri nama acara Anda. Tetap sederhana ! Catat nama acaranya, Anda harus menambahkannya ke kode NodeMCU nanti. Klik 'Buat Pemicu' .

Sekarang pilih + itu . Cari Indonesia layanan dan hubungkan ke sana---Anda harus mengizinkannya untuk mengirim ke akun Twitter Anda. Pilih 'Posting tweet' dan pilih pesan Anda.

Layar berikutnya akan meminta Anda untuk meninjau applet. Klik selesai. Itu dia!

Langkah 7: Menambahkan Kredensial IFTTT ke Kode

Kembali ke Arduino IDE, Anda perlu menambahkan kunci API IFTTT dan nama acara ke variabel yang Anda tentukan. Untuk menemukan kunci API, navigasikan ke Applet Saya dan pilih Webhook di bawah Jasa tab. Pilih Dokumentasi untuk mengakses kunci Anda.

Salin kunci, dan nama acara ke dalam kode Anda, menggantikan nama sementara yang disiapkan untuk mereka.

#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Catatan, koma terbalik harus tetap, hanya mengganti teks.

Antara memanggil terhubungKeWifi() dan mengirim papan ke tidur, buat instance dari objek perpustakaan IFTTTWebhook. LED menandakan penyelesaian tugas sebelum tidur nyenyak dimulai lagi.

apakah mereka saling mengikuti twitter?
//just connected to Wi-Fi
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
//now sending board to sleep

Pemicu panggilan di kait objek menembakkan applet IFTTT, dan harus memposting ke akun Twitter Anda. Simpan sketsa Anda dan unggah. Anda sekarang harus memiliki tombol tweeting yang berfungsi penuh.

Jika tampaknya tidak berfungsi, periksa kode dan kredensial Anda dengan cermat untuk menemukan kesalahan. Jika Anda benar-benar buntu, dapatkan kode lengkap dari atas dan bandingkan dengan kode Anda sendiri.

Selesai! Bagaimana Anda Bisa Meningkatkannya Lebih Jauh?

Ini adalah versi dasar tombol Wi-Fi, tetapi ada banyak cara untuk memperbaikinya. Untuk kesederhanaan, koneksi USB digunakan untuk daya di sini. Baterai akan membuatnya sepenuhnya mobile, dan kasing yang menahan sirkuit akan menjadi proyek pencetakan 3D pemula yang sempurna.

Meskipun menggunakan tidur nyenyak, Anda mungkin menemukan baterai akan cepat habis. Ada banyak Kiat menghemat daya Arduino yang membantu dalam jenis proyek ini. Meskipun lebih sulit daripada tutorial ini, jika Anda membuat Arduino yang sadar daya sendiri dari awal, tombol Wi-Fi bertenaga baterai dapat bertahan selama berbulan-bulan!

Proyek ini akan membuat remote sempurna untuk aplikasi rumah pintar. Sudah ada cukup banyak applet otomatisasi rumah tersedia di IFTTT. Setelah Anda menguasai dasar-dasarnya, Anda dapat menggunakan hampir semua sensor atau sakelar untuk memicu hampir semua layanan yang dapat Anda bayangkan.

Kredit Gambar: Vadmary / foto deposit

Membagikan Membagikan Menciak Surel 6 Alternatif Audible: Aplikasi Audiobook Gratis atau Murah Terbaik

Jika Anda tidak suka membayar untuk buku audio, berikut adalah beberapa aplikasi hebat yang memungkinkan Anda mendengarkannya secara gratis dan legal.

Baca Selanjutnya
Topik-topik yang berkaitan
  • buatan sendiri
  • Arduino
  • Tutorial Proyek DIY
Tentang Penulis Ian Buckley(216 Artikel Diterbitkan)

Ian Buckley adalah jurnalis lepas, musisi, pemain, dan produser video yang tinggal di Berlin, Jerman. Ketika dia tidak menulis atau di atas panggung, dia mengutak-atik elektronik atau kode DIY dengan harapan menjadi ilmuwan gila.

More From Ian Buckley

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan