Modul WiFi ESP8266 untuk Dummies

Ikhtisar Modul WiFi ESP8266

ESP8266 adalah modul WiFi murah yang sangat berguna untuk mengendalikan perangkat melalui Internet. Ia dapat bekerja dengan micro-controller seperti Arduino atau dapat diprogram untuk bekerja sendiri.

Internet of Things (IoT) baru saja dibuat jauh lebih murah dan lebih mudah!

ESP8266 hadir dengan firmware yang dipasang dari pabrik yang memungkinkan Anda untuk mengontrolnya dengan "perintah AT" standar. Anda juga dapat dengan mudah membuat dan mengunggah kode Anda sendiri dan ini membuatnya sangat kuat dan fleksibel.

ESP8266 diluncurkan pada 2014 dan semakin populer. Hanya ada satu prosesor ESP8266 tetapi ditemukan pada banyak papan breakout yang berbeda. Ini semua berbeda dalam hal pin yang diekspos dan ukuran memori flash dll. Papan breakout ini telah berkembang pesat selama bertahun-tahun dan ada banyak informasi yang dapat ditemukan di web. Ini adalah berkah sekaligus kutukan karena sebagian dari saran itu sudah usang atau salah besar.

Sebagai hasilnya, saya butuh 3 hari sebelum saya bisa melakukan apa saja! Beberapa orang beruntung tetapi bagi saya itu adalah perjuangan untuk mendapatkan apa pun yang berfungsi. Kadang-kadang saya pikir saya telah melanggarnya tetapi dengan ketekunan itu selalu hidup kembali!

Saya akhirnya menyanyi dan menari dan ternyata lebih mudah dari yang saya kira!

Saya telah mengkonsolidasikan semua informasi berguna yang saya temukan di satu tempat dan saya pikir saya akan membagikan ini dalam sebuah instruksi. Mudah-mudahan ini akan membuat Anda cepat dan berjalan dengan semua fungsi dasar yang Anda perlukan.

Dalam instruksi ini sedang mencari di papan breakout ESP-01.

Namun pendekatan yang sama ini harus berlaku untuk sebagian besar (jika tidak semua) varian ESP di luar sana.

Langkah 1: ESP-01 secara singkat

  1. Ini mendukung protokol 802.11 b / g / n
  2. Itu dapat terhubung ke router Anda dan bekerja sebagai klien atau dapat menjadi titik akses itu sendiri atau keduanya!
  3. Ini adalah alamat IP dan dapat menjadi Server Web
  4. Versi "standar" memiliki 2 pin digital yang dapat digunakan untuk input atau output. Misalnya: untuk mengarahkan LED atau relay. Pin ini juga dapat digunakan untuk PWM. Versi lain memiliki lebih banyak pin yang terbuka. Misalnya ESP-12, yang merupakan opsi yang baik jika Anda membutuhkan lebih banyak pin. Apa pun cara pemrogramannya masih sama.
  5. Input analog juga tersedia pada chip ESP8266 (ADC / TOUT) tetapi tidak terhubung dengan ESP-01.
  6. Dapat dikombinasikan dengan Arduino atau dapat diprogram untuk bekerja sendiri
  7. Ada berbagai alat dan lingkungan pengembangan (IDE) untuk memprogramnya.
  8. Dan masih banyak lagi ....

Dalam demo ini, ESP8266 bertindak sebagai server Web yang menghosting Halaman Web yang dapat Anda berinteraksi dengan melalui WiFi.

Dengan demo ini Anda dapat memulai proyek otomasi rumah Anda sendiri dan mengendalikannya dari web!

Langkah 2: Apa yang Anda Butuhkan

Pertama mari kita lihat apakah kita bisa menjalankannya.

Banyak situs merekomendasikan menginstal ulang firmware dan menggunakan berbagai alat. Anda tidak perlu melakukan itu dulu.

Kami akan mengganti firmware dengan kode kami sendiri. Dalam instruksi lain: Panduan Sederhana untuk Mem-flash Firmware ESP8266 Anda, saya menunjukkan kepada Anda cara mengembalikannya ke versi pabrik yang diperbarui. Jika Anda hanya akan memprogram ESP8266 dengan kode Anda sendiri - seperti yang akan kami lakukan dalam demo ini - maka Anda tidak memerlukan firmware pabrik. Kode Anda adalah firmware.

Kami akan menggunakan Arduino IDE sebagai alat pemrograman tetapi kami tidak membutuhkan Arduino itu sendiri. ESP8266 memiliki semua fungsi yang kita butuhkan.

Catatan: bahwa setelah mengunggah kode Anda sendiri, ESP8266 Anda tidak akan menanggapi perintah AT lagi. Kode Anda telah menggantikan firmware. Dengan menggunakan kode Anda dan pustaka ESP8266 di Arduino IDE Anda akan memiliki akses ke serangkaian perintah yang lebih kaya. Lihat dokumentasi di sini: //www.arduino.cc/en/Reference/WiFi

Anda dapat mengembalikan firmware pada ESP8266 untuk kembali ke perintah AT jika diinginkan. Lihat instruksiku yang lain: Panduan Sederhana untuk Mem-flash Firmware ESP8266 Anda.

NB : Ini modul 3.3V dan bukan 5V. ESP-01 lebih kuat dari yang saya kira, tetapi Anda harus mengaturnya dengan benar, terutama jika Anda menggunakannya dengan 5V USB ke Serial Programmer atau micro-controller, jika tidak Anda bisa menggorengnya!

Apa yang Anda butuhkan:

  1. Tentu saja ESP8266 (gunakan varian ESP-01 atau sesuaikan kabel Anda)
  2. Papan tempat memotong roti
  3. 3.3V USB ke Serial Programmer seperti FTDI Basic (kadang-kadang dikenal sebagai UART: Universal Asynchronous Receiver / Transmitter). Beberapa datang dengan jumper untuk beralih antara 5V dan 3.3V.
  4. Breadboard Jumper Wires
  5. Catu Daya 3.3V yang terpisah. Anda memang membutuhkannya karena ESP8266 dapat mengunyah banyak mA (> 250mA kadang-kadang). Output 3.3V dari Serial Programmer atau Arduino tidak cukup. Tanpa catu daya terpisah, ESP Anda mungkin tidak menentu dan Anda akan membuang waktu mencoba mengunggah kode.
  6. Led, tombol push, resistor 330 ohm, resistor 10k ohm, .1µF kapasitor di seluruh catu daya Anda (sebagai praktik standar).
  7. Tambahkan Logic Level Converter ke sirkuit jika Anda menggunakan mikro-controller atau programmer FTDI di 5V

Jika Anda memiliki ESP8266 dengan port USB bawaan maka Anda tidak perlu melalui semua kerumitan ini. Wemos D1 Mini adalah alternatif yang bagus. Lihat ini: //www.wemos.cc/product/d1-mini.html

Langkah 3: Komponen Secara Lebih Detail

ESP-01

Saya mendapatkan ESP-01 saya dari: //netram.co.za/2720-wifi-serial-transceiver-module-esp8266.html

Anda dapat melihat berbagai versi di sini: //www.esp8266.com/wiki/doku.php?id=esp8266-module-family


Catu Daya Papan Breadboard

Catu daya yang baik tampaknya menjadi aspek penting untuk ESP8266. Catu daya papan tempat memotong roti benar-benar berguna, terutama ketika Anda sedang berhadapan dengan tegangan campuran. Yang ditunjukkan di sini memasok 3.3V dan 5.5V dan colok langsung ke papan tempat memotong roti Anda. Seharusnya saya sudah lama memilikinya! ESP8266 dapat mengunyah banyak mA (> 300mA pada suatu waktu). Jika ESP Anda reboot atau tampaknya tidak dapat diandalkan maka Anda memerlukan catu daya terpisah untuk ESP (pertahankan kesamaan). Juga sambungkan kapasitor pada 3.3V dan ground untuk meminimalkan lonjakan dan untuk menyediakan cadangan daya yang kecil.

//netram.co.za/938-breadboard-power-supply-5v33v.html


USB ke Serial programmer

Dapatkan yang mendukung 3.3V atau memiliki jumper 3.3V / 5V sebaliknya jika Anda hanya memiliki 5V maka Anda harus menggunakan Konverter Tingkat Logika dua arah di antara programmer dan ESP8266. FTDI Basic memiliki jumper 3.3V / 5V di bagian belakang:

//netram.co.za/2842-ftdi-basic-usb-to-ttl-programmer.html

//netram.co.za/2679-logic-level-converter-bi-directional.html


Konverter Tingkat Logika

Bi-Directional 5V & 3.3V. Ini hanya diperlukan jika Anda menggunakan programmer serial 5V.


Pelompat papan tempat memotong roti

Sertakan beberapa jumper JST karena mereka berguna untuk memasang ke modul dengan pin dan kemudian bergabung dengan mereka ke papan tempat memotong roti. Sertakan beberapa kabel pria ke wanita untuk tujuan ini. ESP-01 tidak ramah papan tempat memotong roti sehingga Anda membutuhkannya.

Langkah 4: Tata Letak Breadboard

Melihat papan tempat memotong roti, programmer FTDI adalah papan merah di atas dan ESP8266-01 di bagian bawah. Programmer FTDI hanya membutuhkan 3 kabel yang terhubung: kabel ground dan RX ke TX dan TX ke RX pada ESP. Di sebelah kiri adalah catu daya papan tempat memotong roti (biasanya akan dicolokkan ke papan tempat memotong roti).

NB: Kualitas catu daya ke ESP adalah salah satu faktor terpenting. Ada kapasitor kecil (.1uF) di 3.3V dan Ground untuk meminimalkan paku. Jika Anda memiliki masalah dengan pemrograman ESP Anda mungkin itu adalah catu daya Anda. Apa yang akan membantu adalah menambahkan kapasitor lain yang lebih besar di 3.3V dan Ground. misalnya: 10uF.

Langkah 5: Pinout ESP-01

Gambar di atas pinouts ESP8266 ditemukan di seluruh internet. Saya pikir itu mungkin berasal dari Neil "Buku Kolban tentang ESP8266". Ini adalah sumber yang fantastis dan tersedia sebagai unduhan pdf dari: //leanpub.com/ESP8266_ESP32. Panjangnya 400 halaman, diperbarui pada November 2016, dan jika Anda tertarik dengan pengembangan ESP8266 yang serius, inilah buku yang harus Anda dapatkan. Ini gratis tetapi berikan sumbangan jika Anda bisa.

Catatan kabel papan tempat memotong roti:

  • Kabel diperlihatkan menghubungkan ke bagian depan ESP-01 untuk kejelasan. Pasang mereka ke pin yang sama dari belakang. ESP-01 tidak ramah terhadap papan tempat memotong roti dan jumper konektor JST pria-wanita berguna untuk menghubungkannya.
  • GPIO 0 harus dianggap rendah untuk pemrograman. Ini harus dihapus jika Anda menghapus FTDI dan mengoperasikan ESP8266 pada catu dayanya sendiri.
  • CH_PD harus dijaga tinggi setiap saat.
  • Pin RESET terangkat tinggi dengan resistor 10k ohm dan dibawa ke ground oleh tombol RESET yang akan mem-boot ulang chip. Tekan RESET setiap kali sebelum Anda mengunggah kode, dan setiap kali Anda menghubungkan atau memutuskan GPIO 0. Tombol reset akan menghemat banyak kerumitan.

Saat Anda menghidupkan rangkaian, LED merah pada ESP-01 akan menyala dan LED biru akan berkedip sebentar. Kemudian ketika mengunggah kode ke ESP, LED biru akan berkedip terus menerus selama proses. Kombinasi LED lainnya menunjukkan bahwa ada masalah.

NB : Jika Anda ingin menghapus programmer Serial dan menjalankan ESP sendiri, pastikan Anda memutuskan koneksi GPIO 0 dari ground dan menekan tombol RESET jika ESP tidak dapat berfungsi dengan baik.

Langkah 6: Skema

Langkah 7: Menggunakan Arduino Alih-alih Programmer Serial

Anda juga dapat menggunakan Arduino alih-alih USB ke pemrogram Serial.

Beberapa hal yang perlu diperhatikan:

  1. Pada Arduino 5V output digital akan berada pada 5V dan ini bisa menggoreng ESP2866 Anda. Jadi, gunakan 3.3V Arduino atau chip Logic Converter
  2. Vout 3.3V pada Arduino tidak cukup untuk menggerakkan ESP8266 Anda dan Anda bisa mendapatkan hasil yang tidak dapat diandalkan. Lebih disukai gunakan suplai 3.3V lain.
  3. Sebagai praktik yang disarankan, selalu unggah sketsa kosong ke Arduino Anda sebelum menghubungkan perangkat lain untuk menghindari hasil yang tidak terduga. Sketsa kosong memiliki fungsi pengaturan kosong () dan loop ().
  4. Jika Anda menggunakan Arduino Uno hanya memiliki satu pasangan perangkat keras TX&RX. Untuk berkomunikasi dengan ESP8266 dan Serial Monitor secara bersamaan, Anda juga perlu menggunakan file include SoftwareSerial. Dulunya memiliki batasan pada baud rate tetapi sekarang secara teoritis dapat mendukung baud rate hingga 115200. Mega 2560 memiliki lebih banyak perangkat keras TX dan pin RX sehingga ini bisa menjadi cara yang lebih baik untuk pergi.
  5. Dan akhirnya dan yang terpenting : Perhatikan baik-baik pin TX dan RX pada Arduino. Anda akan melihat bahwa mereka memiliki panah di sebelahnya. Pin TX memiliki panah yang mengarah darinya. Apa yang dikatakannya adalah TX IN! Apa ini sebenarnya berarti bahwa pin TX sebenarnya adalah pin RX! Dan juga pin RX sebenarnya adalah pin TX! Jadi saat menggunakan Arduino sebagai adaptor serial dengan perangkat lain, Anda harus menghubungkan RX ke RX dan TX ke TX. Saya hanya menemukan nuansa ini setelah beberapa jam kesakitan! Kenapa-oh-mengapa mereka memberi label seperti ini?

Sementara saya mengajukan pertanyaan: mengapa ESP-01 diproduksi dengan sedikit pinouts berguna yang terpapar juga membuat saya bingung! Ini masih merupakan titik awal yang bagus tetapi jika Anda membutuhkan sesuatu yang lebih maka pergilah untuk ESP-12.

Untuk membuat semuanya menjadi sangat sederhana, cobalah ESP-12 dengan USB bawaan seperti:

//www.wemos.cc/product/d1-mini.html

Langkah 8: Pemrograman Menggunakan Arduino IDE

Ada berbagai alat untuk memprogram ESP8266 tetapi Arduino IDE (Lingkungan Pengembangan Terpadu) adalah yang paling mudah bagi kebanyakan orang.

Untuk memprogram ESP8266 dengan Arduino IDE Anda harus mengunduh versi terbaru jika Anda belum memilikinya dan kemudian menginstal dukungan ESP8266. Perhatikan bahwa Anda hanya menggunakan lingkungan pemrograman Arduino, Anda tidak memerlukan perangkat keras Arduino itu sendiri.

Untuk mengunduh Arduino IDE, buka: //www.arduino.cc/en/Main/Software

Mulai Arduino IDE dan pilih Boards Manager ...

Langkah 9: Atur ESP2866 Board Manager

Mulai Arduino IDE dan pilih Boards Manager di bawah Tools / Board ..

Langkah 10: Instal ESP2866 Board Manager

Temukan esp8266, pilih dan klik Instal.

Langkah 11: Pengaturan Preferensi Arduino

Buka File / Preferensi

Langkah 12: URL Pengelola Papan

Di bidang URL Pengelola Papan Tambahan, masukkan URL untuk paket ESP8266 yaitu:

//arduino.esp8266.com/stable/package_esp8266com_index.json

Langkah 13: Setup ESP8266 dalam IDE

Pilih "Modul ESP8266 Generik" dan kembali ke Manajer Papan lagi

Langkah 14: Opsi ESP8266

Atur opsi ESP-01 Anda. Pilih port COM yang sesuai sesuai dengan PC Anda.

Langkah 15: Berbicara dengan ESP8266

Jika Anda masih memiliki firmware asli pada ESP8266 Anda, Anda dapat mencoba berbicara dengannya dengan Serial Monitor.

  1. Buka Monitor Serial Arduino:
  2. Pilih baud rate yang sesuai yang biasanya 115200 tetapi bisa apa saja hingga 9600 tergantung pada firmware pada ESP.
  3. Juga pilih "Keduanya NL & CR". Yaitu: Line Baru dan Carriage Mengembalikan karakter setelah setiap "Kirim".
  4. Ketik AT dan tekan enter. ESP harus kembali dengan OK. Jika tidak tekan tombol RESET atau coba cabut kabel USB dan mulai lagi. Pastikan juga bahwa Anda memiliki port COM yang tepat dipilih. Juga jika Anda tidak memiliki firmware "standar" pada ESP Anda, itu mungkin tidak memahami set perintah AT. Ini belum tentu menjadi masalah karena Anda akan menimpa ini dengan kode Arduino nanti dalam instruksi ini.
  5. Ketik AT + GMR. Ini harus kembali dengan nomor versi firmware pada ESP Anda. Dalam instruksi lain saya menunjukkan kepada Anda bagaimana Anda dapat mengembalikan versi terbaru dari "pabrik" firmware (jika Anda mau).

Langkah 16: Kode Arduino ESP8266

Unduh file kode (ESP8266_LED_Control.zip), unzip dan buka di Arduino IDE.

Ubah pengaturan Router ke milik Anda. yaitu: ganti bidang SSID dan PASSWORD.

Pastikan papan tempat memotong roti Anda dipasang dengan benar, dan sambungkan kabel USB Anda ke Serial Programmer.

NB: Saat menangani Pin GPIO dalam kode Anda, Anda harus menggunakan nomor GPIO. misalnya: 2 untuk GPIO 2 dan bukan nomor pin fisik yang akan berbeda.

Lampiran

  • ESP8266_LED_Control.zip Unduh

Langkah 17: Mengunggah Kode Anda ke ESP8266

Pastikan Anda telah menutup SEMUA monitor port serial pada port yang sama, jika Anda menggunakannya. Misalnya: alat seperti CoolTerm. Buka Monitor Serial Arduino lagi, karena Anda perlu melihat alamat IP ESP setelah dimuat.

NB : Untuk mengunggah kode Anda, Anda harus memiliki ground GPIO 0. Anda dapat membiarkannya di sana saat menjalankan kode Anda di browser. Tekan tombol RESET sebelum setiap pemuatan. Jika unggahan gagal, periksa pengaturan Anda dan coba putuskan sambungan dan sambungkan kembali kabel USB. Coba Ctrl & U beberapa kali. Jika semuanya gagal, coba boot ulang PC Anda. Terkadang port COM agak kacau.

LED biru pada ESP akan berkedip jika kode berhasil diunggah. Kemajuan pengunggahan akan terlihat seperti gambar di atas.

NB : Jika Anda ingin menghapus programmer Serial dan menjalankan ESP sendiri, pastikan Anda memutuskan koneksi GPIO 0 dari ground dan menekan tombol RESET jika ESP tidak dapat berfungsi dengan baik.

Jika unggahan ESP8266 Anda bertingkah tidak menentu, tingkatkan catu daya Anda.

Langkah 18: Coba Lihat Apa yang Dilakukannya

Beralihlah ke Arduino Serial Monitor dan Anda akan melihat Alamat IP ESP. Anda juga dapat masuk ke Router dan memeriksa apa yang terhubung di sana. Perangkat akan muncul dalam daftar IP yang terhubung dengan nama seperti: ESP_1A6C4A.

Ketika Anda berada di router Anda, Anda selalu dapat memesan alamat IP ESP dan mengatur beberapa Port Forwarding sehingga Anda dapat terhubung ke ESP dari luar jaringan Anda - seperti kantor ..

Anda harus melihat sesuatu seperti di atas. Gunakan alamat IP itu di browser Anda.

Langkah 19: Ayo Coba

Setelah mengklik beberapa tautan mudah-mudahan Anda akan melihat LED menyala dan mati!

Anda juga melihat bahwa itu dapat melakukan PWM dan meredupkan LED.

ESP8266 juga dapat menangani Interupsi pada pin digital dan juga memiliki input analog. Pin input analog meskipun tidak terpapar pada ESP-01,

Internet Explorer berfungsi dengan baik tetapi untuk beberapa alasan FireFox tampaknya sangat lambat dengan ESP. Ini mungkin ada hubungannya dengan pengaturan header HTTP.

Catatan: bahwa setelah mengunggah kode Anda sendiri, ESP8266 Anda tidak akan menanggapi perintah AT lagi. Kode Anda telah menggantikan firmware. Dengan menggunakan kode Anda dan pustaka ESP8266 di Arduino IDE Anda akan memiliki akses ke serangkaian perintah yang lebih kaya. Lihat dokumentasi di sini: //www.arduino.cc/en/Reference/WiFi.

Anda dapat mengembalikan firmware pada ESP8266 untuk kembali ke perintah AT jika diinginkan. Lihat instruksiku yang lain: Panduan Sederhana untuk Mem-flash Firmware ESP8266 Anda.

Langkah 20: Sumber Daya ESP

"Buku Kolban tentang ESP8266" yang diperbarui pada November 2016 adalah untuk penggemar serius.

Panjangnya 470+ halaman dan memiliki detail yang luar biasa. Anda bisa mendapatkannya secara gratis tetapi berikan sumbangan jika Anda bisa.

//leanpub.com/ESP8266_ESP32

Dia sekarang telah memisahkan ESP32 dan menerbitkan buku baru:

//leanpub.com/kolban-ESP32

ESP32

"Seperti ESP8266, ESP32 adalah mikrokontroler yang kompatibel dengan WiFi, plus itu menambah dukungan untuk Bluetooth energi rendah (yaitu BLE, BT4.0, Bluetooth Smart), dan hampir 30 pin I / O."

Lihat: //www.sparkfun.com/products/13907

Situs ESP

//www.esp8266.com/wiki/doku.php?id=esp8266-module-family

//www.esp8266.com/

//iotbytes.wordpress.com/esp8266-pinouts/

//espressif.com/en/products/hardware/esp8266ex/resources


AT Commands

//www.itead.cc/wiki/ESP8266_Serial_WIFI_Module#AT_Commands

//espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf


Manajer Papan Arduino

//randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/

//github.com/esp8266/Arduino


Catatan tentang Memutar Firmware:

Saya telah menerbitkan instruksi yang menunjukkan kepada Anda cara mem-flash firmware pabrik ke ESP8266 Anda.

Lihat: //www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP8266-Firmware/

Artikel Terkait