├── LED └── main.py ├── DS18B20 └── main.py ├── SG90 └── sg90.py ├── DHT11 └── main.py ├── README.md ├── OLED ├── main.py └── ssd1306.py ├── siri+led改 ├── web.py └── main.py ├── server.py ├── DHT11+OLED ├── main.py └── ssd1306.py ├── siri+led ├── boot.py ├── index.html └── siri.py ├── DS18B20+OLED ├── main.py └── ssd1306.py └── weather ├── main - 副本.py └── main.py /LED/main.py: -------------------------------------------------------------------------------- 1 | from machine import Pin 2 | import time 3 | 4 | led = Pin(5,Pin.OUT) 5 | 6 | while True: 7 | led.on() 8 | time.sleep_ms(200) 9 | led.off() 10 | time.sleep_ms(200) 11 | 12 | 13 | -------------------------------------------------------------------------------- /DS18B20/main.py: -------------------------------------------------------------------------------- 1 | from machine import Pin 2 | import onewire 3 | import ds18x20 4 | import time 5 | 6 | ow = onewire.OneWire(Pin(2)) 7 | ds=ds18x20.DS18X20(ow) 8 | roms=ds.scan() 9 | while True: 10 | ds.convert_temp() 11 | for rom in roms: 12 | print(ds.read_temp(rom)) 13 | time.sleep(1) 14 | -------------------------------------------------------------------------------- /SG90/sg90.py: -------------------------------------------------------------------------------- 1 | import machine 2 | import time 3 | 4 | #设置PWM 引脚G5,频率50Hz 5 | servo = machine.PWM(machine.Pin(5), freq=50) 6 | servo.duty(75) #舵机角度的设定 25 0度 7 | #125 180度 8 | time.sleep_ms(500) 9 | servo.duty(40) 10 | time.sleep_ms(500) 11 | servo.duty(100) 12 | time.sleep_ms(500) 13 | servo.duty(75) 14 | time.sleep_ms(500) 15 | -------------------------------------------------------------------------------- /DHT11/main.py: -------------------------------------------------------------------------------- 1 | from machine import Pin 2 | import dht 3 | import time 4 | 5 | dht11 = dht.DHT11(Pin(5)) 6 | 7 | while True: 8 | try: 9 | dht11.measure() 10 | print("dht11 humidity:", dht11.humidity()) 11 | print("dht11 temperature:", dht11.temperature()) 12 | time.sleep(0.5) 13 | except: 14 | continue 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ESP8266-MicroPython 2 | ## 使用MicroPython开发ESP8266 3 |  4 | 5 | ## 入门推荐 6 | 1. [教程 in Github](https://github.com/lvidarte/esp8266/wiki) 7 | 2. [ESP8266固件](http://micropython.org/download#esp8266) 8 | 3. [IDE](http://docs.dfrobot.com.cn/upycraft/) 9 | 4. [快速开发指南](https://micropython.nxez.com/2019/01/04/esp8266-quick-development-guide.html) 10 | 11 | -------------------------------------------------------------------------------- /OLED/main.py: -------------------------------------------------------------------------------- 1 | from machine import Pin, I2C 2 | from ssd1306 import SSD1306_I2C 3 | 4 | i2c = I2C(scl=Pin(5), sda=Pin(4)) 5 | oled = SSD1306_I2C(128, 64, i2c) 6 | 7 | oled.fill(1) 8 | oled.show() 9 | oled.fill(0) 10 | oled.show() 11 | 12 | oled.pixel(0, 0, 1) 13 | oled.show() 14 | oled.pixel(127, 63, 1) 15 | oled.show() 16 | 17 | oled.text('Hello', 0, 0) 18 | oled.text('World', 0, 10) 19 | oled.show() 20 | 21 | oled.invert(True) 22 | oled.invert(False) 23 | -------------------------------------------------------------------------------- /siri+led改/web.py: -------------------------------------------------------------------------------- 1 | def do_connect(): 2 | import network 3 | sta_if = network.WLAN(network.STA_IF) 4 | ap_if = network.WLAN(network.AP_IF) 5 | if ap_if.active(): 6 | ap_if.active(False) 7 | if not sta_if.isconnected(): 8 | print('connecting to network...') 9 | sta_if.active(True) 10 | sta_if.connect('wifi名', '密码') # wifi的SSID和密码 11 | while not sta_if.isconnected(): 12 | pass 13 | print('network config:', sta_if.ifconfig()) 14 | return sta_if 15 | -------------------------------------------------------------------------------- /server.py: -------------------------------------------------------------------------------- 1 | import socket 2 | byte = 1024 3 | # 两个端口要保持一致 4 | port = 3000 5 | host = "" 6 | addr = (host, port) 7 | 8 | # 创建套接字 9 | sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 10 | # 绑定 11 | sock.bind(addr) 12 | print("waiting to receive messages...") 13 | 14 | while True: 15 | (data, addr) = sock.recvfrom(byte) 16 | text = data.decode('utf-8') 17 | if text == 'exit': 18 | break 19 | else: 20 | print('From{} says {!r}'.format(addr, text)) 21 | 22 | # 关闭套接字 23 | sock.close() 24 | -------------------------------------------------------------------------------- /DHT11+OLED/main.py: -------------------------------------------------------------------------------- 1 | from machine import Pin, I2C 2 | from ssd1306 import SSD1306_I2C 3 | from dht import DHT11 4 | i2c = I2C(scl=Pin(14), sda=Pin(2)) 5 | oled = SSD1306_I2C(128, 64, i2c) 6 | sensor = DHT11(Pin(5)) 7 | while True: 8 | try: 9 | sensor.measure() 10 | t = sensor.temperature() 11 | h = sensor.humidity() 12 | oled.fill(0) 13 | oled.text("T:{}".format(t), 0, 0) 14 | oled.text("H:{}".format(h), 0, 20) 15 | oled.show() 16 | except: 17 | continue 18 | -------------------------------------------------------------------------------- /siri+led/boot.py: -------------------------------------------------------------------------------- 1 | # This file is executed on every boot (including wake-boot from deepsleep) 2 | 3 | #import esp 4 | 5 | #esp.osdebug(None) 6 | 7 | import uos, machine 8 | 9 | #uos.dupterm(None, 1) # disable REPL on UART(0) 10 | 11 | import gc 12 | 13 | #import webrepl 14 | 15 | #webrepl.start() 16 | 17 | gc.collect() 18 | 19 | 20 | def do_connect(): 21 | import network 22 | sta_if = network.WLAN(network.STA_IF) 23 | ap_if = network.WLAN(network.AP_IF) 24 | if ap_if.active(): 25 | ap_if.active(False) 26 | if not sta_if.isconnected(): 27 | print('connecting to network...') 28 | sta_if.active(True) 29 | sta_if.connect('PandoraBox-2.4G', '104104104') #wifi的SSID和密码 30 | while not sta_if.isconnected(): 31 | pass 32 | print('network config:', sta_if.ifconfig()) 33 | return sta_if 34 | -------------------------------------------------------------------------------- /DS18B20+OLED/main.py: -------------------------------------------------------------------------------- 1 | import time 2 | from machine import Pin, I2C 3 | from ssd1306 import SSD1306_I2C 4 | import onewire 5 | import ds18x20 6 | 7 | i2c = I2C(scl=Pin(5), sda=Pin(4)) 8 | oled = SSD1306_I2C(128, 64, i2c) 9 | ow = onewire.OneWire(Pin(14)) 10 | ds = ds18x20.DS18X20(ow) 11 | roms = ds.scan() 12 | 13 | oled.fill(0) 14 | oled.show() 15 | 16 | oled.pixel(0, 0, 1) 17 | oled.show() 18 | oled.pixel(127, 63, 1) 19 | oled.show() 20 | 21 | oled.text('Hello', 0, 0) 22 | oled.text('World', 50, 0) 23 | oled.text('kcqnly',80,50) 24 | oled.show() 25 | time.sleep(2) 26 | oled.fill(1) 27 | oled.show() 28 | while True: 29 | ds.convert_temp() 30 | for rom in roms: 31 | t = ds.read_temp(rom) 32 | time.sleep_ms(50) 33 | oled.fill(0) 34 | oled.text("Temperature:" ,0, 0) 35 | oled.text("%.2f" % t, 80, 20) 36 | oled.show() 37 | -------------------------------------------------------------------------------- /weather/main - 副本.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import re 3 | 4 | url = 'http://i.tianqi.com/index.php?c=code&a=getcode&id=55&py=hongshan' 5 | 6 | r = requests.get(url) # 发起HTTP的GET请求 7 | content = r.text 8 | 9 | print('农历') 10 | nongli = re.search(r'
(.*?)
', 30 | content) 31 | zhushuia = zhushui.group(1) 32 | zhushuib = zhushui.group(2) 33 | print(zhushuia, zhushuib) 34 | -------------------------------------------------------------------------------- /siri+led改/main.py: -------------------------------------------------------------------------------- 1 | import socket 2 | from machine import Pin 3 | from re import search 4 | from web import do_connect 5 | 6 | html = """ 7 | 8 | 9 | 10 | 11 |Hello World!!!
15 | 16 | 17 | """ 18 | 19 | wlan = do_connect() 20 | ip = wlan.ifconfig()[0] 21 | port = 80 22 | led = Pin(2, Pin.OUT) 23 | webserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建套接字 24 | webserver.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 设置给定套接字选项的值 25 | webserver.bind((ip, port)) # 绑定IP地址和端口号 26 | webserver.listen(5) # 监听套接字 27 | print("服务器地址:{}:{}".format(ip, port)) 28 | 29 | while True: 30 | conn, addr = webserver.accept() 31 | request = conn.recv(1024) 32 | if len(request) > 0: 33 | request = request.decode() 34 | result = search("(.*?) (.*?) HTTP/1.1", request) 35 | if result: 36 | method = result.group(1) 37 | url = result.group(2) 38 | print(url) 39 | conn.send("HTTP/1.1 200 OK\r\n") 40 | conn.send("Server: Esp8266\r\n") 41 | conn.send("Content-Type: text/html;charset=UTF-8\r\n") 42 | conn.send("Connection: close\r\n") 43 | conn.send("\r\n") 44 | if url == "/led1": 45 | led.value(1) 46 | conn.send("灯灭") 47 | elif url == "/led2": 48 | led.value(0) 49 | conn.send("灯亮") 50 | else: 51 | conn.sendall(html) 52 | conn.send("\r\n") # 发送结束 53 | else: 54 | print("not found url") 55 | else: 56 | print("no request") 57 | conn.close() 58 | -------------------------------------------------------------------------------- /weather/main.py: -------------------------------------------------------------------------------- 1 | import time 2 | from machine import Pin 3 | 4 | 5 | MY_SSID = "PandoraBox-2.4G" 6 | MY_PASSWORD = "104104104" 7 | 8 | def do_connect(essid,password): 9 | import network 10 | wlan = network.WLAN(network.STA_IF) 11 | wlan.active(True) 12 | if not wlan.isconnected(): 13 | print('connecting to network...') 14 | wlan.connect(essid,password) 15 | time.sleep(10) # 连接有延时,睡眠10秒 16 | print('network config:', wlan.ifconfig()) 17 | return wlan.isconnected() 18 | 19 | def dis_connect(): 20 | import network 21 | wlan = network.WLAN(network.STA_IF) 22 | wlan.active(False) 23 | print('network config:', wlan.ifconfig()) 24 | 25 | do_connect(MY_SSID,MY_PASSWORD) 26 | 27 | import urequests 28 | 29 | url='http://i.tianqi.com/index.php?c=code&a=getcode&id=55&py=hongshan' 30 | 31 | r = urequests.get(url) # 发起HTTP的GET请求 32 | content = r.text 33 | 34 | 35 | import ure as re 36 | print('农历') 37 | nongli = re.search(r'(.*?)
', content) 56 | zhushuia = zhushui.group(1) 57 | zhushuib = zhushui.group(2) 58 | print (zhushuia,zhushuib) 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /siri+led/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |