ESP32+micropython+作为WiFi热点与PC通信+TCP/IP接收并返回数据

ESP32+作为WiFi热点+接收并返回数据

ESP32代码

#  ESP32 作为AP
#  作为服务器 接收数据 并echo#  ESP32 作为AP  即wifi热点
import network
import utime# 配置ESP32为AP模式
ssid = 'ESP32_AP'
password = '12345678'
authmode = 4  # WPA2-PSK# 创建WLAN对象
wlan = network.WLAN(network.STA_IF)  # 默认情况下,STA_IF接口已创建,但我们将其禁用
wlan.active(False)  # 禁用STA接口
 
ap_if = network.WLAN(network.AP_IF)  # 创建AP接口
ap_if.active(True)
ap_if.config(essid=ssid, password=password, authmode=authmode)print('AP mode started with SSID:', ssid)
print('Password:', password)# 使用socket库,编写tcp/ip程序,作为服务器 
import socketdef handle_request(client_socket):"""处理对方发送过来的数据然后回送相对应的数据关闭连接时,return退出"""while True:try:# 接收数据,设置超时以避免阻塞client_socket.settimeout(5)  # 5秒超时# 5.1 接收数据recv_content = client_socket.recv(1024)# 5.2 检查是否收到了空字节串(表示连接已关闭)if not recv_content:print('Client disconnected without sending data.')client_socket.close()return# 5.3 解码数据decoded_content = recv_content.decode("utf-8")print('Received data:', decoded_content)# ...(处理数据的代码)#5.4 发送数据response = "$echo*"client_socket.send(response.encode("utf-8"))except OSError as e:# 捕获OSError异常,这通常是由于网络问题导致的print('Error receiving data:', e)# 关闭客户端连接
            client_socket.close()print('Client connection close.')return #continue#except UnicodeDecodeError as e:# 尽管使用了errors="ignore",但理论上仍然可以捕获这个异常(尽管不太可能)#    print('Error decoding data:', e)finally:print('Client connection recv-send once.')def socket_loop():# 1. 创建套接字server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 为了保证在tcp先断开的情况下,下一次依然能够使用指定的端口,需要设置server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)# 2. 绑定本地信息server_socket.bind(("192.168.4.1", 8081)) # 绑定到所有接口上的8081端口print("server_ip "+'192.168.4.1'+"port "+"8081")# 3. 变成监听套接字server_socket.listen(5)  # 开始监听连接print('Server started, waiting for connections...')while True:# 4. 等待客户端的链接client_socket, client_addr = server_socket.accept()print('Client connected from:', client_addr)# 5. 客户端的链接处理
        handle_request(client_socket)# 6. 关闭套接字
    tcp_server_socket.close() 
# 无限循环,持续检查连接的客户端
while True:# 获取已连接的客户端列表
    socket_loop()utime.sleep(1)  # 延时1秒

PC机上的调试软件: NetAssist5.0.8

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/846797.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESP32+micropython+作为WiFi热点+接收并返回数据

ESP32+作为WiFi热点+接收并返回数据# ESP32 作为AP # 作为服务器 接收数据 并echo# ESP32 作为AP 即wifi热点 import network import utime# 配置ESP32为AP模式 ssid = ESP32_AP password = 12345678 authmode = 4 # WPA2-PSK# 创建WLAN对象 wlan = network.WLAN(networ…

docker环境一个奇怪的问题,容器进程正常运行,但是docker ps -a却找不到容器,也找不到镜像

一: 问题: docker环境一个奇怪的问题,使用容器跑的进程正常提供服务,在服务器上也能看到对应的端口正在监听,但是docker ps -a却找不到容器,也找不到镜像. 查看我使用docker容器启动服务的端口 正在监听docker images 找不到对应的镜像docker ps -a 找不到任何容器二: 排查过…

coca phrase的collocates MI计算比较

declare|declared war declare war declared war

Prime1_解法一:cms渗透 内核漏洞提权

Prime1_解法一:cms渗透 & 内核漏洞提权目录Prime1_解法一:cms渗透 & 内核漏洞提权信息收集主机发现nmap扫描tcp扫描tcp详细扫描22,80端口udp扫描漏洞脚本扫描目录爆破dirsearchWeb渗透wfuzz常见的 wfuzz 过滤器:获得wordpress后台权限wordpress cms渗透WordPress…

Bitmap Indexing in DBMS Bitmap Index vs. B-tree Index low cardinality

1、 Similarly let us assume that the Job of the Employees is divided into 4 categories only i.e Manager, Analyst, Clerk, and Salesman. Such columns are called columns with low cardinality. 2、 SELECT * FROM Employee WHERE New_Emp = &qu…

windows AD域控密码过期企业微信推送告警

在写了windows AD域控密码过期邮件推送告警后,有网友问我能不能写一篇关于企业微信推送的文章 如果需要看邮件推送或者需要自定义脚本,可以参考我的文章 windows AD域控密码过期邮件通知迭代版本1.企业微信告警要求 1.1.企业微信推送需要具备的条件需要在企业微信中创建企业微…

H5-27 浮动

1、浮动的定义fo属性定义元素在哪个方向浮动,任何元素都可以浮动。值 描述left 元素向左浮动right 元素向右浮动 2、浮动的原理:①浮动以后使元素脱离了文档流②浮动只有左右浮动,没有上下浮动 3、元素向左浮动脱离文档流之后,元素相当于在页面上面增加一个浮层来放置内容。…

工业凹槽洗底问题 | 探索研讨

关于抛物线和圆的位置关系的问题探索和引申前情概要 在和同事研讨下述题目的解答时,碰到了一些困难,思路不太好把握,探索一番,做个记录。 案例分析 【2024高二周末训练题】一个工业凹槽的截面是一条抛物线的一部分,它的方程是 \(x^2=4y\),\(y\in[0,10]\),在凹槽内放入一…

大学微积分 AB (第一单元)极限和连续性

极限介绍 平方的表示方式 极限不存在的情况 根据图表估算极限值 无限制 图中的单侧极限

算法网关视频分析网关消防车通道占用识别助力消防通道畅通守护生命线

随着城市化进程的加快,消防安全成为城市管理中的重要一环。消防车通道作为火灾发生时救援车辆的主要通道,其畅通无阻至关重要。然而,在实际生活中,消防车通道被占用或堵塞的现象屡见不鲜,给火灾救援工作带来了极大的阻碍。一、消防车通道占用识别算法的重要性 消防车通道占…

11Labs 推出 Conversational AI,可定制交互式语音智能体;Recall.ai:视频会议智能体通用 API

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

Hive 数据倾斜问题定位排查及解决

多数介绍数据倾斜的文章都是以大篇幅的理论为主,并没有给出具体的数据倾斜案例。当工作中遇到了倾斜问题,这些理论很难直接应用,导致我们面对倾斜时还是不知所措。 今天我们不扯大篇理论,直接以例子来实践,排查是否出现了数据倾斜,具体是哪段代码导致的倾斜,怎么解决这段…