- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 XL9555芯片
ESP32的“超级管家”、“引脚扩展器”、“IO口倍增器”。核心能力:用2根线(I²C)换16根新线!每根新线都能自由变身成“控制者”(输出)或“观察者”(输入)。在3.3V(ESP32)和5V(很多外设)世界之间架起安全沟通的桥梁(电平转换)。当你的ESP32项目需要连接一大堆按钮、LED、传感器、继电器,而ESP32自己的引脚不够用时,或者需要连接5V设备时,XL9555就是你的救星!
2025-08-17 13:04:15
777
原创 正点原子esp32s3在0.96寸oled屏幕上显示时间
之前实现了0.96寸的oled屏幕的显示实验,但是只是显示几个字没啥意思,总想着做点什么吧,今晚正好有空,就尝试一下从网络同步时间到oled上显示出来实时的时间吧。现在来重构原来的代码,将OLED功能封装到oled.h和oled.cpp中,原来的引脚设置不变,通过传参的方式传入。然后,我们要让时间在0.96寸的oled上显示出来,这时,我们就可以用到前面做的oled实验了。1. 创建oled.h:声明OLED类,包含初始化、显示时间等方法。2. 创建oled.cpp:实现OLED类的方法。
2025-08-17 11:51:57
513
原创 IIC总线时序图
写数据时,主设备是“说”的人(控制 SDA 发数据),从设备是“听”的人(读取 SDA 数据)。读数据时,正好相反,从设备“说”(控制 SDA 发数据),主设备“听”(读取 SDA 数据)。总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在 时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。总线上所有小弟都在听,核对这个地址是不是自己的。SCL 开始有规律地“跳动”(高->低->高->低...),SDA 在 SCL 低电平时变化,在 SCL 高电平时保持稳定。
2025-08-10 13:30:10
826
原创 上拉电阻和下拉电阻
本人是初学者,在看正点原子的KEY实验(基于esp32s3)时,里面有涉及到了上拉电阻及下拉电阻的概念,还是做个小结吧。咱们先总结一下,加强理解,后面再附上原文档对比。想象一下ESP32的一个引脚(比如GPIO13),它像一个小开关,可以检测电压是高(接近3.3V)还是低(接近0V)。但是,,它就不知道自己是高还是低,会变得非常“敏感”,容易受到周围电磁干扰的影响,导致状态乱跳(高-低-高-低...)。这就像一根断线的风筝在天上乱飘,你不知道它要飞向哪里。它们的作用就是,避免它“悬空”乱跳。
2025-08-04 14:00:00
2257
原创 GPIO交换矩阵和IO_MUX
想象芯片内部的外设(如 UART、SPI)需要快速进出“城市”(芯片外部)。:按键本可接任意输入引脚(如 GPIO5),中断信号通过 GPIO 矩阵路由到中断控制器。:查手册用默认 IO_MUX 引脚(如 SPI 的 CLK 用 GPIO36)。,能把任意外设的“车”(信号),灵活调度到任意 GPIO “路口”(引脚)。高速信号必须走直达!通常GPIO 34~39 是“单行道”,只能输入(如接按键)。信号不绕路,延迟极低,适合高速通信(如 USB、SD 卡)。搞定,引脚随便选(避开 34~39 输出)。
2025-08-03 17:41:11
742
原创 ESP32 I2C设备地址解析
本人是初学者,非常愿意与各位交流。最近在看IIC操作设备地址时,觉得那些资料都挺枯燥的,还是记录一下比较简单的描述吧。这里主要讲解的为:“表达式 ” 的具体含义。通俗讲,表达式 是用于生成I2C设备的8位读操作地址。不过,为了便于记忆,可以打个比方:想象你住在一个叫 I2C小区 的公寓楼里:这栋楼有 128户人家(对应I2C的7位地址,0~127)。你家门牌号是 0x20(十六进制,相当于十进制32号房)。你(ESP32):想找邻居拿东西(读数据)或送东西(写数据)。快递柜(I2C设备):在你邻居家门口(
2025-08-03 00:34:47
356
原创 esp32s3 + ov2640,给摄像头加上拍照功能,存储到sd卡
现在的目标是添加一张sd卡(其实是手机上用的tf卡),没有现成的,就从玩具中拆了一张出来,一看才128M,这也太小了,玩具厂可真会节省成本^_^!就直接在main.cpp上添加代码了,实际项目中的话,最好还是拆出来,这样代码比较清晰。功能上,就添加了sd卡的读写功能,还在页面上添加了一个查看sd卡中存储的照片的功能。不过页面刷了一会才出来,需要耐心等几秒钟。
2025-07-31 18:55:32
925
原创 IIC与SPI通信协议对比
特点IIC (电话会议)SPI (私聊小灶)线数少 (2根:SDA, SCL)多 (通常4根:MOSI, MISO, SCLK, CS/SS)点名方式喊地址 (广播+应答)拉专线 (CS/SS 物理选择)数据通道1根线来回用 (半双工)2根独立线 (全双工,可同时收/发)速度较慢很快设备扩展容易 (地址区分),但总线负载有限费线 (每加一设备多一根CS线)复杂度协议稍复杂 (地址、应答)硬件连线稍多,协议相对直接典型应用传感器、小存储器、低速控制。
2025-07-31 12:53:22
944
原创 esp32s3 通过wifi查看正点原子摄像头
话说上次买的摄像头,不知道为啥,刚玩了半小时就报错探测不到摄像头了,一阵折腾还是不行,但是没了摄像头,还有好多实验没办法往下做了,咬咬牙又花了118大洋买了一个正点原子的ov2640摄像头(这是真的贵啊,都可以买3个其它厂家的同款摄像头了^_^!),再搭配正点原子的esp32s3板,这回总该行了吧。没想到,原来的代码一通跑下来,仍然报错未探测到摄像头,算了,基于正点原子的例程改一下,结果发现又可以顺利跑起来了。实验过程依然是通过wifi访问开发板上开的web服务来查看摄像头。摄像头模块:ov2640。
2025-07-31 12:52:08
541
原创 esp32中的看门狗
把 ESP32 的看门狗想象成一个定时闹钟。你(程序)必须定期去按一下这个闹钟(喂狗),证明你还清醒着在工作。如果你忘记按或者按得太晚(程序卡死),闹钟就会大声响起(触发重启),强制整个系统从头开始运行,从而摆脱卡死的状态。它是让你的 ESP32 项目变得更可靠、更健壮的重要工具!
2025-07-27 17:10:19
689
原创 esp32中的中断
想象一下,如果没有中断,ESP32 想知道按钮有没有被按下,它必须不停地、一遍又一遍地去检查那个按钮引脚的状态(这叫“轮询”)。中断让 ESP32 可以专心做自己的事(比如计算、控制设备),只有当“门铃”响了(重要事件发生),它才立刻去处理。:物理按钮在按下或松开时,金属触点会快速弹跳几次,导致引脚电平在短时间内多次快速变化(高-低-高-低),这会让 ESP32 误以为按了很多次。这告诉编译器:“这个变量随时可能被意外改变(被中断),别做优化,每次都要老老实实去内存里读它的最新值”。
2025-07-27 17:09:03
778
原创 ESP32中的定时器
CPU 在等待定时器到期时可以继续执行loop()中的其他任务(打印消息、读传感器、连WiFi等),程序响应更灵敏。硬件定时比软件循环 (millis()) 或delay()更精确稳定(尤其间隔很短时)。4 个定时器可以独立工作,实现多个不同周期的定时任务(比如一个 LED 每秒闪,另一个每 2 秒闪,一个传感器每 5 秒读一次)。让硬件去做计时的脏活累活,解放 CPU。
2025-07-27 17:07:32
638
原创 正点原子 esp32s3通过继电器控置电机的转停
1. 最开始使用的是TONGLING的继电器模块,但是继电器一通电就吸合一次,然后始终无法按代码的预期切换,搞得很懵,后来又花了3块钱淘了这个松乐的继电器,继续做实验才成功;2. 使用这个松乐的继电器,开始做实验时也没有按照代码预期实现2秒切换,后来跳线帽跳到高电平触发后,实现现象才正常,搞得也有点懵。主板选择对应主板,这里由于没有找到正点原子对应的主板,我自已导入了一个。目标:通过对继电器进行间隔2秒的高低电平切换,控置电机的转停。继电器:SONGLE SRD-05VDC-SL-C。
2025-07-18 00:49:23
310
原创 正点原子 esp32s3通过HC-SR501检测人体运动
目标:通过HC-SR501检测到有人体运动后,点亮led灯,并且在Serial Monitor打印出检测信息。主板选择对应主板,这里由于没有找到正点原子对应的主板,我自已导入了一个。这里的代码都是最基础的代码了,实在没有什么好讲解的,就不再说明了。开发板使用:正点原子ATK_DNESP32S3 V1.3。本人是新手,刚开始接触esp32板,希望能与大家交流。在VS Code新建工程,工程命名为:wifi。
2025-07-13 14:30:00
399
原创 正点原子esp32s3控制超声波进行测距
主板选择对应主板,这里由于没有找到正点原子对应的主板,我自已导入了一个。在VS Code新建工程,工程命名为:ultrasonic。开发板使用:正点原子ATK_DNESP32S3 V1.3。本人是新手,刚开始接触esp32板,希望能与大家交流。Frameword选择arduino。超声波传感器:HC-SR04。
2025-07-12 18:30:35
305
原创 正点原子esp32s3控制28BYJ-48步进电机
这是因为该步进电机(28BYJ-48)的驱动顺序需要按照特定的相序(通常为8拍方式:A-AB-B-BC-C-CD-D-DA)才能正确旋转。然而,这里使用的顺序是`GPIO4(IN1), GPIO5(IN3), GPIO6(IN2), GPIO7(IN4)`,这可能是为了适应某种特定的驱动板接线。它需要一个像ULN2003这样的驱动器IC来控制电机,所以实验中28BYJ-48步进电机通常带有一个基于ULN2003的驱动板。- 构造函数参数: - `stepsPerRevolution`:电机每转一圈的步数。
2025-07-12 01:09:16
748
原创 es term&match 在text&keyword查询的
此时, "你" 在text_col字段的倒排索引中可以命中倒排索引( ["hello", "world", "你", "好", "世", "界"])中的关键词 "你",所以返回该条记录。2)text_col字段在写入记录时,被分词为 ["hello", "world", "你", "好", "世", "界"]进入倒排索引中,并且,顺序是固定的;2) text字段会被分词,所以text_col字段的倒排索引为 ["hello", "world", "你", "好", "世", "界"]
2023-10-08 11:11:58
1002
1
原创 记一次flink故障排错过程
cdh 集群 scm server节点出故障后,恢复集群过程中,同时flink版本由1.14.0升级到1.14.4,然而在启动过程中报了很多错,记一次排错过程。
2022-03-26 23:18:30
4471
原创 空间距离排序导致的异常
mysql 5.7.30 geometry 字段一次通过st_distance_sphere执行附近的人搜索没有数据返回,排查异常的过程
2022-03-20 17:23:50
3429
原创 Flink 之 sql client 调用 python udf
这里主要描述的是通过sql client来调用 python udf,以达到在sql client中使用自定义函数的目的
2022-03-20 00:03:07
967
原创 mysql 事务嵌套
通过对mysql事务进行测试,还原了事务嵌套带来的后果,同时,引申出了利用savepoint来实现对事务进行部分提交的特性。
2022-03-13 23:44:55
4419
原创 flink 之 checkpoint 测试
模拟flink checkpoint的恢复过程,包含了从checkpoint的设置,python脚本,及模拟job出现异常后从checkpoint恢复的过程。
2022-03-13 15:55:23
1711
原创 flink hop window测试
从实例的角度来测试一遍hop window(滑动窗口),这里使用了官方文档中窗口函数的表结构及数据,从实际操作来看滑动窗口何时开启关闭,以及watermark对窗口的作用。
2022-03-02 17:30:39
2102
原创 tumble window的一个测试实例
Flink 滚动窗口(TUMBLE)示例,里面涉及了 python脚本、提交yarn作业、kafka生产数据、window、watermark等。
2022-02-18 23:31:11
1080
cdh6.3.1 FLINK_ON_YARN-1.14.0.jar
2022-02-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅