Esp 01 koblingsskjema. Wifi-modul basert på ESP8266-brikke. USB-til-TTL-konverter med DTR-kontakt

... Generelt er dette materialet ikke begrenset til bare ett Arduino-emne.

Emnet for ESP8266 er ganske vanskelig. Men hvis du jobber med disse Wi-Fi-modulene i Arduino IDE-utviklingsmiljøet, synker inngangsterskelen til et nivå som er akseptabelt for den gjennomsnittlige Arduino-brukeren. Og ikke bare Arduino-fyren, men enhver person som har et ønske om å piske opp noe om temaet IoT (Internet of Things), og uten å bruke mye tid på å lese dokumentasjonen for brikken og studere API-en for disse modulene.

Denne videoen dupliserer fullstendig materialet som presenteres i artikkelen nedenfor.

Vel, vi vet allerede hvordan vi kobler til ESP8266 og setter den i programmeringsmodus, la oss nå gå videre til noe mer nyttig.

Jeg vil si med en gang at når vi programmerer modulen i Arduino-utviklingsmiljøet, ødelegger vi den opprinnelige fastvaren, og vi vil ikke lenger kunne jobbe med modulen ved å bruke AT-kommandoer. Personlig gjør dette meg ikke kald/varm, men hvis noen trenger det, mot slutten av artikkelen vil jeg vise deg hvordan du flasher den opprinnelige fastvaren tilbake til modulen, eller en slags bootloader som NodeMcu.

Til å begynne med, last ned fra den offisielle nettsiden siste versjon Arduino IDE, på dette øyeblikket dette er 1.6.7. Eldre versjoner som 1.0.5. vil ikke passe fordi de rett og slett ikke har den nødvendige funksjonaliteten, og å danse med en tamburin interesserer oss ikke, ikke sant?

Vi starter utviklingsmiljøet og går umiddelbart til Fil/Innstillinger:

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

Gå deretter til Verktøy/Styre:/Styreleder...:

Et styreledervindu vil dukke opp foran oss, bla gjennom det helt til bunnen, og hvis alt er gjort riktig vil vi se noe slikt:

Klikk markøren på inskripsjonen " esp8266 av ESP8266 fellesskap"Etter det har vi en "Installer"-knapp, velg ønsket versjon, jeg tar den nyeste, i dag er den 2.1.0 og installerer den. Utviklingsmiljøet vil laste ned filene det trenger (ca. 150 megabyte) og motsatt av inskripsjon " esp8266 av ESP8266 fellesskap""INSTALLERT" vil vises, det vil si installert:

Vi ruller nedover listen over brett og ser at vi har mange forskjellige ESP-er på listen, ta "Generisk ESP8266-modul":

Gå til "Verktøy" og velg ønsket COM-port (for meg er det COM32) Arduino eller USB UART-konverter, og still deretter opplastingshastighet: "115200":

Vi setter hastigheten til 74880 og "NL & CR" og slår av igjen og setter på strøm og den vil svare med noe feilsøkingsinformasjon:

Merk at 74880 ikke er hovedhastigheten til ESP8266, den sender bare feilsøkingsinformasjon på den. Hvis modulen ikke sender noe til konsollen, kan det hende at noe er koblet feil.

Som standard skal hastigheten være 115200, men i noen tilfeller kan den være 9600 og andre... Så prøv å finne den.

Etter å ha valgt ønsket hastighet, sender vi "AT"-modulen og den skal svare at alt er "OK". Kommandoen "AT+GMR" viser informasjon om fastvaren.

Før du begynner å blinke ESP8266 inn Arduino IDE Jeg anbefaler deg å lese artikkelen til slutten.

La oss nå prøve å flashe ESP8266 via Arduino IDE. Vi satte modulen i programmeringsmodus (jeg skrev hvordan du gjør dette i en tidligere artikkel).

La oss legge til en standard LED til blinklyset:

// Av Mr. PodelkinTs youtube.com/RazniePodelki // special to geektimes.ru/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay(1000); )

blinket? Så alt ble gjort riktig. Hvor fikk jeg tak i at LED-en er koblet til den første pinnen? I forrige artikkel er det et bilde med pinouts av forskjellige moduler, og det er en markering av portene ved bruk av Arduino bootloader (pinner er merket med rosa).

Å blinke en LED er selvfølgelig bra, men vi må installere en slags webserver eller begynne å kontrollere LED i det minste ved å bruke knapper i nettleseren, ikke sant? Men jeg skal fortelle deg om dette en annen gang.

Og nå hvordan flash tilbake opprinnelig firmware, og hvordan du til og med flasher en modul med tredjeparts bootloadere. For ESP8266 er det et slikt program som NodeMCU Flasher, som opprinnelig er ment for å flashe oppstartslasteren til NodeMCU. Men som det viste seg, blinker den perfekt annen fastvare.

Jeg vil legge ved et arkiv med dette programmet og fastvaren til artikkelen for enkelhets skyld, men du kan alltid laste ned ny verson NodeMCU Flasher.

I mappen "nodemcu-flasher-master" er det 2 mapper Win64 og Win32, og avhengig av bitdybden til operativsystemet ditt, velg den du trenger. Deretter, i Release-mappen, kjør "ESP8266Flasher.exe" og se programgrensesnittet:

Velg ønsket COM-port og gå til "Config" -fanen, fjern krysset ved siden av "INTERNAL://NODEMCU" og sett det ett poeng lavere, som i skjermbildet:

(Hvis du vil flashe NodeMCU bootloader, fjern krysset der det ikke var, og sett det der det var, det vil si i nærheten av "INTERNAL://NODEMCU").

Deretter klikker vi på tannhjulet og velger hvor fastvaren vår er plassert, fastvaren er vanligvis i *.bin-format (i vedlagte arkiv er det “v0.9.5.2 AT Firmware.bin” som ligger i hovedmappen), og velg også "0x00000" som og høyere.

Vi går tilbake til fanen "Operation", setter modulen i programmeringsmodus og klikker på "Flash":

Det er det, modulen har begynt å bli blinket, etter å ha blinket, ikke glem å starte modulen på nytt og voila, den blinker med fastvaren vi trenger.

Vi sjekker med AT-kommandoen "AT+GMR" om vi gjorde alt riktig:

Som du ser gikk alt knirkefritt.

Det blir mer og mer populært, og Arduino tar allerede initiativet - legger disse Wi-Fi-modulene til listen over støttede brett.
Men hvordan koble den til Arduino? Er det mulig å klare seg uten en Arduino i det hele tatt? Dette er nøyaktig hva denne artikkelen vil handle om i dag.

Når jeg ser fremover, vil jeg si at det vil være en annen artikkel, mer praktisk, om emnet fastvare og programmering av ESP8266-modulen i Arduino IDE-utviklingsmiljøet. Men først ting først.

Denne videoen dupliserer fullstendig materialet som presenteres i artikkelen.



For øyeblikket er det mange varianter av denne modulen, her er noen av dem:

Og her er pinouten til ESP01, ESP03, ESP12:


*Dette bildet kan sees i god kvalitet på av. nettstedet pighixxx.com.

Personlig liker jeg ESP07-versjonen best. I det minste for det faktum at det er en metallskjerm (den beskytter mikrokretsene mot ekstern interferens, og sikrer dermed mer stabil drift), sin egen keramiske antenne og en kontakt for en ekstern antenne. Det viser seg ved å koble til det ekstern antenne, for eksempel som biquadrat, da kan du oppnå en god rekkevidde. I tillegg er det ganske mange input/output-porter, de såkalte GPIO (General Purpose Input Output - input/output-porter generelt formål), analogt med Arduino - pins.

La oss gå tilbake til sauene Wi-Fi-moduler og Arduino. I denne artikkelen skal jeg se på å koble en ESP8266 (modell ESP01) til en Arduino Nano V3.

Men, denne informasjonen vil være relevant for de fleste ESP8266-moduler og også ulike Arduino-kort, for eksempel de mest populære Arduino UNO.

Noen få ord om ESP01-beina:

Vcc Og GND(på bildet over er disse 8 og 1) - mat, per etappe Vcc kan sendes etter dokumentasjonen, fra 3 til 3,6 V, A GND- jord (minus effekt). Jeg så en person koble denne modulen til to AA-batterier (forsyningsspenningen i dette tilfellet var omtrent 2,7 V) og modulen var i drift. Men likevel indikerte utviklerne spenningsområdet der modulen skal garanteres å fungere; hvis du bruker en annen, er det problemet ditt.

Merk følgende! Denne modulen er basert på 3,3V logikk, mens Arduino stort sett er 5V logikk. 5 V kan lett skade ESP8266, så den må drives separat fra Arduino.

– Min Arduino har et ben hvor det står 3,3 V, hvorfor ikke bruke det?

Du vil nok tenke. Faktum er at ESP8266 er en ganske strømkrevende modul, og i topper kan den forbruke strømmer på opptil 200 mA, og nesten ingen Arduino er i stand til å levere en slik strøm som standard, med unntak av Arduino Due, der strømmen langs 3,3 V-linjen kan nå 800 mA, noe som er nok, i andre tilfeller anbefaler jeg deg å bruke en ekstra 3,3 V-stabilisator, for eksempel AMS1117 3,3 V. Det er mange av dem både i Kina og her.

Bein RST 6 - er ment for maskinvare for å starte modulen på nytt, ved å kort bruke et lavt logisk nivå på den, vil modulen starte på nytt. Selv om jeg forsømte dette i videoen, anbefaler jeg deg likevel "trykk" dette benet med en 10 kOhm motstand til strømforsyningen positiv, for å oppnå bedre stabilitet i driften av modulen, ellers ville jeg starte på nytt ved den minste forstyrrelse.

Bein CP_PD 4 (eller på annen måte NO) - tjener igjen til å "kable" modulen til energisparemodus, der den bruker svært lite strøm. Vel igjen - Det ville ikke skade å "trykke" dette benet med en 10 kOhm motstand til det positive Pitalova I videoen kortsluttet jeg dumt dette beinet til Vcc, fordi jeg ikke hadde en slik motstand for hånden.

Ben RXD0 7 TXD0 2 - hardware UART, som brukes til å blinke, men ingen forbyr bruk av disse portene som GPIO (henholdsvis GPIO3 og GPIO1). Av en eller annen grunn er ikke GPIO3 merket på bildet, men det er i dataarket:

Forresten, til beinet TXD0 2 er "Connect" LED tilkoblet, og den lyser når logikknivået på GPIO1 er lavt, eller når modulen sender noe via UART.

GPIO0 5 - kan ikke bare være en I/O-port, men også sette modulen i programmeringsmodus. Dette gjøres ved å koble denne porten til et lavt logisk nivå («trykke» den til GND) og levere strøm til modulen. I videoen gjør jeg dette med en vanlig knapp. Etter å ha blinket, ikke glem å trekke ut jumperen/trykke på knappen (det er ikke nødvendig å holde knappen nede mens den blinker; når den er slått på, går modulen inn i programmeringsmodus og forblir i den til den startes på nytt).

GPIO2 3 - inngang/utgangsport.

Og enda et viktig poeng, hver GPIO i Wi-Fi-modulen kan trygt levere strøm opp til 6mA, for ikke å brenne den, pass på å plassere motstander i serie med inngangs-/utgangsportene på... Husk Ohms lov R = U/I = 3,3V / 0,006 A = 550 Ohm, dvs. ved 560 Ohm. Eller neglisjere det, og så lure på hvorfor det ikke fungerer.

I ESP01 støtter alle GPIO-er PWM, så til våre fire GPIO-er, det vil si GPIO0-3, kan du koble til en motordriver, ala L293 / L298, og styre to motorer, for eksempel båter, eller lage RGB Wi-Fi hva som helst . Ja, ja, denne modulen har mange ting om bord, og for enkle prosjekter trengs ikke Arduino-fiolinisten, kun for å blinke. Og hvis du bruker ESP07, så er portene generelt nesten de samme som Uno, noe som gjør det mulig å trygt klare seg uten en Arduino. Riktignok er det et ubehagelig øyeblikk, ESP01 har ingen analoge porter i det hele tatt, og ESP07 har bare en, kalt ADC. Dette gjør selvfølgelig arbeidet med analoge sensorer vanskeligere. I dette tilfellet vil en Arduino analog multiplekser hjelpe.

Alt ser ut til å bli forklart av pinout, og her er diagrammet for å koble ESP8266 til Arduino Nano:

Ser du jumperen på RST- og GND-pinnene på Arduino Nano? Dette er nødvendig for at Arduino ikke skal forstyrre fastvaren til modulen; i tilfelle du kobler til ESP8266 ved hjelp av Arduino, er dette en forutsetning.

Dessuten, hvis du kobler til Arduino, må RX-en til modulen gå til RX-en til arduinoen, TX - TX. Dette er fordi omformerbrikken allerede er koblet til Arduino-pinnene i et kryssmønster.

Viktig er også en resistiv deler bestående av 1 kOhm og 2 kOhm motstander (kan lages av to 1 kOhm motstander ved å koble dem i serie) langs RX-linjen til modulen. Fordi Arduino er 5 V logikk og modulen er 3.3. Dette viser seg å være en primitiv nivåomformer. Den må være der, fordi bena til RXD TXD-modulen ikke tåler 5 V.

Vel, du kan klare deg helt uten en Arduino ved å koble til ESP8266 via en vanlig USB-UART-omformer. Når det gjelder tilkobling til Arduino, bruker vi i hovedsak en standard omformer usb-grensesnitt og uart, omgå hjernen. Så hvorfor bruke ekstra penger hvis du kan klare deg uten en Arduino i det hele tatt? Bare i dette tilfellet kobler vi RXD-en til modulen til TXD-en til omformeren, TXD - RXD.

Er du for lat til å bry deg med tilkoblinger, fikle med motstander og stabilisatorer, finnes det ferdige NodeMcu-løsninger:

Alt er mye enklere her: koble kabelen til datamaskinen, installer driverne og programmet, bare ikke glem å bruke jumperen/knappen på GPIO0 for å bytte modulen til fastvaremodus.

Vel, det er nok alt med teorien, artikkelen viste seg å være ganske lang, og jeg vil publisere den praktiske delen, ala fastvare og programmering av modulen, litt senere.

Mange brukere har allerede rettet oppmerksomheten mot ESP8266-12-brikken, utgitt av Espressif. Prisen er betydelig billigere sammenlignet med et standard Bluetooth-adapterkort, og til tross for de mindre dimensjonene, har det betydelig større muligheter. Nå har alle hjemmehobbyister muligheten til å jobbe i Wi-Fi-nettverk i to moduser samtidig, det vil si koble datamaskinen til et hvilket som helst tilgangspunkt eller slå den på som et slikt punkt.

På den annen side må du forstå at slike brett ikke bare er skjold beregnet på Wi-Fi-kommunikasjon. Selve ESP8266 er en mikrokontroller som har sine egne UART-, GPIO- og SPI-grensesnitt, det vil si at den kan brukes som helt autonomt utstyr. Etter utgivelsen av denne brikken kalte mange det en ekte revolusjon, og over tid vil slike enheter begynne å bygges inn i selv de mest enkle typer teknologi, men så langt er enheten relativt ny og det er ingen stabil fastvare for den. Mange spesialister rundt om i verden prøver å finne opp sin egen fastvare, fordi det faktisk ikke er vanskelig å laste dem opp til brettet, men til tross for forskjellige vanskeligheter, kan enheten allerede kalles ganske brukbar.

Foreløpig vurderes kun to søknadsalternativer av denne modulen:

  • Bruk av kortet i kombinasjon med en ekstra mikrokontroller eller en datamaskin som vil styre modulen via UART.
  • Uavhengig skriving av fastvare for brikken, som lar deg senere bruke den som en selvforsynt enhet.

Det er helt naturlig at vi bør vurdere uavhengig firmware i dette tilfellet vil vi ikke.

Ser på brukervennlighet og gode egenskaper, mange mennesker blant de mange mikrokontrollerne foretrekker ESP8266-modellen. Tilkobling og fastvareoppdatering av denne enheten er ekstremt enkel og rimelig, og produseres på samme maskinvare som utstyret er koblet til datamaskinen på. Det vil si også via en USB-TTL-omformer eller, hvis noen foretrekker andre tilkoblingsmuligheter, kan det gjøres via RPi og Arduino.

Hvordan sjekke?

For å sjekke funksjonaliteten til en nyinnkjøpt enhet, må du bruke en spesiell stabilisert spenningskilde vurdert til 3,3 volt. Det er verdt å merke seg med en gang at det virkelige forsyningsspenningsområdet til denne modulen er fra 3 til 3,6 volt, og å levere en økt spenning vil umiddelbart føre til at du ganske enkelt vil skade ESP8266. Etter en slik situasjon kan fastvare og annen programvare begynne å fungere feil, og du må reparere enheten eller på en eller annen måte fikse den.

For å bestemme funksjonaliteten til denne mikrokontrollermodellen trenger du bare å koble til tre pinner:

  • CH_PD og VCC er koblet til 3,3 volts forsyning.
  • GND kobles til jord.

Hvis du ikke bruker ESP-01, men en annen modul, og den allerede i utgangspunktet har en utgang GPIO15, må du i dette tilfellet i tillegg koble den til jord.

Hvis fabrikkfastvaren startet normalt, kan du i dette tilfellet se og da vil det blå lyset blinke et par ganger. Det er imidlertid verdt å merke seg at ikke alle enheter i ESP8266-serien har en rød strømindikator. Fastvaren på enkelte enheter sørger ikke for at den røde indikatoren lyser hvis modulen ikke har en (spesielt gjelder dette ESP-12-modellen).

Etter å ha koblet til din trådløst nettverk et nytt tilgangspunkt vil bli aktivert, som kalles ESP_XXXX, og det vil være synlig fra alle enheter som har tilgang til Wi-Fi. I dette tilfellet avhenger navnet på tilgangspunktet direkte av produsenten av fastvaren du bruker, og kan derfor være noe annerledes.

Hvis punktet vises, kan du fortsette å eksperimentere, ellers må du kontrollere strømforsyningen på nytt, samt riktigheten av GND- og CH_PD-tilkoblingene, og hvis alt er riktig tilkoblet, prøver du sannsynligvis fortsatt å bruk en ødelagt modul eller på Den har ganske enkelt fastvare installert med ikke-standardinnstillinger.

Hvordan koble den raskt til?

Standardsettet som kreves for å koble til denne modulen inkluderer følgende:

  • selve modulen;
  • loddefri brødbrett;
  • et komplett sett med hunn-hann-ledninger beregnet på et brødbrett, eller en spesiell DUPONT M-F-kabel;
  • USB-TTL-omformer basert på PL2303, FTDI eller en lignende brikke. Det beste alternativet er hvis RTS og DTR også sendes ut til USB-TTL-adapteren, siden du på grunn av dette kan oppnå ganske rask lasting av fastvaren fra noen UDK, Arduino IDE eller Sming, uten engang å måtte bytte GPIO0 til jord manuelt.

Hvis du bruker en 5-volts omformer, må du i dette tilfellet kjøpe en ekstra strømstabilisator basert på 1117-brikken eller en lignende, samt en strømkilde (for en standard 1117, til og med en vanlig 5- volt smarttelefonlader er ganske egnet). Det anbefales å ikke bruke Arduino IDE eller USB-TTL som strømkilde for ESP8266, men å bruke en separat, da dette til slutt kan bli kvitt mange problemer.

Et utvidet sett for å sikre komfortabel og konstant drift av modulen krever bruk av ekstra motstander, lysdioder og DIP-brytere. Bortsett fra dette, kan du også bruke billig USB-skjerm, som lar deg hele tiden overvåke mengden strøm som forbrukes, og vil også gi litt beskyttelse for USB-bussen fra

Hva må vi gjøre?

Først av alt er det verdt å merke seg det faktum at i ESP8266 kan kontrollene være litt forskjellige avhengig av hvilken spesifikk modell du bruker. Det er ganske mange slike moduler tilgjengelig i dag, og det første du trenger er å identifisere modellen du bruker og bestemme hvilken pinout den har. I denne instruksjonen vil vi snakke om å jobbe med ESP8266 ESP-01 V090-modulen, og hvis du bruker en annen modell med en GPIO15-pin (HSPICS, MTDO), må du trekke den til bakken både for standardstart av modulen og for å bruke fastvaremodus.

Etter dette, dobbeltsjekk at forsyningsspenningen for den tilkoblede modulen er 3,3 volt. Som nevnt ovenfor er det tillatte området fra 3 til 3,6 volt, og hvis det øker, svikter enheten, men forsyningsspenningen kan til og med være betydelig lavere enn de 3 volt som er oppgitt i dokumentene.

Hvis du bruker en 3,3 volt USB-TTL-omformer, kobler du til modulen nøyaktig som på venstre side av bildet nedenfor. Hvis du utelukkende bruker fem-volt USB-TTL, vær oppmerksom på høyre side av figuren. Mange tror kanskje at den riktige kretsen er mer effektiv på grunn av at den bruker en separat strømkilde, men faktisk i tilfelle USB-TTL-applikasjoner For en 5-volts omformer er det sterkt tilrådelig å også lage en ekstra motstandsdeler for å sikre samsvar mellom tre-volts og fem-volts logiske nivåer, eller ganske enkelt bruke en nivåkonverteringsmodul.

Tilkoblingsfunksjoner

Den høyre figuren viser tilkoblingen av UTXD (TX), samt URXD (RX) til denne modulen til fem-volts TTL-logikk, og slike prosedyrer utføres kun på egen risiko og risiko. For ESP8266 sier beskrivelsen at modulen kun fungerer effektivt med 3,3-volts logikk. I de aller fleste tilfeller, selv når du arbeider med fem-volts logikk, svikter ikke utstyret, men slike situasjoner oppstår av og til, så en slik tilkobling anbefales ikke.

Hvis du ikke har mulighet til å bruke en spesialisert 3,3-volts USB-TTL-omformer, kan du bruke en motstandsdeler. Det er også verdt å merke seg at på det høyre bildet er 1117-strømstabilisatoren koblet til uten ekstra ledninger, og dette er en virkelig fungerende teknologi, men det er fortsatt best å bruke 1117-koblingsskjemaet med kondensatorledninger - du må sjekke det med ESP8266-databladet for stabilisatoren din eller bruk en helt klar én-modul basert på 1117-basen.

For å starte modulen må du åpne GPIO0-TND-kretsen, hvoretter du kan sette på strøm. Det er verdt å merke seg at alt må gjøres i nøyaktig denne rekkefølgen, det vil si først sørge for at GPIO0 "henger i luften", og først deretter koble til strøm til CH_PD og VCC.

Hvordan koble til riktig?

Hvis du kan bruke mer enn én kveld på å koble til ESP8266-modulen på riktig måte, kan du bruke et mer stabilt alternativ. I diagrammet over ser du en tilkoblingsmulighet med automatisk nedlasting fastvare.

Det er verdt å merke seg at bildet ovenfor ikke viser bruken av gratis GPIOer eller ADC-er, og tilkoblingen deres vil direkte avhenge av nøyaktig hva du vil implementere, men hvis du vil sikre stabilitet, husk å trekke alle GPIO-er til strøm og ADC-er til jord ved hjelp av pull-up motstander.

Om nødvendig kan 10k motstander erstattes med andre i området fra 4,7k til 50k, unntatt GPIO15, siden verdien ikke bør være mer enn 10k. Verdien på kondensatoren som jevner ut høyfrekvente pulsasjoner kan være litt annerledes.

Å koble til RESET og GPIO16 ved bruk av en 470 Ohm dyp søvnmotstand kan bli nødvendig når du bruker den riktige modusen, siden for å gå ut av dyp hvilemodus, utfører modulen en fullstendig omstart ved å bruke et lavt nivå på GPIO16. Med fravær av denne forbindelsen Den dype dvalemodusen for modulen din vil vare evig.

Ved første øyekast kan det virke som GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) og GPIO15 er opptatt, så du vil ikke kunne bruke dem til dine formål, men faktisk er dette langt fra tilfelle. Et tilstrekkelig høyt nivå på GPIO0 og GPIO2, samt et lavt nivå på GPIO15, kan være nødvendig bare for den første oppstarten av modulen, og i fremtiden kan du bruke dem etter eget skjønn. Det eneste som er verdt å merke seg er å huske å sikre de nødvendige nivåene før du utfører en fullstendig tilbakestilling av utstyret ditt.

Du kan også bruke TX, RX som et alternativ til GPIO1 og GPIO3, men ikke glem at etter at modulen starter, begynner hver fastvare å "trekke" TX, samtidig som den sender feilsøkingsinformasjon til UART0 med en hastighet på 74480, men etter at nedlastingen vil være vellykket, de kan brukes ikke bare som UART0 for å utveksle data med en annen enhet, men også som standard GPIOer.

For moduler som har et lite antall kablede pinner (for eksempel ESP-01), er det ikke nødvendig å koble til ugjorte pinner, det vil si at bare GND, CH_PD, VCC, GPIO0, GPIO2 og RESET er koblet på ESP-01 , og det er det du trenger må strammes inn. Det er ikke nødvendig å lodde direkte til ESP8266EX-brikken og deretter trekke de nakne pinnene med mindre du virkelig trenger det.

Slike koblingsskjemaer ble brukt etter et stort antall eksperimenter utført av kvalifiserte spesialister og samlet inn fra mye forskjellig informasjon. Det er verdt å merke seg at selv slike ordninger ikke kan betraktes som ideelle, siden en rekke andre, ikke mindre effektive alternativer kan brukes.

Tilkobling via Arduino

Hvis du av en eller annen grunn ikke har en 3,3 volt USB-TTL-omformer, så kan ESP8266 WiFi-modulen kobles til via Arduino med en innebygd omformer. Her må du først rette oppmerksomheten mot tre hovedelementer:

  • Når den brukes med ESP8266, er Arduino Reset i utgangspunktet koblet til GND for å forhindre at mikrokontrolleren starter opp, og i denne formen ble den brukt som en gjennomsiktig USB-TTL-omformer.
  • RX og TX var ikke koblet sammen "ved veikrysset", men direkte - RX-RX (grønn), TX-TX (gul).
  • Alt annet er koblet nøyaktig som beskrevet ovenfor.

Hva du bør vurdere

Denne kretsen krever også å matche TTL-nivåene på 5 volt på Arduino, samt 3,3 volt på ESP8266, men den kan fungere ganske bra uansett.

Når den er koblet til en ESP8266, kan Arduino være utstyrt med en strømregulator som ikke kan håndtere strømmen som kreves av ESP8266, så du må sjekke dataarket for den du bruker før du aktiverer det. Ikke prøv å koble andre strømkrevende komponenter til ESP8266, da dette kan føre til at strømregulatoren som er innebygd i Arduinoen rett og slett svikter.

Det er også en annen ESP8266 og Arduino tilkoblingsordning som bruker SoftSerial. Siden for SoftSerial-biblioteket er porthastigheten til 115200 for høy og ikke kan garantere stabil drift, anbefales ikke denne tilkoblingsmetoden, selv om det er noen tilfeller der alt fungerer ganske stabilt.

Tilkobling via RaspberryPi

Hvis du ikke har noen USB-TTL-omformere i det hele tatt, kan du bruke RaspberryPi. I dette tilfellet, for ESP8266, utføres programmering og tilkobling nesten identisk, men alt her er ikke så praktisk, og i tillegg må du også bruke en 3,3-volts strømstabilisator.

Til å begynne med kobler vi RX, TX og GND til enheten vår til ESP8266, og tar GND og VCC fra den som er designet for 3,3 volt. Her bør spesiell oppmerksomhet rettes mot det faktum at du må koble til alle GND-enheter, det vil si RaspberryPi-stabilisatoren og ESP8266. Hvis stabilisatoren som er innebygd i enhetsmodellen din tåler opptil 300 milliampere ekstra belastning, er det i dette tilfellet ganske normalt å koble til ESP8266, men alt dette gjøres kun på egen risiko og risiko.

Sette opp parametere

Når du har funnet ut hvordan du kobler til ESP8266, må du sørge for at driverne for enhetene dine er riktig installert, som et resultat av at en ny virtuell seriell port er lagt til systemet. Her må du bruke et program - en seriell portterminal. I prinsippet kan du velge hvilket som helst verktøy som passer din smak, men du må forstå at enhver kommando du sender til serieporten må ha de etterfølgende tegnene CR+LF på slutten.

CoolTerm og ESPlorer-verktøyene er ganske utbredt, og sistnevnte lar deg ikke gå inn i ESP8266 selv, og gjør det samtidig lettere å jobbe med lua-skript under NodeMCU, slik at den kan brukes som en standardterminal.

For en normal tilkobling til, må du gjøre mye arbeid, siden fastvaren for ESP8266 stort sett er variert og aktivering kan utføres på forskjellige hastigheter. For å bestemme deg for det beste alternativet, må du gå gjennom tre hovedalternativer: 9600, 57600 og 115200.

Hvordan sortere?

For å begynne, koble til den virtuelle serieporten i terminalprogrammet, sett parametrene til 9600 8N1, utfør deretter en fullstendig omstart av modulen, koble CH_PD (brikkeaktivering) fra strømforsyningen, og aktiver den deretter igjen ved å rykke i CH_PD. Du kan også utføre en kort RESET til jord for å tilbakestille modulen og observere dataene i terminalen.

Først av alt skal enhetens LED-er vises nøyaktig som vist i testprosedyren. Du bør også observere settet i terminalen ulike karakterer, som vil ende med linjen klar, og hvis den ikke er der, utføres en ny tilkobling til terminalen med en annen hastighet, etterfulgt av en omstart av modulen.

Når du ser et av hastighetsalternativene denne linjen, kan modulen anses som klar for drift.

Hvordan oppdatere fastvaren?

Når du har installert ESP8266, tar det bare noen få sekunder å koble til enheten, og deretter kan du begynne å oppdatere fastvaren. For å installere en ny programvare du må gjøre følgende.

For å komme i gang, last ned den nye fastvareversjonen fra den offisielle nettsiden, og last også ned spesiell nytte for fastvare. Her bør man være spesielt oppmerksom på hva operativsystem installert på maskinen som ESP8266 fungerer med. Det er best å koble enheten til systemer som er eldre enn Windows 7.

For standard Windows-operativsystemer vil det være optimalt å bruke et program kalt XTCOM UTIL, som er spesielt praktisk å bruke hvis fastvaren kun består av én fil. Det beste alternativet for flere plattformer er esptool-verktøyet, som imidlertid krever python, samt behovet for å spesifisere parametere via kommandolinje. I tillegg lar ESP8266 deg enkelt koble til hovedfunksjonene med Flash Download Tool, som har et ganske stort antall innstillinger, samt en praktisk teknologi for å installere fastvare fra flere filer.

Koble deretter terminalprogrammet fra serieporten, og koble også CH_PD helt fra strømforsyningen, koble GPIO0 til modulen til GND, og ​​etter det kan CH_PD returneres tilbake. Til slutt, bare kjør det modulære fastvareprogrammet og last det inn i ESP8266-reléet.

I de aller fleste tilfeller lastes fastvaren inn i modulen med en hastighet på rundt 115200, men en spesiell modus gir automatisk hastighetsdistribusjon, som et resultat av at fastvaren kan utføres med en hastighet på mer enn 9600, oppdatering de tilgjengelige funksjonene til ESP8266. Arduino ble brukt til tilkobling eller USB-TTL - det spiller ingen spesiell rolle her, og her avhenger den maksimale hastigheten allerede av lengden på ledningene, omformeren som brukes og en rekke andre faktorer.

Det kinesiske selskapet Espressif begynte i 2014 å selge Wi-Fi-moduler basert på ESP8266-brikker. som umiddelbart fikk stor popularitet blant radioamatører på grunn av sine lave kostnader og store muligheter. I dag er det et stort antall forskjellige moduler basert på ESP8266-brikken; i denne artikkelen vil jeg snakke om ESP-01.

Tekniske spesifikasjoner

Forsyningsspenning: 3V ~ 3,6V
Maksimal driftsstrøm: 220mA
Driftsfrekvens: 2,4 GHz
Modi: P2P (klient), soft-AP (tilgangspunkt)
Antall GPIOer: 2.
Flash-minne: 1024 kb.
utgangseffekt i 802.11b-modus: +19,5dBm
Brukerstøtte trådløs standard: 802,11 b/g/n
Dimensjoner: 24,8 mm x 14,3 mm x 8 mm

Generell informasjon om ESP-01

I hovedsak er ESP8266-brikken en miniatyrmikrokontroller med en Wi-Fi-sender som kan fungere i fullstendig autonomi, uten Ekstra avgift Arduino. Ved å bruke ESP-01-modulen kan du overføre data om temperatur, fuktighet, slå på et relé og så videre. For enkel bruk av ESP8266-brikken har produsenten produsert en serie moduler fra ESP-01 til ESP-14. Den første i denne serien er ESP-01-modulen (det er også ESP-01S, mer om det litt senere), som er en av de kjente på grunn av prisen og den lille størrelsen, bare 14,3 mm x 24,8 mm. Men det har to ulemper: Begrenset mengde programmerte GPIO-pinner og deres upraktiske plassering (upraktisk for layout).


ESP-01-modulen er et lite kort, svart, hvor to hovedbrikker er plassert, en ESP8266 mikrokontroller og et 1 MB flashminne. I nærheten ligger en kvartsittresonator og en trykt antenne. Brettet har to lysdioder, rød og blå. Den røde LED-en lyser når modulen har strøm, og den blå blinker når kommandoer utføres (den røde LED-en er fjernet fra NSP-01S på grunn av konstant strømforbruk). For å koble til ESP-01-modulen, er det åtte pinner (to rader med fire pinner, 2,54 mm pitch), to av de ferdige er digital input-output, som støtter pulsbreddemodulasjon. Selv om modulen har to GPIO-pinner som standard, kan du bruke andre tilgjengelige pinner hvis du har nødvendig loddeverktøy.


Pin oppgave
GND:"-" modul strømforsyning
GPIO2:(Digital I/O programmerbar)
GPIO0:(Digital I/O programmerbar, brukes også for oppstartsmoduser)
RX: UART mottak
TX: UART-overføring
CH_PD:(strøm på/av, må sendes til 3,3V direkte eller gjennom en motstand)
RST: tilbakestille, du må trekke den til 3,3V
VCC:"3.3V" modul strømforsyning

Modultilkobling
For å betjene ESP-01-modulen kreves en strømkilde likestrøm, som skal produsere 3,3 V og en strøm på minst 250 mA. Dessverre er standardstabilisatoren installert på Arduino ikke i stand til å levere den nødvendige strømmen for at ESP-01 skal fungere (hvis du bestemmer deg for å koble til ESP-01 uansett, forvent ustabil drift og konstant omstart). I tillegg er det logiske signalet til denne modulen designet for 3,3 V, det vil si at en spenning på 3,3 V må påføres RX-pinnen, og en spenning på 3,3 V vil bli levert fra TX-pinnen (det samme for andre pinner) ). Hvis du trenger å koble modulen til Arduino eller andre kontrollere som sender ut 5V til logikkpinnen, må du bruke motstander eller en logisk nivåmodul; hvis du kobler til direkte, vil modulen mislykkes.

Merk følgende! ESP-01 er veldig lunefulle når det kommer til strømforsyning, du må bruke en ekstern 3,3V spenningsregulator, jeg vil bruke en USB-adapter som det første eksempelet

Fra tabellen ovenfor kan det ses at ESP-01-modulen kan fungere i flere hvilemoduser, med minimalt strømforbruk, de kalles av programvare, bortsett fra den siste "Power Off", for å aktivere denne modusen, må du installere en jumper mellom GPIO16 og RST, jeg vil gi et eksempel senere.

Installerer ESP8266 i Arduino IDE

Last ned Arduino IDE-programmet fra nettstedet arduino.cc
Deretter må du installere ESP-kortet i Arduino IDE. For å gjøre dette, kjør Arduino IDE-programmet og åpne: Fil -> Innstillinger.
I det nye åpent vindu, i feltet " Ytterligere lenker for PCB Manager:» legg til lenke:

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

I det åpne vinduet, se etter " esp8266 av ESP8266 Communit y" og trykk " Installere". Installasjonen vil ta noen minutter, deretter vises meldingen " Installert", klikk" Lukk«

Klikk " Verktøy -> Boards -> Generis ESP8266-modul«.

Nå må du koble ESP-01-modulen til datamaskinen via en spesiell USB-adapter på CH340G-brikken


Justere prosessorfrekvensen " CPU-frekvens: "80 MHz"", hastighet " Opplastingshastighet: "115200"" og velg " Havn«.

Deretter laster vi opp en skisse som får ESP8266 til å blinke med LED.

/* Testet på Arduino IDE 1.8.5 Testdato 15.06.2018 */ #define TXD 1 // GPIO1 / TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay( 1000);)