esp8266,使⽤python分别建⽴客户端连接并实现数据互传(透传)
我没有使⽤⽹络调试助⼿直接连接esp8266,因为我的⽹络调试助⼿在连接的时候出现了错误,上⽹查还是什么虚拟机的事⼉,还需要更改电脑的相关⽹络配置,太⿇烦,本来学历⼀点⼉python,正好使⽤python建⽴和esp8266的连接!
esp8266通过串⼝连接到电脑上,打开串⼝调试助⼿的这个界⾯:
……………………………………………………………………………………………………
python虚拟机
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)
def fun():
while True:
v(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.de())
#v(buffsize).decode('utf-8')
#print(recvdata)
s.close()
运⾏后在串⼝调试助⼿⾥出现:0,CONNECT 这句话就是连接成功了,0代表了设备的序号,表⽰0号设备已经连接。
接收成功!
在发送的时候需要设置数据透传:
在串⼝助⼿⾥先输⼊:
AT+CIPSEND=0,6
表⽰要发送数据,等于号后⾯第⼀个值(这⾥是0)是客户端的序号,第⼆个值是你要发送的字母或者数字的个数,⽐如这⾥我想发送“hahaha”,所以就是6;
hahaha
当出现 ok 和 > , 就可以发送hahaha了。
输⼊完成结果:
发送成功!
………………………………………………………………………………………………
233333333

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。