ESP32学习(4)——电脑远程控制LED灯

1.思路梳理

        首先需要让ESP32连接上WIFI

        然后创建udp socket

        接着接收udp数据

        最后解析数据,控制LED

2.代码实现

import network
from socket import *
from machine import Pin
p2=Pin(2,Pin.OUT)def do_connect():		#连接wifi wlan = network.WLAN(network.STA_IF)wlan.active(True)if not wlan.isconnected():print('connecting to network...')wlan.connect('lig', '152601')        //这里填你自己的wifi名称和密码while not wlan.isconnected():passprint('network config:', wlan.ifconfig())  //打印出网络相关信息,第一个信息很重要def creat_udp_socket():udp_socket=socket(AF_INET,SOCK_DGRAM)udp_socket.bind(("0.0.0.0",7788))   #绑定一个固定的端口return udp_socketdef main():do_connect()	#让esp32连接到wifiudp_socket=creat_udp_socket()	#创建udp socketwhile True:					#接收udp数据recv_data,send_info=udp_socket.recvfrom(1024) #最大收取1024个字节print("{}发送的数据,{}".format(send_info,recv_data))recv_data_str=recv_data.decode("utf-8")				#解码print("解码后的数据{}".format(recv_data_str))		#打印解码后的数据if recv_data_str=="light on":                  #解析数据 控制LED灯p2.value(1)elif recv_data_str=="light off":p2.value(0)if __name__=='__main__':main()

print('network config:', wlan.ifconfig())打印的信息为一个元组,里面有四个元素,第一个是ESP32的IP地址,这个比较重要,待会要填在网络调试助手中!

3.实操演示

运行程序后打开网络调试助手

可以看到试验现象:

成功使用PC控制LED灯! 

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

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

相关文章

论文阅读 - Non-Local Spatial Propagation Network for Depth Completion

文章目录 1 概述2 模型说明2.1 局部SPN2.2 非局部SPN2.3 结合置信度的亲和力学习2.3.1 传统正则化2.3.2 置信度引导的affinity正则化 3 效果3.1 NYU Depth V23.2 KITTI Depth Completion 参考资料 1 概述 本文提出了一种非局部的空间传播网络用于深度图补全,简称为…

【案例8】用户中心实现涉及内容和过程

图1 如图1是用盒子模型内容实现的,但是需要了解一些内容。 一.内容知识引入 1.内边距属性(padding) 为了调整盒子在网页中的显示位置,常常需要为元素设置内边距。内边距也被称为内填充,是指元素内容和边框之间的距离…

【医学图像分割 2024】BEFUnet

文章目录 【医学图像分割 2024】BEFUnet摘要1. 介绍2. 相关工作2.1 基于CNN的分割网络2.2 ViT2.3 用于医学图像分割的Transformer 3. 方法3.1 双支路编码器3.1.1 边缘编码器3.1.2 主体编码器 3.2 LCAF模块3.2.1 双级融合模块(DLF) 3.3 损失函数3.3.1 边缘监督损失3.3.2 整体边缘…

NLP_ChatGPT的RLHF实战

文章目录 介绍小结 介绍 ChatGPT 之所以成为ChatGPT,基于人类反馈的强化学习是其中重要的一环。而ChatGPT 的训练工程称得上是复杂而又神秘的,迄今为止,OpenAl也没有开源它的训练及调优的细节。 从 OpenAl已经公开的一部分信息推知&#xff…

最小生成树(Kruskal算法及相关例题)

1.Kruskal算法概念以及基本思路 (1)概念: 克鲁斯卡尔算法是求连通网的最小生成树的另一种方法。它的时间复杂度为O(ElogE)(E是图G的边的总数),适合于求边稀疏的网的最小生成树 。 其基本思想是&#xff…

Python 异常处理语句

Python 是一门广泛应用于软件开发和数据科学领域的高级编程语言。在编写程序的过程中,难以避免地会遇到各种错误和异常情况。Python 提供了丰富的异常处理机制,帮助开发者优雅地应对异常,使程序具有更好的稳定性和可靠性。本文将深入探讨 Pyt…

生成式AI相关知识记录

一、简述开发步骤 开发一个生成式AI模型通常涉及以下步骤: 1. **需求分析与目标设定**: - 确定应用领域和目标,例如文本生成、图像生成、音乐创作等。 - 分析应用场景的具体需求,包括输出质量、速度、多样性、可控性等因素…

SORA:OpenAI最新文本驱动视频生成大模型技术报告解读

Video generation models as world simulators:作为世界模拟器的视频生成模型 1、概览2、Turning visual data into patches:将视觉数据转换为补丁3、Video compression network:视频压缩网络4、Spacetime Latent Patches:时空潜在…

LEETCODE 164. 破解闯关密码

class Solution { public:string crackPassword(vector<int>& password) {vector<string> password_str;for(int i0;i<password.size();i){password_str.push_back(to_string(password[i]));}//希尔排序int gappassword.size()/2;while(gap>0){for(int i…

安卓TextView 拖动命名

需求&#xff1a;该布局文件使用线性布局来排列三个文本视图和一个按钮&#xff0c;分别用于显示两个动物名称以及占位文本视图。在占位文本视图中&#xff0c;我们为其设置了背景和居中显示样式&#xff0c;并用其作为接收拖放操作的目标 效果图&#xff1b; 实现代码 第一布…

NSSCTF Round#18 RE WP 完整复现

1. GenshinWishSimulator 恶搞原神抽卡模拟器 看到软件的界面&#xff0c;大致有三种思路&#xff1a; 修改石头数量一直抽&#xff0c;如果概率正常肯定能抽到&#xff08;但是估计设置的概率是0&#xff09;在源码里找flag的数据把抽卡概率改成100%直接抽出来 Unity逆向&am…

mpack简明教程

文章目录 摘要MessagePack简介MPACK的简单使用在定长的buffer存储不定长的数据读取截断的数据 摘要 本文先简单介绍MessagePack的基本概念。 然后&#xff0c;介绍一个MessagePack C API - MPack的通常使用。 接着尝试对MPack截断数据的读取。 注&#xff1a;本文完整代码见…