Hur du använder ESP8266-01 stiften (4 / 4 steg)

Steg 4: En annan knep – kör ett relä och läsa en tryckknapp med GPIO0 / GPIO2



Här är ett annat sätt att konfigurera stiften. Obs: Detta trick fungerar bara om du har ett relä modul med isolerade indata (N1 och N1-com). På grund av denna begränsning och komplexiteten i stödjande koden är föregående exempel använder RX som indata, att föredra.

Med ESP8266 GPIO0/GPIO2/GPIO15 stift har redan täckande hur till använda GPIO0/GPIO2 tillsammans för att få en extra ingång. Här kommer att utvidgas detta exempel för att använda GPIO0 som driver reläutgång och GPIO0/GPIO2 som indata.

Här är den schematiska som pdf.

GPIO0 används här som en utgång för att driva reläet och GPIO0/GPIO2 används som indata till läsa den ögonblickliga tryckknapp som används som en manuell omställning för att aktivera reläet av och på, förutom fjärrkontrollen över WiFi-anslutning. På tillfällig-knappen används också för att config läge om det är press när driva, appliceras.

Tricket är att göra allt detta medan du fortfarande håller GPIO0 och GPIO2 höga när modulen ESP8266 initieras.

Pull-up motstånd, R1 och R3, tillhandahålla de nödvändiga höga för dessa två stift, men du måste se till att eventuella extra kretsar bifogas GPIO0 och GPIO2 inte inte kan dra stift låg. Optiskt isolerad reläet är ansluten mellan + 3.3V och GPIO0. Här håller GPIO0 högt på starta upp men tillåter GPIO0 att göras en utgång, efter starten, och marken reläet ingång för att driva reläet. Det inte fråga om knappen momentan drivs medan modul initieras, som som bara ansluter GPIO0 till GPIO2 och ansluta båda dessa till deras pullup motstånd.

Upptäcka Config-läge

Med ESP8266 som en tillfällig accesspunkt kan du Konfigurera den via en webbsida som beskrivs här. Del av den processen är att använda en tryckknapp eller kortsluter länk, vid uppstart att indikera att programvaran som du vill ange config-läge.

När modulen ESP8266 har initierats, körs det setup() koden. Detta nummer, att upptäcka om på momentan-knappen trycks, inte behöver du göra GPIO0 låg för att tillhandahålla en GND till knappen och sedan kontrollera GPIO2 in för att se om det låg. En sidan påverkar av denna kontroll är att reläet alltid kommer att drivas när enheten sätts in i config-läge. När du ser reläet fungerar kan kan du släppa knappen, eftersom dess ingång kommer att ha upptäckt då. Här är några exempel på kod att göra detta i setup()

booleska configMode = false; inte i config läge normalt
void setup() {
pinMode (0, OUTPUT);
digitalWrite (0, låg); göra GPIO0 utgång lågt
Kontrollera GPIO2 input för att se om tryckknapp trycks ansluta den till GPIO0
configMode = (digitalRead(2) == låg);
om (configMode) {
börja AP och få redo att tjäna config webbsida
lämna relä på i config-läge anger
//......
} annat {
normal behandling
göra GPIO0 hög till vända bort reläet
digitalWrite (0, hög);
//.....
}
resten av setup()
}

Upptäcka på Manuell omställning-knappen

Avsnittet ovan omfattas upptäcka när knappen trycktes på effekt upp till aktivera config läge. Vi vill också använda den knappen som en manuell omställning för att aktivera reläet på och av förutom att kunna kontrollera reläet via WiFi länk.

WiFi kontroll av reläet inte omfattas av det här, men kan enkelt göras med hjälp av pfodApp. Se OLIMEX Menu Generator för hur man skapar Arduino koden med pfodDesigner för ESP8266 moduler.

Detta avsnitt behandlar hur man upptäcker när knappen trycks, som visar användaren vill växla reläet, dvs stänga av är det eller slå på den om den är avstängd. Schematiskt är samma som ovan, alla tricks i koden. Det finns två fall överväga:-

  1. Reläet är OFF och användaren vill slå på den med hjälp av knappen,
  2. Reläet är ON och användaren vill stänga av den med hjälp av knappen.

Reläet är OFF och användaren vill slå på den med hjälp av knappen.

I detta fall är produktionen av GPIO0 hög. GPIO0 kan faktiskt vara en ingång i det här fallet eftersom drar upp motståndet R1 garanterar reläet inte slås på. Det är tricket. In this case göra GPIO0 indata och göra GPIO2 produktionen låg och sedan när användaren trycker på knappen, två saker kommer att hända: - a) reläet startar på grund av marken som tillhandahålls av GPIO2 via knappen och b) den Input GPIO0 kommer att gå lågt. I koden kontrolleras av Input GPIO0 och när det går lågt koden vet användning har tryckt på knappen och vill att reläet ska på. Koden gör sedan GPIO0 en utgång låg att hålla reläet på när knappen släpps.

Reläet är ON och användaren vill stänga av den med hjälp av knappen.

I det här fallet är efter ovanstående fall, GPIO0 en Output LOW hålla relä på. Nu i detta fall göra GPIO2 indata (drog upp av R3) och sedan när användaren trycker på knappen Input GPIO2 dras låg av låg utgång på GPIO0. När användningen släpper knappen koden upptäcka låg till hög övergång och sedan gör GPIO0 en ingång, som släpper reläet på grund av dra upp motstånd, R1, och gör GPIO2 en utgång låg att ställa upp för fallet jag) ovan.

Ett mer knep. Fall ii) behöver vi GPIO2 som indata som upptäcker en låg till hög övergång om du vill inaktivera reläet. Men om vi gör GPIO2 och ingång i slutet av fallet jag) då vi kommer att få en låg till hög övergång som användaren släpper knappen de tryckte bara aktivera reläet. För att undvika att reläet bort omedelbart igen, första låg till hög övergången efter vrida reläet kommer att ignoreras eftersom det är bara användaren släpper knappen de pressas för att aktivera reläet.

Prov loop() koden för Relay Manual över ride

I den här koden nonchalerar jag switch debounce för enkelhet. Ingångarna bör vara debounced i alla riktiga program.

Exempelkoden är här, ESP8266_01pinMagic_1.ino

Återigen detta lämnar TX / RX stift för seriell felsökning eller användning som andra I/O

Slutsats

Den här sidan visar hur du får mest ut begränsade stiften tillgängliga på den ESP8266-01. Med GPIO0 / GPIO2 som en I2C bussen ger den största expansionen, men om du projektet inte använder I2C, kan du fortfarande köra ett relä och upptäcka en tryckknapp inmatning med GPIO0 / GPIO2. I fallet endera TX / RX är också tillgängliga för seriell felsökning eller om du skickar debug Skriv ut rapporter över WiFi link, dessa stift är tillgängliga för allmän I/O samt...

Se Steg
Relaterade Ämnen

Hur man använder seriekonsoll återhämtning för OpenWRT

jag har en bra trådlös router från TP-LINK, herr 3420. Det är en typisk WiFi-router, jag köpte den var:1. den har en USB-port och2. du kan läsa in OpenWRT på den.Så jag fick enheten, jag installerade OpenWRT och på något sätt lyckades jag setup fel u...

Hur man använder datorn registrerar - lektion 1 - bitars grunderna, maskering, logik verksamhet

dator register är svåra att använda, men värt att lära sig hur man använder. De ser ut som nummer, men fungerar som en serie av kryssrutor. Varje bit kan ha en annan funktion. Att sätta en 1 eller en check kommer att aktivera något. Ändra 1 till en 0...

Hur man använder en Stepper Motor

Om vi noga med att erkänna det eller inte, finns motorer överallt i vår vardag; de brukar bara vara dolda. Motorerna är närvarande i bilar, skrivare, datorer, tvättmaskiner, rakapparater, och mycket mer.Det finns dock ett antal personer (som fram til...

Hur du använder Actobotics Servo Controller

I detta instructable jag kommer gå igenom hur du använder Actobotics Servo Controller. Det är ett manuell servo controller vilket innebär att det inte kräver indata från en dator, mikrokontroller eller på annat sätt driva servon. Allt du behöver är c...

Hur man använder en 3D penna

Jag har varit in i 3D-utskrifter i några år nu. Att göra dem, ändra dem, använder dem och allt som kommer i mellan. Jag har varit att se 3D pennor på marknaden mer och alltid tyckt att de var typ av dumt små saker. Tja, jag slutligen har en och gissa...

Hur du använder Dragon Rider 500 med din AVR Dragon

detta instructable är en snabbkurs i hur man använder några av funktionerna av Dragon Rider 500 från Ecros Technologies. Tänk att det finns en mycket detaljerad Användarhandbok tillgänglig på webbplatsen Ecros.Dragon Rider är ett gränssnittskort för...

DIY Arduino Unit Converter: Hur man använder LCD:

här är en hemsk video av den arbetande. Jag kommer att lägga upp ett bättre senare.Naturligtvis är detta för det gör att lära ungdomar tävling, så här är Svaren på alla dina frågor!Vad gjorde jag?Jo tänkte jag det var dags min Arduino lärde mig att g...

Hur man använder en LED Array Module

med en enda LED kan du anger status för något: på eller av. Det kan vara lite tråkigt. Med en matris av lysdioder kan du Visa tecken eller ens några enkla pixlig grafik. Som kan tillägga lite pizzaz till en liten mikrokontroller projekt.Du kan använd...

Hur man använder stift Bobby

så flickor, vi vet alla hur användbar bobby pins kan vara när vi utformar vårt hår. Jag har en pixie cut, men mitt hår är mycket tjock och jag hatar att ha min lugg i mitt ansikte. Så nyligen har jag vansinnigt forskat enkla flätor jag kan använda me...

Hur man använder en tillverkare levereras modell i LTspice

LTspice har kommit med sitt eget bibliotek av modeller. Det är ganska omfattande och föga förvånande, den innehåller en hel del linjär teknik komponenter (som det är på något sätt "sponsrad" av LT). Tanken är att beskriva en modell för en funger...

Hur man använder en IC DAC

Hej!Det finns ett antal tutorials där ute som kan förklara hur man använder en R-2R resistor stege som en Digital till Analog omvandlare (DAC), såsom en, men inte mycket många är ute som förklarar hur du använder en DAC som är en integrerad krets. (L...

Hur du använder Adafruit Pro prydnadssak styrelsen - Arduino handledning

I den här guiden lär du dig hur du använder Adafruit Pro prydnadssak styrelsen och hur du enkelt kan programmera det med Codebender!Denna lilla styrelse använder ATmega328p mikrokontroller, det är som en Arduino Pro Mini men med fler pins och micro i...

MOTORER grunderna (äntligen!): Hur man använder en H bro

Hej, anhängare och beslutsfattare både. Det har varit ett tag och jag inte har skrivit mycket. Men... Nu har jag något att diskutera med er alla. Motors. De är mycket användbara, men vad skulle göra dem mer effektiva är om vi visste hur att få dem at...

Hur du använder Inkscape för Arduino etiketter och projekt

Ett år sedan kom jag över en artikel i nötter och volt Magazine om att göra professionella snygga paneler för projekt. Artikeln är på rad och förklarar det mycket bättre än jag kan, med mycket mer detaljerat. Jag uppmanar er att läsa del två utmärkta...

Hur du använder Nokia 5110 LCD med Arduino?

Idag, ska jag visa dig hur du använder Nokia 5110 display med Arduino styrelser med dessa enkla steg.Behovet av lista:1. Arduino UNO (med USB-kabel)2. Nokia 5110 LCD (med små kablar)Steg 1: AnslutningarnaFölj anslutningarna som visas i bilden. Du kan...

Hur du använder Potentiometer - Arduino handledning

För de som börjar att lära sig om robotik, särskilt i området för att bygga kretsar, kanske du har stött på frågan om hur du ändrar ljusstyrkan i en LED, utan att behöva hålla byta delar. Lösningen på problemet är helt enkelt en potentiometer.Potenti...

Hur du använder Autodesks Fusion 360 med Othermill för klippning av 3D-former

Nyligen, med några senaste utvecklingen vid universitetet jag ska gå, jag har fått tillgång till en hel del fantastiska verktyg. En av dessa är Othermill, en miniatyr 3-axlig CNC-maskin. Del av min nuvarande position program som makerspace manager är...

Hur man använder en nål mätare som mäter dina stickor & virka Hooks!

Har du stickor eller virka krokar utan storlekar på dem? Om så är fallet, då blir denna lilla verktyget din bästa vän!Många stickor, utbytbara nålar, DPN, vintage nålar och virknålar är omärkta! Detta kan vara mycket frustrerande när man försöker att...

Hur du använder Skectup och 123D programmet att skapa din egen 3D pussel eller modell

Hur du använder fri programvara och en 3D-skrivare för att återskapa några av dina favorit saker i livet.Steg 1: Bestämma vad du vill göra Bestämma vad som ska skapa i en 3D-skrivare är lätt. Vad är ditt intresse, vad vill du hitta cool som du har se...