日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

micropython esp8266教程_ESP8266 快速开发指南

發(fā)布時(shí)間:2023/12/19 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 micropython esp8266教程_ESP8266 快速开发指南 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這是針對(duì) ESP8266 版的快速指南,請(qǐng)大家注意與 pyboard 版的區(qū)別。簡(jiǎn)單介紹一組有關(guān) ESP8266 開(kāi)發(fā)板下使用 MicroPython 開(kāi)發(fā)的范例程序。

machine 和頻率控制

import machine

machine.freq() # get the current frequency of the CPU

machine.freq(160000000) # set the CPU frequency to 160 MHz

ESP模塊

import esp

esp.osdebug(None) # turn off vendor O/S debugging messages

esp.osdebug(0) # redirect vendor O/S debugging messages to UART(0)

網(wǎng)絡(luò)

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

一個(gè)用于連接到你的本地 WiFi 的函數(shù):

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())

網(wǎng)絡(luò)連接后,就可以創(chuàng)建和使用 TCP/UDP 了。

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

定時(shí)器

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))

延時(shí)

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

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

from machine import ADC

adc = ADC(0) # create ADC object on ADC pin

adc.read() # read value, 0-1024

軟件 SPI

SPI 有兩種驅(qū)動(dòng)。一種是軟件方式 (bit-banging),可以使用任何 pins:

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(-1, 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

硬件 SPI

硬件 SPI 速度更快 (最高 80Mhz),但是只能使用下面的 pins: MISO – GPIO12, MOSI – GPIO13, 以及 SCK – GPIO14。它的用法和上面的軟件SPI相同,除了pin參數(shù):

from machine import Pin, SPI

hspi = SPI(1, baudrate=80000000, polarity=0, phase=0)

(SPI(0) 僅用于內(nèi)部的 FlashROM。)

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

驅(qū)動(dòng) 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))

網(wǎng)絡(luò)

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())

NeoPixel 驅(qū)動(dòng)

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

底層驅(qū)動(dòng)

import esp

esp.neopixel_write(pin, grb_buf, is800khz)

APA102驅(qū)動(dòng)

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

底層驅(qū)動(dòng)

import esp

esp.apa102_write(clock_pin, data_pin, rgbi_buf)

webrepl

import webrepl

webrepl.start()

webrepl.stop()

總結(jié)

以上是生活随笔為你收集整理的micropython esp8266教程_ESP8266 快速开发指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。