9246|9

1万

帖子

25

TA的资源

版主

楼主
 

【MicroPython】ESP8266的MicroPython快速参考 [复制链接]

 
 Quick reference for the ESP8266




开发板控制

  1. import machine

  2. machine.freq()          # get the current frequency of the CPU
  3. machine.freq(160000000) # set the CPU frequency to 160 MHz
复制代码

ESP8266模块

  1. import esp

  2. esp.osdebug(None)       # turn off vendor O/S debugging messages
  3. esp.osdebug(0)          # redirect vendor O/S debugging messages to UART(0)
复制代码

网络

  1. import network

  2. wlan = network.WLAN(network.STA_IF) # create station interface
  3. wlan.active(True)       # activate the interface
  4. wlan.scan()             # scan for access points
  5. wlan.isconnected()      # check if the station is connected to an AP
  6. wlan.connect('essid', 'password') # connect to an AP
  7. wlan.config('mac')      # get the interface's MAC adddress
  8. wlan.ifconfig()         # get the interface's IP/netmask/gw/DNS addresses

  9. ap = network.WLAN(network.AP_IF) # create access-point interface
  10. ap.active(True)         # activate the interface
  11. ap.config(essid='ESP-AP') # set the ESSID of the access point
复制代码

连接到本地网络

  1. def do_connect():
  2.     import network
  3.     wlan = network.WLAN(network.STA_IF)
  4.     wlan.active(True)
  5.     if not wlan.isconnected():
  6.         print('connecting to network...')
  7.         wlan.connect('essid', 'password')
  8.         while not wlan.isconnected():
  9.             pass
  10.     print('network config:', wlan.ifconfig())
复制代码


延时和时间

  1. import time

  2. time.sleep(1)           # sleep for 1 second
  3. time.sleep_ms(500)      # sleep for 500 milliseconds
  4. time.sleep_us(10)       # sleep for 10 microseconds
  5. start = time.ticks_ms() # get millisecond counter
  6. delta = time.ticks_diff(start, time.ticks_ms()) # compute time difference
复制代码

定时器

  1. from machine import Timer

  2. tim = Timer(-1)
  3. tim.init(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print(1))
  4. tim.init(period=2000, mode=Timer.PERIODIC, callback=lambda t:print(2))
复制代码


Pins 和 GPIO


  1. from machine import Pin

  2. p0 = Pin(0, Pin.OUT)    # create output pin on GPIO0
  3. p0.high()               # set pin to high
  4. p0.low()                # set pin to low
  5. p0.value(1)             # set pin to high

  6. p2 = Pin(2, Pin.IN)     # create input pin on GPIO2
  7. print(p2.value())       # get value, 0 or 1

  8. p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor
  9. p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation
复制代码



PWM


  1. from machine import Pin, PWM

  2. pwm0 = PWM(Pin(0))      # create PWM object from a pin
  3. pwm0.freq()             # get current frequency
  4. pwm0.freq(1000)         # set frequency
  5. pwm0.duty()             # get current duty cycle
  6. pwm0.duty(200)          # set duty cycle
  7. pwm0.deinit()           # turn off PWM on the pin

  8. pwm2 = PWM(Pin(2), freq=500, duty=512) # create and configure in one go
复制代码


ADC (analog to digital conversion)

  1. from machine import ADC

  2. adc = ADC(0)            # create ADC object on ADC pin
  3. adc.read()              # read value, 0-1024
复制代码


SPI

  1. from machine import Pin, SPI

  2. # construct an SPI bus on the given pins
  3. # polarity is the idle state of SCK
  4. # phase=0 means sample on the first edge of SCK, phase=1 means the second
  5. spi = SPI(baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4))

  6. spi.init(baudrate=200000) # set the baudrate

  7. spi.read(10)            # read 10 bytes on MISO
  8. spi.read(10, 0xff)      # read 10 bytes while outputing 0xff on MOSI

  9. buf = bytearray(50)     # create a buffer
  10. spi.readinto(buf)       # read into the given buffer (reads 50 bytes in this case)
  11. spi.readinto(buf, 0xff) # read into the given buffer and output 0xff on MOSI

  12. spi.write(b'12345')     # write 5 bytes on MOSI

  13. buf = bytearray(4)      # create a buffer
  14. spi.write_readinto(b'1234', buf) # write to MOSI and read from MISO into the buffer
  15. spi.write_readinto(buf, buf) # write buf to MOSI and read MISO back into buf
复制代码


I2C


  1. from machine import Pin, I2C

  2. # construct an I2C bus
  3. i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)

  4. i2c.readfrom(0x3a, 4)   # read 4 bytes from slave device with address 0x3a
  5. i2c.writeto(0x3a, '12') # write '12' to slave device with address 0x3a

  6. buf = bytearray(10)     # create a buffer with 10 bytes
  7. i2c.writeto(0x3a, buf)  # write the given buffer to the slave
复制代码

深度休眠


  1. import machine

  2. # configure RTC.ALARM0 to be able to wake the device
  3. rtc = machine.RTC()
  4. rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)

  5. # check if the device woke from a deep sleep
  6. if machine.reset_cause() == machine.DEEPSLEEP_RESET:
  7.     print('woke from a deep sleep')

  8. # set RTC.ALARM0 to fire after 10 seconds (waking the device)
  9. rtc.alarm(rtc.ALARM0, 10000)

  10. # put the device to sleep
  11. machine.deepsleep()
复制代码

OneWire 单总线驱动


  1. from machine import Pin
  2. import onewire

  3. ow = onewire.OneWire(Pin(12)) # create a OneWire bus on GPIO12
  4. ow.scan()               # return a list of devices on the bus
  5. ow.reset()              # reset the bus
  6. ow.readbyte()           # read a byte
  7. ow.read(5)              # read 5 bytes
  8. ow.writebyte(0x12)      # write a byte on the bus
  9. ow.write('123')         # write bytes on the bus
  10. ow.select_rom(b'12345678') # select a specific device by its ROM code
复制代码


使用DS18B20:

  1. import time
  2. ds = onewire.DS18B20(ow)
  3. roms = ds.scan()
  4. ds.convert_temp()
  5. time.sleep_ms(750)
  6. for rom in roms:
  7.     print(ds.read_temp(rom))
复制代码

NeoPixel 驱动

  1. from machine import Pin
  2. from neopixel import NeoPixel

  3. pin = Pin(0, Pin.OUT)   # set GPIO0 to output to drive NeoPixels
  4. np = NeoPixel(pin, 8)   # create NeoPixel driver on GPIO0 for 8 pixels
  5. np[0] = (255, 255, 255) # set the first pixel to white
  6. np.write()              # write data to all pixels
  7. r, g, b = np[0]         # get first pixel colour
复制代码
  1. import esp
  2. esp.neopixel_write(pin, grb_buf, is800khz)
复制代码



APA102 驱动

  1. from machine import Pin
  2. from apa102 import APA102

  3. clock = Pin(14, Pin.OUT)     # set GPIO14 to output to drive the clock
  4. data = Pin(13, Pin.OUT)      # set GPIO13 to output to drive the data
  5. apa = APA102(clock, data, 8) # create APA102 driver on the clock and the data pin for 8 pixels
  6. apa[0] = (255, 255, 255, 31) # set the first pixel to white with a maximum brightness of 31
  7. apa.write()                  # write data to all pixels
  8. r, g, b, brightness = apa[0] # get first pixel colour
复制代码
  1. import esp
  2. esp.apa102_write(clock_pin, data_pin, rgbi_buf)
复制代码


WebREPL (web browser interactive prompt)

  1. import webrepl
  2. webrepl.start()
复制代码

转自:
http://docs.micropython.org/en/latest/esp8266/esp8266/quickref.html



最新回复

不知道是否已经支持常见的物联网协议: MQTT + TLS HTTP/REST + TLS CoAP + D-TLS 在MODEM芯片中运行Python,MCU负责硬件管理,两者RPC通讯,各施其职。挺好的。   详情 回复 发表于 2016-7-20 08:26

赞赏

2

查看全部赞赏

点赞 关注(1)
 
 

回复
举报

2721

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
都封装好了?

点评

还没有全部完成吧,基础的东西可以用了。  详情 回复 发表于 2016-6-11 20:25
 
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 

还没有全部完成吧,基础的东西可以用了。
 
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

4
 
我还是不习惯用python编程,嵌入式编程语言主流还是C。
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

5
 
看起来很不错!
 
 
 

回复

1297

帖子

2

TA的资源

纯净的硅(中级)

6
 
底层的module都是从micropython下载的么?还是已经在固件里面了?可以直接import

点评

已经内置了很多库,在官方的文档中有初步的介绍。直接import就可以,就像在pyboard中一样。  详情 回复 发表于 2016-6-11 22:14
 
 
 

回复

1万

帖子

25

TA的资源

版主

7
 
johnrey 发表于 2016-6-11 22:09
底层的module都是从micropython下载的么?还是已经在固件里面了?可以直接import

已经内置了很多库,在官方的文档中有初步的介绍。直接import就可以,就像在pyboard中一样。
 
 
 

回复

1297

帖子

2

TA的资源

纯净的硅(中级)

8
 
这货和nodemcu是不是就是一回事啊?除了串口界面芯片不同?感觉cpio少了点
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(高级)

9
 
不知道是否已经支持常见的物联网协议:

MQTT + TLS
HTTP/REST + TLS
CoAP + D-TLS

在MODEM芯片中运行Python,MCU负责硬件管理,两者RPC通讯,各施其职。挺好的。
 
 
 

回复

1万

帖子

25

TA的资源

版主

10
 
目前支持http、MQTT、json等,但是其它协议官方还没有,或许第三方有
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表