Esp 01 kopplingsschema. Wifi-modul baserad på ESP8266-chip. USB-till-TTL-omvandlare med DTR-kontakt

... I allmänhet är detta material inte begränsat till bara ett Arduino-ämne.

Ämnet för ESP8266 är ganska svårt. Men om du arbetar med dessa Wi-Fi-moduler i Arduino IDE-utvecklingsmiljön sjunker ingångströskeln till en nivå som är acceptabel för den genomsnittliga Arduino-användaren. Och inte bara Arduino-killen, utan varje person som har en önskan att piska upp något om ämnet IoT (Internet of Things), och utan att spendera mycket tid på att läsa dokumentationen för chippet och studera API:et för dessa moduler.

Den här videon duplicerar helt materialet som presenteras i artikeln nedan.

Tja, vi vet redan hur man ansluter ESP8266 och sätter den i programmeringsläge, låt oss nu gå vidare till något mer användbart.

Jag ska genast säga att när vi väl programmerar modulen i Arduinos utvecklingsmiljö, förstör vi den inbyggda firmwaren, och vi kommer inte längre att kunna arbeta med modulen med AT-kommandon. Personligen gör detta mig inte kall/varm, men om någon behöver det, mot slutet av artikeln kommer jag att visa dig hur du flashar den inbyggda firmwaren tillbaka till modulen, eller någon form av bootloader som NodeMcu.

Till att börja med, ladda ner från den officiella webbplatsen senaste versionen Arduino IDE, på det här ögonblicket detta är 1.6.7. Äldre versioner som 1.0.5. kommer inte att passa eftersom de helt enkelt inte har den nödvändiga funktionaliteten, och att dansa med en tamburin intresserar oss inte, eller hur?

Vi startar utvecklingsmiljön och går omedelbart till Fil/Inställningar:

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

Gå sedan till Verktyg/Styrelse:/Styrelsehanterare...:

Ett styrelsemanagersfönster kommer att dyka upp framför oss, scrolla igenom det till botten, och om allt är gjort korrekt kommer vi att se något i stil med detta:

Klicka på markören på inskriptionen " esp8266 förbi ESP8266 Community"efter det har vi en "Installera"-knapp, välj önskad version, jag tar den senaste, idag är den 2.1.0 och installerar den. Utvecklingsmiljön kommer att ladda ner de filer den behöver (cirka 150 megabyte) och mittemot inskription " esp8266 förbi ESP8266 Community""INSTALLERAD" kommer att visas, det vill säga installerat:

Vi rullar ner i listan med kort och ser att vi har många olika ESP:er i listan, ta "Generisk ESP8266 Module":

Gå till "Verktyg" och välj önskad COM-port (för mig är det COM32) Arduino eller USB UART-omvandlare, ställ sedan in uppladdningshastighet: "115200":

Vi ställer in hastigheten till 74880 och "NL & CR" och stänger av och sätter på ström igen och det kommer att svara med lite felsökningsinformation:

Observera att 74880 inte är huvudhastigheten för ESP8266, den skickar bara felsökningsinformation till den. Om modulen inte skickar något till konsolen kan något vara felaktigt anslutet.

Som standard ska hastigheten vara 115200, men i vissa fall kan den vara 9600 och andra... Så försök hitta den.

Efter att ha valt önskad hastighet skickar vi "AT"-modulen och den ska svara att allt är "OK". Kommandot "AT+GMR" visar information om den fasta programvaran.

Innan du börjar blinka in ESP8266 Arduino IDE Jag råder dig att läsa artikeln till slutet.

Låt oss nu försöka flasha ESP8266 via Arduino IDE. Vi satte modulen i programmeringsläge (jag skrev hur man gör detta i en tidigare artikel).

Låt oss lägga till en standard LED till blinkern:

// 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); )

Blinkade? Så allt gjordes korrekt. Var fick jag tag i att lysdioden är ansluten till det första stiftet? I föregående artikel finns en bild med pinouts av olika moduler, och det finns en märkning av portarna när du använder Arduino bootloader (stiften är markerade i rosa).

Att blinka en lysdiod är såklart bra, men vi måste installera någon form av webbserver eller börja styra lysdioden åtminstone med knappar i webbläsaren, eller hur? Men jag ska berätta om detta någon annan gång.

Och nu hur man flashar tillbaka inbyggd firmware, och hur man till och med flashar en modul med bootloaders från tredje part. För ESP8266 finns ett sådant program som NodeMCU Flasher, som ursprungligen är avsett för att flasha NodeMCU-starthanteraren. Men som det visade sig blinkar det perfekt med annan firmware.

Jag kommer att bifoga ett arkiv med detta program och firmware till artikeln för enkelhets skull, men du kan alltid ladda ner ny version NodeMCU Flasher.

I mappen "nodemcu-flasher-master" finns det 2 mappar Win64 och Win32 och beroende på bitdjupet för ditt operativsystem, välj den du behöver. Kör sedan "ESP8266Flasher.exe" i Release-mappen och se programgränssnittet:

Välj önskad COM-port och gå till fliken "Config", ta bort krysset bredvid "INTERNAL://NODEMCU" och lägg det en punkt lägre, som på skärmdumpen:

(Om du vill flasha NodeMCU-starthanteraren, ta bort krysset där det inte fanns och placera det där det var, det vill säga nära "INTERNAL://NODEMCU").

Sedan klickar vi på kugghjulet och väljer var vår firmware finns, firmwaren är vanligtvis i *.bin-format (i det bifogade arkivet är det “v0.9.5.2 AT Firmware.bin” som finns i huvudmappen), och välj även "0x00000" som och högre.

Vi återgår till fliken "Operation", sätter modulen i programmeringsläge och klickar på "Flash":

Det är det, modulen har börjat blinka, efter att ha blinkat, glöm inte att starta om modulen och voila, den blinkar med den firmware vi behöver.

Vi kontrollerar med AT-kommandot "AT+GMR" om vi gjorde allt korrekt:

Som ni ser gick allt smidigt.

Det blir mer och mer populärt, och Arduino tar redan initiativet - lägger till dessa Wi-Fi-moduler till listan över kort som stöds.
Men hur ansluter man den till Arduino? Är det möjligt att på något sätt klara sig utan en Arduino överhuvudtaget? Det är precis vad den här artikeln kommer att handla om idag.

Framöver kommer jag att säga att det kommer att finnas en andra artikel, mer praktisk, om ämnet firmware och programmering av ESP8266-modulen i Arduino IDE-utvecklingsmiljön. Men först till kvarn.

Den här videon duplicerar helt materialet som presenteras i artikeln.



För närvarande finns det många varianter av denna modul, här är några av dem:

Och här är pinouten för ESP01, ESP03, ESP12:


*Denna bild kan ses i bra kvalitet på av. webbplats pighixxx.com.

Personligen gillar jag ESP07-versionen mest. Åtminstone för det faktum att det finns en metallskärm (den skyddar mikrokretsarna från externa störningar, och säkerställer därmed mer stabil drift), en egen keramisk antenn och en kontakt för en extern antenn. Det visar sig genom att ansluta till den extern antenn, till exempel som biquadrat, då kan du uppnå en bra räckvidd. Dessutom finns det en hel del in-/utgångsportar, de så kallade GPIO (General Purpose Input Output - input/output-portar generell mening), i analogi med Arduino - stift.

Låt oss gå tillbaka till våra får Wi-Fi-moduler och Arduino. I den här artikeln kommer jag att titta på att ansluta en ESP8266 (modell ESP01) till en Arduino Nano V3.

Men, denna informationen kommer att vara relevant för de flesta ESP8266-moduler och även olika Arduino-kort, till exempel de mest populära Arduino UNO.

Några ord om ESP01-benen:

Vcc Och GND(på bilden ovan är dessa 8 och 1) - mat, per ben Vcc kan lämnas in, att döma av dokumentationen, från 3 till 3,6 V, A GND- jord (minus effekt). Jag såg en person koppla denna modul till två AA-batterier (matningsspänningen i det här fallet var cirka 2,7 V) och modulen var i drift. Men fortfarande angav utvecklarna spänningsområdet inom vilket modulen ska garanteras fungera; om du använder en annan är det ditt problem.

Uppmärksamhet! Denna modul är baserad på 3,3V logik, medan Arduino mestadels är 5V logik. 5 V kan lätt skada ESP8266, så den måste drivas separat från Arduino.

– Min Arduino har ett ben där det står 3,3 V, varför inte använda det?

Du kommer förmodligen att tänka. Faktum är att ESP8266 är en ganska strömkrävande modul, och i toppar kan den förbruka strömmar på upp till 200 mA, och nästan ingen Arduino kan leverera en sådan ström som standard, med undantag för Arduino Due, där strömmen längs 3,3 V-linjen kan nå 800 mA, vilket är gott, i andra fall rekommenderar jag att du använder en extra 3,3 V-stabilisator, till exempel AMS1117 3,3 V. Det finns många av dem både i Kina och här.

Ben RST 6 - är avsedd för hårdvara för att starta om modulen, genom att kort applicera en låg logisk nivå på den kommer modulen att starta om. Även om jag försummade detta i videon, råder jag dig ändå "tryck" detta ben med ett 10 kOhm motstånd till strömförsörjningen positivt, för att uppnå bättre stabilitet i driften av modulen, annars skulle jag starta om vid minsta störning.

Ben CP_PD 4 (eller på annat sätt SV) - tjänar återigen till att "hårdkoppla" modulen till energisparläge, där den förbrukar mycket lite ström. Nåväl igen - Det skulle inte skada att "trycka" det här benet med ett 10 kOhm-motstånd till det positiva Pitalova I videon kortslutade jag dumt det här benet till Vcc, eftersom jag inte hade ett sådant motstånd till hands.

Ben RXD0 7 TXD0 2 - hårdvara UART, som används för att blinka, men ingen förbjuder att använda dessa portar som GPIO (GPIO3 respektive GPIO1). Av någon anledning är GPIO3 inte markerad i bilden, men den finns i databladet:

Förresten, till benet TXD0 2 är "Connect"-lysdioden ansluten, och den tänds när den logiska nivån på GPIO1 är låg, eller när modulen skickar något via UART.

GPIO0 5 - kan inte bara vara en I/O-port, utan också sätta modulen i programmeringsläge. Detta görs genom att ansluta denna port till en låg logisk nivå (”trycka” den till GND) och mata ström till modulen. I videon gör jag detta med en vanlig knapp. Efter att ha blinkat, glöm inte att dra ut bygeln/trycka på knappen (det är inte nödvändigt att hålla in knappen under blinkningen; när den slås på går modulen in i programmeringsläge och förblir i den tills den startas om).

GPIO2 3 - ingång/utgångsport.

Och ytterligare en viktig punkt, varje GPIO i Wi-Fi-modulen kan säkert leverera ström upp till 6mA, för att inte bränna det, se till att placera motstånd i serie med ingångs-/utgångsportarna på... Kom ihåg Ohms lag R = U/I = 3,3V / 0,006 A = 550 Ohm, det vill säga, vid 560 Ohm. Eller försumma det, och sedan undra varför det inte fungerar.

I ESP01 stöder alla GPIO:er PWM, så till våra fyra GPIO:er, det vill säga GPIO0-3, kan du ansluta en motordrivare, ala L293 / L298, och styra två motorer, till exempel båtar, eller göra RGB Wi-Fi vad som helst . Ja, ja, den här modulen har många saker ombord, och för enkla projekt behövs inte Arduino-violinisten, bara för att blinka. Och om du använder ESP07, så är portarna i allmänhet nästan desamma som Uno, vilket gör det möjligt att tryggt klara sig utan en Arduino. Det är sant att det finns ett obehagligt ögonblick, ESP01 har inga analoga portar alls, och ESP07 har bara en, som kallas ADC. Detta försvårar naturligtvis arbetet med analoga sensorer. I det här fallet kommer en Arduino analog multiplexer att hjälpa.

Allt verkar förklaras av pinout, och här är diagrammet för att ansluta ESP8266 till Arduino Nano:

Ser du bygeln på RST- och GND-stiften på Arduino Nano? Detta är nödvändigt för att Arduino inte ska störa modulens firmware; i fallet med att ansluta ESP8266 med Arduino är detta en förutsättning.

Dessutom, om du ansluter till Arduino, måste RX för modulen gå till RX för arduino, TX - TX. Detta beror på att omvandlarchippet redan är anslutet till Arduino-stiften i ett korsmönster.

Också viktig är en resistiv delare bestående av 1 kOhm och 2 kOhm motstånd (kan tillverkas av två 1 kOhm motstånd genom att koppla dem i serie) längs RX-linjen i modulen. Eftersom Arduino är 5 V logik och modulen är 3.3. Detta visar sig vara en primitiv nivåomvandlare. Det måste finnas där, eftersom benen på RXD TXD-modulen inte tål 5 V.

Tja, du kan klara dig helt utan en Arduino genom att ansluta ESP8266 via en vanlig USB-UART-omvandlare. När det gäller att ansluta till Arduino använder vi i huvudsak en standardomvandlare usb-gränssnitt och uart, förbi hjärnan. Så varför spendera extra pengar om du kan klara dig utan en Arduino alls? Endast i det här fallet ansluter vi modulens RXD till konverterarens TXD, TXD - RXD.

Om du är för lat för att krångla med anslutningar, pyssla med resistorer och stabilisatorer, finns det färdiga NodeMcu-lösningar:

Allt är mycket enklare här: anslut kabeln till datorn, installera drivrutinerna och programmet, glöm bara inte att använda bygeln/knappen på GPIO0 för att växla modulen till firmware-läge.

Tja, det är förmodligen allt med teorin, artikeln visade sig vara ganska lång, och jag kommer att publicera den praktiska delen, ala firmware och programmering av modulen, lite senare.

Många användare har redan riktat uppmärksamheten mot ESP8266-12-chippet, släppt av Espressif. Dess kostnad är betydligt billigare jämfört med ett vanligt Bluetooth-adapterkort, och trots sina mindre dimensioner har det betydligt större möjligheter. Nu har alla hemamatörer möjlighet att arbeta i Wi-Fi-nätverk i två lägen samtidigt, det vill säga anslut din dator till valfri åtkomstpunkt eller slå på den som en sådan punkt.

Å andra sidan måste du korrekt förstå att sådana kort inte bara är sköldar avsedda endast för Wi-Fi-kommunikation. Själva ESP8266 är en mikrokontroller som har sina egna UART-, GPIO- och SPI-gränssnitt, det vill säga den kan användas som helt autonom utrustning. Efter lanseringen av detta chip kallade många det en riktig revolution, och med tiden kommer sådana enheter att börja byggas in i även de mest enkla typer teknik, men än så länge är enheten relativt ny och det finns ingen stabil firmware för den. Många specialister runt om i världen försöker uppfinna sin egen firmware, för att ladda upp dem till brädet är faktiskt inte svårt, men trots olika svårigheter kan enheten redan kallas ganska lämplig för arbete.

För närvarande övervägs endast två ansökningsalternativ av denna modul:

  • Använder kortet i kombination med en extra mikrokontroller eller en dator som kommer att styra modulen via UART.
  • Oberoende skrivning av firmware för chipet, vilket gör att du senare kan använda det som en självförsörjande enhet.

Det är ganska naturligt att vi bör överväga oberoende firmware i det här fallet kommer vi inte att göra det.

Tittar på användarvänlighet och bra egenskaper, många människor bland de många mikrokontrollerna föredrar ESP8266-modellen. Anslutning och uppdatering av firmware av denna enhetär extremt enkel och prisvärd, och tillverkas på samma hårdvara som utrustningen är ansluten till datorn. Det vill säga också via en USB-TTL-omvandlare eller, om någon föredrar andra anslutningsalternativ, kan det göras via RPi och Arduino.

Hur kollar man?

För att kontrollera funktionaliteten hos en nyinköpt enhet måste du använda en speciell stabiliserad spänningskälla på 3,3 volt. Det är värt att omedelbart notera att det verkliga spänningsintervallet för denna modul är från 3 till 3,6 volt, och att tillföra en ökad spänning kommer omedelbart att leda till att du helt enkelt kommer att skada din ESP8266. Efter en sådan situation kan firmware och annan programvara börja fungera felaktigt, och du måste reparera enheten eller på något sätt fixa den.

För att bestämma funktionen hos denna mikrokontrollermodell behöver du bara ansluta tre stift:

  • CH_PD och VCC är anslutna till 3,3 volts matning.
  • GND ansluter till jord.

Om du inte använder ESP-01, utan någon annan modul, och den redan från början har en utgång GPIO15, måste du i det här fallet dessutom ansluta den till jord.

Om den fasta programvaran från fabriken startade normalt, kan du i det här fallet se och sedan blinkar det blå ljuset ett par gånger. Det är dock värt att notera att inte alla enheter i ESP8266-serien har en röd strömindikator. Den fasta programvaran på vissa enheter gör att den röda indikatorn inte lyser om modulen inte har en (i synnerhet gäller detta ESP-12-modellen).

Efter att ha anslutit till din trådlöst nätverk en ny åtkomstpunkt kommer att aktiveras, som kommer att kallas ESP_XXXX, och den kommer att kunna upptäckas från alla enheter som har tillgång till Wi-Fi. I det här fallet beror namnet på åtkomstpunkten direkt på tillverkaren av den fasta programvaran du använder, och kan därför vara något annorlunda.

Om punkten dyker upp kan du fortsätta att experimentera, annars måste du kontrollera strömförsörjningen igen, såväl som korrektheten av GND- och CH_PD-anslutningarna, och om allt är korrekt anslutet försöker du troligen fortfarande att använd en trasig modul eller på Den har helt enkelt firmware installerad med icke-standardinställningar.

Hur ansluter man det snabbt?

Standardsatsen som krävs för att ansluta denna modul innehåller följande:

  • själva modulen;
  • lödbräda;
  • en komplett uppsättning hon-hane-kablar avsedda för en breadboard, eller en speciell DUPONT M-F-kabel;
  • USB-TTL-omvandlare baserad på PL2303, FTDI eller något liknande chip. Det bästa alternativet är om RTS och DTR också matas ut till USB-TTL-adaptern, eftersom du på grund av detta kan uppnå ganska snabb laddning av firmware från någon UDK, Arduino IDE eller Sming, utan att ens behöva byta GPIO0 till jord manuellt.

Om du använder en 5-volts omvandlare måste du i det här fallet köpa en extra strömstabilisator baserad på 1117-chippet eller något liknande, samt en strömkälla (för en standard 1117, till och med en vanlig 5- volt smartphone-laddare är ganska lämplig). Det rekommenderas att inte använda Arduino IDE eller USB-TTL som strömkälla för ESP8266, utan att använda en separat, eftersom detta i slutändan kan bli av med många problem.

En utökad uppsättning för att säkerställa bekväm och konstant drift av modulen kräver användning av ytterligare motstånd, lysdioder och DIP-omkopplare. Bortsett från detta kan du också använda billigt USB-skärm, vilket gör att du ständigt kan övervaka mängden ström som förbrukas, och kommer också att ge ett litet skydd för USB-bussen från

Vad behöver vi göra?

Först och främst är det värt att notera att kontrollerna i ESP8266 kan skilja sig något beroende på vilken specifik modell du använder. Det finns ganska många sådana moduler tillgängliga idag, och det första du behöver är att identifiera modellen du använder och bestämma dess pinout. I den här instruktionen kommer vi att prata om att arbeta med ESP8266 ESP-01 V090-modulen, och om du använder någon annan modell med ett GPIO15-stift (HSPICS, MTDO), måste du dra den till marken både för standardstart av modulen och för att använda firmware-läget.

Efter detta, dubbelkolla att matningsspänningen för den anslutna modulen är 3,3 volt. Som nämnts ovan är det tillåtna området från 3 till 3,6 volt, och om det ökar, misslyckas enheten, men matningsspänningen kan till och med vara betydligt lägre än de 3 volt som anges i dokumenten.

Om du använder en 3,3 volt USB-TTL-omvandlare, anslut sedan modulen exakt som på vänster sida av bilden nedan. Om du endast använder fem-volts USB-TTL, var uppmärksam på den högra sidan av figuren. Många kanske tror att rätt krets är mer effektiv på grund av att den använder en separat strömkälla, men faktiskt i fallet USB-TTL-applikationer För en 5-volts-omvandlare är det mycket lämpligt att även göra en extra motståndsavdelare för att säkerställa matchning av tre-volts och fem-volts logiska nivåer, eller helt enkelt använda en nivåkonverteringsmodul.

Anslutningsfunktioner

Den högra bilden visar anslutningen av UTXD (TX), såväl som URXD (RX) för denna modul till fem-volts TTL-logik, och sådana procedurer utförs endast på egen risk och risk. För ESP8266 säger beskrivningen att modulen endast fungerar effektivt med 3,3-volts logik. I de allra flesta fall, även när man arbetar med femvoltslogik, misslyckas inte utrustningen, men sådana situationer uppstår ibland, så en sådan anslutning rekommenderas inte.

Om du inte har möjlighet att använda en specialiserad 3,3-volts USB-TTL-omvandlare kan du använda en motståndsavdelare. Det är också värt att notera att på den högra bilden är 1117-strömstabilisatorn ansluten utan extra ledningar, och detta är en riktigt fungerande teknik, men det är fortfarande bäst att använda 1117-kopplingsschemat med kondensatorledningar - du måste kontrollera det med ESP8266-databladet för din stabilisator eller använd en helt färdig modul baserad på 1117-basen.

För att starta modulen måste du öppna GPIO0-TND-kretsen, varefter du kan lägga på ström. Det är värt att notera att allt måste göras i exakt denna ordning, det vill säga först se till att GPIO0 "hänger i luften", och först sedan koppla på ström till CH_PD och VCC.

Hur ansluter man korrekt?

Om du kan avvara mer än en kväll för att korrekt ansluta ESP8266-modulen, kan du använda ett mer stabilt alternativ. I diagrammet ovan ser du ett anslutningsalternativ med automatisk nedladdning firmware.

Det är värt att notera att bilden ovan inte visar användningen av gratis GPIO eller ADC, och deras anslutning kommer direkt att bero på exakt vad du vill implementera, men om du vill säkerställa stabilitet, kom ihåg att dra alla GPIO till ström och ADC:er jorda med hjälp av pull-up-motstånd.

Vid behov kan 10k-motstånd ersättas med andra i intervallet från 4,7k till 50k, exklusive GPIO15, eftersom dess värde inte bör vara mer än 10k. Värdet på kondensatorn som jämnar ut högfrekventa pulseringar kan vara något annorlunda.

Att ansluta RESET och GPIO16 genom att använda ett 470 Ohm djupsömnmotstånd kan bli nödvändigt när du använder lämpligt läge, eftersom för att gå ur djupt viloläge utför modulen en fullständig omstart genom att tillämpa en låg nivå på GPIO16. Med frånvaro av detta samband Det djupa viloläget för din modul kommer att vara för evigt.

Vid första anblicken kan det verka som att GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) och GPIO15 är upptagna, så du kommer inte att kunna använda dem för dina ändamål, men i själva verket är det långt ifrån fallet. En tillräckligt hög nivå på GPIO0 och GPIO2, såväl som en låg nivå på GPIO15, kan krävas endast för den första starten av modulen, och i framtiden kan du använda dem efter eget gottfinnande. Det enda värt att notera är att komma ihåg att säkerställa de nödvändiga nivåerna innan du utför en fullständig återställning av din utrustning.

Du kan också använda TX, RX som ett alternativ till GPIO1 och GPIO3, men glöm inte att efter att modulen startar börjar varje firmware "dra" TX, samtidigt som den skickar felsökningsinformation till UART0 med en hastighet av 74480, men efter att nedladdningen kommer att lyckas, de kan användas inte bara som UART0 för att utbyta data med en annan enhet, utan också som standard GPIO.

För moduler som har ett litet antal anslutna stift (till exempel ESP-01), finns det inget behov av att ansluta olösta stift, det vill säga endast GND, CH_PD, VCC, GPIO0, GPIO2 och RESET är anslutna på ESP-01 , och det är vad du behöver kommer att behöva dras åt. Det finns ingen anledning att löda direkt till ESP8266EX-chippet och sedan dra i de nakna stiften om du inte verkligen behöver det.

Sådana kopplingsscheman användes efter ett stort antal experiment utförda av kvalificerade specialister och samlades in från en mängd olika information. Det är värt att notera att även sådana system inte kan anses vara idealiska, eftersom ett antal andra, inte mindre effektiva alternativ kan användas.

Anslutning via Arduino

Om du av någon anledning inte har en 3,3 volt USB-TTL-omvandlare, så kan ESP8266 WiFi-modulen anslutas via Arduino med en inbyggd omvandlare. Här måste du först rikta uppmärksamheten mot tre huvudelement:

  • När den används med ESP8266 är Arduino Reset initialt ansluten till GND för att förhindra att mikrokontrollern startar, och i denna form användes den som en transparent USB-TTL-omvandlare.
  • RX och TX var inte anslutna "vid korsningen", utan direkt - RX-RX (grön), TX-TX (gul).
  • Allt annat är kopplat exakt som beskrivits ovan.

Vad ska man tänka på

Denna krets kräver också matchning av TTL-nivåerna på 5 volt på Arduino, samt 3,3 volt på ESP8266, men den kan fungera ganska bra i båda riktningarna.

När den är ansluten till en ESP8266 kan Arduino vara utrustad med en strömregulator som inte kan hantera den ström som krävs av ESP8266, så du måste kontrollera databladet för den du använder innan du aktiverar den. Försök inte ansluta några andra strömförbrukande komponenter till ESP8266, eftersom det kan leda till att den inbyggda strömregulatorn i Arduino helt enkelt misslyckas.

Det finns också ett annat ESP8266- och Arduino-anslutningsschema som använder SoftSerial. Eftersom för SoftSerial-biblioteket porthastigheten för 115200 är för hög och inte kan garantera stabil drift, rekommenderas inte denna anslutningsmetod, även om det finns vissa fall där allt fungerar ganska stabilt.

Anslutning via RaspberryPi

Om du inte har några USB-TTL-omvandlare alls kan du använda RaspberryPi. I det här fallet, för ESP8266, utförs programmering och anslutning nästan identiskt, men allt här är inte så bekvämt, och dessutom måste du också använda en 3,3-volts strömstabilisator.

Till att börja med ansluter vi RX, TX och GND på vår enhet till ESP8266 och tar GND och VCC från den som är designad för 3,3 volt. Här bör särskild uppmärksamhet ägnas åt det faktum att du måste ansluta alla GND-enheter, det vill säga RaspberryPi-stabilisatorn och ESP8266. Om stabilisatorn som är inbyggd i din enhetsmodell tål upp till 300 milliampere extra belastning, är det i det här fallet ganska normalt att ansluta ESP8266, men allt detta görs endast på egen risk och risk.

Ställa in parametrar

När du har listat ut hur du ansluter ESP8266 måste du se till att drivrutinerna för dina enheter är korrekt installerade, vilket resulterar i att en ny virtuell seriell port har lagts till i systemet. Här måste du använda ett program - en seriell portterminal. I princip kan du välja vilket verktyg som helst som passar din smak, men du måste förstå att alla kommandon som du skickar till serieporten måste ha de efterföljande tecknen CR+LF i slutet.

CoolTerm- och ESPlorer-verktygen är ganska utbredda, och det senare låter dig inte gå in i ESP8266 själv, och gör det samtidigt lättare att arbeta med lua-skript under NodeMCU, så det kan användas som en standardterminal.

För en normal anslutning till kommer du att behöva göra mycket arbete, eftersom firmware för ESP8266 är mestadels varierande och aktivering kan utföras på olika hastigheter. För att välja det bästa alternativet måste du gå igenom tre huvudalternativ: 9600, 57600 och 115200.

Hur sorterar man?

För att börja, anslut till den virtuella seriella porten i terminalprogrammet, ställ in parametrarna till 9600 8N1, utför sedan en fullständig omstart av modulen, koppla bort CH_PD (chipaktivering) från strömförsörjningen och återaktivera den igen genom att rycka på CH_PD. Du kan också utföra en kort RESET till jord för att återställa modulen och observera data i terminalen.

Först och främst bör enhetens lysdioder visas exakt som visas i testproceduren. Du bör också observera setet i terminalen olika karaktärer, som kommer att sluta med linjen klar, och om den inte är där, görs en återanslutning till terminalen med en annan hastighet, följt av en omstart av modulen.

När du ser ett av hastighetsalternativen denna rad, kan modulen anses redo för drift.

Hur uppdaterar man firmware?

När du väl har installerat ESP8266 tar det bara några sekunder att ansluta enheten, och sedan kan du börja uppdatera firmware. För att installera en ny programvara du måste göra följande.

För att komma igång, ladda ner den nya firmwareversionen från den officiella webbplatsen och ladda ner särskild nytta för firmware. Här bör särskild uppmärksamhet ägnas åt vad operativ system installerad på maskinen som ESP8266 fungerar med. Det är bäst att ansluta enheten till system som är äldre än Windows 7.

För vanliga Windows-operativsystem skulle det vara optimalt att använda ett program som heter XTCOM UTIL, vilket är särskilt bekvämt att använda om den fasta programvaran endast består av en fil. Det bästa multiplattformsalternativet är verktyget esptool, som dock kräver python, samt behovet av att specificera parametrar via kommandorad. Dessutom låter ESP8266 dig enkelt ansluta huvudfunktionerna med Flash Download Tool, som har ett ganska stort antal inställningar, samt en bekväm teknik för att installera firmware från flera filer.

Koppla sedan bort ditt terminalprogram från den seriella porten, och koppla också bort CH_PD helt från strömförsörjningen, anslut modulens GPIO0 till GND, och efter det kan CH_PD returneras tillbaka. I slutändan är det bara att köra det modulära firmware-programmet och ladda det i ESP8266-reläet.

I de allra flesta fall laddas den fasta programvaran in i modulen med en hastighet av cirka 115200, men ett speciellt läge ger automatisk hastighetsdistribution, vilket gör att den fasta programvaran kan utföras med en hastighet av mer än 9600, uppdatering tillgängliga funktioner i ESP8266. Arduino användes för anslutning eller USB-TTL - det spelar ingen speciell roll här, och här beror den maximala hastigheten redan på längden på ledningarna, den använda omvandlaren och en rad andra faktorer.

Det kinesiska företaget Espressif började 2014 sälja Wi-Fi-moduler baserade på ESP8266-chips. som omedelbart fick stor popularitet bland radioamatörer på grund av dess låga kostnad och stora kapacitet. Idag finns det ett stort antal olika moduler baserade på ESP8266-chippet; i den här artikeln kommer jag att prata om ESP-01.

Tekniska specifikationer

Matningsspänning: 3V ~ 3,6V
Max driftström: 220mA
Driftsfrekvens: 2,4 GHz
Lägen: P2P (klient), soft-AP (åtkomstpunkt)
Antal GPIO: 2.
Flashminne: 1024 kb.
uteffekt i 802.11b-läge: +19,5dBm
Stöd trådlös standard: 802,11 b/g/n
Mått: 24,8 mm x 14,3 mm x 8 mm

Allmän information om ESP-01

I huvudsak är ESP8266-chippet en miniatyrmikrokontroller med en Wi-Fi-sändare som kan fungera i fullständig autonomi, utan extra avgift Arduino. Med ESP-01-modulen kan du överföra data om temperatur, luftfuktighet, slå på ett relä och så vidare. För att underlätta användningen av ESP8266-chippet har tillverkaren tillverkat en serie moduler från ESP-01 till ESP-14. Den första i den här serien är ESP-01-modulen (det finns också ESP-01S, mer om det lite senare), som är en av de kända på grund av priset och den lilla storleken, endast 14,3 mm gånger 24,8 mm. Men det har två nackdelar: begränsad mängd programmerade GPIO-stift och deras obekväm plats (obekvämt för layout).


ESP-01-modulen är ett litet kort, svart, på vilket två huvudchip finns, en ESP8266-mikrokontroller och ett 1 MB flashminne. I närheten finns en kvartsitresonator och en tryckt antenn. Kortet har två lysdioder, röda och blå. Den röda lysdioden lyser när modulen har ström, och den blå blinkar när kommandon utförs (den röda lysdioden har tagits bort från NSP-01S på grund av konstant strömförbrukning). För att ansluta ESP-01-modulen tillhandahålls åtta stift (två rader med fyra stift, 2,54 mm stigning), två av de färdiga är digital ingång-utgång, som stöder pulsbreddsmodulering. Även om modulen har två GPIO-stift som standard, kan du använda andra tillgängliga stift om du har det nödvändiga lödverktyget.


Pin-uppgift
GND:"-"-modulens strömförsörjning
GPIO2:(Digital I/O programmerbar)
GPIO0:(Digital I/O programmerbar, används även för startlägen)
RX: UART mottagning
TX: UART överföring
CH_PD:(ström på/av, måste matas ut till 3,3V direkt eller via ett motstånd)
RST:återställ, du måste dra den till 3,3V
VCC:"3.3V" modul strömförsörjning

Modulanslutning
För att driva ESP-01-modulen krävs en strömkälla likström, som ska producera 3,3 V och en ström på minst 250 mA. Tyvärr är standardstabilisatorn installerad på Arduino inte kapabel att leverera den nödvändiga strömmen för att ESP-01 ska fungera (om du ändå bestämmer dig för att ansluta ESP-01, förvänta dig instabil drift och konstant omstart). Dessutom är den här modulens logiska signal utformad för 3,3 V, det vill säga en spänning på 3,3 V måste appliceras på RX-stiftet, och en spänning på 3,3 V kommer att tillföras från TX-stiftet (samma för andra stift). ). Om du behöver ansluta modulen till Arduino eller andra kontroller som matar ut 5V till logikstiftet måste du använda motstånd eller en logiknivåmodul; om du ansluter direkt kommer modulen att misslyckas.

Uppmärksamhet! ESP-01 är väldigt nyckfulla när det kommer till strömförsörjning, du måste använda en extern 3,3V spänningsregulator, jag kommer att använda en USB-adapter som första exempel

Från tabellen ovan kan man se att ESP-01-modulen kan fungera i flera vilolägen, med minimal strömförbrukning, de anropas av mjukvara, förutom den sista "Power Off", för att möjliggöra detta läge, måste du installera en bygel mellan GPIO16 och RST, jag ska ge ett exempel senare.

Installerar ESP8266 i Arduino IDE

Ladda ner Arduino IDE-programmet från webbplatsen arduino.cc
Därefter måste du installera ESP-kortet i Arduino IDE. För att göra detta, kör Arduino IDE-programmet och öppna: Arkiv -> Inställningar.
I det nya öppet fönster, i fältet" Ytterligare länkar för PCB Manager:» lägg till länk:

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

I det öppna fönstret letar du efter " esp8266 av ESP8266 Communit y" och tryck på " Installera". Installationen tar några minuter, sedan meddelandet " Installerad", klick " Stänga«

Klick " Verktyg -> Kort -> Generis ESP8266-modul«.

Nu måste du ansluta ESP-01-modulen till datorn via en speciell USB-adapter på CH340G-chippet


Justera processorfrekvensen " CPU-frekvens: "80 MHz"", fart " Uppladdningshastighet: "115200"" och välj " Hamn«.

Sedan laddar vi upp en skiss som får ESP8266 att blinka med lysdioden.

/* Testad på Arduino IDE 1.8.5 Testdatum 2018-06-15 */ #define TXD 1 // GPIO1 / TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay( 1000);)