[Micropython][ ESP8266] TPYBoard V202之Network
实验目的
- 学习在PC机系统中网络(network)的使用方法。
- 学习TPYBoard V202链接网络的使用。
2.准备工做
所需元器件
- TPYBoard V202一块
- 数据线一条
- 电脑 1台(本次实验以win7为例)所需软件
ESPlorer(3)下载地址
:http://www.tpyboard.com/download/tool/169.htmlNetwork库的使用方法网络模块用于配置WiFi链接。一共两种模式,模式一,是tpyboardv202当sta节点,即链接路由器的节点。模式二,是tpyboardv202作为ap,充当路由。使用如下命令建立这些对象的实例:(1)当ESP8266链接到路由器时:
import network
wlan = network.WLAN(network.STA_IF) # 建立一个站(当ESP8266链接到路由器时)接口
wlan.active(True) # 激活接口
wlan.scan() # 扫描接入点
wlan.isconnected() # 检查站点是否链接到路由器
wlan.connect('essid', 'password') # 链接到路由器
wlan.config('mac') # 获取接口的MAC地址
wlan.ifconfig() # 获取接口的IP / netmask / gw / DNS地址
检查是否链接是否创建:wlan.isconnected()
检查接口是否活动:wlan.active()
检查接口的网络设置:wlan.ifconfig()
在这教你们TPYBoard v202上电自动链接本地网络:
from machine import Pin
import network
import time
def led_state():
p2 = Pin(2, Pin.OUT)
p2.value(0)
time.sleep_ms(500)
p2.value(1)
time.sleep_ms(500)
p2.value(0)
time.sleep_ms(500)
p2.value(1)
time.sleep_ms(500)
def do_connect():
sta_if = network.WLAN(network.STA_IF)
p2 = Pin(2, Pin.OUT)
sta_if.active(False)
if not sta_if.isconnected():
p2.low()
print('connecting to network...')
sta_if.active(True)
sta_if.connect('TurnipSmart', 'turnip2016')
while not sta_if.isconnected():
pass
if sta_if.isconnected():
print('connect success')
led_state()
print('network config:', sta_if.ifconfig())
do_connect()
只须要将上面代码写入boot.py,在开发板上电后,就看到蓝灯常亮(正在链接网络),而后蓝灯交替闪烁两次,控制台打印connect success,证实已经链接到本地网络。
(2)当其余设备链接到ESP8266时:
import network
ap = network.WLAN(network.AP_IF) #建立接入点接口
ap.active(True) # 激活接口
ap.config(essid='ESP-AP') # 设计接入点的ESSID
(3)向指定地址发送数据的方法:
def http_get(url):
_, _, host, path = url.split('/', 3)
addr = socket.getaddrinfo(host, 80)[0][-1]
s = socket.socket()
s.connect(addr)
s.send(bytes('GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n' % (path, host), 'utf8'))
while True:
data = s.recv(100)
if data:
print(str(data, 'utf8'), end='')
else:
break
s.close()
4.实验
(1)实验要求
当TPYBoard v202未链接到网络时,led亮起警示,当链接成功后,熄灭。(2)main.py程序代码
import network
from machine import Pin
sta_if = network.WLAN(network.STA_IF)
p2 = Pin(2, Pin.OUT)
#咱们在这里把接入点接口禁用,方便观看实验效果,非实验能够去掉
sta_if.active(False)
if not sta_if.isconnected():
p2.low()
print('connecting to network...')
sta_if.active(True)
sta_if.connect('TurnipSmart', 'turnip2016')
while not sta_if.isconnected():
pass
if sta_if.isconnected():
print('connect success')
p2.high()
print('network config:', sta_if.ifconfig())
(3)实验效果
当咱们复位,把程序写进去的时候会看到TPYBoard V202板载的蓝灯亮起来,当链接成功后蓝灯熄灭,控制台打印connect success。
欢迎关注本站公众号,获取更多信息