哈喽,各位玩机达人!今天给大家扒一扒 Quecpython 平台上一款超实用的以太网卡 ——w5500的用法。不管你是刚入门的小白,还是想进阶的大佬,这篇攻略都能让你轻松拿捏,少走 N 多弯路~

图片

不管是想让外部设备给模组供网还是模组给其他外设供网,都可以实现!!!只需配置简简单单的参数。官网链接:

https://developer.quectel.com/doc/quecpython/Application_guide/zh/network-comm/nic/ethernet/index.html

支持超多现有的热门模组:EC800K,EC800M,EC600U以及EC600M,EG915U等,还有超多其他热门系列模组支持,等待解锁。

w5500网卡,初始化:参数设置是关键

给 w5500 “开机” 前,这些参数得搞明白(就像给手机插卡设置网络一样):

1)mac 地址(第一个参数):6 字节的 “身份证”,比如b'\x12\x34\x56\x78\x9a\xbc'。划重点!同一局域网里不能有重复,不然设备会 “吵架” 哦~

2)IP 地址(第二个参数):不想手动设?留空就默认192.168.1.100,超省心!

3).第三个参数是以太网卡的子网掩码地址,若值为空字符串'',表示使用默认值 255.255.255.0 。

4).第四个参数是以太网卡的网关地址,若值为空字符串'',表示将 ip 地址的最后一位替换成 1 作为网关。

5).第五个参数是连接 W5500 的 SPI端口 ,默认值为 -1 ,表示使用上次配置的值,程序中默认配置为 SPI1 端口。

6).第六个参数是接W5500 SPI片选引脚,默认值为 -1 ,表示使用上次配置的值,程序中默认配置为 Pin.GPIO34

7).第七个参数是连接 W5500 的外部中断 GPIO管脚 ,默认值为 -1 ,表示上次配置的值,程序中默认配置为 Pin.GPIO19

8).第八个参数是连接 W5500 的重置 GPIO管脚 ,默认值为 -1 , 表示上次配置的值,程序中默认配置为 Pin.GPIO17

9). 0 是 “终端模式”(跟着大网混),1 是 “网关模式”(当大哥分网),按需选!

【1】想让网卡连接现有网络?试试这段代码:

import usocket
from machine import Pin
import utime
def tcp_client():
    # Create a socket object
    w5500 = ethernet.W5500(b'\x12\x34\x56\x78\x9a\xbc','192.168.1.1','','',-1,38,36,37,0)
    print("success")
    utime.sleep(2)
    while w5500.dhcp()==-1:
        utime.sleep(4)
    w5500.set_up()
    print("{}".format(w5500.ipconfig()))
     sock = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM, usocket.IPPROTO_TCP)
    print('socket object created.')
    print('start connect')
    # 建立连接
    sock.connect(('36.152.44.95', 80))
    print('start connect')
    data = 'GET / HTTP/1.1\r\n'
    data += 'Host: ' + '36.152.44.95' + ':' + str(80) + '\r\n'
    data += 'Connection: close\r\n'
    data += '\r\n'
    data = data.encode()
    # Send the data
    sock.send(data)
    print('<-- send data:')
    print(data)
    data1=sock.recv(1024)
    print('recv %s bytes:' % len(data1))
    print(data1.decode())
    sock.close()
if __name__ == '__main__':
    tcp_client() # Start the client

跑起来,模组就能链接网卡就能乖乖上网传数据啦~不用sim卡参与

图片

【2】w5500网关模式,想让网卡给其他设备(比如电脑)供网?切换到网关模式:

import ethernet
import utime
info = dataCall.getInfo(1, 0)
print(info)
w5500 = ethernet.W5500(b'\x12\x34\x56\x78\x9a\xbc','192.168.1.1','','',-1,38,36,37,1)
if info != -1:
    W5500.set_default_network_card(info[2][2])
print("{}".format(W5500.ipconfig()))
W5500.set_up()
utime.sleep(2)

网关模式是模组为外部设备进行供网操作,作为网关节点,因此还需要对pc端配置,使得pc端与模组端侧处于同一网段下。

Tips:电脑配置小技巧:

给电脑手动设个 IP(比如192.168.1.101),子网掩码255.255.255.0,默认网关填网卡的 IP(比如192.168.1.1),DNS 设8.8.8.8或114.114.114.114。搞定!电脑就能通过网卡用 4G 上网啦~

图片

本例子设置如上图所示,需要确认处理同一网段下,配置完成,模组为pc端供网,此时pc可以正常访问外网。

图片

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐