[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。
歡迎關注本站公眾號,獲取更多信息