實驗目的
2.準備工作
- 學習在PC機系統中網絡(network)的使用方法。
- 學習TPYBoard V202連接網絡的使用。
所需元器件
- 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。