- Kas yra ESP8266?
- „WiFi“ teorijos pagrindai:
- Programavimo su ESP8266 tipai:
- Aparatūra programuoti ESP8266 modulį:
- Reikalingos medžiagos:
- Grandinės paaiškinimas:
- ESP8266 programos valdyba:
Daiktų internetas ir namų automatika pastarosiomis dienomis išties buvo užgauta tema. Kurti savo jėgomis, galinčius bendrauti su internetiniu tinklu ir prieinamą iš bet kurios pasaulio vietos, tikrai skamba, ar ne?
Bet palauk!!! Tai taip pat skamba komplikuotai ???….
Taigi tai padariau už mane, maniau, kad reikės daug laiko ir įgūdžių kurti dalykus, kurie galėtų sąveikauti su internetu. NE, aš visiškai klydau dėl šio fantastiško „ Espressif Systems“ modulio, vadinamo ESP8266. Dabar naudodamiesi šiuo moduliu galite lengvai atverti savo daiktų interneto duris. Šis nebrangus, mažas modulis gali padaryti stebuklus ir yra tikrai paprastas ir paprastas naudoti, jei atliksime teisingus veiksmus.
Šiomis pamokomis siekiama supažindinti jus su šiuo ESP8266-01 moduliu ir padėti jums jį pradėti. Galbūt jūs jau atsinešėte savo modulį ir užstrigote bandydami jį naudoti. Tada jūs nesate vieni, nesijaudinkite, daugeliui žmonių labai sunku pradėti naudotis moduliu, nes nėra tinkamų šio modulio nurodymų ar dokumentų. Tai yra šios mokymo programos sukūrimo priežastis. Vykdykite čia pateiktas instrukcijas ir turėtumėte turėti galimybę greitai ir greitai paleisti ESP8266-01 modulį. Čia programavimui ESP8266 naudosime FTDI USB - TTL nuosekliojo adapterio modulį. Patikrinkite išsamų vaizdo įrašą mokymo programos pabaigoje.
Prieš pradėdami temą, galite apžvelgti keletą pagrindų apie ESP8266-01 modulį.
Kas yra ESP8266?
Daugelis žmonių ESP8266 vadina WIFI moduliu, tačiau iš tikrųjų tai yra mikrovaldiklis. ESP8266 yra mikrokontrolerio pavadinimas, kurį sukūrė „Espressif Systems“, kuri yra įmonė, įsikūrusi Šanchajuje. Šis mikrovaldiklis gali atlikti su WIFI susijusią veiklą, todėl yra plačiai naudojamas kaip WIFI modulis.
Yra daugybė ESP8266 modulių tipų, pradedant ESP8266-01 ir ESP8266-12. Tas, kurį naudojame pamokoje, yra ESP8266-01, nes jis yra pigiausias ir lengvai prieinamas. Visuose ESP moduliuose yra tik vieno tipo ESP procesoriai, skiriasi tik naudojamas išardymo juostos tipas. ESP8266-01 pertraukimo plokštė turės tik 2 GPIO kaiščius, o kitose plokštėse ji bus aukštesnė.
Visa modulio specifikacija pateikta žemiau esančioje lentelėje
Įtampa |
3.3V |
Dabartinis suvartojimas |
10uA-170mA |
Didžiausias srovės suvartojimas mirksint |
800mA |
„Flash“ atmintis |
16 MB (512 KB normalus) |
Procesorius |
„Tensilica L106“ 32 bitų |
Procesoriaus greitis |
80–160 MHz |
RAM |
32 tūkst. + 80 tūkst |
GPIO |
17 (bet dauguma yra daugybiniai) |
Analoginis į skaitmeninį keitiklį |
1 (10 bitų) |
Maksimalus TCP ryšys |
5 |
Gerai, keletas dalykų, kurie jus galėjo nustebinti dėl specifikacijos, yra TAIP, kad ESP8266 modulis yra su ADC keitikliu ir mirksėdamas jūsų įrenginyje jis sunaudoja labai didelę 0,8 A srovę.
Taip pat patikrinkite įvairius įdomius interneto projektus, pagrįstus ESP8266.
„WiFi“ teorijos pagrindai:
Perkėlimo valdymo protokolas (TCP), interneto protokolas (IP), vartotojo duomenų „Instagram“ protokolas (UDP), prieigos taškas (AP), stotis („Sta“), paslaugų rinkinio identifikatorius (SSID), programų programavimo sąsaja (API), tinklo serveris..
Ar visi minėti terminai jums yra prasmingi?
Jei taip. Tada, BINGO, galite peršokti šią dalį ir pereiti į kitą skyrių.
Jei ne. Tada jūs turite būti vienas iš daugelio elektrinių studentų, kurie tiesiog mirktelėjo per daugelį šių terminų, kaip ir aš, kai pirmą kartą buvau supažindintas su visais šiais dalykais. Taigi, greitai peržvelkime visas šias sąlygas, nes tik tada galėtume patekti į IOT pasaulį.
Perdavimo valdymo protokolas (TCP):
Daugelis iš mūsų žinotų, ką tai reiškia. Taip, tai yra taisyklių rinkinys, kuriuo remiantis veikia internetas. Kadangi ESP8266 turi galimybę nustatyti WIFI ryšius. Aukšto lygio „Wi-Fi“ yra galimybė dalyvauti TCP / IP ryšiuose belaidžiu ryšiu. Galite priversti savo ESP veikti TCP / IP protokolu arba UDP protokolu.
Vartotojo datagramos protokolas (UDP):
UDP taip pat yra dar viena interneto protokolo rūšis. Šio tipo ryšys yra greitesnis nei TCP, tačiau jis nėra toks tikslus. Priežastis ta, kad TCP bendraujant naudoja patvirtinimą, bet UDP - ne. TCP dažniausiai naudojamas tinkluose, kur reikalaujama didelio patikimumo. UDP naudojamas tose vietose, kur greitis turi svarbiausią prioritetą nei patikimumas. Pvz., UDP naudojamas vaizdo konferencijose, nes net jei kai kurie pikseliai nėra perduodami, tai neturės didelės įtakos vaizdo kokybei, tačiau greitis yra labai svarbus.
Dauguma ESP8266 projektų ir kodų veikia aplink TCP / IP, o UDP tai mažiau vargins.
Prieigos taškas (AP) ir stotis (STA):
Pradėję dirbti su ESP moduliu, dažnai susidursite su šiais dviem terminais. Sakykime, kad jūs ir jūsų draugas norėtumėte naršyti internete išmaniaisiais telefonais, tačiau kadangi jis neturi aktyvaus interneto ryšio, nusprendžiate įjungti viešosios interneto prieigos tašką ir jūsų draugas prisijungia prie jo. Čia jūsų telefonas, gaunantis interneto ryšį, yra prieigos taškas (AP), o jūsų draugo telefonas, kuris naudojasi internetu, vadinamas stotimi (STA).
ESP8266 modulis gali būti naudojamas trimis režimais, AP režimu, STA režimu arba tiek STA, tiek AP režimu (kartu).
Paslaugų rinkinio identifikatorius (SSID):
Tai gana paprastas terminas. Beveik visi iš mūsų naudojome WIFI. „Wi-Fi“ tinklo pavadinimas vadinamas jo SSID. Kai turime keletą prieigos taškų, prie kurių stotis gali prisijungti, stotis turėtų žinoti, kurį prieigos tašką ji turėtų prisijungti, todėl kiekvienam prieigos taškui (AP) suteikiama tapatybė, vadinama SSID.
Taikomųjų programų sąsaja (API):
Paprasčiau tariant, API yra „Messenger“, kuri priima jūsų užklausas, jas apdoroja ir grąžina jūsų sistemai norimą rezultatą. Daugumoje veiklų, kurias atliekame internete, naudojamos API, pvz., Kai užsakote skrydį, perkate internetu ir pan. Kiekvienos svetainės jus susieja su API, kur atliekama tam tikra darbo dalis, pvz., Registracija, mokėjimas ir pan. ten.
ESP8266 naudoja API kalbėdamasis su interneto pasauliu. Pvz., Jei jis nori sužinoti laiką, klimatą ar bet ką, ko turėtų prašyti API forma atitinkamoje svetainėje. Ši svetainė gaus užklausą ir grąžins norimą rezultatą mūsų ESP moduliui.
Tinklapio serveris:
Žiniatinklio serveris yra kažkas, kas yra atsakingas už svetainės turinio rodymą. Visas tos konkrečios svetainės turinys bus įkeltas į jos žiniatinklio serverį. Yra tam skirti kompiuteriai, kurių užduotis yra veikti tik kaip interneto serveris. Mes taip pat galime užprogramuoti savo ESP8266 veikti kaip žiniatinklio serverį ir prisijungti prie jo iš bet kurios pasaulio vietos.
Gerai, to mums pakanka, kad galėtume pradėti. Dabar leiskime į rankas aparatinę įrangą.
Programavimo su ESP8266 tipai:
Yra du būdai, kaip dirbti su ESP8266 moduliu. Ši pamoka padės jums pradėti nuo abiejų. Vienas iš būdų yra naudoti AT komandas. Kitas būdas yra naudoti „Arduino IDE“. Leiskite mums suprasti, ką tai reiškia.
Visuose iš gamyklos išsiųstuose ESP8266 moduliuose bus įkelta numatytoji programinė aparatinė įranga (SDK + API). Ši programinė aparatinė įranga padės jums užprogramuoti ESP8266 modulį per AT komandas.
Kitas būdas yra tiesiogiai programuoti ESP8266 modulį naudojant „Arduino IDE“ (plokštė nereikalinga) ir jos bibliotekas. Visi projektai gali būti atliekami abiem būdais. Bet jei pradėsite naudoti „Arduino IDE“ programuodami savo ESP8266, galbūt negalėsite naudoti AT komandų, nes numatytasis SDK gali būti sugadintas. Tokiu atveju turite mirksėti ESP naudodami numatytuosius nustatymus. Mes tai aptarsime kitoje pamokoje.
Aparatūra programuoti ESP8266 modulį:
ESP8266 yra 8 terminalų modulis. Kaištis iš to paties parodytas žemiau.
Deja, šis modulis nėra draugiškas skydinėms lentoms, todėl negalime jo montuoti tiesiai ant savo skydo. Be to, skirtingai nei „Arduino“, jame nėra integruoto USB į nuoseklią tvarkyklę; taigi, norėdami su juo bendrauti, turime naudoti „FTDI USB to TTL Serial Adapter Module“. Įsitikinkite, kad FTDI plokštė taip pat gali veikti su 3,3 V įtampa; tas, kurį naudojame šioje pamokoje, parodytas žemiau.
Dabar, kai žinome, ESP8266 turėtų įjungti 3,3 V įtampa. Tačiau dabartinis suvartojimas yra 0,8A, todėl jis gali neveikti taip, kaip tikėtasi, jei maitinamas iš mūsų FTDI pertraukimo plokštės. Taigi mes turime sukurti savo maitinimo grandinę. Čia mes naudojome LM317 maitinimo tikslais; Išsami informacija apie visos aparatūros gamybą pateikiama tolesniuose skyriuose.
Reikalingos medžiagos:
- Perf Board
- ESP8266-01
- FTDI išsiveržimo valdyba
- LM317
- 0,1uf kondensatorius
- 10uf kondensatorius
- Barelis Džekas
- Bergstik vyras ir moteris
- Paspauskite mygtuką
- Jungiamieji laidai
- 12 V adapteris plokštės maitinimui.
Grandinės paaiškinimas:
Lentos schema parodyta žemiau
Kai kurie galbūt bandė maitinti jūsų ESP tiesiai iš savo FTDI ir jį veikė, tačiau toliau pateikiamos priežastys sukurti savo plokštę su keliais papildomais komponentais:
- Tik kelios FTDI plokštės gali tiekti pakankamai srovės ESP moduliui. Kai kurie ESP moduliai mirksėdami gali sunaudoti didelę srovę nei kiti. Todėl visada yra saugu turėti savo maitinimo šaltinį ir bus lengviau integruoti maitinimo grandinę taškų lentoje, o ne duonos lentoje.
- Prieš įkeldami kodą, visada turėtume iš naujo nustatyti ESP modulį, sukūrę savo plokštę, galėsite lengvai iš naujo nustatyti modulį. Norėdami iš naujo nustatyti ESP8266, naudojome mygtuką „Push“.
- GPIO0 kaištis turi būti įžemintas programuojant naudojant „Arduino“ ir paliktas laisvas naudojant AT komandas. Tai galima lengvai perjungti, jei sukursime savo plokštę. Perjungimui tarp AT komandų režimo ir „Arduino IDE“ programavimo režimo naudojome „ Jumper“.
- Visas programavimas atliekamas naudojant nuoseklųjį ryšį , jei naudojate skydą, kai kurie laisvi gnybtai gali sukelti klaidą perpus ir priversti mus vėl mirksėti moduliu.
Tai sakant, galite pasirinkti naudoti duonos lentą ir sukurti savo lentą modulio programavimui. Jei vis tiek norite naudoti skydą, tą pačią schemą, kaip parodyta aukščiau, galite sukurti naudodamiesi duona. Tik išvaizda bus kitokia, visos kitos instrukcijos šioje pamokoje bus vienodos.
ESP8266 programos valdyba:
Taigi čia mes kuriame plokštę programuoti ESP8266 modulį, kuris turi savo maitinimo grandinę, kad įjungtų ESP8266.
Kaip minėta, mūsų moduliui reikės maždaug 800 mA, kol jį programuosite. Taigi mes sukūrėme savo maitinimo modulį naudodami kintamos įtampos reguliatorių LM317, nes LM317 šaltinio srovė yra beveik 1,2 A. LM317 įėjimo įtampa bus 12 V, kuri bus suteikta naudojant 12 V 2A sieninį adapterį. LM317 išėjimas bus nuolat reguliuojamas iki 3,3 V, naudojant 220ohm ir 360ohm rezistorius. Taip pat patikrinkite mūsų akumuliatoriaus įkroviklio grandinę naudodami LM317, kad sužinotumėte daugiau apie LM317.
LM317 išėjimo įtampos apskaičiavimo formulės pateikiamos žemiau:
Vout = 1,25 * (1+ (R2 / R1))
Kur R1 yra 220 omų, o R2 yra 360 omų.
ESP8266 modulis prijungtas taip, kaip nurodyta žemiau esančioje lentelėje.
Smeigtukas Nr. |
ESP PIN kodas |
Prisijungęs prie |
1 |
Žemė |
FTDI modulio pagrindas |
2 |
GPIO2 |
Paliktas laisvas arba prijungtas prie bergelio lazdelės, kad būtų galima naudoti ateityje |
3 |
GPIO0 |
Perjunkite perjungti programavimo režimus |
4 |
Rx |
FTDI modulio Tx |
5 |
Tx |
FTDI modulio Rx |
6 |
CH_PH |
3,3 V iš LM317 |
7 |
Atstatyti |
Mygtukas atkurti modulį |
8 |
Vcc |
3,3 V iš LM317 |
Kad galėčiau lengvai perjungti AT komandų režimą ir „Arduino“ programavimo režimą, įdėjau jungiklį (trumpiklį), kuris naudodamasis „Arduino IDE“ ištrauks GPIO 0 ant žemės ir paliks jį plūduriuojant naudojant AT komandas.
Yra mygtukas, kurį paspaudus ESP modulis bus atstatytas. Tai daroma paprasčiausiai per mygtuką prijungiant ESP modulio RST kaištį prie žemės bėgio. Kiekvieną kartą prieš užprogramuodami savo ESP modulį turėtume jį iš naujo nustatyti.
Surinkę grandinę, ji turėtų atrodyti maždaug taip žemiau.
Aš naudojau „Perf“ lentą, bet jei norite, taip pat galite naudoti duonos lentą (kaip aptarta aukščiau). Visas sukūrimas ir paaiškinimas parodyti toliau pateiktame vaizdo įraše.
Kai tai bus padaryta su jungtimis. Įjunkite plokštę be ESP ir FTDI plokščių ir patikrinkite, ar tinkamai gauname 3,3 V ESP modulių padėties Vcc ir Ground gnybtuose. Dabar įsitikinkite, kad jūsų FTDI plokštė veikia 3.3V režimu, ir prijunkite FTDI ir ESP modulius prie savo plokštės.
Įjunkite adapterį ir prijunkite jį prie savo plokštės, ESP modulis turėtų užsidegti raudona spalva.
Tada prijunkite FTDI plokštę prie kompiuterio naudodami mini-USB į USB kabelį ir kompiuteryje eikite į „Device Manager“ ir turėtumėte rasti FTDI plokštę, prijungtą prie savo COM prievado, kaip parodyta žemiau
Dabar laikas įsidėmėti ESP8266 modulio programavimą. Galite pradėti naudodami AT komandas ir tada pereikite prie „Arduino IDE“ naudojimo. Nepamirškite patikrinti kitų mūsų ESP8266 pagrįstų projektų.