ESP8266 di mana untuk memulai atau pengalaman pertama

Dalam artikel ini saya ingin berbagi pengalaman tentang apa yang harus dilakukan ketika selendang ESP8266 pertama kali jatuh ke tangan saya. Segera melakukan pemesanan yang mengambil potongan-potongan besi, serta pemrograman, adalah hobi saya untuk uang saya dan waktu luang saya dari kegiatan utama saya. Karena itu, tolong perlakukan tingkat kritik materi ini dengan diskon tertentu.

Mengapa saya memutuskan untuk menulis ini? Sederhana: Saya membunuh 3 minggu untuk mencari tahu dari mana harus memulai dan bagaimana cara kerjanya. Selain itu, saya akan mencoba mengumpulkan katalog kecil tautan untuk bekerja dengan ESP8266. Saya berharap bahwa informasi ini akan menyelamatkan Anda setidaknya sebagian kecil dari waktu.

gambar

Jadi mari kita mulai!

Saya memesan 3 opsi papan untuk diri saya di situs Cina yang terkenal:

  1. ESP8266 WIFI Papan Uji Dev Serial Nirkabel berdasarkan ESP-12 (selanjutnya disebut "Papan Kuning") ($ 3,12)
  2. ESP8266 ESP-07 bersama dengan Plat Adaptor Untuk ESP8266 (selanjutnya disebut ESP-07) ($ 2,30)
  3. LoLin V3 NodeMcu Lua berdasarkan ESP-12 (selanjutnya disebut "Lolin") ($ 3,12)

Alasan mengapa saya mengambil kebun binatang seperti itu:

  1. Papan Kuning sudah memiliki LED built-in yang Anda dapat segera berkedip, untuk daya, Anda dapat menggunakan 3.3V tidak luar biasa, yang perlu Anda dapatkan entah bagaimana, tetapi 3 baterai AA atau dengan menghubungkan 4.5V (yang saya lakukan).
  2. LoLing menyuap saya oleh fakta bahwa itu terhubung menggunakan kabel micro USB dan dia tidak membutuhkan konverter UART - segera dibangun ke dalamnya berdasarkan pada chip CH340 Cina, di mana Anda dapat dengan mudah menemukan driver pada win7x64 dan win10x64 (kasus saya), dan, sekali lagi didukung oleh adaptor biasa dengan output USB, daripada 3.3V yang canggih.
  3. ESP-07 . - , , . Adapter Plate — 20 , .

Untuk mulai dengan - memeriksa modul.

Di semua instruksi startup, mereka menulis bahwa jika Anda menghubungkan daya dan jaringan WiFi AI-THINKER xxxxxxx muncul, maka perangkat tersebut berfungsi. Itu terjadi dengan perangkat saya - mereka semua menciptakan jaringan WiFi yang dapat Anda hubungkan. Hore! Menghasilkan! Saya senang, tetapi lebih awal.

Untuk memulainya, saya memutuskan untuk bereksperimen dengan Yellow Board. Penjual dengan indikator peringkat harga terbaik dalam deskripsi produk hanya memiliki gambar. Dan bukan kata-kata deskripsi. Pada sumber daya berbahasa Rusia ada referensi ke papan ini, tetapi saya tidak menemukan spesifik tentang hal itu. Di beberapa penjual, saya melihat instruksi ini:

Instruksi Papan Kuning
1. Android phone installation IOT.APK, IOS client be released later
2. shorting cap connected to the power to enter the programming mode, enter the normal operating state removed
3. Replace the battery, mobile search network «AI-THINKER» router
4. join the router (the router module form) password is: ai-thinker
5. after the success can be added directly to the control module of the mobile phone.
6. Enter the home router «SSID» and «Password» in the «Configure Device», then click on the icon at the top of the router, wait a few moments after the jump to join the router, connect the phone router WiFi, again «discovered device» to achieve control in the LAN.

:

1. Wi-Fi ( 5.0 !) IOT.APK, IOS
2. , .
3. ( ) Wi-Fi «AI-THINKER»
4. «ai-thinker»
5. IOT . . , .

Ketidakkonsistenannya adalah bahwa jaringan xxxxxxxxxx AI-THINKER saya tidak meminta kata sandi, tetapi segera telepon terhubung ke sana. Dan titik aplikasi kosong tidak "melihat" ESP setelah menghubungkan. LED RGB menyala biru dengan jumper terpasang atau hijau tanpanya.

gambar

Saya menduga bahwa mungkin orang Tionghoa itu menyolder - mereka menyolder, tetapi mereka lupa untuk mem-flash (atau mem-flash dengan bengkok). Karena itu, saya memutuskan untuk menjahit sendiri. Untuk firmware saya menggunakan ESP8266 Flasher. Dan kemudian kejutan kedua muncul: tidak ada program yang mengenali papan, tidak menanggapi perintah, firmware tidak membanjiri. Terhubung melalui Arduino dan melalui konverter UART - tidak ada. Dua papan lainnya sudah dipantulkan dan berkedip dengan LED, tapi di sini kusam. Sampai aku menebak untuk menelepon kontak.

Tiga kontak untuk firmware ditampilkan secara terpisah di papan ini: TX, RX, GND. Jadi ternyata TX dibesarkan di RX ESP-12 itu sendiri, masing-masing, RX - di TX. Yaitu hanya perlu menukar dua kabel: kita menghubungkan konverter UART sesuai dengan skema:

TX-TX
RX-RX
GND-GND
atau Arduino:
TX-RX
RX-TX
GND-GND

Setelah pembukaan, modul menjadi hidup, yang asli ditemukan firmware untuk menginstal LED (AI-THINKER-IOT-2014-10-17 165528.bin) dan masih di-flash dengan ESP8266 Flasher yang sama. Kata sandi untuk titik akses muncul, dan aplikasi segera melihat kartu Kuning. Satu-satunya peringatan: untuk menginstal perlu menginstal jumper, untuk menghapus semua kasus lainnya. Dan jangan lupa untuk reboot perangkat setelah flashing.

ESP8266 ESP-07 dengan Plat Adaptor


Petunjuk untuk menghubungkan ESP-07 (ESP-12) melalui konverter UART:

gambar

  • Red - power 3.3v;
  • Hitam - GND;
  • Kuning - di sisi ESP8266 - RX, di sisi USB-TTL - TX;
  • Hijau - di sisi ESP8266 - TX, di sisi USB-TTL - RX;
  • Oranye - CH_PD (CHIP ENABLE) - harus selalu ditarik ke kekuasaan;
  • Biru - GPIO0 - terhubung melalui sakelar ke tanah untuk mengaktifkan mode flashing modul. Untuk awal modul GPIO0 yang biasa, Anda dapat membiarkannya tidak terhubung;
  • Abu-abu - GPIO15 (MTDO, HSPICS) pin ini harus ditarik ke tanah;
  • Jika Anda terhubung ke Arduino, maka RX-RX, dan TX-TX.

Menggunakan besi solder, ESP-07 dan adaptor digabungkan. Saya merekomendasikan adaptor karena lebih memudahkan koneksi dengan metode solderless menggunakan papan tempat memotong roti dan kabel. Dalam hal ini, saya menggunakan konverter DC-DC step-down dari Cina untuk daya. Sensor DS18B20 tersedia, dan diputuskan untuk menghubungkannya.

Saya tidak ingin menginstal HomesSmart segera dan pilihannya jatuh pada contoh seperti itu . Saya tidak akan mengetik ulang sirkuit dan kode - mereka hampir sama. Itu tidak bekerja segera, tetapi dengan Google dan rebana data tentang Pemantauan Orang-orang dimulai dan terbang.

Saya mengunduh skrip melalui ESplorer .

Itu di Arduino
image

Menjadi di ESP8266
image

Saya menunggu modul catu daya 220AC - 3.3DC yang ringkas untuk mengoptimalkan jumlah kabel.

LoLin V3 NodeMcu (Lolin)


Papan ini disarankan untuk segera mem-flash firmware NodeMcu, yang dilakukan melalui program flasher NodeMcu. Firmware sendiri dirakit oleh perancang, yang memungkinkan Anda untuk memasukkan hanya yang paling diperlukan.

Lebih lanjut, itu seharusnya menghubungkan dan mengendalikan relai 2-channel dan mengendalikan dua sconce di kamar tidur. Di sini saya ingin memikirkan satu hal. Versi Cina dari relay semacam itu memiliki jumper JD-VCC - VCC - GND. Secara default, ini diinstal pada pin JD-VCC - VCC.

gambar

Jadi, jumper tidak pernah dapat diinstal pada VCC - GND - mengatur korsleting! Tiga kontak ini digunakan untuk memberikan daya tambahan ke relai, dalam kasus di mana kontrol mungkin tidak cukup untuk mengoperasikan relai. Kehadiran jumper menunjukkan bahwa daya berasal dari kontak "kontrol".

Script digunakan sebagai berikut:

Teks skrip
#================= init.lua =================
--      
ssid,pass = "SSID","PASSWORD";

if (file.open('wificonf') == true)then
   ssid = string.gsub(file.readline(), "\n", "");
   pass = string.gsub(file.readline(), "\n", "");
   file.close();
end

wifi.setmode(wifi.STATION)
wifi.sta.config(ssid,pass)
wifi.sta.autoconnect(1);
print('IP:',wifi.sta.getip());
--print('MAC:',wifi.sta.getmac());

led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
restart=0;

gpio.write(led1, gpio.HIGH);
gpio.write(led2, gpio.HIGH);


t=0
tmr.alarm(0,1000, 1, function() t=t+1 if t>999 then t=0 end end)

srv=net.createServer(net.TCP, 1000)
srv:listen(80,function(conn)
    conn:on("receive",function(client,request)
    --      _GET
            local buf = "";
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        if(method == nil)then
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
        end
        local _GET = {}
        if (vars ~= nil)then
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
                _GET[k] = v
            end
        end
    --    
       --    <html><body>,      \
   --        \,  </body></html>
    conn:send('HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nCache-Control: private, no-store\r\n\r\n\
   <!DOCTYPE HTML>\
<html>\
 <head>\
        <meta charset="UTF-8" />\
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> \
        <meta name="viewport" content="width=device-width, initial-scale=1.0"> \
        <title>My control</title>\
   </head><body>\
        <div class="container">\
            <section class="color-1">\
                <p>\
                    <a href=\"?pin=ON1\"><button class="btn btn-4 btn-4a">Back ON</button></a>\
                    <a href=\"?pin=ON2\"><button class="btn btn-4 btn-4a">Bra ON</button></a>\
                </p>\
                <p>\
                    <a href=\"?pin=OFF1\"><button class="btn btn-5 btn-5a">Back OFF</button></a>\
                    <a href=\"?pin=OFF2\"><button class="btn btn-5 btn-5a">Bra OFF</button></a>\
                </p>\
            </section>\
        </div>\
</body></html>')
    --  
    --    
        local _on,_off = "",""
        if(_GET.pin == "ON1")then
              gpio.write(led1, gpio.LOW);
        elseif(_GET.pin == "OFF1")then
              gpio.write(led1, gpio.HIGH);
        elseif(_GET.pin == "ON2")then
              gpio.write(led2, gpio.LOW);
        elseif(_GET.pin == "OFF2")then
              gpio.write(led2, gpio.HIGH);
        end
        
  
              
    conn:on("sent",function(conn) conn:close() end)
    collectgarbage();

    
    end)
    
end)

#========================================


Saya tidak dapat menemukan kembali tautan ke sumber. Tetapi skemanya sederhana: Untuk Lolin kita sambungkan relai 1 dan relai 2 ke output D3 dan D4 ( led1 = 3 led2 = 4 ). Kemudian kami pergi ke alamat IP yang dikeluarkan oleh router kami dan melihat halaman:

gambar

Saya sangat menyesal, saya belum menemukan cara untuk menghadirkan keindahan, misalnya, untuk menghubungkan file gaya CSS. Pertanyaannya adalah dalam penggunaan file individual saat menampilkan halaman, dan tidak dalam mengatur style.

Saya sangat berharap bahwa informasi ini bermanfaat bagi setidaknya satu orang. Dan jangan menilai secara ketat untuk artikel pertama.

Referensi


Source: https://habr.com/ru/post/id394535/


All Articles