- 博客(23)
- 收藏
- 关注
原创 W5500 esp32 micropython 驱动测试 网线直连电脑静态IP设置
【ESP32连接W5500网络模块问题解决】使用ESP32的MicroPython连接W5500模块时遇到两个关键问题:1)DHCP服务器初始化失败,需通过is_dhcp=False参数手动关闭;2)设置静态IP时出现类型错误,需通过ip_to_bytes()函数将IP字符串转换为字节格式。解决方法包括:修改初始化参数、自定义IP转换函数,并通过socket.set_interface(nic)设置网络接口。最终成功实现UDP通信,可向指定地址循环发送数据。完整代码展示了SPI引脚配置、网络参数设置及UDP
2025-10-18 15:27:46
867
原创 esp32-c3-super-mini开发板常见问题收集验证
摘要:ESP32-C3-Super-Mini开发板验证显示,11个可编程GPIO(GP0-GP10)支持6通道ADC(GP0-GP5),其中GP2内置10K上拉电阻。UART0默认占用GP20/21(与USB冲突),建议UART1选用GP0-GP5。4-20mA电流信号采用150Ω电阻转换(0.6-3V)适配ADC量程,需注意电阻精度和滤波。测试代码证实了多通道ADC和UART1通信功能,GP8/9可实现带LED指示的数据传输。
2025-10-07 11:28:20
515
原创 esp32-c3-super-mini开发板5V引脚可外部供电3.3-6V
ESP32-C3开发板外部供电说明:支持3.3-6V外部电源,需通过5V和GND引脚接入,与USB供电互斥。开发板采用ME6211降压电路将5V转为3.3V供电。I2C默认使用GPIO8(SDA)和GPIO9(SCL),传输时GPIO8连接的LED会产生闪烁效果。进入下载模式需组合操作BOOT和RESET键。测试程序展示了通过GPIO9按键控制GPIO8 LED的四种模式(关闭/呼吸/50%/全亮)。注意GPIO2、8、9为特殊功能引脚,使用时需考虑复位状态影响。
2025-10-05 15:52:13
1094
原创 MPY ESP32 基础监测类 NTP、RESET、LOG
摘要:文章介绍了一个针对ESP32开发板死机问题的排查方案,通过构建基础检测类实现系统稳定性监控。核心功能包括:1)NTP时间同步确保RTC准确;2)看门狗机制处理异常重启;3)整点定时重启;4)日志记录限制1000行;5)JSON持久化存储重启变量。测试发现并解决了两个问题:多次重启导致的变量丢失(通过JSON持久化解决)和日志文件膨胀问题(限制行数)。最终实现包含时间同步、健康检查、整点重启等功能的稳定系统监控方案,特别适合需要长期稳定运行的物联网设备。
2025-09-28 08:42:06
202
原创 MicroPython ESP32 UART Modbus 监听与解析
UART监听Modbus并打印HEX字符串,主站从站的问答帧头相等则认为通信正常,否则报通信故障给平台;后继还想:如果总线寂静1秒钟,判断总线故障了,接替PLC做主站轮询从站们。末端设备的RS485接在A+B-总线上,监听PLC主站与从站们的字节流,通过帧头(自定义为modbus站号+功能码)相等判断通信正常。问deepseek然后实验初步成功了。
2025-08-23 15:56:36
350
原创 micropython多线程与看门狗WDT实践笔记
摘要:本文探讨了MicroPython中处理modbus客户端与多线程协同工作的方案。首先指出uModbus 2.3.7客户端在while循环中非阻塞运行的问题,推荐使用健壮的多线程管理器ThreadManager类来管理线程,并提供安全终止机制。针对看门狗功能,通过实际测试发现喂狗操作应放在主线程(sleep(6)超过5秒超时导致复位),而非单独线程。测试结果表明主线程喂狗方案可行,但需确保喂狗间隔小于看门狗超时时间。最后展示了看门狗触发时的详细错误日志和系统复位过程。
2025-06-14 17:46:35
224
原创 WF20积木设置无线STA单链接透传模式笔记
1、各种串口调试助手均可,但要注意AT指令后加回车换行,否则无响应2、单链接透传模式,单链接就是不能超过1个客户端,否则消息发送报错
2025-04-30 09:35:54
592
原创 MicroPython Modbus library v2.3.7使用笔记1
1、线程:modbus slaver TCP协议,做电力仪表数据采集、处理、转发单元,配300个寄存器regs,二十几台表一次性轮询存入lista,再一次性写modbus slaver的set_ireg(0, lista)。modbus slaver TCP接收上位机查询,如果轮询完成正在写内存,一读一写会资源冲突么?2、中断:每3秒定时轮询电表,因为存在超时未完成情况,设置标志位,轮询未完成时,不进行新任务。
2025-03-28 11:57:07
405
原创 python连接oracle使用cx_Oracle模糊查询报错的处理方法
AND SNAME = 'ModBus.S08-DTU.DLYB2_2_Ps' (或者LIKE '%DLYB2_2_Ps%')2、模糊查询不能直接将平时用SQL查询工具软件能用的贴。1、Oracle区分大小写,单引号统一变大写处理;二、安装python第三方库报错处理。例如:SELECT *
2025-03-14 13:13:46
296
原创 MPY回调函数笔记
在Python中,回调函数是一种编程范式,其中将一个函数(回调函数)作为参数传递给另一个函数,而不是在那个函数中进行显式的调用。一旦特定的事件或条件满足,回调函数就会被调用。程序可以在运行时,通过登记不同的回调函数,来决定、改变中间函数的行为。这就比简单的函数调用灵活。回调 = 条件满足后回头再调。# 调用eat_food函数,并将wash_dishes函数作为回调函数传递。print("洗碗...")print("吃饭...")# 吃饭后执行回调函数。
2025-03-09 22:15:20
254
原创 MPY ESP32 BOOT.PY 网络与时间 定期检查
Wifi DTU同时实现ModbusSlaver从机和Master主机,boot.py铺垫网络连接和时间同步。内网NTP服务器,定时器周期性检查,故障重启单片机,需要记录512KB日志。
2025-03-01 15:40:01
193
原创 MicroPython单线程多路IO复用select.poll TCPserver透传
问题2:限制10个TCP连接到Slaver,连接多个TCP是没问题,但是多个Master会冲突啊,本来是一主多从的结构,现在有多个Master(例如modbus poll、kepware至少有2个Master)都想从同一个Slaver存取数据,怎么办啊?Windows Python: 提供: selectMac Python: 提供: selectLinux Python: 提供: select、poll、epoll注意:网络操作、文件操作、终..._python 详细select socket。
2025-02-08 15:24:37
1592
原创 字节内的位序有2种排列选左低右高:micropython-modbus才能适配modbus poll、kepware、modscan
在Python中,你可以将字节(byte)转换为布尔数组(bool array),这通常涉及到将每个字节的每个位(bit)单独处理。一个字节有8位,你可以选择将每个位转换成布尔值,或者将整个字节转换成布尔值(例如,非零字节为True,零字节为False)。问题2:限制10个TCP连接到Slaver,连接多个TCP是没问题,但是多个Master会冲突啊,本来是一主多从的结构,现在有多个Master(例如modbus poll、kepware至少有2个Master)都想从同一个Slaver存取数据,怎么办啊?
2025-02-02 16:41:28
1662
原创 电子积木:817光耦电压隔离板
电子积木实验板是可以的,商业化则需要PCB,PCB成本反而比电子积木贵好多,但生产时间短,也不需要组装,时间和效率就是金钱。后面可以驱动大功率三极管,MOS管等需要高电压驱动的场合,也可以直接驱动小功率的24V继电器工作。如果是脉冲信号,请注意,817的极限也就是4KHZ以下,大于4KHZ的控制信号请不要使用本模块,将会工作不正常。可以实现3.3V或者5V控制3.6---24V电压等级的接口,实现控制端导通之后,被控制端也会导通。在实际工作中碰到了需要隔离控制,并且电压转换的时候,会用到此模块。
2025-01-18 17:10:57
692
原创 JSON格式的小白理解
输出: <class 'dict'> {'name': 'John', 'age': 30, 'city': 'New York'}# 输出: <class 'str'> {"name": "John", "age": 31, "city": "Changsha"}# 打印更新后的JSON字符串 <class 'str'> 直接更新 py的str也是可以的,不过没有了dict的专业优势了。# 用汉字书写的文章比喻,json代表七言绝句格式,那这种体裁的这些个汉字就有专门的库方法简化处理了。
2025-01-17 08:29:07
226
原创 TCA9555 PCA9555 micropython ESP32 I2C Driver
网上有现成的PCF8575 micropython驱动,但网购PCF8575没有带LED灯的板子,有大量9555带16个LED灯的板子,11元的价格亲民,但没找到现成的驱动,I2C总线以前也没接触过,找了一天的资料学习。次日总算可以用I2C的i2c.writeto_mem直接测试了,如果你的控制需求简单,就不需要费力去写驱动了,以下供参考。
2024-12-29 09:45:28
826
原创 链路聚合报错:Command rejected (Port-channel): Either port is L2 and port-channel is L3, or vice-versa
报错意思是物理端口和链路聚合端口通道一个用了no switchport,一个没用no switchport,导致一个是二层,一个是三层端口,链路聚合与物理端口的配置必须完全一样才可以绑定。解决办法就是,进到物理端口,no sw,进到channel-group,no sw,这样就都关了二层交换功能。默认是二层聚合,无意中把聚合口no sw变三层了导致错误。命令被拒绝(端口通道):端口为L2,端口通道为L3,反之亦然。
2023-11-09 19:16:38
1111
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅