Innehållsförteckning:

Nybörjarguide till ESP8266 och twittring med ESP8266: 17 steg (med bilder)
Nybörjarguide till ESP8266 och twittring med ESP8266: 17 steg (med bilder)

Video: Nybörjarguide till ESP8266 och twittring med ESP8266: 17 steg (med bilder)

Video: Nybörjarguide till ESP8266 och twittring med ESP8266: 17 steg (med bilder)
Video: 2 - Programmering i Java - Utskrift til skjerm med print og println 2024, November
Anonim
Nybörjarguide till ESP8266 och twittring med ESP8266
Nybörjarguide till ESP8266 och twittring med ESP8266

Jag lärde mig om Arduino för 2 år sedan. Så jag började leka med enkla saker som lysdioder, knappar, motorer etc. Då tänkte jag att det inte skulle vara häftigt att ansluta till saker som att visa dagens väder, aktiekurser, träningstider på Jag fann att detta kunde göras genom att skicka och ta emot data via internet. Så lösningen var att ansluta till intenet. Där började min sökning om hur man ansluter Arduino till internet och skickar och tar emot data. Jag lärde mig om wifi -moduler på internet och tyckte att de var mycket dyra. Då fick jag veta om ESP8266.

Jag läste mycket på internet på ESP8266 -modulen för ungefär ett år sedan och köpte en men började jobba med dem bara förra månaden. För närvarande fanns ingen omfattande information tillgänglig. Men nu finns mycket dokumentation, videor tillgängliga på internet angående firmware, AT -kommandon, projekt etc. Så jag bestämde mig för att komma igång.

Jag skrev detta instruerbart som en nybörjarguide eftersom jag mötte många problem med att koppla upp och komma igång med ESP8266. Så jag bestämde mig för att skriva den här instruerbara så att andra människor som stöter på problem med sina moduler kan lösa dem snabbare

I denna instruerbara ska jag försöka visa

  • Hur man ansluter en ESP8266 och kommunicerar med den via Arduino Uno.
  • Jag kommer också att försöka visa hur en tweet kan skickas genom den med Thingspeak.

Vad kan ESP8266 göra? Det begränsas av din fantasi. Jag har sett projekt och självstudier på internet som visar hur man hämtar stadens temperatur, aktiekurser, skickar och tar emot e -post, ringer och mycket mycket mer. Jag kommer att visa denna instruerbara hur man skickar en tweet.

Steg 1: Saker du behöver

Saker du behöver
Saker du behöver

Här är de saker du behöver. De flesta av dessa kan köpas från valfri elbutik eller online (jag har tillhandahållit länkarna som referens).

  • 1xESP8266 (ESP -01) -bay
  • 1xBreadboard -adapter (lär dig hur du gör en här eller använd några bygelkablar)
  • 1xLM2596 -bay
  • 1xLogic nivåomvandlare -bay
  • 1xArduino Uno
  • USB -kabel för Arduino Uno
  • 1xBreadboard -bay
  • Wires -bay
  • Arduino IDE
  • Ett konto hos Thingspeak

Den totala kostnaden kommer att vara cirka Rs 600 (cirka $ 9). Jag har uteslutit kostnaden för Arduino Uno eftersom det beror på om du vill ha en original eller en klon. De billigaste klonerna finns på cirka Rs 500 (cirka $ 4).

Steg 2: Lite information om ESP8266

ESP8266 lanserades 2014 för bara ett år sedan, så det är ganska nytt. Chipsen tillverkas av Espressif.

Fördel

Den största fördelen med ESP8266 är kanske dess kostnad. Det är ganska billigt och du kan köpa ett par av dessa på en gång. Innan jag fick veta det kunde jag inte ens tänka mig att köpa en wifi -modul. De var för dyra. Nya versioner av ESP8266 släpps ganska ofta och den senaste är ESP 12. Men i denna instruktionsbok kommer jag bara att fokusera på ESP 01 som är ganska populär. Dessutom när du köper ESP8266 kommer den förinstallerad med standard AT -firmware. du är bra att komma igång så snart du köper en.. Och som du kommer att se av denna instruerbara är det ganska enkelt att koppla dem.

Nackdel

Varje enhet har sina egna fördelar och nackdelar och ESP är inte annorlunda. ESP kan ibland visa sig vara mycket knepigt och frustrerande att arbeta med. Eftersom det är ganska nytt kommer du att ha svårt att få information om det. Lyckligtvis kan en community på esp8266.com existerar vilket är mycket hjälp. Dessutom börjar det också ibland också göra oväntade saker som att slänga skräp genom den seriella anslutningen etc.

Observera att det finns mycket dokumentation på internet och en del av det är motstridigt. Denna instruktion är inte annorlunda. Medan jag lekte med min ESP8266 upptäckte jag att den avvek mycket från vad som nämndes på internet (din kan också) men det fungerade bra.

Steg 3: Pinout av ESP8266

Pinout av ESP8266
Pinout av ESP8266

ESP8266 har 8 stift som visas.

Gnd och Vcc bör anslutas som vanligt till marken respektive matningen. ESP8266 fungerar på 3,3V.

ÅTERSTÄLL -stiftet används för att manuellt återställa ESP. Den bör normalt vara ansluten 3.3V. Om du vill återställa ESP ansluter du denna stift till jord en stund och sedan tillbaka till 3.3V.

CH_PD är chipspänningen som normalt ska anslutas till 3,3V.

GPIO0 och GPIO2 är ingångsuttag för allmänna ändamål. Dessa bör normalt anslutas till 3,3V, men när firmware blinkar ansluter du GPIO0 till gnd.

Rx- och Tx -stiften är sändar- och mottagarstiften för ESP8266. De fungerar på 3,3V -logik, dvs 3,3V är logisk HÖG för ESP8266.

Detaljerade anslutningar tillhandahålls i senare steg.

Steg 4: Vad ska användas för kommunikation med ESP8266?

Vad ska användas för att kommunicera med ESP8266?
Vad ska användas för att kommunicera med ESP8266?
Vad ska användas för att kommunicera med ESP8266?
Vad ska användas för att kommunicera med ESP8266?
Vad ska användas för att kommunicera med ESP8266?
Vad ska användas för att kommunicera med ESP8266?

Det finns många enheter som kan användas för att kommunicera med ESP8266, till exempel FTDI -programmerare, USB till TTL -seriekonverterare, Arduino etc. Jag har dock använt en Arduino Uno helt enkelt för att det är det enklaste och nästan alla har det. har en Arduino har du också Arduino IDE och dess seriella bildskärm kan användas för kommunikation med ESP8266. Så inga pengar till FTDI -programmerare etc.

Men om du vill eller om du redan har en, kan du använda en FTDI -programmerare eller en USB till TTL -seriekonverterare (mer om hur du ansluter dem senare). Det finns också mycket programvara som RealTerm eller kitt. Du kan använda dessa på samma sätt som Arduino IDE: s seriella bildskärm.

Steg 5: Montering av ESP8266 på brödbräda

Montering av ESP8266 på brödbräda
Montering av ESP8266 på brödbräda
Montering av ESP8266 på brödbräda
Montering av ESP8266 på brödbräda

Observera att stiften på ESP8266 inte är skivbräda vänliga. Detta kan övervinnas på två sätt.

Använd hona till honkablar som kan göra det rörigt eller

Gör som visas i denna instruktionsbok eller

Använd ett adapterkort, gör ett själv (det finns många på Instructables) vilket är snyggt.

Steg 6: Strömförsörjning

Strömförsörjning
Strömförsörjning

ESP8266 fungerar på 3,3V -strömförsörjning. Anslut inte den till 5V -stiftet på Arduino. Den kommer antagligen att brinna.

Vissa självstudier föreslog att man skulle göra en spänningsdelare med 1k, 2k motstånd med 5V som ingång och få 3,3V över 2k -motståndet och leverera det till Arduino, men jag fann att ESP inte ens startade när jag gjorde detta.

Jag kunde slå på den med 3,3V på Arduino, men fann att ESP blev het efter en tid.

Du kan använda en 3.3V spänningsregulator.

Eller så kan du använda LM2596 dc-dc step down converter. Dessa är ganska billiga. Och jag använde dessa. Ge 5V från Arduino till ingången. Justera potentiometern på modulen tills utgången blir 3,3VI fann att ESP kan drivas från en av dessa i timmar. Gör anslutningarna enligt bilden.

Steg 7: Konvertering av logisk nivå

Konvertering av logisk nivå
Konvertering av logisk nivå

Det nämns att ESP har 3.3V logik medan Arduino har 5V logik.

Detta betyder att i ESP är 3.3V logik HÖG medan i Arduino 5V är logik HÖG. Detta kan orsaka vissa problem när du ansluter dem tillsammans.

Jag fann på internet att konvertering på logisk nivå måste tillämpas samtidigt som ESP Rx och Tx kopplas till Arduino.

Vissa självstudier nämnde att konvertering av logiknivå är nödvändig när gränssnittet mellan ESP Rx -stift.

Men jag upptäckte att det normalt inte orsakade några problem att ansluta ESP Rx- och Tx -stiften till Arduino normalt

Jag kopplade Rx och Tx via logiknivåomvandlare samt Rx ensam men fick inget svar.

Jag fann dock att det inte orsakade några problem att ansluta ESP Tx -stift via logiknivåomvandlare medan du anslöt Tx direkt

Så logisk nivåomvandlare kan användas eller inte.

Använd vilken metod som fungerar för dig genom försök och fel.

Steg 8: Anslutningar

Anslutningar
Anslutningar

Anslutningarna till ESP8266 är:

ESP8266

Gnd ------------------- Gnd

GPIO2 --------------- 3.3V

GPIO0 --------------- 3.3V

Rx -------------------- Rx av Arduino

Tx --------------------- Tx av Arduino (direkt eller genom logisk nivåomvandlare)

CH_PD -------------- 3.3V

ÅTERSTÄLL -------------- 3.3V

Vcc -------------------- 3.3V

(Observera att i vissa versioner bör ESP Rx vara ansluten till Arduino Tx och ESP Tx ska vara ansluten till Arduino Rx).

Om du använder FTDI -programmerare eller USB till TTL -seriekonverterare, anslut deras Tx och Rx till Rx respektive Tx på ESP8266.

Steg 9: Komma igång

Efter att ha gjort anslutningarna, ladda upp

void setup ()

{}

void loop ()

{}

dvs en tom skiss till Arduino..

Öppna den seriella bildskärmen och ställ in den på "Både NL & CR".

Experimentera med Baud -hastigheten. Den bör vanligtvis vara 9600 men ibland kan den vara 115200.

Steg 10: AT -kommandon

AT -kommandon
AT -kommandon

Att bara säga AT -kommandon är kommandon som kan skickas till ESP8266 för att göra det möjligt att utföra vissa funktioner som omstart, ansluta till wifi etc. ESP: n kommer att skicka en bekräftelse i form av text. Nedan har jag förklarat några AT -kommandon och hur ESP svarar på dem. Observera att med skicka menar jag att skriva in kommandot och trycka på enter (retur).

Skicka AT via den seriella bildskärmen

Detta kommando används som testkommando.

Så här svarar ESP: OK bör returneras.

Skicka AT+RST via den seriella bildskärmen

Detta kommando används för att starta om modulen.

Så här svarar ESP: ESP returnerar en mängd skräp, men leta efter Ready eller ready.

Skicka AT+GMR via den seriella bildskärmen

Detta kommando används för att avgöra modulens firmwareversion.

Så här svarar ESP: Firmwareversion ska returneras.

Firmware är en mjukvara som är installerad på en enhet vanligtvis på dess ROM (skrivskyddat minne) dvs den är inte avsedd att ändras ofta eller inte alls. Det ger kontroll och datahantering av enheten. ESP8266 har ett nummer av olika firmwares som alla är ganska lätta att blinka (installera).

Steg 11: Allmän syntax för AT -kommandon

Den allmänna syntaxen för AT -kommandon för att utföra olika funktioner ges:

AT+parameter =?

När ett kommando av denna typ skickas via den seriella bildskärmen returnerar ESP alla värden som parametern kan ta.

AT+parameter = val

När ett kommando av denna typ skickas via den seriella bildskärmen, ställer ESP in parametervärdet till val.

AT+parameter?

När ett kommando av denna typ skickas via den seriella bildskärmen returnerar ESP det aktuella värdet på parametern.

Vissa AT -kommandon kan bara ta en av ovanstående typer medan vissa kan ta alla 3.

Ett exempel på ett kommando som är möjligt i alla ovanstående tre typer är CWMODE, som används för att ställa in wifi -läget.

Skicka AT+CWMODE =? genom den seriella bildskärmen

Så här svarar ESP: Alla värden som ESP CWMODE kan ta (1-3) returneras specifikt +CWMODE (1-3).

1 = Statisk

2 = AP

3 = Både statisk och AP

Skicka AT+CWMODE = 1 via den seriella bildskärmen

Så här svarar ESP: OK ska returneras om det finns en ändring i CWMODE från dess tidigare värde och det är inställt på statisk, annars ska ingen ändring returneras om det inte finns någon ändring i CWMODE -värdet.

VIKTIGT: Om inte CWMODE är inställt på 1 fungerar kommandona i de senare stegen inte.

Skicka AT+CWMODE? genom den seriella bildskärmen

Så här svarar ESP: Nuvärdet för CWMODE bör returneras, speciellt om du följde steget ovan +CWMODE: 1 bör returneras.

Steg 12: Ansluter till Wifi

Skicka AT+CWLAP via den seriella bildskärmen

Detta kommando används för att lista alla nätverk i området.

Så här svarar ESP: En lista över alla tillgängliga åtkomstpunkter eller wifi -nätverk bör returneras.

Skicka AT+CWJAP = "SSID", "password"

(inklusive de dubbla citaten).

Detta kommando används för att ansluta till ett wifi -nätverk.

Så här svarar ESP: OK bör returneras om modulen har anslutits till nätverket.

Skicka AT+CWJAP? genom den seriella bildskärmen

Detta kommando används för att bestämma det nätverk som ESP för närvarande är anslutet till.

Så här svarar ESP: Nätverket som ESP är anslutet till kommer att returneras. Specifikt +CWJAP: "SSID"

Skicka AT+CWQAP via den seriella bildskärmen

Detta kommando används för att koppla från nätverket som ESP för närvarande är anslutet till.

Så här svarar ESP: ESP avslutar nätverket som den är ansluten till och OK returneras.

Skicka AT+CIFSR via den seriella bildskärmen

Detta kommando används för att bestämma IP -adressen för ESP.

Så här svarar ESP: ESP: s IP -adress returneras.

Steg 13: Thingspeak

Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak

Om du inte har gjort ett konto på Thingspeak, gör ett nu.

Efter att ha skapat ett konto på Thingspeak går du till Appar> ThingTweet.

Länka ditt twitterkonto till det.

Observera API -nyckeln som genereras.

Efter att ThingTweet -appen har använts för att länka ett Twitter -konto till ditt ThingSpeak -konto kan du skicka en tweet med hjälp av TweetContol API.

Ett API (applikationsprogramgränssnitt) är kod som gör att två program kan kommunicera med varandra.

Några andra API: er som är tillgängliga för utvecklare är Google maps API, Open weather API etc.

Först efter att ESP har konfigurerats, kontrollerats och anslutits till wifi (i princip alla steg som anges i föregående 2 steg), går du igenom stegen nedan

Steg 14: Några fler AT -kommandon

Skicka AT+CIPMODE = 0, via den seriella bildskärmen

Så här svarar ESP: OK returneras.

Kommandot CIPMODE används för att ställa in överföringsläget.

0 = normalt läge

1 = UART-WiFi-genomströmningsläge

Skicka AT+CIPMUX = 1 via den seriella bildskärmen

Så här svarar ESP: OK returneras.

CIPMUX -kommandot används för att ställa in enstaka eller flera anslutningar.

0 = enkel anslutning

1 = flera anslutningar

Steg 15: Konfigurera TCP -anslutningen

Konfigurera TCP -anslutningen
Konfigurera TCP -anslutningen
Konfigurera TCP -anslutningen
Konfigurera TCP -anslutningen

Observera att från och med det första kommandot, så snart du skickar det första, upprättas anslutningen endast under en begränsad tid. Så skicka kommandona så snabbt som möjligt.

Skicka AT+CIPSTART = 0, "TCP", "api.thingspeak.com", 80 via seriell bildskärm

Så här svarar ESP: Länkad returneras om anslutningen har upprättats.

Detta kommando används för att upprätta en TCP -anslutning.

Syntaxen är AT+CIPSTART = länk -ID, typ, fjärr -IP, fjärrport

var

länk-ID = ID för nätverksanslutning (0 ~ 4), används för multi-anslutning.

type = string, "TCP" eller "UDP".

fjärr -IP = sträng, fjärr -IP -adress (webbadressens adress).

fjärrport = sträng, fjärrportnummer (vanligtvis valt att vara 80).

Skicka AT+CIPSEND = 0, 110 via den seriella bildskärmen

Så här svarar ESP:> (större än) returneras om kommandot lyckas.

Detta kommando används för att skicka data.

Syntaxen är AT+CIPSEND = länk -ID, längd

var

länk-ID = ID för anslutningen (0 ~ 4), för multi-connect. Eftersom CIPMUX har ställts in på 1, är 1.

längd = datalängd, MAX 2048 byte. Välj i allmänhet ett stort antal för längden.

Steg 16: Skicka tweeten

Skickar tweeten
Skickar tweeten

Nu för att skicka tweet

Skicka GET/apps/thingtweet/1/statuses/update? Api_key = yourAPI & status = yourtweet via den seriella bildskärmen.

Ersätt din API med API -nyckeln och din tweet med vilken tweet du vill.

Så snart du skickar ovanstående kommando börjar du trycka på enter (retur) med cirka 1 sekunders mellanrum. Efter en tid kommer SEND OK, +IPD, 0, 1: 1 och OK att returneras vilket betyder att tweeten har lagts ut.

Öppna din twitter och kontrollera om tweeten har lagts ut eller inte.

Observera också att samma tweet inte kan skickas upprepade gånger.

Ovanstående sträng som skickades (GET….) Är en HTTP GET -begäran.

GET -begäran används för att hämta data från den givna servern (api.thingspeak.com).

Steg 17: Vad du ska göra efter detta

(Se videon i minst 360p)

Gå till det här förvaret för att ladda ner koden och schemat. Klicka på knappen "Klon eller nedladdning" (grön till höger) och välj "Ladda ner ZIP" för att ladda ner zip -filen. Nu extrahera innehållet på din dator för att få koden och schematiken (i schematikmappen). Jag har också laddat upp ett fuskblad, som sammanfattar alla AT -kommandon, till det här förvaret.

Det finns många bra resurser tillgängliga på internet som handlar om ESP8266. Jag har nämnt några av dem här:

  • Kevin Darrah videor.
  • ALLaboutEE -videor.
  • esp8266.com

Du kan också experimentera mer med AT -kommandon. Det finns många API: er som finns tillgängliga på internet som kan göra alla möjliga saker som att få väder, aktiekurser etc.

Fullständig AT -kommandodokumentation

Jag arbetar också för närvarande med ett program som automatiskt tweets de analoga värdena för en sensor och jag kommer att lägga upp det när det fungerar korrekt.

Om du gillade min instruerbara röst för det i Arduino tävlar allt.

Rekommenderad: