ESP32E基于Thonny——python框架,PC端进行局域网控制led亮灭
ESP32基于Thonny——python框架,PC端进行局域网控制led亮灭
用中文讲,该如何实现这个功能呢?
1:成功连接wifi
2:能循环正常接收数据
3:判断接收的数据,使led亮灭
就3步!那如何用代码实现呢?
第一步:成功连接wifi
调用官方联网模块:http://docs.micropython.org/en/latest/esp32/quickref.html#networking
def do_connect(): #自动连接WiFi函数#启动wifi模块wlan = network.WLAN(network.STA_IF)wlan.active(True)#扫描是否连接wifiif not wlan.isconnected():print('connecting to network...')wlan.connect('wifi名称', 'wifi密码')while not wlan.isconnected():print("正在连接网络……")time.sleep(1)#已连接wifi,并打印print('已连接WiFi', wlan.ifconfig())
第二步:能正常接收数据
我的数据通信使用的是UDP通信
故:先创建一个UDP套接字并固定端口,然后将套接字返回——》主函数接收套接字使用——》接收数据——》打印接收的数据——》将接收的数据解码并打印——》完成接收;
def create_udp_socket():#创建套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)#绑定一个固定的端口(socket:插座,端口;bind:捆绑,绑定)udp_socket.bind(("0.0.0.0",7788))return udp_socketdef main(): #主函数#wifi自动连接函数do_connect()led = machine.Pin(2, machine.Pin.OUT)udp_socket = create_udp_socket()#死循环while True:#等待接收数据recv_data,sender_info = udp_socket.recvfrom(1024)print("{}发送的数据:{}".format(sender_info, recv_data))recv_data_str = recv_data.decode("utf-8")print("解码数据为: {}".format(recv_data_str))
第三步:正确判断接收的数据并作出正确反应
调用IO口控制函数——》将led相应IO口重新定义——》进行判断——》为on:led就置1;
为off:led置0
安装网络调试助手进行PC端led的控制:Thonny, Python IDE for beginners
打开调试助手,将协议类型设置成UDP与字符编译器设置成UTF—8,并将电脑与路由器防火墙关闭,然后将发送目标IP地址与端口号正确填写,编辑好数据准备发送:on off
即可进行led亮灭控制!
完成!!!
完成!!!
完成!!!
完整程序:如下
import network #wifi连接头文件
import time #延时函数
import machine #IO口直接调用模块
import socket #套接字头文件def do_connect(): #自动连接WiFi函数#启动wifi模块wlan = network.WLAN(network.STA_IF)wlan.active(True)#扫描是否连接wifiif not wlan.isconnected():print('connecting to network...')wlan.connect('wifi名称', '密码')while not wlan.isconnected():print("正在连接网络……")time.sleep(1)#已连接wifi,并打印print('已连接WiFi', wlan.ifconfig())def create_udp_socket():#创建套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)#绑定一个固定的端口(socket:插座,端口;bind:捆绑,绑定)udp_socket.bind(("0.0.0.0",7788))return udp_socketdef main(): #主函数#wifi自动连接函数do_connect()#将D2IO口重新定义为ledled = machine.Pin(2, machine.Pin.OUT)udp_socket = create_udp_socket()#死循环while True:#循环等待接收数据recv_data,sender_info = udp_socket.recvfrom(1024)print("{}发送的数据:{}".format(sender_info, recv_data))recv_data_str = recv_data.decode("utf-8")print("解码数据为: {}".format(recv_data_str))#循环判断接收的数据,并作出反应if recv_data_str == "on":led.value(1)elif recv_data_str == "off":led.value(0)if __name__ == "__main__":main()
ESP32E基于Thonny——python框架,PC端进行局域网控制led亮灭相关推荐
- 基于STC15W4K32S4单片机仿真《外部中断INT0控制LED亮灭》
1. 编 程 软 件:keil5版本. 2.仿 真 软 件:Proteus8.12 3.单片机选型:STC15W4K32S4 4.学 习 目 标: 1.学习外部中断INT0 5.程 序 文 件 : ...
- 一个基于 React 开发的PC端音乐App
?一个基于 React 开发的PC端音乐App. 同时支持 Mac 与 Windows 系统.下载地址 项目使用 electron 作为外壳,webpack 作为打包工具,核心技术包括 React + ...
- android 自动备份到局域网,Android和PC端通过局域网文件同步
本文为大家分享了Android和PC端通过局域网文件同步的具体代码,供大家参考,具体内容如下 public class FileOptions { public String name; public ...
- 基于SpringBoot+VUE(PC端+小程序端)的智能在线考试系统毕业设计
作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路 关注作者有好处 ...
- 基于手机微信或PC端的西门子PLC远程监控和数据采集解决方案
一.远程监控西门子PLC的意义: 随着工业物联网和丰富多样技术的融合发展,通过手机微信.小程序或者PC电脑终端对西门子PLC进行远程预警监控的技术已经十分成熟,在智能工厂.设备制造商等领域应用广泛. ...
- pc css框架,PC端框架—semantic ui
顾名思义 这是一款语义化的UI框架,代码可读性与可理解性很强,界面简洁美观,与bootstrap风格接近,基于jquery,适用响应式布局,提供一些基本模板,兼容Firefox.Chrome.safa ...
- python连接pc端蓝牙适配器_PC蓝牙通信C#代码实现
本文实例为大家分享了C#实现PC蓝牙通信代码,供大家参考,具体内容如下 添加引用InTheHand.Net.Personal.dll 首先创建一个蓝牙类 class LanYa { public st ...
- python开发PC端桌面应用
项目场景: 很多情况下需要用很短的时间开发一款在windows上离线运行的小工具,以便解决一些现实问题.比如公司近期有个紧急项目,需要根据算法需求人工标注海量的地址信息,开发周期和工具易用性上都是有些 ...
- 【Python】PC端听书工具
一.准备 1.首先安装python3+,这里不多展开,具体操作百度.(比如:安装Python - 廖雪峰的官方网站) 2.安装pyttsx3.这是一个调用操作系统语音包的库,可离线使用. pip3 i ...
最新文章
- OpenvSwitch代码分析之bridge和port
- java线程池的使用学习
- OpenGL——使用Bresenham算法绘制圆
- 【.NET Core 跨平台 GUI 开发】第三篇:Gtk# 表格布局与事件处理
- 如何使用Python的Flask和Google App Engine构建网络应用
- 漫步微积分三十六——曲面的面积
- C++之继承探究(四):继承的使用
- 2021 年前端学习路线总结
- 计算机软件保护问题研究,计算机软件专利保护问题-研究.pdf
- Android TextureView简易教程
- 在IIS7运行ASP程序
- 一款好用的国产软件源代码缺陷分析平台 — CodeSense
- 云计算安全知识CCSK V4 知多少
- 网络邻居没有查看工作组计算机,为什么网上邻居内看不到计算机工作组
- Alfred神器使用手册
- 一些货币政策及金融术语简介
- mysql in数量限制_SQL语句中in的个数限制为1000
- 如何让div靠右_div对齐 CSS实现DIV居中对齐 div居右对齐 div居左对齐
- 大一上c语言基础知识题
- idhttp的socket error # 10054 错误的处理办法