|
【MicroPython】ESP8266的MicroPython快速参考
[复制链接]
Quick reference for the ESP8266
开发板控制
- import machine
- machine.freq() # get the current frequency of the CPU
- machine.freq(160000000) # set the CPU frequency to 160 MHz
复制代码
ESP8266模块
- import esp
- esp.osdebug(None) # turn off vendor O/S debugging messages
- esp.osdebug(0) # redirect vendor O/S debugging messages to UART(0)
复制代码
网络
- import network
- wlan = network.WLAN(network.STA_IF) # create station interface
- wlan.active(True) # activate the interface
- wlan.scan() # scan for access points
- wlan.isconnected() # check if the station is connected to an AP
- wlan.connect('essid', 'password') # connect to an AP
- wlan.config('mac') # get the interface's MAC adddress
- wlan.ifconfig() # get the interface's IP/netmask/gw/DNS addresses
- ap = network.WLAN(network.AP_IF) # create access-point interface
- ap.active(True) # activate the interface
- ap.config(essid='ESP-AP') # set the ESSID of the access point
复制代码
连接到本地网络
- def do_connect():
- import network
- wlan = network.WLAN(network.STA_IF)
- wlan.active(True)
- if not wlan.isconnected():
- print('connecting to network...')
- wlan.connect('essid', 'password')
- while not wlan.isconnected():
- pass
- print('network config:', wlan.ifconfig())
复制代码
延时和时间
- import time
- time.sleep(1) # sleep for 1 second
- time.sleep_ms(500) # sleep for 500 milliseconds
- time.sleep_us(10) # sleep for 10 microseconds
- start = time.ticks_ms() # get millisecond counter
- delta = time.ticks_diff(start, time.ticks_ms()) # compute time difference
复制代码
定时器
- from machine import Timer
- tim = Timer(-1)
- tim.init(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print(1))
- tim.init(period=2000, mode=Timer.PERIODIC, callback=lambda t:print(2))
复制代码
Pins 和 GPIO
- from machine import Pin
- p0 = Pin(0, Pin.OUT) # create output pin on GPIO0
- p0.high() # set pin to high
- p0.low() # set pin to low
- p0.value(1) # set pin to high
- p2 = Pin(2, Pin.IN) # create input pin on GPIO2
- print(p2.value()) # get value, 0 or 1
- p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor
- p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation
复制代码
PWM
- from machine import Pin, PWM
- pwm0 = PWM(Pin(0)) # create PWM object from a pin
- pwm0.freq() # get current frequency
- pwm0.freq(1000) # set frequency
- pwm0.duty() # get current duty cycle
- pwm0.duty(200) # set duty cycle
- pwm0.deinit() # turn off PWM on the pin
- pwm2 = PWM(Pin(2), freq=500, duty=512) # create and configure in one go
复制代码
ADC (analog to digital conversion)
- from machine import ADC
- adc = ADC(0) # create ADC object on ADC pin
- adc.read() # read value, 0-1024
复制代码
SPI
- from machine import Pin, SPI
- # construct an SPI bus on the given pins
- # polarity is the idle state of SCK
- # phase=0 means sample on the first edge of SCK, phase=1 means the second
- spi = SPI(baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4))
- spi.init(baudrate=200000) # set the baudrate
- spi.read(10) # read 10 bytes on MISO
- spi.read(10, 0xff) # read 10 bytes while outputing 0xff on MOSI
- buf = bytearray(50) # create a buffer
- spi.readinto(buf) # read into the given buffer (reads 50 bytes in this case)
- spi.readinto(buf, 0xff) # read into the given buffer and output 0xff on MOSI
- spi.write(b'12345') # write 5 bytes on MOSI
- buf = bytearray(4) # create a buffer
- spi.write_readinto(b'1234', buf) # write to MOSI and read from MISO into the buffer
- spi.write_readinto(buf, buf) # write buf to MOSI and read MISO back into buf
复制代码
I2C
- from machine import Pin, I2C
- # construct an I2C bus
- i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)
- i2c.readfrom(0x3a, 4) # read 4 bytes from slave device with address 0x3a
- i2c.writeto(0x3a, '12') # write '12' to slave device with address 0x3a
- buf = bytearray(10) # create a buffer with 10 bytes
- i2c.writeto(0x3a, buf) # write the given buffer to the slave
复制代码
深度休眠
- import machine
- # configure RTC.ALARM0 to be able to wake the device
- rtc = machine.RTC()
- rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)
- # check if the device woke from a deep sleep
- if machine.reset_cause() == machine.DEEPSLEEP_RESET:
- print('woke from a deep sleep')
- # set RTC.ALARM0 to fire after 10 seconds (waking the device)
- rtc.alarm(rtc.ALARM0, 10000)
- # put the device to sleep
- machine.deepsleep()
复制代码
OneWire 单总线驱动
- from machine import Pin
- import onewire
- ow = onewire.OneWire(Pin(12)) # create a OneWire bus on GPIO12
- ow.scan() # return a list of devices on the bus
- ow.reset() # reset the bus
- ow.readbyte() # read a byte
- ow.read(5) # read 5 bytes
- ow.writebyte(0x12) # write a byte on the bus
- ow.write('123') # write bytes on the bus
- ow.select_rom(b'12345678') # select a specific device by its ROM code
复制代码
使用DS18B20:
- import time
- ds = onewire.DS18B20(ow)
- roms = ds.scan()
- ds.convert_temp()
- time.sleep_ms(750)
- for rom in roms:
- print(ds.read_temp(rom))
复制代码
NeoPixel 驱动
- from machine import Pin
- from neopixel import NeoPixel
- pin = Pin(0, Pin.OUT) # set GPIO0 to output to drive NeoPixels
- np = NeoPixel(pin, 8) # create NeoPixel driver on GPIO0 for 8 pixels
- np[0] = (255, 255, 255) # set the first pixel to white
- np.write() # write data to all pixels
- r, g, b = np[0] # get first pixel colour
复制代码- import esp
- esp.neopixel_write(pin, grb_buf, is800khz)
复制代码
APA102 驱动
- from machine import Pin
- from apa102 import APA102
- clock = Pin(14, Pin.OUT) # set GPIO14 to output to drive the clock
- data = Pin(13, Pin.OUT) # set GPIO13 to output to drive the data
- apa = APA102(clock, data, 8) # create APA102 driver on the clock and the data pin for 8 pixels
- apa[0] = (255, 255, 255, 31) # set the first pixel to white with a maximum brightness of 31
- apa.write() # write data to all pixels
- r, g, b, brightness = apa[0] # get first pixel colour
复制代码- import esp
- esp.apa102_write(clock_pin, data_pin, rgbi_buf)
复制代码
WebREPL (web browser interactive prompt)
- import webrepl
- webrepl.start()
复制代码
转自:
http://docs.micropython.org/en/latest/esp8266/esp8266/quickref.html
|
赞赏
-
2
查看全部赞赏
-
|