esp8266,使用python分别建立客户端连接并实现数据互传(透传)

我没有使用网络调试助手直接连接esp8266,因为我的网络调试助手在连接的时候出现了错误,上网查还是什么虚拟机的事儿,还需要更改电脑的相关网络配置,太麻烦,本来学历一点儿python,正好使用python建立和esp8266的连接!

esp8266通过串口连接到电脑上,打开串口调试助手的这个界面:
在这里插入图片描述

……………………………………………………………………………………………………

1、把esp8266作为服务器端

需要向esp8266发送如下这些指令:

AT+CWMODE_CUR=1

设置模块为sta模式,即作为设备去连接别人的WiFi热点;

AT+CWJAP_DEF="vivo Y66","11111111"

连接我自己的手机WiFi,第一个是WiFi名字,第二个是WiFi密码;

AT+CIPMUX=1

设置成服务器可以多连模式;

AT+CIPSERVER=1,8266

设置端口的端口号,可以自己定义;

AT+CIPSTA_CUR?

查询当前8266的IP地址,得到第一个数据ip后面的就是TCP服务器的IP地址;

把命令全都输入到多条发送的栏框内,如图所示:
在这里插入图片描述

现在从头到尾一条条发送吧,下面是我得到的结果:
在这里插入图片描述

设置成功。

接下来就是写python的客户端,源代码如下:

#!/usr/bin/python3.7
# coding=utf-8
#客户端与上一个没有任何改变
from socket import *
import threading
address="192.168.43.10"   #8266的服务器的ip地址
port=8266           #8266的服务器的端口号
buffsize=1024        #接收数据的缓存大小
s=socket(AF_INET, SOCK_STREAM)
s.connect((address,port))

def fun():
    while True:
        recvdata=s.recv(buffsize).decode('utf-8')
        print("\n接收的数据是:"+recvdata)

t = threading.Thread(target=fun)  # t为新创建的线程,专门用来接收从服务器发送过来的数据
t.start()

while True:
    senddata=input('\n想要发送的数据:')
    if senddata=='exit':
        break
    s.send(senddata.encode())
    #recvdata=s.recv(buffsize).decode('utf-8')
    #print(recvdata)
s.close()

运行后在串口调试助手里出现:0,CONNECT 这句话就是连接成功了,0代表了设备的序号,表示0号设备已经连接。
在这里插入图片描述
在这里插入图片描述
接收成功!

在发送的时候需要设置数据透传:
在串口助手里先输入:

AT+CIPSEND=0,6

表示要发送数据,等于号后面第一个值(这里是0)是客户端的序号,第二个值是你要发送的字母或者数字的个数,比如这里我想发送“hahaha”,所以就是6;

hahaha

当出现 ok 和 > , 就可以发送hahaha了。

输入完成结果:
在这里插入图片描述

在这里插入图片描述
发送成功!
………………………………………………………………………………………………

233333333

  • 10
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值