ESP8266 WiFi Modul untuk Dummies

Gambaran Keseluruhan Modul WiFi ESP8266

ESP8266 adalah modul WiFi yang sangat berguna, murah untuk mengawal peranti melalui Internet. Ia boleh berfungsi dengan pengawal mikro seperti Arduino atau ia boleh diprogramkan untuk berfungsi sendiri.

Internet Perkara (IoT) baru saja menjadi lebih murah dan lebih mudah!

ESP8266 dilengkapi dengan firmware dipasang kilang yang membolehkan anda untuk mengawalnya dengan standard "AT commands". Anda juga boleh dengan mudah membuat dan memuat naik kod anda sendiri dan ini menjadikannya sangat kuat dan fleksibel.

ESP8266 dilancarkan pada tahun 2014 dan berkembang pesat dalam populariti. Terdapat hanya satu pemproses ESP8266 tetapi ia terdapat di banyak papan pelarian yang berbeza. Ini semua berbeza dari segi pin yang terdedah dan saiz memori denyar dan lain-lain. Papan pelarian ini telah berkembang pesat selama bertahun-tahun dan terdapat banyak maklumat yang terdapat di web. Ini adalah satu rahmat dan kutukan kerana beberapa nasihat sudah lapuk atau salah.

Akibatnya saya mengambil masa 3 hari sebelum saya dapat melakukan apa-apa! Sesetengah orang bernasib baik tetapi bagi saya ia adalah pertempuran untuk mendapatkan apa-apa kerja. Kadang-kadang saya fikir saya telah mematahkannya tetapi dengan ketabahan tertentu ia sentiasa kembali hidup!

Saya akhirnya berjaya menyanyi dan menari dan ternyata lebih mudah daripada yang saya fikir!

Saya telah menyatukan semua maklumat berguna yang saya dapati ke dalam satu tempat dan saya fikir saya akan berkongsi ini dalam pengajaran. Ini diharapkan dapat membawa anda dengan cepat dan berjalan dengan semua fungsi asas yang anda perlukan.

Dalam pengajaran ini, mereka sedang melihat papan pelarian ESP-01.

Pendekatan yang sama ini bagaimanapun terpakai untuk kebanyakan (jika tidak semua) varian ESP di luar sana.

Langkah 1: ESP-01 secara ringkas

  1. Ia menyokong protokol 802.11 b / g / n
  2. Ia boleh menyambung ke penghala anda dan berfungsi sebagai pelanggan atau ia boleh menjadi pusat akses sendiri atau kedua-duanya!
  3. Ia adalah alamat IP dan boleh menjadi Pelayan Web
  4. Versi "standard" mempunyai 2 pin digital yang boleh digunakan untuk input atau output. Contohnya: untuk memandu LED atau geganti. Pin ini juga boleh digunakan untuk PWM. Versi lain mempunyai lebih banyak pin yang terdedah. Contohnya ESP-12, yang merupakan pilihan yang baik jika anda memerlukan lebih banyak pin. Sama ada pengaturcaraan masih sama.
  5. Input analog juga boleh didapati di cip ESP8266 (ADC / TOUT) tetapi ia tidak dipasang pada ESP-01.
  6. Ia boleh digabungkan dengan Arduino atau ia boleh diprogramkan untuk berfungsi sendiri
  7. Terdapat pelbagai peralatan dan persekitaran pembangunan (IDE's) untuk memprogramnya.
  8. Dan ia mempunyai banyak lagi ....

Dalam demo ini ESP8266 berfungsi sebagai Webserver hosting Laman Web yang boleh anda berinteraksi dengan lebih dari WiFi.

Dengan demo ini, anda boleh memulakan projek automasi rumah anda sendiri dan mengawalnya dari web!

Langkah 2: Apa yang Anda Perlu

Pertama mari kita lihat jika kita boleh mendapatkannya dan berjalan.

Banyak laman web mengesyorkan semula kilat firmware dan menggunakan pelbagai alat. Anda tidak perlu berbuat demikian.

Kami akan menggantikan firmware dengan kod kami sendiri. Dalam satu lagi yang boleh dibimbing: Panduan Ringkas untuk Berkedip Firmware ESP8266 Anda Saya menunjukkan kepada anda bagaimana untuk membalikkannya kembali ke versi kilang yang dikemas kini. Sekiranya anda hanya akan memprogramkan ESP8266 dengan kod anda sendiri - seperti yang akan kami lakukan dalam demo ini - maka anda tidak perlu firmware kilang. Kod anda ialah firmware.

Kami akan menggunakan Arduino IDE sebagai alat pengaturcaraan tetapi kami tidak memerlukan Arduino sendiri. ESP8266 mempunyai semua fungsi yang kami perlukan.

Nota: bahawa selepas memuat naik kod anda sendiri, ESP8266 anda tidak akan memberi respons kepada arahan AT lagi. Kod anda telah menggantikan firmware. Menggunakan kod dan pustaka ESP8266 di Arduino IDE, anda akan mempunyai akses kepada set perintah yang lebih kaya. Lihat dokumentasi di sini: //www.arduino.cc/en/Reference/WiFi

Anda boleh memulihkan firmware pada ESP8266 untuk kembali ke arahan AT jika anda mahu. Lihat instruksi saya yang lain: Panduan Ringkas untuk Menggali Firmware ESP8266 Anda.

NB : Ia adalah modul 3.3V dan bukan 5V. ESP-01 lebih mantap daripada yang saya fikir tetapi anda perlu menetapkannya dengan betul, terutamanya jika anda menggunakannya dengan USB 5V untuk Pengaturcara Serial atau pengawal mikro, jika tidak, anda boleh goreng!

Apa yang anda perlukan:

  1. Sudah tentu ESP8266 (menggunakan varian ESP-01 atau menyesuaikan pendawaian anda dengan sewajarnya)
  2. Breadboard
  3. 3.3V USB ke Programmer Serial seperti FTDI Basic (kadang-kadang dikenali sebagai UART: Universal Asynchronous Receiver / Transmitter). Ada yang datang dengan jumper untuk bertukar antara 5V dan 3.3V.
  4. Wayar Jumper Breadboard
  5. Bekalan Kuasa 3.3V berasingan. Anda memerlukan satu seperti ESP8266 boleh mengunyah banyak mA (> 250mA pada masa-masa). Output 3.3V dari Programmer Serial atau Arduino tidak mencukupi. Tanpa bekalan kuasa yang berasingan ESP anda mungkin tidak menentu dan anda akan membuang masa untuk memuat naik kod.
  6. Led, butang tekan, 330 ohm perintang, 10k ohm perintang, kapasitor .1μF merentas bekalan kuasa anda (sebagai amalan piawai).
  7. Tambah Penukar Tahap Logik ke dalam litar jika anda menggunakan pengawal mikro atau pengatur FTDI pada 5V

Sekiranya anda mempunyai ESP8266 dengan port USB yang dibina maka anda tidak perlu melalui mana-mana kerumitan ini. The Wemos D1 Mini adalah alternatif yang baik. Lihat ini: //www.wemos.cc/product/d1-mini.html

Langkah 3: Komponen dalam Butiran Lebih Lanjut

ESP-01

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

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


Bekalan Kuasa Breadboard

Bekalan kuasa yang baik seolah-olah menjadi aspek penting untuk ESP8266. Bekalan kuasa papan roti sangat berguna, terutamanya apabila anda berhadapan dengan voltan bercampur. Yang ditunjukkan di sini membekalkan 3.3V dan 5.5V dan memasukkan terus ke dalam papan roti anda. Saya sepatutnya mendapat masa yang lama! ESP8266 boleh mengunyah banyak mA (> 300mA pada masa-masa). Sekiranya ESP anda reboot atau nampaknya tidak boleh dipercayai maka anda memerlukan bekalan kuasa berasingan untuk ESP (pastikan asas yang sama). Juga sambungkan kapasitor di seluruh 3.3V dan tanah untuk meminimumkan pancang dan untuk menyediakan takungan kuasa yang kecil.

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


USB ke pengaturcara Serial

Dapatkan satu yang menyokong 3.3V atau mempunyai jumper 3.3V / 5V sebaliknya jika anda hanya mempunyai 5V maka anda harus menggunakan Penukar Aras Logik dua arah di antara pengaturcara dan ESP8266. FTDI Basic mempunyai pelompat 3.3V / 5V di belakang:

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

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


Penukar Tahap Logik

Bi-Directional 5V & 3.3V. Ini hanya diperlukan jika anda menggunakan pengaturcara bersiri 5V.


Pelompat Breadboard

Sertakan beberapa jumper JST kerana mereka berguna untuk memasukkan ke modul dengan pin dan kemudian menyambungkannya ke papan roti. Termasuk beberapa kabel lelaki untuk wanita untuk tujuan ini. ESP-01 tidak mesra roti supaya anda memerlukannya.

Langkah 4: Tata Letak Breadboard

Melihat panel papan, pengatur FTDI adalah papan merah di atas dan ESP8266-01 di bahagian bawah. Programmer FTDI hanya memerlukan 3 wayar yang disambungkan: wayar tanah dan RX ke TX dan TX ke RX pada ESP. Di sebelah kiri ialah bekalan kuasa papan roti (ia biasanya akan dimasukkan ke dalam papan roti).

NB: Kualiti bekalan kuasa kepada ESP adalah salah satu faktor yang paling penting. Terdapat kapasitor kecil (.1uF) di seluruh 3.3V dan Ground untuk meminimumkan pancang. Sekiranya anda menghadapi masalah dengan pengaturcaraan ESP anda mungkin bekalan kuasa anda. Apa yang akan membantu ialah menambah kapasitor yang lebih besar di seluruh 3.3V dan Ground. contohnya: 10uF.

Langkah 5: Pinouts ESP-01

Gambar di atas pinouts ESP8266 didapati di seluruh jaring. Saya fikir ia mungkin berasal dari Neil "Buku Kolban pada ESP8266". Ini adalah sumber yang hebat dan boleh didapati sebagai muat turun pdf dari: //leanpub.com/ESP8266_ESP32. Ia 400 halaman panjang, telah dikemas kini pada bulan November 2016, dan jika anda menjadi pembangunan ESP8266 yang serius maka ini adalah buku untuk mendapatkannya. Ia percuma tetapi membuat sumbangan jika anda boleh.

Nota pendawaian Breadboard:

  • Wayar diperlihatkan bersambung ke hadapan ESP-01 untuk kejelasan. Pasang mereka ke pin yang sama dari belakang. ESP-01 bukan penyambung papan roti dan penyambung JST lelaki-wanita jumpelang adalah berguna untuk menyambungnya.
  • GPIO 0 mesti dipertahankan rendah untuk pengaturcaraan. Ini perlu dikeluarkan jika anda mengeluarkan FTDI dan mengendalikan ESP8266 dengan bekalan kuasa sendiri.
  • CH_PD perlu diadakan pada setiap masa.
  • PIN RESET dipegang tinggi dengan perintang 10k ohm dan dibawa ke tanah oleh butang RESET yang akan reboot cip itu. Tekan RESET setiap kali sebelum anda memuat naik kod, dan setiap kali anda menyambung atau memutuskan sambungan GPIO 0. Butang semula akan menjimatkan banyak masalah.

Apabila anda menghidupkan litar sehingga LED merah pada ESP-01 harus menyala dan LED biru harus berkelip sebentar. Kemudian apabila memuat naik kod ke ESP, LED biru harus berkelip secara berterusan semasa proses. Mana-mana kombinasi LED lain mencadangkan bahawa terdapat masalah.

NB : Jika anda mahu mengeluarkan pengaturcara Serial dan jalankan ESP sendiri, pastikan anda mencabut GPIO 0 dari tanah dan tekan butang RESET jika tidak, ESP mungkin tidak berfungsi dengan baik.

Langkah 6: Skematik

Langkah 7: Menggunakan Arduino Daripada Programmer Serial

Anda juga boleh menggunakan Arduino dan bukannya USB anda untuk pengaturcara Serial.

Beberapa perkara yang perlu diperhatikan:

  1. Pada Arduino 5V output digital akan berada pada 5V dan ini boleh memakan ESP2866 anda. Jadi sama ada menggunakan Arduino 3.3V atau cip Logik Converter
  2. Vout 3.3V pada Arduino tidak mencukupi untuk memandu ESP8266 anda dan anda boleh mendapatkan hasil yang tidak boleh dipercayai. Sebaiknya gunakan bekalan 3.3V yang lain.
  3. Oleh kerana amalan yang disyorkan sentiasa memuat naik lakaran kosong kepada Arduino anda sebelum menyambungkan peranti lain untuk mengelakkan sebarang hasil yang tidak dapat diramalkan. Lakaran kosong mempunyai fungsi persediaan kosong () dan gelung ().
  4. Sekiranya anda menggunakan Arduino Uno, ia hanya mempunyai satu pasangan TX & RX perkakasan. Untuk berkomunikasi dengan kedua-dua ESP8266 dan Monitor Serial pada masa yang sama anda juga perlu menggunakan perisian termasuk Fail. Ia digunakan untuk mempunyai had pada kadar baud tetapi kini secara teorinya boleh menyokong kadar baud sehingga 115200. A Mega 2560 mempunyai lebih banyak perkakasan TX dan RX pin supaya ini boleh menjadi cara yang lebih baik untuk pergi.
  5. Dan akhirnya dan pentingnya : Lihatlah pada TX dan RX pin pada Arduino. Anda akan melihat bahawa mereka mempunyai anak panah di sebelahnya. PIN TX mempunyai anak panah menunjuk daripadanya. Apa yang dikatakan ini adalah TX IN! Apa yang dimaksudkan dengan benar ialah pin TX sebenarnya adalah pin RX! Dan sebaliknya pin RX sebenarnya adalah pin TX! Jadi apabila menggunakan Arduino sebagai penyesuai bersiri dengan peranti lain, anda mesti menyambung RX ke RX dan TX ke TX. Saya hanya mendapati nuansa ini selepas beberapa jam kesakitan! Mengapa-oh-mengapa mereka melabelnya seperti ini?

Walaupun saya bertanya: kenapa ESP-01 dihasilkan dengan begitu sedikit pinouts berguna yang terdedah juga menghilangkan saya! Ia masih merupakan titik permulaan yang baik tetapi jika anda memerlukan sesuatu yang lebih maka pergi untuk ESP-12.

Untuk membuat perkara yang sangat mudah, cuba ESP-12 dengan USB yang dibina seperti:

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

Langkah 8: Pengaturcaraan Menggunakan IDE Arduino

Terdapat pelbagai alat untuk memprogramkan ESP8266 tetapi Arduino IDE (Persekitaran Pembangunan Bersepadu) adalah yang paling mudah untuk kebanyakan orang.

Untuk memprogram ESP8266 dengan Arduino IDE, anda perlu memuat turun versi terkini jika anda belum memilikinya dan kemudian memasang sokongan ESP8266. Ambil perhatian bahawa anda hanya menggunakan persekitaran pengaturcaraan Arduino anda tidak memerlukan sebarang perkakasan Arduino itu sendiri.

Untuk memuat turun Arduino IDE pergi ke: //www.arduino.cc/en/Main/Software

Mulakan IDE Arduino dan pilih Pengurus Papan ...

Langkah 9: Persediaan Pengurus Lembaga ESP2866

Mulakan Arduino IDE dan pilih Pengurus Papan di bawah Alat / Papan ..

Langkah 10: Pasang Pengurus Lembaga ESP2866

Cari esp8266, pilih dan klik Pasang.

Langkah 11: Persediaan Keutamaan Arduino

Pergi ke Fail / Pilihan

Langkah 12: URL Pengurus Lembaga

Dalam medan URL Pengurus Papan Tambahan, masukkan URL untuk pakej ESP8266 iaitu:

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

Langkah 13: Persediaan ESP8266 dalam IDE

Pilih "Generik ESP8266 Module" dan kembali ke Pengurus Papan sekali lagi

Langkah 14: Opsyen ESP8266

Persediaan anda ESP-01 pilihan. Pilih port COM yang sesuai mengikut PC anda.

Langkah 15: Bercakap dengan ESP8266

Jika anda masih mempunyai firmware asal pada ESP8266 anda boleh cuba bercakap dengan Monitor Serial.

  1. Buka Monitor Serial Arduino:
  2. Pilih kadar baud yang sesuai yang biasanya 115200 tetapi boleh menjadi apa-apa hingga 9600 bergantung pada firmware pada ESP.
  3. Juga pilih "Kedua NL & CR". Ie: aksara Line Baru dan Carriage Return selepas setiap "Hantar".
  4. Taip AT dan tekan enter. ESP perlu kembali dengan OK. Jika tidak tekan butang RESET atau cuba cabut kabel USB dan mula semula. Pastikan juga bahawa anda mempunyai port COM kanan yang dipilih. Juga jika anda tidak mempunyai firmware "standard" di ESP anda, ia mungkin tidak memahami set arahan AT. Ini tidak semestinya masalah kerana anda akan mengganti ini dengan kod Arduino kemudian dalam pengajaran ini.
  5. Taip AT + GMR. Ini harus dikembalikan dengan nombor versi firmware pada ESP anda. Dalam pengajaran yang lain saya menunjukkan kepada anda bagaimana anda dapat mengembalikan versi terkini firmware "kilang" (jika anda mahu).

Langkah 16: ESP8266 Arduino Code

Muat turun fail kod (ESP8266_LED_Control.zip), unzip dan bukanya di IDE Arduino.

Tukar tetapan Penghala kepada anda. iaitu: menukar medan SSID dan PASSWORD.

Pastikan papan roti anda disiapkan dengan betul, dan hubungkan kabel USB anda ke Programmer Serial.

NB: Apabila menangani GPIO Pins dalam kod anda, anda harus menggunakan nombor GPIO. contohnya: 2 untuk GPIO 2 dan bukan nombor pin fizikal yang akan berbeza.

Lampiran

  • ESP8266_LED_Control.zip Muat turun

Langkah 17: Memuat naik Kod Anda ke ESP8266

Pastikan anda telah menutup SEMUA monitor port Serial di port yang sama, jika anda menggunakannya. Contohnya: alat seperti CoolTerm. Buka Monitor Serial Arduino sekali lagi, kerana anda perlu melihat alamat IP ESP selepas memuatkannya.

NB : Untuk memuat naik kod anda, anda mesti mempunyai GPIO 0 dengan alasan. Anda boleh meninggalkannya di sana semasa menjalankan kod anda dalam penyemak imbas. Tekan butang RESET sebelum setiap beban. Jika muat naik gagal, periksa tetapan anda dan cuba putuskan sambungan dan sambung semula kabel USB. Cuba Ctrl & U beberapa kali. Jika semuanya gagal cuba reboot PC anda. Kadang-kadang port COM mendapat sedikit merosakkan.

LED Biru di ESP harus berkelip jika kod itu dimuat naik dengan jayanya. Kemajuan upload harus kelihatan seperti gambar di atas.

NB : Jika anda mahu mengeluarkan pengaturcara Serial dan jalankan ESP sendiri, pastikan anda mencabut GPIO 0 dari tanah dan tekan butang RESET jika tidak, ESP mungkin tidak berfungsi dengan baik.

Jika muat naik ESP8266 anda berkelakuan tidak menentu, tingkatkan bekalan kuasa anda.

Langkah 18: Lihatlah Apa Yang Dilakukan

Beralih ke Arahan Serial Arduino dan anda harus melihat Alamat IP ESP. Anda juga boleh log masuk ke Router anda dan periksa apa yang disambungkan di sana. Peranti ini akan muncul dalam senarai IP bersambung dengan nama seperti: ESP_1A6C4A.

Walaupun anda berada dalam penghala anda, anda sentiasa boleh menyimpan alamat IP ESP dan menyediakan beberapa Port Forwarding supaya anda boleh menyambung ke ESP dari luar rangkaian anda - seperti pejabat ..

Anda harus melihat sesuatu seperti di atas. Gunakan alamat IP tersebut di pelayar anda.

Langkah 19: Mari Cuba Ini

Selepas mengklik pada beberapa pautan, anda akan dapat melihat LED yang berlaku dan dimatikan!

Anda juga melihat bahawa ia boleh melakukan PWM dan meredupkan LED.

ESP8266 juga boleh mengendalikan Interrupt pada pin digital dan juga mempunyai input analog. Pin input analog walaupun tidak didedahkan pada ESP-01,

Internet Explorer berfungsi dengan baik tetapi atas sebab tertentu FireFox kelihatan sangat perlahan dengan ESP. Ini mungkin ada kaitan dengan persediaan pengepala HTTP.

Nota: bahawa selepas memuat naik kod anda sendiri, ESP8266 anda tidak akan memberi respons kepada arahan AT lagi. Kod anda telah menggantikan firmware. Menggunakan kod dan pustaka ESP8266 di Arduino IDE, anda akan mempunyai akses kepada set perintah yang lebih kaya. Lihat dokumentasi di sini: //www.arduino.cc/en/Reference/WiFi.

Anda boleh memulihkan firmware pada ESP8266 untuk kembali ke arahan AT jika anda mahu. Lihat instruksi saya yang lain: Panduan Ringkas untuk Menggali Firmware ESP8266 Anda.

Langkah 20: Sumber ESP

"Buku Kolban pada ESP8266" yang dikemaskini pada November 2016 adalah untuk peminat yang serius.

Ia adalah 470 + halaman panjang dan mempunyai jumlah terperinci yang luar biasa. Anda boleh mendapatkannya secara percuma tetapi membuat sumbangan jika anda boleh.

//leanpub.com/ESP8266_ESP32

Beliau kini telah memisahkan ESP32 dan menerbitkan sebuah buku baru:

//leanpub.com/kolban-ESP32

ESP32

"Seperti ESP8266, ESP32 adalah mikropengawal serasi WiFi, ditambah menambah sokongan untuk tenaga rendah Bluetooth (iaitu BLE, BT4.0, Bluetooth Smart), dan hampir 30 I / O pin."

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

Tapak 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


Pengurus Papan Arduino

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

//github.com/esp8266/Arduino


Nota mengenai Berkelip Firmware:

Saya telah menerbitkan sebuah pengajaran yang menunjukkan kepada anda bagaimana untuk melancarkan firmware kilang ke ESP8266 anda.

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

Artikel Berkaitan