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亮灭相关推荐

  1. 基于STC15W4K32S4单片机仿真《外部中断INT0控制LED亮灭》

    1. 编 程 软 件:keil5版本. 2.仿 真 软 件:Proteus8.12 3.单片机选型:STC15W4K32S4 4.学 习 目 标:   1.学习外部中断INT0 5.程 序 文 件 : ...

  2. 一个基于 React 开发的PC端音乐App

    ?一个基于 React 开发的PC端音乐App. 同时支持 Mac 与 Windows 系统.下载地址 项目使用 electron 作为外壳,webpack 作为打包工具,核心技术包括 React + ...

  3. android 自动备份到局域网,Android和PC端通过局域网文件同步

    本文为大家分享了Android和PC端通过局域网文件同步的具体代码,供大家参考,具体内容如下 public class FileOptions { public String name; public ...

  4. 基于SpringBoot+VUE(PC端+小程序端)的智能在线考试系统毕业设计

    作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路  关注作者有好处 ...

  5. 基于手机微信或PC端的西门子PLC远程监控和数据采集解决方案

    一.远程监控西门子PLC的意义: 随着工业物联网和丰富多样技术的融合发展,通过手机微信.小程序或者PC电脑终端对西门子PLC进行远程预警监控的技术已经十分成熟,在智能工厂.设备制造商等领域应用广泛. ...

  6. pc css框架,PC端框架—semantic ui

    顾名思义 这是一款语义化的UI框架,代码可读性与可理解性很强,界面简洁美观,与bootstrap风格接近,基于jquery,适用响应式布局,提供一些基本模板,兼容Firefox.Chrome.safa ...

  7. python连接pc端蓝牙适配器_PC蓝牙通信C#代码实现

    本文实例为大家分享了C#实现PC蓝牙通信代码,供大家参考,具体内容如下 添加引用InTheHand.Net.Personal.dll 首先创建一个蓝牙类 class LanYa { public st ...

  8. python开发PC端桌面应用

    项目场景: 很多情况下需要用很短的时间开发一款在windows上离线运行的小工具,以便解决一些现实问题.比如公司近期有个紧急项目,需要根据算法需求人工标注海量的地址信息,开发周期和工具易用性上都是有些 ...

  9. 【Python】PC端听书工具

    一.准备 1.首先安装python3+,这里不多展开,具体操作百度.(比如:安装Python - 廖雪峰的官方网站) 2.安装pyttsx3.这是一个调用操作系统语音包的库,可离线使用. pip3 i ...

最新文章

  1. OpenvSwitch代码分析之bridge和port
  2. java线程池的使用学习
  3. OpenGL——使用Bresenham算法绘制圆
  4. 【.NET Core 跨平台 GUI 开发】第三篇:Gtk# 表格布局与事件处理
  5. 如何使用Python的Flask和Google App Engine构建网络应用
  6. 漫步微积分三十六——曲面的面积
  7. C++之继承探究(四):继承的使用
  8. 2021 年前端学习路线总结
  9. 计算机软件保护问题研究,计算机软件专利保护问题-研究.pdf
  10. Android TextureView简易教程
  11. 在IIS7运行ASP程序
  12. 一款好用的国产软件源代码缺陷分析平台 — CodeSense
  13. 云计算安全知识CCSK V4 知多少
  14. 网络邻居没有查看工作组计算机,为什么网上邻居内看不到计算机工作组
  15. Alfred神器使用手册
  16. 一些货币政策及金融术语简介
  17. mysql in数量限制_SQL语句中in的个数限制为1000
  18. 如何让div靠右_div对齐 CSS实现DIV居中对齐 div居右对齐 div居左对齐
  19. 大一上c语言基础知识题
  20. idhttp的socket error # 10054 错误的处理办法

热门文章

  1. 教你如何辨别苹果真假配件
  2. Unity纹理优化:缩小包体
  3. 渗透测试中的LLMNR/NBT-NS欺骗攻击
  4. 开箱即用!Linux 内核首个原生支持,让你的容器体验飞起来!| 龙蜥技术
  5. 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围
  6. windows bat脚本注册成服务
  7. 数据存储——存储视频
  8. 模拟电路学习之三极管PROTUES
  9. 【超级无敌详细的韩顺平java笔记】从入门到精通---五种运算符
  10. 一个普通男人眼中的不错的男人