In this post I’ll be writing about accessing GPIO ports on ESP8266.
Module machine contains the apis for the GPIO on ESP8266.
import machine
pin = machine.Pin(2, machine.Pin.IN, machine.Pin.PULL_UP)To use a GPIO we need to configure it as either input or output. In the above
example machine.Pin.IN configures the GPIO pin as an input, meaning you can
connect a button like the one shown below to it.

The machine.Pin.PULL_UP indicates that, the input pin will give 1
when the button is not pressed, and you will get the output 0 when button is
pressed.
Now when you need to use the pin as an output pin, you need to
pin = machine.Pin(2, machine.Pin.OUT)This will make the pin an output pin.
you can control the output of the pin by using Pin.on() and Pin.off()
methods.
>>> import machine
>>> pin = machine.Pin(2, machine.Pin.OUT)
>>> dir(pin)
['__class__', 'IN', 'IRQ_FALLING', 'IRQ_RISING', 'OPEN_DRAIN', 'OUT', 'PULL_UP', 'init', 'irq', 'off', 'on', 'value']
>>> Following is the program to turn on an led when the button is pressed.
import machine
inputPin = machine.Pin(15, machine.Pin.IN)
outputPin = machine.Pin(2, machine.pin.OUT)
def main():
while True:
if inputPin.value() == 1:
outputPin.on()
else:
outputPin.off()
main()In the next post I’ll be writing about sending data from and to ESP8266 using MQTT.