1937|0

55

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

[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连接到路由器时:
  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。



点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表