- Hvad er ESP8266?
- Grundlæggende om WiFi-teori:
- Programmeringstyper med ESP8266:
- Hardware til programmering ESP8266-modul:
- Nødvendige materialer:
- Forklaring af kredsløb:
- Building Board til at programmere ESP8266:
Internet of Things og Home Automation har virkelig været et hyped emne i de seneste dage. At bygge noget på egen hånd, som kan kommunikere til World Wide Web og kan tilgås fra hvor som helst i verden, lyder virkelig sejt, ikke?
Men vent!!! Det lyder også kompliceret ???….
Så gjorde det for mig, jeg troede, det ville tage enorm tid og dygtighed at opbygge ting, der kan interagere med internettet. NEJ, jeg tog helt fejl, takket være dette fantastiske modul kaldet ESP8266 fra Espressif Systems. Nu kan du nemt åbne dine døre for IoT-projekter ved hjælp af dette modul. Dette billige modul i lille størrelse kan gøre underværker og er virkelig simpelt og let at bruge, forudsat at vi følger de rigtige trin.
Denne vejledning sigter mod at introducere dig til dette ESP8266-01-modul og hjælpe dig med at komme i gang med det. Måske har du allerede bragt dit modul og sidder fast, mens du prøver at bruge det. Så er du ikke alene skal du ikke bekymre dig, mange mennesker finder det meget vanskeligt at komme i gang med modulet, fordi der ikke er nogen ordentlig vejledning eller dokumentation til dette modul. Dette er grunden til at lave denne tutorial. Følg instruktionerne her, og du skal være i stand til at få dit ESP8266-01-modul til at køre på ingen tid, her bruger vi FTDI USB til TTL serielt adaptermodul til at programmere ESP8266. Tjek den detaljerede video i slutningen af vejledningen.
Inden vi går ind i emnet, kan vi dække nogle grundlæggende om ESP8266-01-modulet.
Hvad er ESP8266?
De fleste kalder ESP8266 som et WIFI-modul, men det er faktisk en mikrokontroller. ESP8266 er navnet på den mikrocontroller, der er udviklet af Espressif Systems, som er et firma baseret i Shanghai. Denne mikrocontroller har evnen til at udføre WIFI-relaterede aktiviteter, derfor bruges den i vid udstrækning som et WIFI-modul.
Der findes mange typer ESP8266-moduler lige fra ESP8266-01 til ESP8266-12. Den, vi bruger i vejledningen, er ESP8266-01, fordi den er den billigste og let tilgængelig. Imidlertid har alle ESP-moduler kun en type ESP-processor, hvad der adskiller sig er kun den anvendte type breakout-bard. Breakout board på ESP8266-01 vil kun have 2 GPIO-pins, mens det i andre boards vil være højere.
Den komplette specifikation af modulet findes i nedenstående tabel
Spænding |
3.3V |
Nuværende forbrug |
10uA-170mA |
Maks. Strømforbrug under blink |
800mA |
Glimtvis erindring |
16MB (512K normal) |
Processor |
Tensilica L106 32 bit |
Processorhastighed |
80-160 MHz |
vædder |
32K + 80K |
GPIO |
17 (men de fleste er multipleksede) |
Analog til digital konverter |
1 (10-bit) |
Maksimale TCP-forbindelser |
5 |
Okay, få ting, der kunne have overrasket dig over specifikationen, er, at JA ESP8266-modulet leveres med en ADC-konverter, og det bruger en meget høj strøm på 0,8 A, mens du blinker din enhed.
Tjek også vores forskellige ESP8266-baserede interessante IoT-projekter.
Grundlæggende om WiFi-teori:
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…..
Gør alle ovenstående vilkår mening for dig?
Hvis ja. Derefter, BINGO, du kan hoppe over denne del og gå til næste afsnit.
Hvis nej. Så skal du være en af de mange elstuderende, der bare blinkede gennem de fleste disse vilkår, ligesom jeg gjorde, da jeg først blev introduceret til alle disse ting. Så lad os hurtigt gennemgå alle disse vilkår, for først da kunne vi komme ind i IOT-verdenen.
Transfer Control Protocol (TCP):
De fleste af os ville vide, hvad det betyder. Ja, dette er det sæt regler, som internettet fungerer på. Siden ESP8266 har evnen til at oprette WIFI-forbindelser. På et højt niveau er Wi-Fi muligheden for at deltage i TCP / IP-forbindelserne via et trådløst link. Du kan få din ESP til at arbejde på TCP / IP-protokollen eller UDP-protokollen.
User Datagram Protocol (UDP):
UDP er også en anden type internetprotokol. Denne type kommunikation er hurtigere end TCP, men den er mindre nøjagtig. Årsagen er, at TCP bruger en kvittering under sin kommunikation, men UDP ikke. TCP bruges mest i netværk, hvor der er et krav om høj pålidelighed. UDP bruges på steder, hvor hastighed har høj prioritet end pålidelighed. For eksempel anvendes UDP til videokonferencer, fordi der, selvom nogle pixels ikke transmitteres, vil det ikke påvirke videokvaliteten så meget, men hastigheden er meget vigtig.
De fleste af ESP8266-projekterne og -koderne fungerer omkring TCP / IP, UDP vil være mindst generet.
Access Point (AP) og Station (STA):
Når du først begynder at arbejde med ESP-modulet, støder du ofte på disse to vilkår. Lad os sige, at du og din ven gerne vil surfe på internettet på dine smartphones, men da han ikke har en aktiv internetforbindelse, beslutter du at tænde dit hotspot, og din ven opretter forbindelse til det. Her er din telefon, der henter internetforbindelsen, adgangspunktet (AP), og din vens telefon, der bruger internettet, kaldes Station (STA).
ESP8266-modulet kan bruges i tre tilstande, AP-tilstand, STA-tilstand eller i både STA- og AP-tilstand (kombineret).
Service Set Identifier (SSID):
Dette er ret simpelt. Næsten alle os har brugt WIFI. Navnet på Wi-Fi-netværket kaldes dets SSID. Når vi har flere adgangspunkter, som en station kan oprette forbindelse til, skal stationen vide, hvilket adgangspunkt den skal få forbindelse, hvorfor hvert adgangspunkt (AP) får en identitet, der kaldes SSID.
Application Programming Interface (API):
For at gøre det enkelt er en API en messenger, der tager imod dine anmodninger, behandler den og returnerer dit system til det ønskede resultat. De fleste af de aktiviteter, vi udfører på internettet, bruger API'er, som når du bestiller en flyrejse, foretager et onlinekøb osv. Alle websteder forbinder dig til en API, hvor en del af arbejdet som tilmelding, betaling osv. Udføres for dig der.
ESP8266 bruger API til at tale med Internettet. For eksempel hvis det ønsker at vide tidspunktet, klimaet eller hvad det skal anmode om i form af en API til det tilsvarende websted. Webstedet modtager anmodningen og giver det ønskede resultat tilbage til vores ESP-modul.
Webserver:
En webserver er noget, der er ansvarlig for at vise indholdet på et websted. Alt indholdet på det pågældende websted indlæses på dets webserver. Der er dedikerede computere, hvis opgave kun er at fungere som en webserver. Vi kan også programmere vores ESP8266 til at fungere som en webserver og oprette forbindelse til den fra hvor som helst i verden.
Okay, det er nok for os at komme i gang. Nu, lad os få vores hænder på hardwaren.
Programmeringstyper med ESP8266:
Der er to måder at arbejde med dit ESP8266-modul på. Denne tutorial hjælper dig med at komme i gang med begge dele. En måde er at bruge AT-kommandoerne. Den anden måde er at bruge Arduino IDE. Lad os forstå, hvad det betyder.
Alle ESP8266-moduler, der sendes fra fabrikken, har en standard firmware (SDK + API) indlæst i den. Denne firmware hjælper dig med at programmere ESP8266-modulet via AT-kommandoer.
Den anden måde er ved direkte at programmere ESP8266-modulet ved hjælp af Arduino IDE (kort ikke nødvendigt) og dets biblioteker. Alle projekter kan udføres i begge metoder. Men hvis du begynder at bruge Arduino IDE til programmering af din ESP8266, kan du muligvis ikke bruge AT-kommandoer, fordi standard SDK muligvis er blevet ødelagt. I så fald skal du blinke din ESP med standardindstillinger. Vi vil dække det i en anden tutorial.
Hardware til programmering ESP8266-modul:
ESP8266 er et 8 terminalmodul. Stiften ud af det samme er vist nedenfor.
Desværre er dette modul ikke venligt med brødbræt, og derfor kan vi ikke montere det direkte på vores brødbræt. Også i modsætning til Arduino har den ikke en indbygget USB til seriel driver; derfor er vi nødt til at bruge “FTDI USB til TTL serielt adaptermodul” til at kommunikere med det. Sørg for, at FTDI-kortet også kan fungere på 3,3 V; den, vi bruger i denne vejledning, vises nedenfor.
Nu, som vi ved, skal vi tænde ESP8266 med 3.3V. Men det nuværende forbrug er 0,8 A, så det fungerer muligvis ikke som forventet, hvis det får strøm fra vores FTDI breakout board. Derfor er vi nødt til at bygge vores eget strømkredsløb. Her har vi brugt LM317 til strømforsyningsformålet; detaljerne til fremstilling af den komplette hardware er angivet i senere afsnit.
Nødvendige materialer:
- Perf Board
- ESP8266-01
- FTDI breakout Board
- LM317
- 0.1uf kondensator
- 10uf kondensator
- Barrel Jack
- Bergstik Mand og Kvinde
- Trykknap
- Tilslutning af ledninger
- 12V adapter til strømforsyning af kortet.
Forklaring af kredsløb:
Skemaet for tavlen er vist nedenfor
Nogle har måske forsøgt at tænde din ESP direkte fra din FTDI og få det til at fungere, men følgende er grundene til at opbygge dit eget kort med få ekstra komponenter:
- Kun få FTDI-kort kan skaffe tilstrækkelig strøm til ESP-modulet. Få ESP-moduler bruger muligvis høj strøm end den anden under blink. Derfor er det altid sikkert at have din egen strømkilde, og det vil være lettere at integrere strømforsyningskredsløb på Dot Board i stedet for breadboard.
- Vi skal altid nulstille ESP-modulet, før vi uploader koden, og opbygning af vores eget kort hjælper os med at nulstille modulet let. Vi har brugt trykknap til at nulstille ESP8266.
- GPIO0-stiften skal være jordforbundet, når du programmerer med Arduino, og skal være fri, når du bruger AT-kommandoer, dette kan let skiftes, hvis vi bygger vores eget kort. Vi har brugt en jumper til at skifte mellem AT-kommandotilstand og Arduino IDE-programmeringstilstand.
- Al programmering sker ved hjælp af seriel kommunikation , hvis du bruger et brødbræt, kan nogle løse terminaler forårsage en fejl halvvejs og tvinge os til at blinke modulet til at arbejde med igen.
Når det er sagt, kan du vælge mellem at bruge et brødbræt og at lave dit eget kort til programmering af modulet. Hvis du stadig vil bruge brødbrættet, kan det samme kredsløb vist ovenfor bygges ved hjælp af dit brødbræt. Kun udseendet vil være anderledes, alle de øvrige instruktioner i denne tutorial bruger det samme.
Building Board til at programmere ESP8266:
Så her bygger vi tavlen til at programmere ESP8266-modulet, som har sit eget strømkredsløb til at tænde for ESP8266.
Som sagt vil vores modul kræve omkring 800 mA under programmering. Derfor har vi konstrueret vores eget strømmodul ved hjælp af en LM317 variabel spændingsregulator, da kildestrømmen til LM317 er næsten 1,2A. Indgangsspændingen på LM317 vil være 12V, som gives ved hjælp af en 12V 2A vægmonteringsadapter. Udgangen fra LM317 reguleres konstant til 3,3 V ved hjælp af modstandene 220ohm og 360ohm. Se også vores batteriopladekredsløb ved hjælp af LM317 for at lære mere om LM317.
Formlerne til beregning af udgangsspændingen for LM317 er angivet nedenfor:
Vout = 1,25 * (1+ (R2 / R1))
Hvor R1 er 220ohm og R2 er 360ohms.
ESP8266-modulet er tilsluttet i henhold til de ben, der er vist i nedenstående tabel.
Pin nr. |
ESP-pin-navn |
Forbundet til |
1 |
Jord |
Jord på FTDI-modulet |
2 |
GPIO2 |
Efterladt fri eller tilsluttet bergpind til fremtidig brug |
3 |
GPIO0 |
Skift til at skifte mellem programmeringstilstande |
4 |
Rx |
Tx for FTDI-modul |
5 |
Tx |
Rx af FTDI-modul |
6 |
CH_PH |
3,3V fra LM317 |
7 |
Nulstil |
Tryk på knappen for at nulstille modulet |
8 |
Vcc |
3,3V fra LM317 |
For let at skifte mellem AT-kommandotilstand og Arduino-programmeringstilstand har jeg placeret en switch (jumper), der trækker GPIO 0 til jorden, når du bruger Arduino IDE og lader den flyde, når du bruger AT-kommandoerne.
Der er en trykknap, som når den trykkes nulstiller ESP-modulet. Dette gøres ved simpelthen at forbinde RST-stiften på ESP-modulet til jordskinnen gennem trykknappen. Hver gang inden vi programmerer vores ESP-modul, skal vi nulstille det.
Når du har samlet kredsløbet, skal det se sådan ud nedenfor.
Jeg har brugt et Perf-kort, men du kan også bruge et brødbræt, hvis du er interesseret (som beskrevet ovenfor). Den komplette opbygning og forklaring vises i videoen nedenfor.
Når du er færdig med forbindelserne. Tænd for kortet uden ESP- og FTDI-kortene, og kontroller, om vi får 3,3 V korrekt på Vcc- og jordterminalerne på ESP-modulernes position. Sørg nu for, at dit FTDI-kort er i 3.3V-tilstand, og tilslut dine FTDI- og ESP-moduler til dit kort.
Tænd din adapter og tilslut den til dit kort, ESP-modulet skal lyse med en rød farve.
Tilslut derefter dit FTDI-kort til din computer ved hjælp af et mini-USB til USB-kabel, og naviger til Enhedshåndtering på din computer, og du skal finde dit FTDI-kort tilsluttet til din COM-port, som vist nedenfor:
Nu er det tid til at få fat i programmeringen af vores ESP8266-modul. Du kan starte med at bruge AT-kommandoerne og derefter flytte til at bruge Arduino IDE. Glem ikke at tjekke vores andre ESP8266-baserede projekter.