查看: 3251|回复: 0

[Micropython][ ESP8266] TPYBoard V202之Network

[复制链接]
  • TA的每日心情
    慵懒
    2018-1-6 09:01
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2018-6-1 10:52:50 | 显示全部楼层 |阅读模式
    分享到:
    实验目的

    • 学习在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连接到路由器时:
    1. import network
    2. wlan = network.WLAN(network.STA_IF)      # 创建一个站(当ESP8266连接到路由器时)接口
    3. wlan.active(True)                          # 激活接口
    4. wlan.scan()                                 # 扫描接入点
    5. wlan.isconnected()                         # 检查站点是否连接到路由器
    6. wlan.connect('essid', 'password')        # 连接到路由器
    7. wlan.config('mac')      # 获取接口的MAC地址
    8. wlan.ifconfig()         # 获取接口的IP / netmask / gw / DNS地址
    复制代码



    检查是否连接是否建立:wlan.isconnected()

    检查接口是否活动:wlan.active()

    检查接口的网络设置:wlan.ifconfig()

    在这教大家TPYBoard v202上电自动连接本地网络:
    1. from machine import Pin
    2. import network
    3. import time
    4. def led_state():
    5.         p2 = Pin(2, Pin.OUT)
    6.         p2.value(0)
    7.         time.sleep_ms(500)
    8.         p2.value(1)
    9.         time.sleep_ms(500)
    10.         p2.value(0)
    11.         time.sleep_ms(500)
    12. p2.value(1)
    13.         time.sleep_ms(500)
    14. def do_connect():
    15.         sta_if = network.WLAN(network.STA_IF)
    16.         p2 = Pin(2, Pin.OUT)
    17.         sta_if.active(False)
    18.         if not sta_if.isconnected():
    19.                 p2.low()
    20.                 print('connecting to network...')
    21.                 sta_if.active(True)
    22.                 sta_if.connect('TurnipSmart', 'turnip2016')
    23.                 while not sta_if.isconnected():
    24.                         pass
    25.         if sta_if.isconnected():
    26.                 print('connect success')
    27.                 led_state()
    28.                 print('network config:', sta_if.ifconfig())
    29. do_connect()
    复制代码

    只需要将上面代码写入boot.py,在开发板上电后,就看到蓝灯常亮(正在连接网络),然后蓝灯交替闪烁两次,控制台打印connect success,证明已经连接到本地网络。


    (2)当其他设备连接到ESP8266时:
    1. import network
    2. ap = network.WLAN(network.AP_IF) #创建接入点接口
    3. ap.active(True)         # 激活接口
    4. ap.config(essid='ESP-AP') # 设计接入点的ESSID
    复制代码



    (3)向指定地址发送数据的方法:
    1. def http_get(url):
    2.         _, _, host, path = url.split('/', 3)
    3.         addr = socket.getaddrinfo(host, 80)[0][-1]
    4.         s = socket.socket()
    5.         s.connect(addr)
    6.         s.send(bytes('GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n' % (path, host), 'utf8'))
    7.         while True:
    8.                 data = s.recv(100)
    9.                 if data:
    10.                         print(str(data, 'utf8'), end='')
    11.                 else:
    12.                         break
    13.         s.close()
    复制代码



    4.实验


    (1)实验要求

    当TPYBoard v202未连接到网络时,led亮起警示,当连接成功后,熄灭。(2)main.py程序代码

    1. import network
    2. from machine import Pin
    3. sta_if = network.WLAN(network.STA_IF)
    4. p2 = Pin(2, Pin.OUT)
    5. #我们在这里把接入点接口禁用,方便观看实验效果,非实验可以去掉
    6. sta_if.active(False)
    7. if not sta_if.isconnected():
    8.         p2.low()
    9.         print('connecting to network...')
    10.         sta_if.active(True)
    11.         sta_if.connect('TurnipSmart', 'turnip2016')
    12.         while not sta_if.isconnected():
    13.                 pass
    14. if sta_if.isconnected():
    15.         print('connect success')
    16.         p2.high()
    17.         print('network config:', sta_if.ifconfig())
    复制代码



    (3)实验效果


    当我们复位,把程序写进去的时候会看到TPYBoard V202板载的蓝灯亮起来,当连接成功后蓝灯熄灭,控制台打印connect success。


    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-24 07:10 , Processed in 0.112076 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.