- 博客(43)
- 收藏
- 关注
原创 裸机开发方式与FreeRTOS的主要区别
摘要(150字): 裸机开发与FreeRTOS的核心区别体现在任务调度、实时性、资源管理和系统开销等方面。裸机通过定时器中断和标志位实现轮询调度,执行效率高但复杂度随功能增加;FreeRTOS提供真正的多任务管理,支持优先级抢占和同步机制,适合复杂应用但存在系统开销。裸机适合简单、资源受限场景,FreeRTOS则提升复杂系统的可维护性。文末提供的ESP32裸机调度代码展示了定时器中断+函数指针的典型实现,包含任务结构体、1ms时基调度器和三个示例任务(LED控制、串口打印和模拟AD采样)
2025-08-25 16:16:04
833
原创 ESP32将DHT11温湿度传感器采集的数据上传到XAMPP的MySQL数据库
该文摘要介绍了如何通过ESP32将DHT11温湿度传感器采集的数据上传至XAMPP的MySQL数据库。首先配置XAMPP环境,创建esp32_data数据库和sensor_data表。然后编写PHP脚本(save_data_improved.php)处理HTTP POST请求,验证数据后存入MySQL。最后提供Arduino代码示例,说明DHT11传感器与ESP32的硬件连接方式。整个过程实现了温湿度数据的采集、传输和存储功能,可通过phpMyAdmin查看数据库中的传感器数据。
2025-08-11 18:05:05
950
原创 智能人体感应模块HC-SR501应用指南---使用esp32
HC-SR501是一款基于热释电红外感应的人体检测模块,广泛应用于安防和智能家居领域。该模块通过检测人体红外辐射变化实现自动控制,具有灵敏度高、低功耗(静态电流<50μA)、可调节感应距离(3-12米)和延时时间(5秒-5分钟)等特点。支持不可重复触发(L模式)和可重复触发(H模式)两种工作模式。使用时需注意安装方向与人体活动方向平行,避免强光干扰。示例代码展示了如何通过ESP32的GPIO23引脚连接HC-SR501,当检测到人体时控制LED灯亮起3秒。模块初始化约需1分钟,期间可能有短暂干扰信号。
2025-07-17 17:23:56
1114
原创 ESP32轻松实现UDP无线通信
摘要:ESP32支持高效的UDP通信协议,适用于实时性要求高但对可靠性要求不高的场景。本文详细介绍了ESP32实现UDP通信的步骤,包括Wi-Fi连接配置、UDP服务器创建以及数据收发处理。通过示例代码演示了如何将ESP32设为UDP服务器,接收客户端数据并返回响应,同时提供了网络调试助手的使用建议和不同数据格式的说明(如HEX、ASCII、UTF-8等)。该方案适用于物联网设备、实时通信等低功耗应用场景。
2025-07-15 10:25:10
1072
原创 ESP32实现MQTT
本文介绍了一个基于MQTT协议的ESP32灯带控制系统,可实现12条WS2812B灯带的远程三色切换。系统采用主从架构,控制端通过MQTT发布指令,12个ESP32客户端订阅同一主题接收指令。 核心实现方案: 为每个ESP32分配唯一ID(1-12),控制端发送包含目标ID和动作指令的2字节消息(如01 01表示ID1执行绿灯) 各ESP32通过PubSubClient库连接MQTT Broker(如EMQX),订阅"esp32/control"主题 收到消息后校验ID匹配性,执行相应R
2025-07-03 20:34:32
1416
原创 pip的命令你知道多少?
本文整理了Python包管理工具pip的实用命令大全,分为基础、中级和高级三类。基础命令涵盖安装、升级、卸载、查看包信息等核心操作;中级命令包括批量管理、环境迁移等进阶功能;高级命令涉及缓存清理、镜像源设置、离线安装等专业技巧。文中还提供了国内常用镜像源地址和生成依赖文件的实用方法,帮助开发者高效管理Python项目环境。掌握这些命令可显著提升开发效率,确保项目依赖的稳定性。
2025-06-25 23:07:08
1136
原创 Java四种变量类型
在方法、构造函数或代码块内部声明的变量,生命周期仅限于该方法、构造函数或代码块的执行期间。方法或构造函数定义时声明的变量,用于接收调用者传入的数据。用于临时存储方法执行过程中的数据,支持方法内的逻辑处理。描述对象的属性(如学生的姓名、年龄),保存对象的状态。修饰的变量,属于对象实例,每个对象拥有独立副本。修饰的变量,属于类本身,所有对象共享同一份数据。存储对象的个性化数据,支持面向对象的状态管理。实现方法间的数据传递,增强方法灵活性。节省内存,提供跨对象共享的数据存储。提供方法执行所需的临时数据存储。
2025-03-15 08:00:00
896
原创 Java的继承、多态、接口、封装、抽象之间的区别和联系你真正熟悉吗?
通过接口定义策略,继承复用代码,封装隐藏细节,多态动态切换策略。:抽象类提供通用逻辑,接口定义额外能力,继承复用代码。的区别与联系的总结,结合代码案例和注意事项说明。以下是面向对象编程中。
2025-03-12 10:30:00
801
原创 Java修饰符一篇就够
访问修饰符用于控制类、方法、变量的可见性范围,确保封装性和安全性。非访问修饰符用于添加额外功能或限制行为,不控制可见性。:保护关键方法或字段,限制非子类访问。:提供全局访问权限,确保跨包调用。:同一包内或不同包的子类可访问。:同一包内可见,无需显式修饰符。:定义抽象类或方法,需子类实现。:保证变量可见性,禁止指令重排。:类级别成员,与对象实例无关。:多线程共享变量安全访问。:不可修改、继承或重写。:节省内存,共享数据。:规范行为,延迟实现。:防止多线程数据竞争。:限制模块内部共享。:彻底隐藏实现细节。
2025-03-09 14:47:51
1308
原创 Java中的基础:类
是什么?类是面向对象编程(OOP)的核心概念,是用于创建对象的模板。它定义了对象的属性(字段)和行为(方法),是封装数据与操作的逻辑单元。为什么需要类?适用场景如何定义类?注意事项代码注解属性定义:使用 封装,外部只能通过公共方法访问。构造方法:初始化对象时校验年龄合法性。方法定义:定义对象的行为逻辑。实例化对象: 关键字调用构造方法创建对象。场景2:静态成员与工具类注释:场景1:内部类(封装关联逻辑)注释:场景2:单例模式(限制实例化次数)
2025-03-09 06:30:00
1960
原创 4\bash shell 命令
U userlist 显示属主的用户 ID 在 userlist 列表中的进程。-g grplist 显示会话或组 ID 在 grplist 列表中的进程。-u userlist 显示有效用户 ID 在 userlist 列表中的进程。-p pidlist 显示 PID 在 pidlist 列表中的进程。-G grplist 显示组 ID 在 grplist 列表中的进程。-C cmdlist 显示包含在 cmdlist 列表中的进程。
2024-08-21 18:12:52
433
原创 NumPy基础
NumPy(Numerical Python的简称)是Python最重要的基础包。⼤多数提供科学计算的包都是⽤作为构建基础。NumPy的部分功能如下:1、ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的。2、用于对进行快速运算的标准数学函数(无需编写循环)。3、读写磁盘数据、操作内存映射文件3、线性代数、生成随机数、傅里叶变换。4、用于集成由C、C++、Fortran等语言编写的代码的A C API。
2024-08-08 15:53:54
250
原创 python整理
列表(list)由一系列按特定顺序排列的元素组成。包含字母数字或一组姓名的列表,还可以将任何东西加入列表,其中的元素之间可以没有任何关系。列表通常包含多个元素,可以给列表指定一个表示复数的名称(如names,cars),这样比较清楚知道是一个列表for 循环用于针对集合中的每个元素执行一个代码块,while 循环则不断地运行,直到指定的条件不再满足为止。"""显示简单的问候语"""")greet_user() #调用函数Hello!
2024-08-06 18:55:34
967
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅