- Hva er ESP8266?
- Grunnleggende om WiFi-teorien:
- Typer programmering med ESP8266:
- Maskinvare for å programmere ESP8266-modul:
- Nødvendige materialer:
- Kretsforklaring:
- Byggebrett for å programmere ESP8266:
Internet of Things og Home Automation har virkelig vært et hyped tema de siste dagene. Å bygge noe på egenhånd som kan kommunisere til internett og kan nås fra hvor som helst i verden, høres det kult ut, ikke sant?
Men vent!!! Det høres også komplisert ut….
Så gjorde det for meg, jeg trodde det ville ta enorm tid og dyktighet å bygge ting som kan samhandle med internett. NEI, jeg tok helt feil, takket være denne fantastiske modulen kalt ESP8266 fra Espressif Systems. Nå kan du enkelt åpne dørene dine for IoT-prosjekter ved hjelp av denne modulen. Denne lave modulen i liten størrelse kan gjøre underverker og er veldig enkel og enkel å bruke, forutsatt at vi følger de riktige trinnene.
Denne opplæringen tar sikte på å introdusere deg for denne ESP8266-01-modulen og hjelpe deg med å komme i gang med den. Kanskje du allerede har tatt med deg modulen din og satt fast mens du prøver å bruke den. Da er du ikke alene, ikke bekymre deg, mange mennesker synes det er veldig vanskelig å komme i gang med modulen fordi det ikke er noen riktig veiledning eller dokumentasjon for denne modulen. Dette er grunnen til å lage denne opplæringen. Følg instruksjonene her, og du skal kunne få ESP8266-01-modulen i gang på kort tid, her vil vi bruke FTDI USB til TTL seriell adaptermodul til å programmere ESP8266. Sjekk den detaljerte videoen på slutten av opplæringen.
Før du går inn i emnet, kan du dekke noen grunnleggende om ESP8266-01-modulen.
Hva er ESP8266?
De fleste kaller ESP8266 som en WIFI-modul, men det er faktisk en mikrokontroller. ESP8266 er navnet på mikrokontrolleren utviklet av Espressif Systems, som er et selskap basert i Shanghai. Denne mikrokontrolleren har muligheten til å utføre WIFI-relaterte aktiviteter, og den brukes derfor mye som en WIFI-modul.
Det er mange typer ESP8266-modul tilgjengelig, alt fra ESP8266-01 til ESP8266-12. Den vi bruker i opplæringen er ESP8266-01 fordi den er den billigste og lett tilgjengelig. Imidlertid har alle ESP-modulene bare en type ESP-prosessor. Det som er forskjellig er bare den typen breakout-bard som brukes. Breakout-kortet til ESP8266-01 vil bare ha to GPIO-pinner, mens det i andre kort vil være høyere.
Den komplette spesifikasjonen av modulen er gitt i tabellen nedenfor
Spenning |
3,3V |
Nåværende forbruk |
10uA-170mA |
Maksimal strømforbruk under blinking |
800mA |
Flashminne |
16 MB (512 K normal) |
Prosessor |
Tensilica L106 32 bit |
Prosessorhastighet |
80-160MHz |
RAM |
32K + 80K |
GPIO |
17 (men de fleste er multipleksede) |
Analog til digital omformer |
1 (10-bit) |
Maksimum TCP-tilkoblinger |
5 |
Ok, få ting som kunne ha overrasket deg om spesifikasjonen er at, JA ESP8266-modulen leveres med en ADC-omformer, og den bruker en veldig høy strøm på 0,8 A når du blinker enheten.
Sjekk også våre forskjellige ESP8266-baserte interessante IoT-prosjekter.
Grunnleggende om WiFi-teorien:
Transfer Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP), Access Point (AP), Station (Sta), Service Set Identifier (SSID), Application Programming Interface (API), Webserver…..
Har alle de ovennevnte begrepene mening for deg?
Hvis ja. Så, BINGO, du kan hoppe over denne delen og gå til neste seksjon.
Hvis nei. Da må du være en av de mange elektrostudentene som bare blunket gjennom de fleste disse begrepene akkurat som jeg gjorde da jeg først ble introdusert for alle disse tingene. Så la oss raskt gå gjennom alle disse vilkårene, for bare da kan vi gjøre vårt inntog i IOT-verdenen.
Transfer Control Protocol (TCP):
De fleste av oss ville vite hva dette betyr. Ja, dette er settet med regler som internett fungerer på. Siden ESP8266 har muligheten til å sette opp WIFI-tilkoblinger. På et høyt nivå er Wi-Fi muligheten til å delta i TCP / IP-tilkoblingene via en trådløs lenke. Du kan få ESP til å fungere på TCP / IP-protokollen eller UDP-protokollen.
User Datagram Protocol (UDP):
UDP er også en annen type internettprotokoll. Denne typen kommunikasjon er raskere enn TCP, men den er mindre nøyaktig. Årsaken er at TCP bruker en bekreftelse under kommunikasjonen, men UDP ikke. TCP brukes mest i nettverk der det er krav om høy pålitelighet. UDP brukes på steder der hastighet har høy prioritet enn pålitelighet. For eksempel brukes UDP i videokonferanser, for selv om noen piksler ikke overføres, vil det ikke påvirke videokvaliteten så mye, men hastigheten er veldig viktig.
De fleste ESP8266-prosjekter og koder fungerer rundt TCP / IP, UDP vil være minst plaget.
Tilgangspunkt (AP) og stasjon (STA):
Når du begynner å jobbe med ESP-modulen, kommer du ofte over disse to begrepene. La oss si at du og vennen din vil surfe på internett på smarttelefonene dine, men siden han ikke har en aktiv internettforbindelse, bestemmer du deg for å slå på hotspotet ditt, og vennen din kobler seg til den. Her er telefonen din som kjøper internettforbindelsen Access Point (AP), og vennens telefon som bruker internett heter Station (STA).
ESP8266-modulen kan brukes i tre moduser, AP-modus, STA-modus eller i både STA- og AP-modus (kombinert).
Service Set Identifier (SSID):
Dette er ganske enkelt begrep. Nesten alle av oss har brukt WIFI. Navnet på Wi-Fi-nettverket kalles SSID. Når vi har flere tilgangspunkter for en stasjon å koble til, skal stasjonen vite hvilket tilgangspunkt den skal kobles til, og derfor får hvert tilgangspunkt (AP) en identitet som kalles SSID.
Applikasjonsprogrammeringsgrensesnitt (API):
For å si det enkelt er en API en messenger som tar imot forespørslene dine, behandler den og gir systemet ditt ønsket resultat. De fleste av aktivitetene vi gjør på internett bruker API-er, for eksempel når du bestiller en flyreise, kjøper online osv. Alle nettsteder kobler deg til et API der en del av arbeidet som å registrere deg, betale osv. Blir gjort for deg der.
ESP8266 bruker API for å snakke med internettverdenen. For eksempel hvis den ønsker å vite tid, klima eller hva den skal be om i form av en API til det aktuelle nettstedet. Nettstedet vil motta forespørselen og gi ønsket resultat tilbake til vår ESP-modul.
Internett server:
En webserver er noe som er ansvarlig for å vise innholdet på et nettsted. Alt innholdet på nettstedet vil lastes inn på webserveren. Det er dedikerte datamaskiner hvis jobb er å bare fungere som en webserver. Vi kan også programmere ESP8266 til å fungere som en webserver, og koble til den fra hvor som helst i verden.
OK, dette er nok for at vi skal komme i gang. Nå, la oss få våre hender på maskinvaren.
Typer programmering med ESP8266:
Det er to måter å jobbe med ESP8266-modulen på. Denne opplæringen vil hjelpe deg å komme i gang med begge deler. En måte er å bruke AT-kommandoene. Den andre måten er å bruke Arduino IDE. La oss forstå hva det betyr.
Alle ESP8266-moduler som sendes fra fabrikken vil ha en standard firmware (SDK + API) lastet inn i den. Denne fastvaren hjelper deg med å programmere ESP8266-modulen gjennom AT-kommandoer.
Den andre måten er å programmere ESP8266-modulen direkte ved hjelp av Arduino IDE (kort ikke nødvendig) og dets biblioteker. Alle prosjektene kan gjøres i begge metodene. Men hvis du begynner å bruke Arduino IDE for programmering av ESP8266, kan du kanskje ikke bruke AT-kommandoer fordi standard SDK kan ha blitt ødelagt. I så fall må du blinke ESP med standardinnstillinger. Vi vil dekke det i en annen opplæring.
Maskinvare for å programmere ESP8266-modul:
ESP8266 er en 8 terminalmodul. Pinnen ut av det samme er vist nedenfor.
Dessverre er denne modulen ikke brødbordvennlig, og derfor kan vi ikke montere den direkte på brødbordet vårt. I motsetning til Arduino har den ikke innebygd USB til seriell driver; Derfor må vi bruke “FTDI USB to TTL Serial Adapter Module” for å kommunisere med den. Forsikre deg om at FTDI-kortet også kan fungere på 3,3 V; den vi bruker i denne opplæringen er vist nedenfor.
Nå, som vi vet, bør vi slå på ESP8266 med 3.3V. Men det nåværende forbruket er 0,8 A, så det fungerer kanskje ikke som forventet hvis det drives av vårt FTDI breakout board. Derfor må vi bygge vår egen strømkrets. Her har vi brukt LM317 for strømforsyningen; detaljene for å lage den komplette maskinvaren er gitt senere avsnitt.
Nødvendige materialer:
- Perf Board
- ESP8266-01
- FTDI breakout Board
- LM317
- 0.1uf kondensator
- 10uf kondensator
- Fat Jack
- Bergstik Mann og Kvinne
- Trykknapp
- Koble ledninger
- 12V adapter for å drive kortet.
Kretsforklaring:
Skjemaene for tavlen er vist nedenfor
Noen kan ha prøvd å drive ESP direkte fra FTDI og få den til å fungere, men følgende er årsakene til å bygge ditt eget kort med få ekstra komponenter:
- Bare få FTDI-kort kan skaffe nok strøm til ESP-modulen. Få ESP-moduler kan forbruke høy strøm enn den andre under blinking. Derfor er det alltid trygt å ha din egen strømkilde, og det vil være lettere å integrere strømkrets på Dot Board i stedet for breadboard.
- Vi bør alltid tilbakestille ESP-modulen før vi laster opp koden. Å bygge et eget kort vil hjelpe oss med å tilbakestille modulen enkelt. Vi har brukt trykknapp for å tilbakestille ESP8266.
- GPIO0-pinnen må være jordet når du programmerer med Arduino og må være ledig når du bruker AT-kommandoer, dette kan enkelt byttes om vi bygger et eget kort. Vi har brukt en Jumper for å bytte mellom AT-kommandomodus og Arduino IDE-programmeringsmodus.
- All programmering gjøres ved hjelp av seriell kommunikasjon . Hvis du bruker et brødbrett, kan noen løse terminaler forårsake en feil på halvveien og tvinge oss til å blinke modulen til å jobbe med igjen.
Når det er sagt, kan du velge mellom å bruke et brødbrett og lage ditt eget brett for programmering av modulen. Hvis du fremdeles vil bruke brødplaten, kan du lage den samme kretsen som vist ovenfor ved hjelp av brødplaten. Bare utseendet vil være annerledes, alle de andre instruksjonene i denne opplæringen vil gjelde det samme.
Byggebrett for å programmere ESP8266:
Så her bygger vi styret for å programmere ESP8266-modulen som har sin egen strømkrets for å slå på ESP8266.
Som sagt vil modulen vår kreve rundt 800 mA når den programmeres. Derfor har vi konstruert vår egen kraftmodul ved å bruke en LM317 variabel spenningsregulator siden kildestrømmen til LM317 er nesten 1,2A. Inngangsspenningen til LM317 vil være 12V, som vil bli gitt ved hjelp av en 12V 2A veggmonteringsadapter. Utgangen til LM317 vil bli regulert til 3,3V konstant ved å bruke motstandene på 220ohm og 360ohm. Sjekk også batteriladerkretsen vår ved hjelp av LM317 for å lære mer om LM317.
Formlene for å beregne utgangsspenningen til LM317 er gitt nedenfor:
Vout = 1,25 * (1+ (R2 / R1))
Hvor, R1 er 220ohm og R2 er 360ohms.
ESP8266-modulen er koblet til i henhold til pinnene vist i tabellen nedenfor.
Pin nr. |
ESP-pin-navn |
Koblet til |
1 |
Bakke |
Bakken til FTDI-modulen |
2 |
GPIO2 |
Venstre eller koblet til bergpinne for fremtidig bruk |
3 |
GPIO0 |
Bytt for å veksle mellom programmeringsmodus |
4 |
Rx |
Tx for FTDI-modulen |
5 |
Tx |
Rx av FTDI-modulen |
6 |
CH_PH |
3,3V fra LM317 |
7 |
Nullstille |
Trykknapp for å tilbakestille modulen |
8 |
Vcc |
3,3V fra LM317 |
For å enkelt veksle mellom AT-kommandomodus og Arduino-programmeringsmodus, har jeg plassert en bryter (jumper) som vil trekke GPIO 0 til bakken når du bruker Arduino IDE og vil la den flyte når du bruker AT-kommandoene.
Det er en trykknapp som tilbakestiller ESP-modulen når den trykkes på. Dette gjøres ved ganske enkelt å koble RST-pinnen til ESP-modulen til bakken via trykknappen. Hver gang før vi programmerer ESP-modulen vår, bør vi tilbakestille den.
Når du har satt sammen kretsen, bør den se slik ut nedenfor.
Jeg har brukt et Perf-brett, men du kan også bruke et brødbrett hvis du er interessert (som omtalt ovenfor). Den komplette versjonen og forklaringen vises i videoen nedenfor.
Når du er ferdig med tilkoblingene. Slå på kortet uten ESP- og FTDI-kortene og sjekk om vi får 3,3 V ordentlig på Vcc- og jordterminalene i ESP-modulens posisjon. Forsikre deg om at FTDI-kortet er i 3.3V-modus og koble FTDI- og ESP-modulene til kortet ditt.
Slå på adapteren og koble den til kortet ditt, ESP-modulen skal lyse opp med en rød farge.
Koble deretter FTDI-kortet til datamaskinen din ved hjelp av en mini-USB til USB-kabel, og naviger til Enhetsbehandling på datamaskinen din, og du bør finne at FTDI-kortet er koblet til COM-porten, som vist nedenfor:
Nå er det tid for å få tak i programmeringen av ESP8266-modulen. Du kan starte med å bruke AT-kommandoene og deretter gå til å bruke Arduino IDE. Ikke glem å sjekke de andre ESP8266-baserte prosjektene våre.