micropython websocket_通过websocket登录ESP32

故事背景

在使用http://micropython.org/webrepl/ 的时候,发现链接地址是:ws://192.168.4.1:8266/

只见过http 没有见过ws, 这是什么呢?

什么是Websocket?

WebSocket 是一种网络通信协议,很多高级功能都需要它。

WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。

它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

使用python 脚本来和websocket 通信:

既然能通过浏览器来何websocket server来通信,那应该可以使用python 的websocket client 来何它通信才对。

pip install websocket-client

折腾一番,成功了。

中途遇到一个坑,webREPL 每个字符都会回显,所以需要把回显的单个字符串在一起。通过while 循环来实现。

这有什么用呢?

可以通过PC 来无线访问单片机。读取传感器的值,比如温度。

from websocket import create_connection

class Dht22Reader():

def __init__(self,addr, ):

self.ws= create_connection(addr)

greet= self.ws.recv()

print(greet)

self.recv_buff= ''

def cmd(self,cmd='',prompt='>>>'):

self.recv_buff= ''

self.ws.send(cmd + '\r\n')

self.wait_for_prompt(prompt)

return self.recv_buff

def wait_for_prompt(self,prompt=''):

while prompt not in self.recv_buff:

self.recv_buff+= self.ws.recv()

print(self.recv_buff)

if __name__== '__main__':

dht= Dht22Reader(addr='ws://192.168.255.11:8266')

dht.cmd('password') # 请输入你自己的web REPL的密码

dht.cmd("print('hello')")

执行打印如下:

Password:

WebREPL connected

>>>

print('hello')

hello

>>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值