Modul WiFi ESP8266 ESP07 untuk automasi rumah. ESP8266: Apa yang ada di dalam "wi-fi rakyat"? Kes penggunaan biasa

Cip ESP8266 adalah salah satu alat organisasi yang paling popular komunikasi tanpa wayar dalam projek rumah pintar. Menggunakan pengawal wayarles, anda boleh mengatur komunikasi melalui antara muka WiFi, menyediakan Projek Arduino Akses Internet dan kemungkinan kawalan jauh dan pengumpulan data. Papan popular seperti WeMos dan NodeMcu, serta sejumlah besar projek buatan sendiri, telah dibuat berdasarkan ESP8266. Dalam artikel ini, kita akan mengetahui apakah ESP82266 itu, jenisnya, cara bekerja dengan ESP8266 dalam persekitaran Arduino IDE.

ESP8266 ialah mikropengawal dengan antara muka WiFi yang mempunyai keupayaan untuk melaksanakan program daripada memori kilat. Peranti ini dikeluarkan pada tahun 2014 syarikat Cina Espressif dan hampir serta-merta menjadi popular.

Pengawal adalah murah, mempunyai bilangan yang kecil unsur luaran dan mempunyai parameter teknikal berikut:

  • Menyokong Protokol Wi-Fi 802.11 b/g/n dengan WEP, WPA, WPA2;
  • Mempunyai 14 port input dan output, SPI, I2C, UART, 10-bit ADC;
  • Menyokong ingatan luaran sehingga 16 MB;
  • Bekalan kuasa yang diperlukan adalah dari 2.2 hingga 3.6 V, penggunaan semasa adalah sehingga 300 mA, bergantung pada mod yang dipilih.

Ciri penting ialah ketiadaan memori tidak meruap pengguna pada cip. Program ini dilaksanakan daripada ROM SPI luaran menggunakan pemuatan dinamik elemen yang diperlukan program. Akses kepada peranti dalaman boleh diperolehi bukan daripada dokumentasi, tetapi daripada API set perpustakaan. Pengilang menunjukkan anggaran jumlah RAM - 50 kB.

Ciri-ciri papan ESP8266:

  • Sambungan mudah ke komputer – melalui wayar USB, makanan daripadanya;
  • Ketersediaan penukar voltan 3.3V terbina dalam;
  • Ketersediaan memori kilat 4 MB;
  • Butang terbina dalam untuk but semula dan berkelip;
  • Semua port disalurkan ke papan menggunakan dua sikat dengan pic 2.5 mm.

Bidang penggunaan modul ESP8266

  • Automasi;
  • Pelbagai sistem rumah pintar: Kawalan wayarles, soket wayarles, kawalan suhu, tambahan kepada sistem penggera;
  • elektronik mudah alih;
  • ID Tag;
  • Mainan kanak-kanak;
  • Rangkaian mesh.

esp8266 pinout

Terdapat sejumlah besar jenis modul ESP8266. Rajah menunjukkan sebahagian daripadanya. Pilihan yang paling popular ialah ESP 01.

Pelaksanaan program mesti ditentukan oleh keadaan port GPIO0, GPIO2 dan GPIO15 apabila bekalan kuasa tamat. Terdapat 2 rejim penting– apabila kod dilaksanakan daripada UART (GPIO0 = 0, GPIO2 = 1 dan GPIO15 = 0) untuk memancarkan kad denyar dan apabila dilaksanakan daripada ROM luaran (GPIO0 = 1, GPIO2 = 1 dan GPIO15 = 0) dalam mod biasa.

Pinout untuk ESP01 ditunjukkan dalam gambar.

Perihalan hubungan:

  • 1 - tanah, 8 - kuasa. Menurut dokumentasi, voltan dibekalkan sehingga 3.6 V - ini penting untuk diambil kira apabila bekerja dengan Arduino, yang biasanya dibekalkan dengan 5 V.
  • 6 – RST, diperlukan untuk but semula mikropengawal apabila tahap logik rendah digunakan padanya.
  • 4 – CP_PD, juga digunakan untuk meletakkan peranti ke dalam mod penjimatan tenaga.
  • 7 dan 0 – RXD0 dan TXD0, ini adalah UART perkakasan yang diperlukan untuk memancarkan modul.
  • 2 – TXD0, LED disambungkan ke pin ini, yang menyala apabila tahap logik pada GPIO1 rendah dan apabila data dihantar melalui UART.
  • 5 – GPIO0, port input dan output, juga membolehkan anda meletakkan peranti ke dalam mod pengaturcaraan (apabila port disambungkan ke rendah tahap logik dan bekalan voltan).
  • 3 – GPIO2, port input dan output.

Pinout ESP-12

Perbezaan utama antara Arduino dan ESP8266

  • ESP8266 mempunyai jumlah memori denyar yang lebih besar, manakala ESP8266 tidak mempunyai ingatan tidak meruap;
  • Pemproses ESP8266 lebih pantas daripada Arduino;
  • ESP8266 mempunyai Wi-Fi;
  • ESP8266 menggunakan lebih banyak arus daripada Arduino;

Pengaturcaraan ESP8266 dalam Arduino IDE

Kit pembangunan esp8266 termasuk:

  • Penyusun daripada Pakej GNU Koleksi Penyusun.
  • Perpustakaan, timbunan protokol WiFi,TCP/IP.
  • Satu cara untuk memuatkan maklumat ke dalam program pengawal.
  • Pengendalian IDE.

Pada mulanya, modul ESP8266 dibekalkan dengan perisian tegar daripada pengilang. Dengan bantuannya, anda boleh mengawal modul daripada mikropengawal luaran dan bekerja dengan Wi-Fi sebagai modem. Terdapat juga banyak yang lain firmware siap pakai. Sebahagian daripada mereka membenarkan anda untuk mengkonfigurasi operasi modul menggunakan antara muka WEB.

Boleh diprogramkan daripada Arduino IDE. Dengan bantuannya, anda boleh dengan mudah menulis lakaran dan memuat naiknya ke ESP8266, kilat ESP8266, dan tidak memerlukan papan Arduino itu sendiri. Arduino IDE menyokong semua jenis modul ESP8266.

DALAM pada masa ini Fungsi berikut boleh dilaksanakan untuk ESP8266:

  • Fungsi asas bahasa Pendawaian. Anda boleh mengawal port GPIO dengan cara yang sama seperti pin pada papan Arduino: pinMode, digitalRead, digitalWrite, analogWrite. Perintah analogRead(A0) membolehkan anda membaca nilai ADC. Menggunakan perintah analogWrite (pin, nilai), anda boleh menyambungkan PWM ke output GPIO yang dikehendaki. Apabila nilai=0 PWM dilumpuhkan, nilai maksimum mencapai pemalar sama dengan 1023. Menggunakan fungsi attachInterrupt dan detachInterrupt, anda boleh mengganggu pada mana-mana port GPIO kecuali 16.
  • Masa dan kelewatan. Menggunakan perintah millis dan micros anda boleh mengembalikan ms dan μs yang telah berlalu sejak mula. Kelewatan membolehkan anda menjeda pelaksanaan program untuk masa yang betul. Juga, fungsi kelewatan(…) membolehkan anda menyokong kerja biasa Wi-Fi, jika terdapat dalam lakaran elemen besar, yang mengambil masa lebih daripada 50 ms untuk diselesaikan. Hasil() ialah analog fungsi kelewatan(0).
  • Bersiri dan Bersiri1 (UART0 dan UART1). Kerja bersiri pada ESP8266 adalah serupa dengan kerja pada Arduino. Menulis dan membaca data menyekat pelaksanaan kod jika FIFO 128-bait dan penimbal perisian 256-bait penuh. Objek Serial menggunakan perkakasan UART0, anda boleh menetapkan pin GPIO15 (TX) dan GPIO13 (RX) untuknya dan bukannya GPIO1(TX) dan GPIO3(RX). Untuk melakukan ini, selepas Serial.begin(); anda perlu memanggil Serial.swap();. Begitu juga, Serial1 menggunakan UART1, yang berfungsi untuk penghantaran. Pin yang diperlukan untuk ini ialah GPIO2.
  • PROGMEM Makro. Operasinya serupa dengan Arduino. Membolehkan anda mengalihkan data baca sahaja dan pemalar rentetan ke dalam memori kilat. Pada masa yang sama, ESP8266 tidak menyimpan pemalar yang sama, yang membawa kepada pembaziran tambahan memori kilat.
  • I2C. Sebelum bekerja dengan bas I2C, bas dipilih menggunakan fungsi Wire.pins(int sda, int scl).
  • SPI, OneWire – disokong sepenuhnya.

Menggunakan esp8266 untuk berkomunikasi dengan Arduino melalui WiFi

Sebelum menyambung ke Arduino, adalah penting untuk diingat bahawa voltan bekalan ESP8266 tidak boleh lebih tinggi daripada 3.6, manakala pada Arduino voltan ialah 5 V. Anda perlu menyambungkan 2 mikropengawal menggunakan pembahagi rintangan. Sebelum menyambungkan modul, anda perlu membiasakan diri dengan pinout ESP8266 yang dipilih. Gambar rajah sambungan untuk ESP8266-01 ditunjukkan dalam rajah.

3.3 V dari Arduino ke Vcc&CH_PD pada modul ESP8266, Ground dari Arduino ke ground dari ESP8266, 0 – TX, 1 – RX.

Untuk sokongan operasi yang stabil ESP8266 memerlukan sumber voltan DC pada 3.3 V dan arus maksimum 250 mA. Jika kuasa datang daripada penukar USB-TTL, pincang tugas dan pincang tugas mungkin berlaku.

Bekerja dengan perpustakaan Wi-Fi untuk ESP8266 adalah serupa dengan perpustakaan untuk perisai biasa. Terdapat beberapa ciri:

  • mod(m) – untuk memilih satu daripada tiga mod: klien, pusat akses, atau kedua-dua mod pada masa yang sama.
  • softAP(ssid) – diperlukan untuk mencipta titik terbuka akses.
  • softAP(ssid, kata laluan) – mencipta titik akses dengan kata laluan, yang mesti mengandungi sekurang-kurangnya 8 aksara.
  • WiFi.macAddress(mac) dan WiFi.softAPmacAddress(mac) – mentakrifkan alamat MAC.
  • WiFi.localIP() dan WiFi.softAPIP() – menentukan alamat IP.
  • printDiag(Siri); – akan membolehkan anda mengetahui data diagnostik.
  • WiFiUDP – sokongan untuk menghantar dan menerima paket multicast dalam mod klien.

Kerja dilakukan mengikut algoritma berikut:

  • Menyambungkan USB-TTL ke USB dan ke ESP.
  • Melancarkan Arduino IDE.
  • Pilih alatan daripada menu pelabuhan yang dikehendaki, papan, kekerapan dan saiz memori kilat.
  • Fail - Contoh - ESP8266WiFi - WiFiWebServer.
  • Tulis SSID dan kata laluan rangkaian Wi-Fi dalam lakaran.
  • Mula menyusun dan memuat naik kod.
  • Tunggu proses perisian tegar selesai, putuskan sambungan GPIO0 dari tanah.
  • Tetapkan kelajuan kepada 115200.
  • Sambungan akan berlaku dan alamat IP akan direkodkan.
  • Buka penyemak imbas, masukkan bar alamat Nombor IP/gpio/1
  • Lihat monitor port; jika LED disambungkan ke output GPIO2, ia sepatutnya menyala.

NodeMCU berdasarkan esp8266

NodeMCU ialah platform berdasarkan modul esp8266. Digunakan untuk mengawal litar dari jauh menggunakan Internet melalui Wi-Fi. Papan ini bersaiz kecil, padat, murah dan mempunyai penyambung USB di bahagian hadapan. Berdekatan adalah butang untuk nyahpepijat dan but semula mikropengawal. Cip ESP8266 juga dipasang. Voltan bekalan adalah dari 5 hingga 12 V, adalah dinasihatkan untuk membekalkan lebih daripada 10 V.

Kelebihan besar papan adalah penggunaan kuasa yang rendah. Mereka sering digunakan dalam skim dengan berkuasa sendiri. Terdapat hanya 11 port di papan tujuan am, beberapa daripadanya mempunyai fungsi khas:

  • D1 dan D2 – untuk antara muka I2C/ TWI;
  • D5-D8 - untuk antara muka SPI;
  • D9, D10 – untuk UART;
  • D1-D10 – boleh berfungsi sebagai PWM.

Platform mempunyai API moden untuk input dan output perkakasan. Ini membolehkan anda mengurangkan bilangan langkah semasa bekerja dengan peralatan dan semasa menyediakannya. Dengan menggunakan Perisian tegar NodeMCU anda boleh menggunakan potensi kerja anda sepenuhnya untuk perkembangan pesat peranti.

WeMos berdasarkan esp8266

WeMos ialah satu lagi jenis platform berdasarkan mikropengawal esp8266. Sehubungan itu, ada Modul Wi-Fi, Arduino IDE disokong, mempunyai penyambung untuk antena luaran. Papan mempunyai 11 input/output digital, yang (kecuali D0) menyokong gangguan/pwm/I2C/satu wayar. Voltan bekalan maksimum mencapai 3.3 V. Terdapat juga penyambung USB pada platform. Input analog 1 dengan voltan maksimum 3.2V.

Untuk bekerja dengan modul, anda perlu memasang pemacu CH340 dan mengkonfigurasi Arduino IDE untuk ESP8266. Untuk melakukan ini, anda perlu menambah alamat http://arduino.esp8266.com/stable/package_esp8266com_index.json dalam menu tetapan dalam baris "pautan tambahan untuk pengurus papan".

Selepas ini, anda perlu mencari pakej esp8266 by ESP8266 dan memasangnya. Kemudian anda perlu memilih mikropengawal Wemos D1 R2 dari menu alat dan tuliskan lakaran yang dikehendaki.

Kesimpulan mengenai ESP8266

Dengan papan berdasarkan cip ESP8266, anda boleh menambah keupayaan pada projek anda. internet yang besar”, menjadikan mereka lebih bijak. Alat kawalan jauh, mengumpul dan menganalisis data pada pelayan, pemprosesan suara dan bekerja dengan imej - semua ini tersedia apabila kami menyambungkan projek kami melalui WiFi ke Internet. Dalam artikel berikut, kami akan melihat dengan lebih dekat bagaimana anda boleh memprogram peranti berasaskan esp8266, dan juga memberi perhatian kepada papan popular seperti WeMos dan NodeMcu.


Miniatur modul WiFi ESP8266 agak menarik untuk sistem rumah pintar dan automasi rumah. Mereka juga dipanggil "pembunuh NRF24L01."
Saya memesan sendiri kemudian pengubahsuaian ESP07 dan ESP12, yang berbeza saiz yang lebih kecil Dan sebilangan besar GPIO yang diperoleh, yang tidak memerlukan "godam" untuk menggunakan port I/O tambahan di dalamnya.

Modul-modul ini telah dibangunkan syarikat Cina

Spesifikasi:

  • WI-FI: 802.11 b/g/n dengan WEP, WPA, WPA2.
  • Mod pengendalian: 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.
  • Saiz memori kilat 512kb.
  • RAM data 80 kB
  • Arahan RAM - 32 kb.
Mengenai pengubahsuaian modul ESP8266

Saya memesan modul pada bulan Januari.
Harga - $3.78, - $4.24. Saya membelinya sebagai ganjaran untuk menyemak artikel. Tiba dalam 31 hari dalam beg tertutup







ESP8266 ESP-07




ESP8266 ESP-12




Menghidupkan semula modul mengambil masa yang agak lama
Untuk melakukan ini, anda perlu menggunakan 3.3V padanya. Selain itu, penstabil pada penukar USB/UART tidak menarik arus daripada modul ini, jadi kuasa luaran diperlukan.

RXD, TXD dan GND disambungkan melalui komputer.

Akibatnya, saya memasang litar berikut pada papan roti:

Di sini saya segera menghadapi kesukaran berikut - padang lubang pada ESP07 ialah 2 mm, dan bukan 2.5 seperti penyambung pin yang digunakan dalam Arduino dan tempat lain.
Saya terpaksa memateri wayar ke papan roti





Segera saya membawa butang RESET dan pelompat GPIO0 ke tanah, yang menukar modul kepada mod muat turun perisian tegar. Dan saya menghidupkan kuasa ke modul melalui

Selepas itu, saya melancarkan program CollTerm dan menerima jemputan modul pada kelajuan 9600.
Arahan AT+GMR dikeluarkan 0020000904 (versi SDK - 0020, versi AT - 0904)


Bagi mereka yang terlalu malas, seperti saya, untuk menangani arahan AT, terdapat alat yang membolehkan anda mengkonfigurasi semua ini.

Saya telah melakukan firmware. Kerana program ini berfungsi hanya dengan COM1-COM6, saya terpaksa menukar COM33 saya daripada penukar USB/UART kepada COM6 dalam pengurus peranti.

Seterusnya, memasang perisian tegar tidak sukar: buka port dan sambungkan. Kelajuan dipilih secara automatik. Perkara utama adalah jangan lupa untuk menyambungkan GPIO0 ke tanah (saya mempunyai pelompat khas untuk ini). Kelajuan dipilih secara automatik. Kadang-kadang sambungan tidak diwujudkan. Menekan butang RESET semasa sambungan membantu.



Kini anda boleh menyambung ke modul
Dalam program ini, anda boleh memuatkan fail untuk jurubahasa LUA ke dalam ESP, melaksanakan kedua-dua arahan tunggal dan skrip jurubahasa ini.


Saya dapat menjalankan modul tekanan/suhu BMP180 yang disambungkan ke GPIO2 dan GPIO0

Untuk melakukan ini, saya memuat turun fail bmp180.lua daripada modul siap sedia yang disertakan dengan perisian tegar daripada GITHUB
Dan kemudian fail init.lau dilaksanakan apabila ESP8266 but
tmr.alarm(1, 5000, 1, function() print("ip: ",wifi.sta.getip()) bmp180 = require("bmp180") bmp180.init(4, 3) tmr.stop(1) -- penggera berhenti tamat)

Menjalankan program tanpa melengahkan pemasa mengakibatkan ralat tidak berubah.
Selepas mulakan semula, kod
bmp180.read(OSS) t = bmp180.getTemperature() p = bmp180.getPressure() -- suhu dalam darjah Celsius dan cetakan Farenheit("Suhu: "..(t/10).." C") -- tekanan dalam unit berlainan cetak("Tekanan: "..(p * 75 / 10000).." mmHg")

Keluarkan tekanan dan suhu semasa ke konsol.

Tetapi saya tidak dapat mula mengeluarkan parameter ini dalam mod pelayan web. Ini semua tentang kekurangan ingatan. Pelayan web dan BMP180 berfungsi secara berasingan, tetapi bersama-sama ia ranap
PANIK: ralat tidak dilindungi dalam panggilan ke API Lua (ralat memuatkan modul "bmp180" daripada fail "bmp180.lua": tidak cukup ingatan)
Atau sisa kod LUA baru sahaja jatuh ke konsol.

Ia tidak mungkin untuk memodenkan dengan cepat.

Laluan saya selanjutnya ialah membina perisian tegar saya pada SDK proprietari, seperti . Tetapi itu cerita lain. Saya hanya akan mengatakan bahawa perisian tegar telah dipasang tanpa masalah, tetapi tidak mungkin untuk melancarkan BMP180 yang malang.

kesimpulan

  • Modul ESP8266 sangat penyelesaian yang murah untuk membina rangkaian rumah pintar dan automasi rumah lain menggunakan WiFi
  • Modul ini agak sesuai untuk menggantikan NRF24L01+ bersama-sama dengan Arduino dan pengawal "popular" yang lain.
  • Untuk berfungsi sebagai pengawal bebas, ESP8266 mempunyai sedikit sumber dan perisian tegar yang agak kasar
  • Pengaturcaraan modul ESP adalah proses yang agak intensif buruh yang boleh menakutkan bagi pemula
  • Secara keseluruhan, ESP8266 mempunyai janji yang hebat. Saya akan menunggu pembangunan perisian tegar dan alat pembangunan, tetapi buat masa ini, saya akan menggunakannya bersama-sama dengan pengawal lain (kecuali )))

Pilihan pelaksanaan yang berbeza untuk modul ESP8266 telah disemak di sini lebih daripada sekali, dan sepatutnya begitu. Cip kecil bersaiz syiling dengan WiF di atas kapal ini boleh berfungsi sebagai titik akses dan pelanggan dan boleh diprogramkan dalam apa jua cara - dan dijual dengan harga beberapa dolar.

Sebelum kami sempat membiasakan diri dengan idea bahawa semua jenis kraf menarik boleh dibuat pada satu sen Arduino, Attiny atau STM - sama seperti peranti dengan WiFi dan pemproses yang berkuasa pada 80 megahertz mereka menjadi pesaing dalam harga. (Sial, pemproses saya adalah yang pertama komputer sendiri adalah lebih cepat sedikit, berapa umur saya).

Satu masalah - semua peranti dengan ESP8266 yang melalui tangan saya sangat menyusahkan, menyambungkannya adalah menyakitkan. Tetapi industri China mendengar kami dan melakukannya dengan baik :)

Mengapa kita "sayang" varian yang berbeza ESP8266:

  • Mereka dikuasakan oleh 3.3 volt, berbanding lima yang lebih biasa
  • Pada puncaknya, mereka memerlukan arus sehingga 320mA, yang melebihi keupayaan penukar USB-TTL konvensional.
  • Padang antara output papan biasanya bukan standard 2.54 mm, tetapi 2 mm tepat - yang menjadikan pematerian pengembaraan yang rumit
  • Terdapat hanya satu versi papan dengan pic pin 2.54 mm ("ESP8266-01"), tetapi ia mempunyai minimum pin berguna
  • Cip ditukar kepada mod pengaturcaraan dengan menutup kenalan, yang memerlukan kemahiran. Atau memateri butang
  • Dengan Tetapkan Semula masalah yang sama - sama ada matikan kuasa atau pateri butang
Dan kemudian industri China mengeluarkan "ESP8266-12E" di bawah nama "Witty Cloud":

Papan itu ialah "sandwic" daripada dua. Pada lapisan atas (di sebelah kiri dalam kedua-dua foto) ialah cip ESP8266 itu sendiri, di bawahnya ialah penyambung bekalan kuasa microUSB dan pengatur voltan AMS1117-3.3, yang tugasnya adalah menukar 5 volt kepada 3.3. Menurut lembaran data, pengawal selia mempunyai arus sehingga 0.8A, jadi ini lebih daripada cukup untuk menghidupkan cip. di sana - Butang set semula untuk but semula.
Untuk mempunyai sesuatu untuk menduduki sudut kosong papan, orang Cina menyorong LED RGB dan photoresistor ke sana, lebih banyak padanya kemudian.

Pada lapisan bawah "sandwic" (gambar di sebelah kanan) terdapat MicroUSB sepenuhnya, cip CH340G dan butang "Flash" (mod perisian tegar) dan "Reset".

"Sandwic" memberikan kebebasan bertindak yang lebih besar. Anda boleh menyambungkan "sandwic" ke komputer di bahagian bawah (penuh) Penyambung USB, atur semula - dan kemudian sepadukannya ke dalam kraf anda sahaja bahagian atas, menjimatkan saiz sarung.

Selain itu, bahagian bawah "sandwic" boleh digunakan untuk memprogram modul buatan sendiri. Saya sendiri menyolder modul ESP8266-12 dan ESP8266-07 yang terletak di sekeliling papan penyesuai yang tidak begitu berjaya dengan harga $0.22 dan melampirkan pengawal selia AMS1117 "pada hingus" - kedua-duanya berfungsi tanpa sebarang masalah dan ternyata 100% serasi dari segi penyambung dan butang:

Okay, cukup memuji modul, mari kita lakukan sesuatu yang berguna. Halaman penjual mengiklankan beberapa jenis SDK dan juga beberapa jenis "awan" Cina untuk peranti berdasarkan ESP8266 dan Android, walaupun terdapat (hampir) tiada maklumat tentangnya dalam bahasa Inggeris. Jika ya, mari kita menyerah kepada mereka, lancarkan Arduino IDE 1.6 dan masuk ke tetapan.

Dalam tetingkap "URL Tambahan", masukkan baris https://arduino.esp8266.com/package_esp8266com_index.json Kemudian buka "Pengurus papan" dan masukkan "ESP8266" ke dalam bar carian. Klik Pasang dan bersedia untuk menunggu sehingga sebanyak 130 megabait pakej dimuat turun:

Mari sambungkan "sandwic" ke komputer ke dalam penyambung MicroUSB (penuh) yang lebih rendah. Windows harus mengesan penukar USB-TTL "CH340G" dan menetapkannya pelabuhan maya. Pelabuhan inilah yang akan kami tunjukkan Tetapan Arduino IDE. Selebihnya tetapan ialah:

Mari letakkan kod asas ke dalam ingatan

#termasuk const char* ssid = "??? nama titik WiFi anda???"; const char* kata laluan = "??? kata laluan???"; Pelayan WiFiServer(80); void setup() ( Serial.begin(115200); WiFi.begin(ssid, password); manakala (WiFi.status() != WL_CONNECTED) ( delay(500); Serial.print("."); ) pelayan. begin(); Serial.print("Alamat IP modul kami: "); Serial.println(WiFi.localIP()); ) void loop() ( WiFiClient client = server.available(); if (!client) ( return; ) while(!client.available())( delay(1); ) client.flush(); String s = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r \nhello from esp8266!\n"; client.print(s); delay(1); )

Sila ambil perhatian bahawa semasa proses berkelip tidak perlu menekan butang Flash - lembaga akan menguruskan semuanya sendiri.

Selepas program baru dituangkan ke dalam ESP8266, ia boleh diputuskan sambungan dari komputer dan dikuasakan walaupun dari bank kuasa. Bahagian bawah "sandwic" boleh ditanggalkan; ia tidak diperlukan lagi.

Sama ada dengan bantuan Arduino monitor bersiri (kelajuan port - 115200), atau dalam antara muka web penghala kami melihat alamat IP yang kami terima dalam rangkaian WiFi rumah ESP8266 kami. Buka alamat ini dalam penyemak imbas komputer atau telefon anda:

Peranti kami disambungkan ke rangkaian rumah, membawa pelayan web dan bertindak balas kepada kami.

Adakah anda pasti peranti anda berfungsi? Jom teruskan. Agar ia digunakan untuk sesuatu yang berguna dalam kehidupan seharian, adalah menarik untuk "berkawan" dengannya, sebagai contoh, dengan geganti. Benar, geganti 5-volt klasik, mengikut definisi, tidak lagi diperlukan - risikonya terlalu besar sehingga voltan 3.3 volt tidak akan mencukupi untuk elektromagnet menarik angker. Oleh itu, kami mengambil geganti keadaan pepejal Omron untuk $1.90. Menurut lembaran data, voltan yang kami ada cukup untuk ia beroperasi dengan jelas:

Kami menyambungkan "tambah" dan "tolak" ke kenalan VCC dan GND lapisan atas "sandwic", dan yang ketiga, isyarat, wayar ke, sebagai contoh, kenalan GPIO 2. Sebagai program, anda boleh mengambil lakaran WiFiWebServer, yang dilampirkan pada perpustakaan Arduino, atau gunakan program rakan sekerja Sav13 daripada samopal.pro/wifi-power-esp8266/

Untuk ujian, saya mengambil mentol lampu halogen 20W mudah dan mengkliknya sepuas hati:

Operasi berlaku dalam sepersekian saat selepas arahan diberikan. Untuk menyemak kebolehpercayaan, saya memasukkan pembilang ringkas ke dalam kod dan melakar fail kelawar ringkas yang menghidupkan dan mematikan mentol lampu dengan jeda sesaat. Membuka sekumpulan mereka tingkap tambahan, dari mana mula membombardir alamat IP modul dengan tidak berkesudahan arahan ping. Selepas beberapa jam, kaunter on-off melebihi 19 ribu, tetapi semuanya berfungsi - yang memberikan sedikit keyakinan terhadap kebolehpercayaan peranti.

Jika anda telah membaca sejauh ini, tetapi pemikiran "ini semua rumit" berputar di kepala anda, saya telah menyediakan sesuatu yang menyenangkan untuk anda

Ingat saya sebutkan itu pengilang Cina"untuk perubahan", adakah anda meletakkan LED RGB dan photoresistor pada papan? Anda boleh bereksperimen dengannya, walaupun anda tidak mempunyai penderia lain atau peranti lain.

Dalam pilihan ini, anda perlu berusaha dan melancarkan IDE Arduino tepat sekali.


Skrin aplikasi ialah medan kosong di mana anda boleh meletakkan elemen, seperti pada papan pemuka. Mula-mula cuba "zeRGBa" dan "gauge":

Dalam tetapan zebra, nyatakan bahawa LED tiga warna pada papan disambungkan ke pin 12 (hijau), 13 (biru) dan 15 (merah):

Dalam tetapan "tolok", nyatakan bahawa photoresistor pada papan disambungkan kepada input analog "adc0":

Aktifkan apa yang telah anda pahat dengan mengklik pada butang di sebelah kanan bucu atas. Anda akan melihat bahawa penunjuk kuning berubah bergantung pada tahap cahaya, dan LED RGB pada "sandwic" bertukar warna apabila anda mencucuk lintasan zebra:

Amalan telah menunjukkan bahawa kanak-kanak sangat menyukai perkara ini. Satu perkara untuk bermain permainan orang lain pada tablet, satu lagi untuk membuat dan melukis "kawalan jauh" sendiri dan mengawal sesuatu yang ketara. Ia cukup untuk mengambil bahagian persediaan dalam Arduino, dan kemudian menunjukkan cara menggunakannya, menyediakan beberapa LED, butang atau bahagian seperti sensor suhu analog LM35 - mereka akan segera mengambil "mainan" anda dan anak anda akan sibuk untuk masa yang lama. Anda tidak akan ditarik oleh telinga, ia telah diperiksa.

Untuk penciptaan cepat Prototaip Blynk juga ternyata sangat mudah - lebih mudah untuk melakar butang dan suis di sana daripada membina antara muka web anda sendiri. Masa yang dijimatkan boleh faedah yang lebih besar berbelanja untuk memasang kraf lain.

Ringkasan

Untuk harga lebih daripada 200 rubel, anda mendapat peranti yang sangat berkuasa dan bebas sepenuhnya di mana anda boleh memprogram semua jenis perkara berguna untuk rumah anda - dan mengawalnya melalui WiFi.

"sandwic" ternyata sangat berjaya. Ia kurang daripada satu dolar lebih mahal daripada ESP8266-12 yang terdedah, tetapi menjimatkan banyak masa dan kerumitan anda. Sekumpulan wayar dan papan roti tidak diperlukan.

Idea pra-memasang LED dan photosensor pada papan adalah sangat berjaya. Walaupun anda tidak mempunyai apa-apa selain modul dan kabel MicroUSB, anda masih boleh sekurang-kurangnya mencuba sesuatu dahulu dan menikmati pembelian. Jika ia tidak diperlukan pada produk siap, hanya pateri atau potong.

Pada harga ini, "sandwic" adalah pesaing yang jelas Arduino Nano, dan menjadikannya sangat tidak perlu modul Bluetooth(jenis HC-05) dan lebih-lebih lagi - modul radio NRF24L01+.

Saya menangkap diri saya dan hampir melanggar tradisi: