Sambungan Esp 12 ke Arduino. Cara membina litar kawalan pada Arduino dan ESP8266 dengan pemasa tersuai, dikawal melalui Wi-Fi. Perisian tegar Arduino melalui WiFi

Modul ESP8266 akan dikonfigurasikan sebagai titik bebas akses WiFi. Mod operasi ini tidak memerlukan pengikatan kepada yang sedia ada rangkaian WiFi. Untuk menyambung, telefon pintar mesti menyambung ke pusat akses yang dibuat.

Langkah 1: Buat Projek GUI

Langkah 4: Sediakan ESP8266

Modul ESP8266 memerlukan konfigurasi. Mungkin modul anda sudah ada tetapan yang diperlukan secara lalai, tetapi lebih baik untuk menyemaknya.

Perkara yang perlu diperiksa:

  • Modul ini mempunyai perisian tegar yang menyokong versi arahan AT tidak lebih rendah daripada v0.40;
  • Modul ini dikonfigurasikan untuk kelajuan operasi 115200.

Langkah 5: Sambungkan ESP8266 ke Arduino Uno

Sambungkan ESP8266 ke Arduino Uno mengikut rajah di bawah. Sila ambil perhatian bahawa pin RX-TX disambungkan dengan rambut silang.

Oleh kerana tahap isyarat modul ESP8266 ialah 3.3V dan Arduino ialah 5V, adalah perlu untuk menggunakan pembahagi voltan perintang untuk menukar tahap isyarat.


Langkah 6: Muat naik lakaran ke Arduino.

Lakaran itu dimuat naik ke Arduino dengan cara biasa. Walau bagaimanapun, kerana modul ESP8266 disambungkan ke pin 0 dan 1, pengaturcaraan menjadi mustahil. Pengkompil akan menunjukkan ralat.

Sebelum pengaturcaraan, putuskan sambungan wayar ke ESP8266 daripada pin 0 dan 1. Lakukan pengaturcaraan. Kemudian letakkan semula kenalan di tempatnya. Tekan butang set semula Arduino.

Catatan: Tanda pertama bahawa pengaturcaraan berjaya ialah LED biru pada modul ESP8266 berkelip selama setengah saat serta-merta selepas penetapan semula. LED biru berkelip bermakna data sedang ditukar antara Arduino dan ESP8266. Dalam separuh saat ini, Arduino mengkonfigurasi ESP8266 untuk berfungsi sebagai titik akses.

Langkah 7. Sambung daripada aplikasi mudah alih.

Jika permulaan berjaya dan anda melihat arahan terakhir AT+CIPSERVER=1.6377, tetapi apabila anda cuba menyambung dengan aplikasi mudah alih Ralat berlaku, kemungkinan modul ESP8266 mempunyai perisian tegar yang sudah lapuk.

Semak kapasiti memori ESP8266 anda. Ini juga boleh dilakukan dengan melihat tanda cip memori, yang terletak pada papan di sebelah cip ESP8266. Jika saiz memori ialah 4 Mbit atau kurang (cip 25Q40 dipasang), kemungkinan besar modul ini tidak akan berfungsi sebagai titik akses untuk RemoteXY.

Periksa bekalan kuasa ESP8266

Mungkin juga ESP8266 anda tidak mempunyai kuasa yang mencukupi daripada bekalan kuasa. Sesetengah papan Arduino mempunyai pengatur voltan 3.3 V yang lemah, yang tidak mampu menyampaikan 200-300 mA dalam mod puncak. Dalam kes ini, dalam Monitor Bersiri anda juga akan melihat pemecahan dalam urutan arahan.

Semak ciri telefon pintar anda

Sesetengah model telefon pintar Android mempunyai ciri untuk menyambungkan pusat akses WiFi dan pusat akses mungkin tidak dihidupkan secara automatik. Cuba sambungkan ke pusat akses secara manual terlebih dahulu menggunakan tetapan sistem. Selepas itu, cuba sambungkan ke peranti daripada apl RemoteXY. Jika dalam kes ini sambungan diwujudkan, maka telefon pintar anda mempunyai ciri ini. Beritahu kami mengenainya.

Dengan modul Wi-Fi.

Arduino Uno WiFi menyediakan segala-galanya untuk kerja yang selesa dengan mikropengawal: 14 input/output digital (6 daripadanya boleh digunakan sebagai output PWM), 6 input analog, penyambung USB, penyambung kuasa, penyambung ICSP dan butang set semula mikropengawal.

Kemuncak papan ialah modul WiFi ESP8266, yang membolehkan Arduino bertukar maklumat dengan modul lain melalui rangkaian tanpa wayar Piawaian 802.11 b/g/n.

ESP8266 membolehkan anda menyalakan papan Arduino tanpa menggunakan kabel USB dalam mod OTA (Firmware Over The Air).

Semakan video lembaga

Sambungan dan persediaan

Untuk bermula dengan Papan Arduino Uno WiFi masuk sistem operasi Windows memuat turun dan memasang persekitaran pembangunan bersepadu Arduino pada komputer anda - Arduino IDE.

Ada masalah?

Menyediakan modul WiFi

Perisian tegar Arduino melalui WiFi

Arduino Uno WiFi mempunyai satu lagi dalam stok bonus bagus- keupayaan untuk memuat naik lakaran tanpa menggunakan kabel USB dalam mod OTA (Firmware Over The Air). Mari kita lihat lebih dekat bagaimana untuk melakukan ini.


Untuk melakukan ini, anda perlu memasukkan menu: Alatan Pelabuhan dan pilih port yang dikehendaki.

Memandangkan kami memancarkan Arduino melalui WiFi, papan akan ditentukan sebagai peranti jauh dengan alamat IP

Persekitaran dikonfigurasikan, papan disambungkan. Anda boleh meneruskan untuk memuat naik lakaran. Arduino IDE mengandungi senarai besar contoh siap sedia, di mana anda boleh melihat penyelesaian kepada masalah. Mari kita pilih antara contoh LED berkelip - lakaran "Kelip".
Kilat papan dengan mengklik pada ikon muat turun program.
Selepas but, LED akan mula berkelip sekali sesaat. Ini bermakna semuanya berjaya.

Sekarang anda boleh teruskan ke contoh penggunaan.

Contoh penggunaan

Pelayan web

Mari sediakan pelayan web mudah yang akan memaparkan halaman dengan nilai semasa input analog.

web-server.ino /* Contoh pelayan web ringkas yang berjalan pada Arduino Uno WiFi. Pelayan memaparkan nilai pada input analog dan mengemas kini maklumat setiap dua saat. Hubungi pelayan di http:// /arduino/webserver/ Sila ambil perhatian: contoh hanya berfungsi dengan Arduino Uno WiFi Developer Edition. */#termasuk #termasuk void setup() ( Wifi.begin (); Wifi.println ( "Pelayan Web sudah siap"); // Paparkan mesej tentang permulaan pelayan dalam konsol wifi) void loop() ( while (Wifi.available () ) ( process(Wifi) ; ) delay(50); ) void process(WifiData client) ( String command = client.readStringUntil ("/" ); if (command = = "pelayan web" ) ( Pelayan Web(pelanggan) ; ) ) batal Pelayan Web(pelanggan WifiData) ( klien.println("HTTP/1.1 200 OK" ); klien.println("Jenis-Kandungan: teks/html" ); klien. println ("Sambungan: tutup" ); // Pengepala yang menentukan tempoh muat semula halaman dalam beberapa saat client.println(); client.println(" " ) ; // Bentuk halaman client.println( " Pelayan Web UNO WIFI " ); client.print( "

Contoh nilai keluaran daripada pin analog

"
); client.print("
    " ); untuk (int analogChannel = 0 ; analogChannel< 4 ; analogChannel++ ) { int sensorReading = analogRead(analogChannel) ; client.print ("
  • pada input analog"); client.print(analogChannel) ; client.print(": " ); client.print (sensorReading); client.print ("
  • "); ) client.println ( "
" ); klien.cetak (DELIMITER); // Jangan lupa tutup sambungan! }

Elemen papan

Pengawal mikro ATmega328P

Inti bagi platform WiFi Arduino Uno ialah mikropengawal 8-bit keluarga AVR - ATmega328P.

Mikropengawal ATmega16U2

Mikropengawal ATmega16U2 menyediakan komunikasi antara mikropengawal ATmega328P dan port USB komputer. Apabila disambungkan ke PC, Arduino Uno WiFi dikesan sebagai port COM maya. Perisian tegar bagi cip 16U2 menggunakan pemandu standard USB-COM, jadi pemasangan pemacu luaran tidak dikehendaki.

Pin kuasa

    VIN: Voltan daripada sumber luar bekalan kuasa (tidak berkaitan dengan 5V daripada USB atau voltan stabil lain). Melalui pin ini anda boleh membekalkan kuasa luaran dan menggunakan arus jika penyesuai luaran disambungkan ke peranti.

    5V: Pin menerima voltan 5 V daripada penstabil papan. Penstabil ini memberikan kuasa kepada mikropengawal ATmega328. Ia tidak disyorkan untuk menghidupkan peranti melalui pin 5V - dalam kes ini, penstabil voltan tidak digunakan, yang boleh menyebabkan kegagalan papan.

    3.3V: 3.3 V daripada penstabil papan. Arus maksimum keluaran - 1 A.

    GND: Kesimpulan bumi.

    IOREF: Pin menyediakan papan pengembangan dengan maklumat tentang voltan pengendalian mikropengawal. Bergantung pada voltan, papan pengembangan boleh bertukar kepada bekalan kuasa yang sesuai atau menggunakan penukar aras, membolehkan ia berfungsi dengan kedua-dua peranti 5V dan 3.3V.

Port I/O

    Input/output digital: pin 0 – 13
    Tahap logik satu ialah 5 V, sifar ialah 0 V. Arus keluaran maksimum ialah 40 mA. Perintang tarik naik disambungkan kepada kenalan, yang dilumpuhkan secara lalai, tetapi boleh didayakan oleh perisian.

    PWM: pin 3, 5, 6, 9, 10 dan 11
    Membolehkan anda mengeluarkan nilai analog 8-bit sebagai isyarat PWM.

    ADC: pin A0 – A5
    6 input analog, setiap satunya boleh mewakili voltan analog sebagai nombor 10-bit (1024 nilai). Kapasiti ADC ialah 10 bit.

    TWI/I²C: Pin SDA dan SCL
    Untuk komunikasi dengan peranti menggunakan protokol segerak, melalui 2 wayar. Untuk bekerja, gunakan perpustakaan Wire.

    SPI: pin 10(SS), 11(MOSI), 12(MISO), 13(SCK).
    Komunikasi melalui antara muka SPI dijalankan melalui pin ini. Untuk bekerja, gunakan perpustakaan SPI.

    UART: pin 0(RX) dan 1(TX)
    Pin ini disambungkan ke pin yang sepadan mikropengawal ATmega16U2, yang bertindak sebagai penukar USB-UART. Digunakan untuk berkomunikasi antara papan Arduino dan komputer atau peranti lain melalui kelas Serial.

Petunjuk LED

Penyambung USB Jenis-B

Penyambung USB Jenis-B direka untuk menyalakan platform WiFi Arduino Uno menggunakan komputer.

Penyambung kuasa luaran

Penyambung bekalan kuasa luaran dari 7 V hingga 12 V.

Pengatur voltan 5V

Apabila papan disambungkan kepada sumber kuasa luaran, voltan melalui pengawal selia MPM3610. Output penstabil disambungkan ke pin 5V. Arus keluaran maksimum ialah 1A.

Pengatur voltan 3.3V

Penstabil MPM3810GQB-33 dengan output 3.3 volt. Membekalkan kuasa kepada modul WiFi ESP8266 dan dikeluarkan kepada pin 3.3V. Arus keluaran maksimum ialah 1A.

Penyambung ICSP untuk ATmega328P

Penyambung ICSP direka untuk pengaturcaraan dalam litar mikropengawal ATmega328P. menggunakan perpustakaan SPI Pin ini boleh berkomunikasi dengan kad pengembangan melalui antara muka SPI. Talian SPI disalurkan ke penyambung 6-pin, dan juga diduplikasi pada pin digital 10(SS), 11(MOSI), 12(MISO) dan 13(SCK).

Penyambung ICSP untuk ATmega16U2

Penyambung ICSP direka untuk pengaturcaraan dalam litar mikropengawal ATmega16U2.



Dalam proses mengkaji dan mereka bentuk projek yang semakin kompleks, tiba masanya apabila keperluan dan keinginan timbul untuk belajar cara bekerja dengan jenis komunikasi biasa seperti WiFi. Oleh kerana jenis komunikasi inilah yang membolehkan anda mencipta dengan selesa rangkaian tunggal untuk peranti rumah pintar anda dan mengawalnya dengan cth. telefon bimbit, tablet atau komputer, iaitu, dalam erti kata lain, mencipta real Rumah pintar, yang akan menelan belanja anda berpuluh kali ganda lebih murah daripada membeli penyelesaian siap sedia di dalam kedai. Penggunaan WiFi, tentu saja, tidak terhad kepada ini, dan terdapat begitu banyak contoh penggunaan jenis komunikasi ini sehingga tidak ada gunanya menyenaraikannya, dan jika anda telah datang ke halaman ini, ini bermakna menggunakan WiFi anda sudah memerlukannya atas sebab tertentu, anda hanya perlu memikirkan cara untuk mengendalikannya dengan betul.

Kami akan menyusunnya berdasarkan yang paling murah dan paling popular modul WiFi ESP8266-01. Anda boleh membeli modul WiFi ESP8266-01 di laman web kami.

Salah satu kelebihan utama modul sedemikian ialah kehadiran memori dan mikropengawalnya sendiri di papan, yang membolehkan ia berfungsi secara bebas dengan memuatkan lakaran terus ke dalam modul itu sendiri.

Sebenarnya terdapat banyak pengubahsuaian modul WiFi ESP8266 dan kami tidak akan menyenaraikannya di sini sebaik sahaja anda mempelajari cara bekerja dengan satu, anda boleh mula bekerja dengan orang lain dengan mudah. Saya ingin segera ambil perhatian bahawa bekerja dengan WiFi mungkin kelihatan seperti tugas yang agak sukar, dan jika anda mempunyai beberapa projek yang telah siap dalam bagasi anda, adalah lebih baik untuk melepaskan komunikasi WiFi buat masa ini dan menggunakan komunikasi radio dalam projek anda, bekerja dengannya. adalah lebih mudah untuk difahami. Seluruh komuniti dan forum tematik dicipta untuk bekerja dengan modul WiFi, yang sekali lagi membuktikan betapa sukarnya bagi kebanyakan orang untuk segera memahami jenis komunikasi ini, dan selepas membaca semula semua maklumat, kebanyakan orang hanya menyerah. Kemungkinan besar saya tidak akan dapat melakukan semuanya maklumat penting untuk dimuatkan dalam rangka artikel ini sahaja, dan tidak ada gunanya dalam hal ini, jika tidak, ia akan menjadi satu lagi kekeliruan. Saya akan cuba mengikuti laluan urutan yang paling ketat perkara penting, supaya anda boleh mula memahami prinsip operasi jenis komunikasi ini dan kemudian hanya mengembangkan kemahiran anda sendiri ke arah ini.

Jadi, mari kita mulakan dan lihat dahulu pin modul WiFi ESP8266-01.

VCC- bekalan kuasa modul dari 3V hingga 3.6V

GND- Bumi.

RST- Tetapkan semula output yang bertanggungjawab untuk but semula modul.

CH_PD- "mengurangkan kuasa cip" apabila kuasa dibekalkan kepadanya, operasi modul diaktifkan.

TX- pemindahan data (antara muka UART)

RX- penerimaan data (antara muka UART)

GPIO0

GPIO2- Port I/O tujuan am

Pin GPIO0 dan GPIO2 adalah pin digital yang sama yang kami gunakan pada papan Arduino untuk disambungkan pelbagai sensor, dan ia digunakan dalam kes pelaksanaan kerja bebas di bahagian dalam Pengawal mikro WiFi Modul ESP8266-01.

Untuk kuasa modul ESP8266-01 dengan pasti, gunakan bekalan kuasa 3.3V yang distabilkan luaran dan lebih baik jangan cuba mengambil kuasa dari papan Arduino anda, kerana modul menggunakan arus sehingga 215mA dan ini mungkin berakhir dengan teruk untuk papan nyahpepijat anda. Di mana untuk mendapatkan bekalan kuasa 3.3V yang stabil Saya harap tidak menjadi masalah untuk anda, jika tidak, jelas terlalu awal untuk anda berurusan dengan modul ini. Sebagai contoh, saya suka menggunakan modul kuasa 3.3V dan 5.0V YWRobot ini untuk memasang litar pada papan roti dengan cepat, yang membolehkan anda mendapatkan voltan stabil 3.3V atau 5V dengan cepat pada laluan kuasa papan roti yang sepadan.

Menyambung tambah (+) daripada bekalan kuasa 3.3V kami ke pin VCC modul ESP8266-01, dan tolak (-) membawa bekalan kuasa ke output GND. Dalam keadaan ini, LED merah pada modul akan dihidupkan, memberi isyarat kepada kami sambungan yang betul pemakanan. Agar modul diaktifkan, ia juga perlu untuk menyambung tambah (+) bekalan kuasa dengan output CH_PD modul ESP8266-01 dan dinasihatkan untuk melakukan ini secara langsung melalui perintang 10 kOhm. Sekarang, apabila kita menghidupkan kuasa, LED merah pada modul akan menyala dan LED biru akan berkelip dengan cepat beberapa kali. Jika ini yang berlaku kepada anda, maka semuanya baik-baik saja, anda telah menyambungkan semuanya dengan betul dan modul anda berfungsi. Jika tidak, semak sambungan sekali lagi, atau gantikan modul, kerana kemungkinan besar ia tidak berfungsi.

Teruskan. Untuk bekerja dengan modul WiFi ESP8266, kami memerlukan penyesuai USB-UART. Terdapat penyesuai yang berbeza, contohnya: FT232RL, CP2102, PL2303. Tetapi kami akan menganggap bahawa anda tidak mempunyai penyesuai sedemikian, dan kami akan menggunakan papan Arduino sebagai penyesuai USB-UART. Saya akan menggunakan papan Arduino NANO untuk ini, tetapi anda boleh menggunakan mana-mana papan lain yang anda boleh gunakan. Sambungan pada mana-mana papan adalah sama. Kami membuat sambungan mengikut rajah berikut.

Mari lihat apa yang telah kami lakukan di sini. Sila ambil perhatian segera bahawa kami telah menyambungkan pin pada papan Arduino dengan pelompat RST Dan GND. Manipulasi ini melumpuhkan mikropengawal dan membolehkan kami membuat penyesuai USB-UART sebenar daripada papan Arduino kami.

Memandangkan kami menjanakan modul WiFi ESP8266-01 daripada bekalan kuasa luaran yang berasingan, ingat bahawa kami mesti sentiasa menyambungkan asas semua bekalan kuasa dalam projek kami. Oleh itu kami menyambungkan output GND Papan Arduino dengan tanah (-) bekalan kuasa 3.3V luaran kami yang direka untuk menggerakkan modul ESP8266-01.

Kesimpulan TX sambungkan papan Arduino anda ke pin TX Modul ESP8266-01. Talian ini akan menghantar data dari modul WiFi ke papan Arduino. Sesiapa yang biasa dengan antara muka UART mungkin tertanya-tanya: "Tetapi bagaimana ini boleh berlaku di mana-mana mereka mengajar bahawa TX mesti menyambung ke RX, dan RX menerima." Dan anda akan betul. Betul, TX sentiasa disambungkan ke RX, tetapi dalam kes apabila kita membuat penyesuai UART daripada Arduino, kita perlu menyambungkan peranti secara langsung. Pertimbangkan ini pengecualian kepada peraturan.

Talian RX Kami juga menyambungkan papan Arduino anda terus ke talian RX Modul ESP8266-01. Baris ini akan menghantar maklumat dari papan Arduino ke papan modul WiFi. Tetapi kami membuat sambungan ini melalui pembahagi voltan yang dipanggil, yang terdiri daripada dua perintang dengan nilai nominal 1 kOhm dan 2 kOhm. Kita perlu mengurangkan voltan pada talian ini menggunakan dua perintang (pembahagi voltan), kerana papan Arduino menghantar isyarat logik dengan voltan 5V, dan modul WiFi beroperasi dengan voltan 3.3V. Untuk menukar isyarat logik, kami boleh menggunakan papan penukar aras logik khas, yang sudah tentu lebih betul, tetapi sekali lagi, mari kita anggap bahawa anda tidak mempunyai satu, dan kami terpaksa pergi lebih banyak dengan cara yang mudah dan lakukan ini menggunakan pembahagi voltan.

Kami kini telah menyambungkan semua yang diperlukan untuk kerja selanjutnya, tetapi kami masih mempunyai 3 lagi pin yang tidak digunakan ( GPIO0, GPIO2 Dan RST) pada Modul WiFi ESP8266-01. Untuk stabil WiFi berfungsi modul kita perlu menarik baki terminal yang tidak digunakan ini kepada positif (+) talian kuasa modul melalui perintang 10 kOhm.

Ini akan menyelamatkan kita daripada pelbagai gangguan (gangguan) dan menjadikan operasi modul stabil. Adalah lebih baik untuk melakukannya dengan segera. Jika tidak, jangan terkejut bahawa modul anda sentiasa terbeban, menghasilkan maklumat yang tidak dapat difahami atau tidak mahu berfungsi sama sekali. Menggunakan perintang tarik naik pada pin mikropengawal yang tidak digunakan harus menjadi peraturan praktikal jika anda mahukan operasi yang stabil dalam projek anda.

Dan sekali lagi kami menyemak kefungsian modul WiFi ESP8266-01. Hidupkan kuasa dan lihat bahawa LED merah menyala dan LED biru berkelip beberapa kali. Jika semuanya berlaku seperti ini, maka hebat, mari kita teruskan. Jika tidak, kami menyemak ketepatan sambungan, serta kualiti semua kenalan. Ia mungkin hanya situasi remeh apabila anda menyemak semula segala-galanya sepuluh kali dan memastikan semuanya disambungkan dengan betul, tetapi apabila anda menghidupkan modul, anda melihat bahawa LED biru tidak berkelakuan dengan secukupnya, sentiasa hidup, sentiasa berkelip, atau tidak bertindak balas kepada apa-apa sama sekali. Ini mungkin berlaku kerana hubungan buruk pada beberapa baris. Sebagai contoh, apabila memasang litar menggunakan papan roti, salah satu perintang tidak didudukkan dengan ketat pada tempatnya dan ini menyebabkan gangguan. Semak kualiti sambungan. Modul ini sangat sensitif. Jangan abaikan ini. ini sebab biasa kerja tidak stabil.

Secara umum, kami telah selesai dengan sambungan. Sekarang kita perlu bersedia program Arduino IDE untuk bekerja dengan modul WiFi ESP8266-01. Untuk melakukan ini, kami perlu memuat turun dan memasang dalam Arduino IDE arkib yang diperlukan dengan perpustakaan, contoh dan papan ESP, yang kemudiannya akan membolehkan kami memuat naik lakaran terus ke mikropengawal modul ESP8266-01, menukar firmware, dsb. Untuk tujuan artikel ini, kemungkinan besar kami tidak memerlukan tetapan ini, tetapi nampaknya saya selepas kami mengetahui cara menyambungkan modul, prosedurnya akan betul jika kami segera memuat turun semua yang diperlukan untuk bekerja dengan Arduino IDE . Segala-galanya di sini pada asasnya mudah.

Lancarkan program Arduino IDE dan pergi ke menu "Fail" - "Tetapan"

Dalam tetingkap yang muncul, di medan atas kita tulis "esp8266". Akibatnya, dalam tetingkap kita hanya akan mempunyai perisian tegar yang diperlukan. Apabila anda mengklik pada perisian tegar, butang akan muncul "Pemasangan". Klik pada butang "Pemasangan" dan tunggu sehingga semuanya dipasang. Arkibnya agak besar, kira-kira 150 megabait, jadi anda perlu menunggu.

Selepas pemasangan selesai. Kami but semula Arduino IDE dan melihat bagaimana papan ESP baharu telah muncul dalam menu "Alat" - "Papan". Itu sahaja. DENGAN Persediaan Arduino Kami telah selesai dengan IDE. Kami belum memerlukan tetapan ini, tetapi kerja selanjutnya kita tidak boleh melakukannya tanpa mereka.

Kami mempunyai segala-galanya disambungkan dan disediakan, kini kami boleh mula memahami kawalan. Malah, kini kami akan terus menyemak dan mengkonfigurasi modul menggunakan arahan AT, dan tiada cara untuk melakukannya tanpanya. Modul WiFi dilaksanakan sedemikian rupa sehingga semua komunikasi dengannya berlaku menggunakan arahan AT yang dipanggil, yang disambungkan ke dalam perisian tegar modul. Kami tidak akan menyenaraikan semua arahan AT di sini, terdapat banyak daripada mereka dan jika anda ingin mengkaji semuanya dengan teliti, anda boleh mencarinya dengan mudah di Internet. Dan sekarang kami hanya akan menggunakan yang paling diperlukan untuk bermula.

Oleh itu, kami menyambungkan papan Arduino kami melalui wayar USB ke komputer. Dan sumber kuasa luaran yang berkuasa Modul WiFi ESP8266-01 Tidak perlu menghidupkannya lagi. Kami melancarkan program Arduino IDE, pilih papan Arduino kami dari menu "Alat", dalam kes saya ia adalah Arduino NANO, dan anda pilih milik anda. Juga, jangan lupa untuk memilih port yang Arduino kami disambungkan. Saya harap anda memahami semua ini dan tahu bagaimana untuk melakukannya.

Pemantauan pelabuhan terbuka "Alat" - "Monitor Pelabuhan". Memilih kelajuan port 74880 (pada kelajuan ini modul bermula) dan pilih "NL & CR" dalam senarai di sebelah kiri

Kini kami menyambungkan sumber kuasa luaran yang memberi kuasa kepada modul WiFi kami. Selepas itu anda harus melihat lebih kurang maklumat berikut dalam monitor port.

Di sini kami melihat beberapa maklumat mengenai modul WiFi kami (kelajuan, jumlah memori di atas kapal, dll.). Maklumat yang diterima mungkin berbeza bergantung pada versi Perisian tegar WiFi modul. Jangan kita fokus pada perkara ini. Sesuatu yang lain adalah penting. Di bawah kita melihat satu set aksara yang tidak bermakna, ini bermakna kelajuan port (74880 baud) yang kita tetapkan hanya sesuai untuk bootstrap modul untuk melihat maklumat ini secara normal, tetapi kelajuan ini tidak sesuai untuk komunikasi biasa dengan modul WiFi.

Untuk memilih kelajuan port yang betul, kami hanya akan menukar kelajuan port dan menghantar simbol ke port (medan di bahagian atas dan butang hantar) AT sehingga kita mendapat jawapan okey. Jika anda cuba menghantar aksara sekarang AT ke port pada kelajuan 74880, anda akan menerima satu atau dua aksara tidak bermakna lagi sebagai tindak balas.

Cuba segera tetapkan kelajuan kepada 115200 baud dan hantar arahan AT. Selalunya, modul dipancarkan pada kelajuan ini.

Ini adalah gambar yang anda patut lihat dalam monitor port anda. Jika anda masih menerima set aksara yang tidak dapat difahami sebagai tindak balas, kurangkan kelajuan dan hantar semula AT arahan sehingga jawapan datang kembali okey. Jika anda mencuba semua kelajuan dan tidak mendapat jawapan yang betul, maka anda tidak bernasib baik dan modul dipancarkan dengan perisian tegar pada kelajuan yang tidak standard. Kemudian yang tinggal hanyalah mengemas semula modul dengan perisian tegar biasa, tetapi ini adalah topik untuk artikel berasingan.

Saya harap semuanya baik-baik saja dan anda telah memilih kelajuan yang betul. Dengan cara ini, jika anda cuba mematikan dan menghidupkan modul WiFi sekali lagi selepas anda memilih kelajuan yang betul, maka bukannya maklumat awal yang sama yang dipaparkan dengan betul pada kelajuan 74880 baud, anda akan, sebaliknya, lihat set aksara yang bercampur aduk, tetapi pada penghujungnya anda akan melihat perkataan “sedia” ". Tetapi kami mempunyai peluang untuk melihat maklumat awal ini bentuk biasa pada kelajuan yang betul, untuk melakukan ini, anda perlu but semula modul secara pemrograman menggunakan arahan AT AT+RST.

Untuk mengetahui versi perisian tegar modul WiFi ESP8266-01 anda, anda perlu menghantar arahan ke monitor port AT+GMR dan sebagai tindak balas anda akan menerima lebih kurang maklumat berikut:

Modul WiFi ESP8266-01 boleh beroperasi dalam kedua-dua titik akses dan mod klien. Untuk membenarkan modul beroperasi dalam semua mod sekaligus, hantar arahan ke monitor port AT+CWMODE=3 dan sebagai tindak balas anda harus menerima okey.

Pasukan AT+CWLAP akan membolehkan anda melihat segala-galanya Titik WiFi akses yang dia lihat masa ini modul anda. Modul saya, sebagai contoh, pada masa ini hanya melihat tiga titik akses WiFi dalam kawasan liputannya. Jawapannya sepatutnya seperti ini:

Sebagai contoh, kami mengetahui kata laluan untuk titik akses ketiga dan untuk menyambung kepadanya kami melaksanakan arahan AT+CWJAP="nama","kata laluan", dalam kes saya arahan ini kelihatan seperti AT+CWJAP="dsl_unlim_512_home","11111111", yang mana kami mendapat respons yang berjaya:

Parameter arahan ditulis pada memori denyar modul WiFi ESP8266-01, dan jika kami mematikan modul dan menghidupkannya semula, ia akan menyambung secara automatik ke pusat akses ini. Lihat, secara kebetulan, jangan benarkan ruang dalam arahan, jika tidak, anda akan menerima jawapan RALAT. Perlu diingat bahawa dalam versi terkini perisian tegar mengesyorkan menggunakan arahan AT+CWJAP_CUR, iaitu, arahan akan kelihatan seperti AT+CWJAP_CUR="nama","kata laluan". Jika tiba-tiba kami terlupa titik akses modul kami disambungkan, kami perlu menghantar arahan AT+CWJAP? atau AT+CWJAP_CUR? dan sebagai tindak balas, kami akan menerima titik akses yang modul WiFi disambungkan pada masa ini.

Dengan sambungan dan persediaan awal Modul WiFi ESP8266-01 kami memikirkannya. Modul ini berfungsi dan bersedia untuk pelaksanaan projek masa depan anda. Tidak mungkin untuk menganalisis semua kemungkinan contoh bekerja dengan modul ini dalam rangka satu artikel, dan kami akan menangani perkara ini dalam artikel berikut. Dan bagi mereka yang tidak begitu biasa dengan pengaturcaraan, tetapi benar-benar ingin mula menguruskan projek mereka dengan cepat menggunakan WiFi, saya syorkan memperkenalkan anda kepada pereka projek WiFi RemoteXY. Tapak ini akan membantu anda dengan mudah membuat antara muka kawalan untuk telefon mudah alih atau tablet anda dan menggunakannya untuk mengawal peranti anda yang anda sambungkan modul WiFi.

Saya memutuskan untuk belajar Arduino. Bina rumah "pintar". Anda perlu bermula di suatu tempat.
Berdasarkan modul WI-FI ESP8266, anda boleh mendapatkan penderia tanpa wayar suhu, kelembapan, tekanan, cahaya... Anda hanya perlu mengemas kini perisian tegar modul dan menyambungkan penderia. Tiada mikropengawal tambahan diperlukan.
Kira-kira dua tahun lalu, mereka muncul di pasaran China WI-FI murah Modul ESP8266 daripada pembangun Cina. Ini bukan sekadar modul WI-FI, tetapi mikropengawal 32-bit lengkap dengan set GPIO sendiri, termasuk SPI, UART, I2C.

Spesifikasi:
Pemproses: Tensilica L106 teras tunggal dengan frekuensi sehingga 160 MHz.
Disokong Piawaian WI-FI: 802.11 b/g/n.
Jenis penyulitan yang disokong: WEP, WPA, WPA2.
Mod pengendalian yang disokong: Pelanggan (STA), Titik Akses (AP), Titik Akses Pelanggan (STA+AP).
Voltan bekalan 1.7..3.6 V.
Penggunaan semasa: sehingga 215mA bergantung pada mod pengendalian.
Bilangan GPIO: 16 (sebenarnya sehingga 11). Tersedia pada modul: ESP-01 - 4, ESP-03 - 7+1, termasuk UART. Terdapat pilihan modul lain.
Antara muka: 1 ADC, I2C. UART, SPI, PWM.
Luaran Memori kilat boleh ditetapkan daripada 512kB kepada 4MB.
Data RAM 80 kB, arahan RAM- 64 kB.
Mari lihat dalam bentuk apa mereka menghantarnya.


Saya memesan tiga modul sekaligus. Satu tidak akan mencukupi untuk rumah pintar.

Modul ini adalah luar biasa. Mereka mempunyai keupayaan untuk menyambungkan antena luaran.


Tiada maklumat teknikal pada halaman kedai sepenuhnya.
Oleh itu, kami memberi tumpuan kepada apa yang terdapat di papan dan apa yang telah kami gali.
Litar modul terdiri daripada bilangan bahagian minimum: cip ESP8266 itu sendiri,


memori denyar 25Q41BT (Denyar Bersiri 4M-bit, 512K-bait, 256 bait setiap halaman boleh atur cara)

dan kuarza pada 26 MHz.

Tidak ada ingatan yang mencukupi untuk projek yang serius. Kaedah pembesaran adalah mudah. Ia cukup untuk memateri memori MS kepada memori yang lebih luas. Terdapat ulasan mengenai Muska tidak lama dahulu:

Untuk projek mudah yang harganya cukup memadai.
Untuk mereka bentuk tugasan kami, kami telah memutuskan untuk menggunakan model papan roti. Tetapi satu masalah timbul.


Output untuk pengaturcaraan modul jelas "tidak diperlukan". Saya terpaksa buat semula sedikit.

Gambar di sebelah kiri adalah asli, gambar di sebelah kanan adalah selepas diubah. Saya tidak memaksa sesiapa untuk melakukan ini. Ini hanya keputusan saya, ia lebih mudah untuk saya.
Sekarang tiada apa-apa yang menghalang, dan pengaturcaraan adalah mudah.


Seperti yang saya tulis sebelum ini, modul ini boleh berfungsi dengan antena dalaman (pada cap) dan antena luaran. Pada mulanya, modul "dikonfigurasikan" untuk berfungsi dengan antena luaran. Untuk mengkonfigurasi semula, anda perlu memateri semula pelompat rintangan.


Saya memutuskan untuk menyemak perbezaan keuntungan antena dalaman dan luaran. Untuk tujuan ini saya menyolder semula pelompat pada satu modul.
Tetapi kesukaran lain timbul: dua daripada tiga modul tiba kosong (tidak berkelip).
Pada masa yang sama saya berlatih.
Kabel penukar (USB Ke RS232 TTL UART) daripada salah satu ulasan saya tentang Volt-Ampere-Wattmeter dengan fungsi kaunter PZEM-004 sangat berguna.


Kabel penukar biasa.

saya ada lebih pilihan murah. Tetapi yang ini lebih mudah (bagi saya).
Saya memasang modul pada papan roti dan memasukkan lakaran contoh untuk ESP8266 ke dalamnya: bantuan Arduino IDE. Terdapat nuansa. Mari lihat gambarajah sambungan.

Modul ini dikuasakan daripada sumber luaran. Dalam kes saya, bekalan kuasa disertakan dengan papan roti.
Semasa memuatkan lakaran, GPIO 00 ditetapkan kepada Gnd. Untuk menjalankan lakaran (selepas berkelip), sambungkan GPIO 00 kepada +3.3V.
Disambungkan, semuanya berfungsi. Apa yang tinggal adalah untuk memeriksa antena yang mempunyai keuntungan yang lebih tinggi.
Saya memasang tiga modul pada papan roti.
- ESP-201 dengan antena dalaman.
- ESP-201 dengan "ekor" untuk antena luaran (termasuk).
- Dan ini adalah modul standard berdasarkan ESP8266, dibeli daripada pautan ini setahun yang lalu:

Saya menggunakan PowerBank untuk kuasa. Untuk kemurnian percubaan, kami terpaksa pergi hampir ke lapangan. Walau bagaimanapun, satu penghala yang tidak dibenarkan masih ditangkap :) Nama pada graf telah dialih keluar. Ia tidak akan mengganggu.
Saya akan menilai kekuatan isyarat menggunakan program Wi-Fi Akrilik. Terdapat banyak program, termasuk untuk telefon pintar. Tetapi yang ini boleh menjejaki semua perubahan dalam dinamik.
Berdekatan dengan modul.


Wifi_int_ant - ESP-201 dengan antena dalaman.
Wifi_ext_ant - ESP-201 dengan "ekor" untuk antena luaran.
WeatStat - ESP8266,
Dia bergerak sejauh 10 meter.


Dia bergerak 10 meter lagi.


Lagi.


Dan seterusnya.


Ralat pengukuran wujud secara semula jadi. Tetapi gambaran keseluruhannya jelas.
Sudah tiba masanya untuk mengumumkan pemenang.
Tempat pertama: ESP-201 dengan antena dalaman.
Tempat ke-2: modul standard berdasarkan ESP8266.
Tempat ke-3: ESP-201 dengan "ekor" untuk antena luaran.
Dipateri kepada tin susu pekat.


Gambar itu benar-benar berubah.


Itu bukan urusan wanita... :)
Dengan antena jauh isyaratnya lebih kuat. Walaupun antena adalah tin biasa.
Itu pada asasnya. Untuk kesimpulan yang betul, apa yang saya tulis sepatutnya cukup. Jika ada yang kurang jelas, tanya soalan. Mungkin saya terlepas beberapa perkara.
Saya harap ia membantu sekurang-kurangnya seseorang.
Semoga berjaya!
Akan bersambung…

Produk itu disediakan untuk menulis ulasan oleh kedai. Semakan telah diterbitkan mengikut klausa 18 Peraturan Tapak.

Saya bercadang untuk membeli +33 Tambahkan pada kegemaran Saya suka ulasan itu +29 +58

Ia semakin popular, dan Arduino sudah pun mengambil inisiatif - menambahkan modul Wi-Fi ini ke senarai papan yang disokong.
Tetapi bagaimana untuk menyambungkannya ke Arduino? Adakah mungkin untuk melakukannya tanpa Arduino sama sekali? Inilah sebenarnya artikel ini hari ini.

Melihat ke hadapan, saya akan mengatakan bahawa akan ada artikel kedua, lebih praktikal, mengenai topik perisian tegar dan pengaturcaraan modul ESP8266 dalam persekitaran pembangunan IDE Arduino. Tetapi perkara pertama dahulu.

Video ini menduplikasi sepenuhnya bahan yang dibentangkan dalam artikel.



Pada masa ini, terdapat banyak jenis modul ini, berikut adalah beberapa daripadanya:

Dan inilah pinout ESP01, ESP03, ESP12:


*Gambar ini boleh dilihat dalam kualiti yang baik on off. laman web pighixxx.com.

Secara peribadi, saya paling suka versi ESP07. Sekurang-kurangnya kerana terdapat skrin logam (ia melindungi litar mikro daripada gangguan luaran, dengan itu menyediakan lebih banyak lagi kerja yang stabil), antena seramiknya sendiri, penyambung untuk antena luaran. Ternyata dengan menyambung kepadanya antena luaran, contohnya seperti biquadrat, maka anda boleh mencapai julat yang baik. Di samping itu, terdapat beberapa port input/output, yang dipanggil GPIO (Port Output Input Tujuan Umum), serupa dengan pin Arduino.

Mari kita kembali kepada domba kita Modul Wi-Fi m dan Arduino. Dalam artikel ini, saya akan melihat menyambungkan ESP8266 (model ESP01) ke Arduino Nano V3.

Tetapi, maklumat ini akan relevan untuk kebanyakan modul ESP8266 dan juga berbeza Papan Arduino, contohnya yang paling popular Arduino UNO.

Beberapa perkataan tentang kaki ESP01:

Vcc Dan GND(dalam gambar di atas ini adalah 8 dan 1) - makanan, setiap kaki Vcc boleh dikemukakan, berdasarkan dokumentasi, dari 3 hingga 3.6 V, A GND- tanah (tolak kuasa). Saya melihat seorang menyambungkan modul ini kepada dua bateri AA (voltan bekalan dalam kes ini adalah lebih kurang 2.7 V) dan modul itu beroperasi. Namun begitu, pembangun menunjukkan julat voltan di mana modul harus dijamin berfungsi jika anda menggunakan yang lain, itu masalah anda.

Perhatian! Modul ini adalah berdasarkan logik 3.3V, manakala Arduino kebanyakannya logik 5V. 5 V boleh merosakkan ESP8266 dengan mudah, jadi ia perlu dikuasakan secara berasingan daripada Arduino.

- Arduino saya mempunyai kaki di mana ia berkata 3.3 V, mengapa tidak menggunakannya?

Anda mungkin akan berfikir. Hakikatnya adalah bahawa ESP8266 adalah modul yang agak haus kuasa, dan pada puncaknya ia boleh menggunakan arus sehingga 200 mA, dan hampir tiada Arduino yang mampu menyampaikan arus sedemikian secara lalai, kecuali Arduino Due, di mana arus di sepanjang talian 3.3 V boleh mencapai 800 mA, yang banyak, dalam kes lain saya menasihati anda untuk menggunakan penstabil 3.3 V tambahan, contohnya AMS1117 3.3 V. Terdapat banyak daripada mereka di China dan di sini.

kaki RST 6 - bertujuan untuk perkakasan untuk but semula modul, dengan menggunakan secara ringkas tahap logik yang rendah padanya, modul akan but semula. Walaupun saya mengabaikan ini dalam video, saya masih menasihati anda "tekan" kaki ini dengan perintang 10 kOhm kepada bekalan kuasa positif, untuk mencapai kestabilan yang lebih baik dalam pengendalian modul, jika tidak, saya akan but semula pada gangguan yang sedikit.

kaki CP_PD 4 (atau dengan cara lain EN) - berfungsi, sekali lagi, untuk terjemahan "besi" modul ke dalam mod penjimatan tenaga, di mana ia menggunakan arus yang sangat sedikit. Baik lagi - Tidak salah untuk "menekan" kaki ini dengan perintang 10 kOhm kepada positif Pitalova Dalam video itu, saya dengan bodohnya membuat litar pintas kaki ini ke Vcc, kerana saya tidak mempunyai perintang seperti itu di tangan.

kaki RXD0 7 TXD0 2 - perkakasan UART, yang digunakan untuk berkelip, tetapi tiada siapa yang melarang menggunakan port ini sebagai GPIO (GPIO3 dan GPIO1, masing-masing). Atas sebab tertentu, GPIO3 tidak ditandakan dalam gambar, tetapi dalam lembaran data:

By the way, ke kaki TXD0 2 LED "Sambung" disambungkan, dan ia menyala pada tahap rendah tahap logik kepada GPIO1, atau apabila modul menghantar sesuatu melalui UART.

GPIO0 5 - bukan sahaja boleh menjadi port I/O, tetapi juga meletakkan modul ke dalam mod pengaturcaraan. Ini dilakukan dengan menyambungkan port ini ke tahap logik yang rendah ("menekan" ke GND) dan membekalkan kuasa kepada modul. Dalam video saya melakukan ini dengan butang biasa. Selepas berkelip, jangan lupa untuk menarik keluar pelompat/tekan butang (ia tidak perlu untuk menahan butang semasa berkelip; apabila dihidupkan, modul masuk ke mod pengaturcaraan dan kekal di dalamnya sehingga but semula).

GPIO2 3 - port input/output.

Dan satu lagi perkara penting, setiap GPIO modul Wi-Fi boleh menghantar arus sehingga 6mA dengan selamat, supaya tidak membakarnya, pastikan anda meletakkan perintang secara bersiri dengan port input/output dihidupkan... Ingat hukum Ohm R = U/I = 3.3V / 0.006 A = 550 Ohm, iaitu, pada 560 Ohm. Atau mengabaikannya, dan kemudian tertanya-tanya mengapa ia tidak berfungsi.

Dalam ESP01, semua GPIO menyokong PWM, jadi kepada empat GPIO kami, iaitu, GPIO0-3, anda boleh menyambungkan pemandu motor, ala L293 / L298, dan mengemudi dua enjin, sebagai contoh, bot, atau membuat RGB Wi-Fi apa sahaja. . Ya, ya, modul ini mempunyai banyak perkara di atas kapal, dan untuk projek mudah pemain biola Arduino tidak diperlukan, hanya untuk berkelip. Dan jika anda menggunakan ESP07, maka secara umum portnya hampir sama dengan Uno, yang memungkinkan untuk melakukannya dengan yakin tanpa Arduino. Benar ada satu saat yang tidak menyenangkan, ESP01 tidak mempunyai port analog sama sekali, dan ESP07 hanya mempunyai satu, dipanggil ADC. Ini sudah tentu menjadikan kerja dengan sensor analog lebih sukar. Dalam kes ini, pemultipleks analog Arduino akan membantu.

Segala-galanya nampaknya dijelaskan oleh pinout, dan berikut ialah gambar rajah untuk menyambungkan ESP8266 ke Arduino Nano:

Adakah anda melihat pelompat pada pin RST dan GND pada Arduino Nano? Ini adalah perlu supaya Arduino tidak mengganggu firmware modul dalam hal menyambungkan ESP8266 menggunakan Arduino, ini adalah prasyarat.

Juga, jika anda menyambung ke Arduino, RX modul mesti pergi ke RX arduino, TX - TX. Ini kerana cip penukar sudah disambungkan ke pin Arduino dalam corak silang.

Juga penting ialah pembahagi rintangan yang terdiri daripada perintang 1 kOhm dan 2 kOhm (boleh dibuat daripada dua perintang 1 kOhm dengan menyambungkannya secara bersiri) di sepanjang garis RX modul. Kerana Arduino adalah logik 5 V dan modulnya ialah 3.3. Ini ternyata penukar tahap primitif. Ia mesti ada, kerana kaki modul RXD TXD tidak bertolak ansur dengan 5 V.

Nah, anda boleh melakukannya tanpa Arduino sama sekali dengan menyambungkan ESP8266 melalui penukar USB-UART biasa. Dalam kes menyambung ke Arduino, kami pada asasnya menggunakan penukar standard antara muka usb dan uart, memintas otak. Jadi mengapa membelanjakan wang tambahan jika anda boleh melakukannya tanpa Arduino sama sekali? Hanya dalam kes ini, kami menyambungkan RXD modul ke TXD penukar, TXD - RXD.

Jika anda terlalu malas untuk mengganggu sambungan, bermain-main dengan perintang dan penstabil, terdapat penyelesaian NodeMcu siap sedia:

Segala-galanya lebih mudah di sini: palamkan kabel ke dalam komputer, pasang pemacu dan program, cuma jangan lupa gunakan pelompat/butang pada GPIO0 untuk menukar modul kepada mod perisian tegar.

Nah, itu mungkin semua dengan teori, artikel itu ternyata agak panjang, dan saya akan menerbitkan bahagian praktikal, ala firmware dan pengaturcaraan modul, sedikit kemudian.