ESP32C3驱动棱镜显示器:低功耗物联网信息终端的实现

发布时间:2026/8/2 16:35:58

ESP32C3驱动棱镜显示器:低功耗物联网信息终端的实现
1. 项目缘起当ESP32C3遇上“棱镜”一个低成本显示方案的诞生最近在捣鼓一个需要本地显示数据的小项目预算有限屏幕还得够小够省电。市面上常见的TFT、OLED虽然成熟但要么功耗感人要么在户外强光下可视性差要么就是价格超出了我的心理预期。就在我翻看各种开发板资料时看到了Seeed Studio的XIAO ESP32C3这块板子尺寸极小集成了Wi-Fi和蓝牙功耗控制得也不错瞬间就吸引了我。但它的显示问题怎么解决直接接屏幕体积和功耗又上去了。这时一个老概念——“棱镜显示器”跳进了我的脑海。这玩意儿听起来高大上其实原理很古老利用光的全反射和干涉在一个透明的棱镜或特殊结构中形成悬浮在空中的虚像。它不像传统屏幕那样自发光而是依赖环境光或一个简单的背光模块这意味着在强光下反而更清晰而且功耗可以做到极低。我琢磨着能不能用XIAO ESP32C3驱动一个超低功耗的棱镜显示模块做一个既酷炫又实用的信息终端比如显示温湿度、时间、股票行情或者智能家居状态。说干就干。这个项目的核心就是把XIAO ESP32C3强大的无线连接和计算能力与棱镜显示器独特的视觉呈现方式结合起来。ESP32C3负责从网络获取数据、进行处理然后通过最精简的接口控制显示模块棱镜显示器则负责以一种近乎“魔法”的方式将这些信息呈现出来。整个过程追求的是极致的低功耗、小巧的体积和独特的视觉体验而不是追求极致的分辨率和色彩。2. 核心组件深度解析为什么是XIAO ESP32C3与棱镜显示器的组合2.1 XIAO ESP32C3小身材里的大能量选择XIAO ESP32C3作为主控绝非偶然。市面上ESP32的开发板很多但XIAO系列的特点非常鲜明。首先是极致的尺寸。它的板子尺寸只有21 x 17.5毫米比一枚一元硬币大不了多少。这对于追求设备小型化、嵌入到各种外壳中的项目来说是巨大的优势。我们不需要为它预留太大的空间。其次是恰到好处的性能与接口。它基于乐鑫ESP32-C3芯片这是一颗单核32位RISC-V处理器主频160MHz。对于驱动一个显示简单字符和图案的棱镜显示器来说性能绰绰有余。它集成了2.4GHz Wi-Fi和蓝牙5.0这意味着我们的显示终端可以轻松联网获取数据甚至可以通过蓝牙进行近场配置。在I/O方面它提供了11个GPIO虽然不多但驱动一个简单的显示模块通常只需要I2C或SPI接口以及连接一两个传感器如温湿度完全足够。最关键的一点是低功耗设计。ESP32-C3芯片本身在低功耗模式下的电流可以降到微安级别。XIAO ESP32C3的板载设计也考虑了这一点例如其USB-C接口除了供电和编程还支持深度睡眠下的唤醒。这对于一个希望长期插电或者使用电池供电的显示设备来说是生命线。注意XIAO ESP32C3有多个版本早期版本V1的GPIO6、GPIO7、GPIO8、GPIO11在内部用于USB串口和Flash不建议使用。较新的版本如V2、V3在这些引脚的使用上更为灵活但编程前务必查阅你所持有版本的最新引脚定义图避免冲突。2.2 棱镜显示器原理、选型与驱动逻辑棱镜显示器更常见的叫法可能是“悬浮显示器”、“空中成像显示器”或“全息风扇显示器”。但其核心光学原理大多基于“佩珀尔幻象”或类似的光学反射/折射结构。1. 工作原理简述想象一下你把一个手机屏幕朝上放在桌面上然后在它上方45度角放置一块透明的亚克力棱镜。当你从特定角度看过去时手机屏幕上的图像仿佛“悬浮”在了棱镜上方。这是因为光线从屏幕发出经过棱镜的反射和折射最终进入你的眼睛你的大脑会认为光线是沿直线传来的从而将虚像定位在棱镜后方或上方。商业化的棱镜显示模块就是将这个光学结构微型化和优化后的产物。2. 常见类型与选型对于单片机驱动我们通常能接触到两类段码式棱镜显示模块类似于计算器的屏幕显示固定的数字、字母段。驱动简单直接GPIO或锁存器功耗极低但显示内容固定灵活性差。点阵式棱镜显示模块内部是一块小型的单色OLED或LCD屏幕通常是128x64或更小通过上方的光学棱镜形成悬浮虚像。这种模块通常自带显示驱动芯片如SSD1306、SH1106等我们通过I2C或SPI接口发送图像数据即可。这是本项目推荐的选择因为它可以显示任意图形和文字可玩性高。3. 驱动逻辑点阵式模块的驱动本质上就是驱动一块单色屏幕。以最常见的I2C接口、SSD1306驱动芯片的模块为例XIAO ESP32C3需要做的事情非常标准硬件连接将模块的VCC、GND、SCL、SDA分别连接到XIAO的3.3V、GND、以及任选两个支持I2C的GPIO如GPIO4-SDA GPIO5-SCL。软件驱动在Arduino IDE或PlatformIO中使用现有的库例如Adafruit_SSD1306和Adafruit_GFX。这些库已经封装了初始化、清屏、画点、画线、显示文字等所有复杂操作。数据呈现我们的代码逻辑是ESP32C3通过Wi-Fi获取数据如从NTP服务器获取时间从公开API获取天气处理后调用图形库的API将需要显示的文字或简单图形如温度图标绘制到显示缓冲区内然后库函数会通过I2C将缓冲区数据发送给显示模块。功耗考量棱镜显示器本身不发光依赖环境光或仅有低功耗LED背光其功耗主要来自内部的点阵屏幕。单色OLED屏幕在显示内容不变时功耗几乎为零只有驱动芯片的待机电流只有在刷新画面时才消耗能量。因此我们可以让ESP32C3大部分时间处于深度睡眠Deep Sleep状态每分钟唤醒一次更新数据并刷新屏幕这样可以实现超长的电池续航。3. 从零开始的软硬件搭建与核心代码剖析3.1 硬件连接与供电方案设计硬件清单很简单Seeed Studio XIAO ESP32C3 开发板 x1点阵式棱镜显示模块I2C接口SSD1306驱动分辨率例如128x32 x1杜邦线母对母若干可选锂电池如3.7V 500mAh和充电模块用于移动供电。连接示意图棱镜显示模块引脚XIAO ESP32C3引脚说明VCC3.3V绝对不要接5V大多数模块是3.3V逻辑。GNDGND共地。SCLGPIO5I2C时钟线。SDAGPIO4I2C数据线。如果你的模块有复位RST或直流电源DC引脚通常不需要连接模块内部会处理。供电方案USB持续供电最简单通过USB-C线连接充电头或电脑。适合桌面固定应用。锂电池供电为了实现便携和低功耗运行可以连接一个小型锂电池到XIAO ESP32C3的电池输入引脚通常标有BAT或VBAT。XIAO板载了充电管理电路可以通过USB为电池充电。结合ESP32C3的深度睡眠功能一个500mAh的电池可以轻松工作数周甚至数月。3.2 软件开发环境配置与核心库我们使用Arduino IDE进行开发因为它对ESP32系列和图形显示库的支持非常友好。安装ESP32开发板支持在Arduino IDE的“文件”-“首选项”的“附加开发板管理器网址”中添加https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json。然后在“工具”-“开发板”-“开发板管理器”中搜索“esp32”安装“Espressif Systems”的ESP32平台。选择开发板安装后在“工具”-“开发板”中选择“XIAO ESP32C3”。安装显示库在“项目”-“加载库”-“管理库”中搜索并安装“Adafruit SSD1306”和“Adafruit GFX Library”。3.3 核心代码实现网络时间获取与显示下面是一个最基础的示例演示如何让ESP32C3连接Wi-Fi获取网络时间NTP并在棱镜显示器上显示。这个代码块构成了项目的核心逻辑。#include Wire.h #include Adafruit_GFX.h #include Adafruit_SSD1306.h #include WiFi.h #include time.h // 定义显示屏参数 #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #define OLED_RESET -1 // 如果模块有RESET引脚则接其GPIO号否则-1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, Wire, OLED_RESET); // 你的Wi-Fi凭证 const char* ssid 你的Wi-Fi名称; const char* password 你的Wi-Fi密码; // NTP服务器和时区设置 const char* ntpServer pool.ntp.org; const long gmtOffset_sec 8 * 3600; // 东八区北京时间偏移秒数 const int daylightOffset_sec 0; // 夏令时偏移中国不使用设为0 void setup() { Serial.begin(115200); // 初始化I2C和显示屏 Wire.begin(); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 0x3C是常见I2C地址 Serial.println(F(SSD1306分配失败)); for(;;); // 死循环 } display.clearDisplay(); display.setTextSize(2); // 设置字体大小 display.setTextColor(SSD1306_WHITE); // 单色屏白色即点亮像素 display.setCursor(0,0); display.println(Booting...); display.display(); delay(2000); // 连接Wi-Fi WiFi.begin(ssid, password); display.clearDisplay(); display.setCursor(0,0); display.print(Connecting); display.display(); while (WiFi.status() ! WL_CONNECTED) { delay(500); Serial.print(.); display.print(.); display.display(); } Serial.println(\nConnected!); display.clearDisplay(); display.setCursor(0,0); display.println(WiFi OK!); display.display(); delay(1000); // 配置并从NTP服务器获取时间 configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); // 等待时间同步 struct tm timeinfo; if(!getLocalTime(timeinfo)){ display.clearDisplay(); display.setCursor(0,0); display.println(Time Sync Fail); display.display(); return; } } void loop() { struct tm timeinfo; if(!getLocalTime(timeinfo)){ return; } // 格式化时间字符串 char timeString[20]; strftime(timeString, sizeof(timeString), %H:%M:%S, timeinfo); // 在显示屏上显示 display.clearDisplay(); display.setTextSize(2); display.setCursor(0,0); display.println(timeString); // 可以再显示一行日期或其他信息 display.setTextSize(1); display.setCursor(0, 20); char dateString[20]; strftime(dateString, sizeof(dateString), %Y-%m-%d, timeinfo); display.println(dateString); display.display(); // 每秒更新一次 delay(1000); }代码关键点解析Wire.begin(): 初始化I2C总线XIAO ESP32C3的默认I2C引脚是GPIO4(SDA)和GPIO5(SCL)与代码中Wire库的默认设置一致。display.begin(...): 初始化显示屏参数0x3C是SSD1306常见的I2C地址。如果点不亮可以尝试0x3D。configTime(): 配置时区和NTP服务器这是ESP32内置的功能非常方便。getLocalTime(timeinfo): 获取同步后的本地时间存储到tm结构体中。strftime(): 将时间结构体格式化成我们想要的字符串如“14:30:05”。显示优化在loop()中我们每次刷新都先clearDisplay()再绘制新内容最后display()。为了减少屏幕闪烁OLED全屏刷新时可能出现的短暂闪烁可以在数据变化不大时只刷新变化的部分区域但这需要更复杂的逻辑。4. 功耗优化实战让设备运行一个月以上的秘诀一个常显设备功耗是首要敌人。我们的目标是利用ESP32C3的深度睡眠和棱镜显示器OLED的特性将平均电流降到几十微安级别。4.1 ESP32C3的深度睡眠模式运用上面的示例代码是持续运行的ESP32C3和屏幕一直处于工作状态电流可能在几十毫安。优化后流程变为ESP32C3从深度睡眠中唤醒。连接Wi-Fi如果需要获取最新数据如时间、天气。更新显示屏内容。让显示屏进入休眠或关闭状态如果支持。让ESP32C3进入深度睡眠并设置一个定时器如60秒后唤醒。循环。修改后的setup()和loop()框架#include esp_sleep.h // 引入睡眠功能头文件 RTC_DATA_ATTR int bootCount 0; // 将变量存储在RTC内存深度睡眠后数据不丢失 void setup() { Serial.begin(115200); delay(1000); // 给串口一个启动时间 // 初始化显示屏等硬件 // ... (与之前相同) // 连接Wi-Fi和获取时间仅在唤醒后执行 // ... (与之前相同但可以增加判断比如每小时才同步一次NTP) // 更新显示 displayData(); // 准备进入深度睡眠 Serial.println(准备进入深度睡眠); // 设置唤醒源为定时器单位微秒 esp_sleep_enable_timer_wakeup(60 * 1000000ULL); // 60秒后唤醒 // 可选如果显示屏有使能引脚将其拉低以关闭屏幕电源 // digitalWrite(SCREEN_POWER_PIN, LOW); // 真正进入深度睡眠 esp_deep_sleep_start(); // 代码执行到这里会暂停直到被唤醒后从setup()重新开始 } void loop() { // 深度睡眠模式下loop()永远不会被执行 } void displayData() { // 获取数据并显示的函数 // ... (显示时间、传感器数据等) }关键解释esp_sleep_enable_timer_wakeup(): 设置定时唤醒参数是微秒。60 * 1000000ULL表示60秒。esp_deep_sleep_start(): 进入深度睡眠。此时绝大部分电路关闭仅RTC计时器和少数内存RTC_DATA_ATTR标记的变量保持状态电流可降至10微安左右。RTC_DATA_ATTR: 这个属性将变量存储在RTC慢速内存中深度睡眠后数据依然保留。可以用来记录唤醒次数、上次获取的数据等。唤醒后的流程设备被定时器唤醒后会重新执行setup()函数而不是从loop()继续。所以所有初始化代码需要放在setup()里并且要考虑幂等性即执行多次结果相同。4.2 显示屏的功耗控制对于SSD1306驱动的OLED软件关闭display.ssd1306_command(SSD1306_DISPLAYOFF);可以关闭屏幕显示像素全灭但驱动芯片可能仍在工作有几百微安的电流。硬件关闭推荐如果模块有独立的电源使能EN引脚可以通过一个GPIO控制一个MOSFET或直接连接如果电流很小在进入深度睡眠前将屏幕的电源彻底切断。这样屏幕的功耗可以降到真正的零。实测功耗对比持续工作模式ESP32C3活跃 屏幕亮起 ≈ 40mA - 80mA。深度睡眠模式屏幕软件关ESP32C3睡眠 屏幕驱动芯片待机≈ 200μA - 500μA。深度睡眠模式屏幕硬件断电ESP32C3睡眠≈ 10μA - 20μA。假设使用一块1000mAh的锂电池模式一理论续航1000mAh / 50mA ≈ 20小时。模式三理论续航1000mAh / 0.015mA ≈ 66666小时 ≈ 2777天 ≈ 7.6年。当然实际电路有静态损耗唤醒时有大电流脉冲但实现数月到一年的续航是完全可行的。5. 功能扩展与创意应用场景基础的时间显示只是开始结合ESP32C3的联网能力这个“棱镜显示器”可以变身成各种信息终端。5.1 集成传感器成为环境监测站通过XIAO ESP32C3剩余的GPIO或I2C接口可以连接各种传感器。温湿度传感器如DHT11/DHT22或更精确的SHT3x。在displayData()函数中读取数据并显示在屏幕上例如“23.5°C 65%”。空气质量传感器如SGP30VOC和CO2等效或PMS5003PM2.5/PM10。打造一个桌面空气质量悬浮提示器。光照传感器如BH1750。可以根据环境光强度自动调节屏幕亮度如果屏幕支持或作为智能家居的触发条件。代码片段示例集成DHT22#include DHT.h #define DHTPIN 2 // 假设接在GPIO2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void displayData() { float h dht.readHumidity(); float t dht.readTemperature(); display.clearDisplay(); display.setTextSize(1); display.setCursor(0,0); display.print(Temp: ); display.print(t, 1); display.println( C); display.setCursor(0, 12); display.print(Hum: ); display.print(h, 1); display.println( %); display.display(); }5.2 连接网络API打造信息看板ESP32C3可以发起HTTP请求获取互联网上的公开数据。天气预报调用心知天气、和风天气等免费API获取并显示当前天气状况和温度。股票/加密货币行情显示你关注的指数或币种价格需注意API调用频率限制。待办事项或日历事件连接到你的私人服务器或第三方服务如Todoist、Google Calendar的API显示下一个即将到来的事件。系统状态监控显示家庭服务器或NAS的CPU负载、网络状态等。实现要点使用WiFiClient或HTTPClient库发起HTTPS/HTTP请求。解析返回的JSON数据使用ArduinoJson库非常方便。将关键信息格式化后显示在屏幕上。注意功耗网络请求是耗电大户。应合理安排请求频率例如每10分钟或30分钟获取一次天气而不是每次唤醒都获取。可以将最新数据保存在RTC_DATA_ATTR变量中在深度睡眠间保持只有需要更新时才发起网络请求。5.3 作为蓝牙信标或智能家居状态显示器利用ESP32C3的蓝牙功能它可以扮演其他角色。蓝牙信标Beacon广播自定义信息附近的手机可以接收到。可以做成一个“电子名片”或位置标识。蓝牙网关/显示器通过蓝牙接收来自其他传感器如温湿度计、门磁的数据并集中显示在棱镜屏上。智能家居控制反馈与Home Assistant等平台配合当执行某个自动化如“晚安模式”时向ESP32C3发送指令使其显示特定的图标或文字作为状态确认。6. 外壳设计与光学调试让“悬浮感”更出色硬件和软件都完成后一个得体的外壳和正确的光学调试能极大提升成品质感。6.1 3D打印外壳设计要点为XIAO ESP32C3和棱镜显示模块设计一个集成外壳时需要考虑固定与散热确保开发板和显示模块被牢固固定避免松动。虽然功耗低但也要考虑可能的微小发热点如LDO稳压器的通风。棱镜模块的视角外壳需要为棱镜模块预留一个朝向用户的、无遮挡的观察窗。通常最佳视角是在棱镜正前方偏上或偏下一定角度需要根据具体模块的光学设计来调整外壳的倾斜度。按钮与接口如果预留了复位按钮或需要USB接口充电/调试外壳要开孔。美学一个简洁、有设计感的外壳能让项目从“实验品”升级为“产品”。可以考虑使用半透明材料打印让内部的电路板若隐若现增加科技感。6.2 光学调试与视觉优化棱镜显示的效果受环境光影响很大。环境光在光线充足的环境下虚像最清晰。在暗处可能需要为模块增加一个柔和的侧向LED背光。注意背光不能直射人眼也不能太亮而冲淡了悬浮效果应该从侧面照亮显示模块的底部或侧面。显示内容优化对比度确保显示的内容白色部分与背景黑色部分对比度高。单色OLED本身对比度很好。字体与图形由于分辨率通常较低如128x32应选择笔画清晰、简洁的无衬线字体。避免显示过于复杂的图形或过小的文字。反色显示可以尝试display.setTextColor(SSD1306_BLACK, SSD1306_WHITE);黑字白底有时在特定光线下这种“负片”效果反而更醒目。消除重影有些廉价棱镜模块可能会因为光学设计或材质问题产生轻微的重影。可以通过在模块非出光面粘贴黑色电工胶带或消光绒布吸收杂散光来改善。7. 项目总结与避坑指南回顾整个项目从构思到实现最大的乐趣在于将两种看似不相关的技术低功耗物联网MCU和特殊光学显示结合创造出一个有实用价值和观赏性的小物件。XIAO ESP32C3的易用性和低功耗特性让它成为这类嵌入式显示项目的绝佳选择。踩过的坑与注意事项I2C地址冲突与扫描不是所有SSD1306模块的I2C地址都是0x3C。如果初始化失败第一件事是运行一个I2C地址扫描程序确认设备的实际地址。在Arduino IDE中有现成的扫描示例代码。电源噪声干扰当ESP32C3的Wi-Fi模块工作时会产生较大的电流脉冲可能引起电源电压的微小波动。如果显示屏与MCU共用电源且布线不佳可能会导致屏幕闪烁甚至复位。解决办法是在靠近显示屏电源引脚处加一个10-100μF的电解电容进行滤波。深度睡眠下的GPIO状态进入深度睡眠前最好将未使用的GPIO设置为上拉或下拉或者设置为输出模式并固定在一个电平高或低以防止引脚悬空产生漏电影响功耗。特别要注意那些连接了外设如传感器、屏幕使能脚的GPIO确保睡眠时外设处于低功耗状态。Wi-Fi连接耗时与功耗每次唤醒都重新连接Wi-Fi是最耗电和最耗时的操作。如果数据更新频率要求不高可以考虑在RTC_DATA_ATTR中保存Wi-Fi凭证和上次获取的数据并实现一个逻辑比如每唤醒10次即10分钟才同步一次网络时间其余时间仅用RTC计时器推算时间并显示。这能大幅降低平均功耗。棱镜模块的安装角度虚像的清晰度和位置对观看角度非常敏感。在固定外壳时可能需要多次调整模块的俯仰角以找到对你常用观看位置最清晰的角度。可以用蓝丁胶临时固定调试好后再用胶水永久固定。这个项目就像一个微型的数字窗口以一种特别的方式将比特世界的信息投射到我们的物理空间。它简单到足以让初学者入门也深到可以让进阶者玩出各种花样。无论是放在桌角显示时间天气还是作为智能家居的中控状态屏它都能在提供信息的同时成为一件有趣的科技摆件。

相关新闻

告别短期流量依赖,高宇GEO助力搭建长效数字资产

告别短期流量依赖,高宇GEO助力搭建长效数字资产

2026/8/2 16:35:58

流量困境下的新路径:探索传统竞价广告成本高企的替代方案与AEO实践近年来,许多企业在营销复盘中观察到一个显著趋势:搜索引擎自然流量面临挑战,而传统竞价广告(SEM)的点击成本呈现上升态势。面对“不投无流…

Godot协程实战:从yield到await,掌握游戏异步编程核心

Godot协程实战:从yield到await,掌握游戏异步编程核心

2026/8/2 16:35:58

1. 项目概述:为什么Godot协程是游戏逻辑的“时间管理大师” 在游戏开发里,我们经常要处理“等一会儿再做某事”的需求。比如,角色释放技能后需要冷却2秒才能再次使用;UI界面淡入淡出需要持续0.5秒;或者从网络加载资源时…

上饶消防设施操作员备考择校指南:基于4大核心维度甄选优质培训资料

上饶消防设施操作员备考择校指南:基于4大核心维度甄选优质培训资料

2026/8/2 16:35:58

消防设施操作员是国家法定准入类职业资格证书,考核体系分为理论知识、实操操作两大核心模块,其中实操考核占比超50%,是考试通关的关键核心。在全程备考过程中,配套学习资料的合规性、专业性、完整性及本地化适配能力,直…

PCB设计避坑指南:从原理图到Gerber的实战经验总结

PCB设计避坑指南:从原理图到Gerber的实战经验总结

2026/8/2 17:46:01

刚接触 PCB 设计,你是不是也经历过这样的场景:原理图明明画得漂漂亮亮,DRC 检查也全绿通过,满怀期待地打样回来,一上电要么冒烟,要么信号死活不对。翻来覆去检查,最后发现是某个封装画反了&…

Jetson边缘计算优化:OpenCV Gapi图计算实战指南

Jetson边缘计算优化:OpenCV Gapi图计算实战指南

2026/8/2 17:46:01

1. 项目概述:为什么要在Jetson上关注Gapi?如果你手头有一块NVIDIA Jetson开发板,无论是入门级的Nano还是性能强悍的Orin系列,你大概率已经用它跑过YOLO、TensorRT,或者部署过一些深度学习模型。这些任务通常围绕着模型…

5分钟掌握163MusicLyrics:免费高效的音乐歌词获取解决方案

5分钟掌握163MusicLyrics:免费高效的音乐歌词获取解决方案

2026/8/2 17:46:01

5分钟掌握163MusicLyrics:免费高效的音乐歌词获取解决方案 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到精准的歌词文件而烦恼吗?1…

Leetcode 94. 二叉树的中序遍历

Leetcode 94. 二叉树的中序遍历

2026/8/2 17:46:01

class Solution:def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:self.res []def intree(node):if not node:return Noneintree(node.left)self.res.append(node.val)intree(node.right)intree(root)return self.res

Leetcode 206. 反转链表

Leetcode 206. 反转链表

2026/8/2 17:46:01

考察链表的操作 class Solution:def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:prev Nonecurr headwhile curr:next_node curr.nextcurr.next prevprev currcurr next_nodereturn prev

Excel动态图片绑定与双击编辑:无代码实现数据可视化联动

Excel动态图片绑定与双击编辑:无代码实现数据可视化联动

2026/8/2 17:36:01

1. 项目概述:让图片在Excel里“活”起来在Excel里处理图片,大概是每个职场人都会遇到的痛点。你精心调整好一张产品图或流程图的大小和位置,结果一筛选数据、一调整行高列宽,图片就“跑偏”了,要么重叠,要么…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/2 0:04:43

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/2 0:04:43

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/2 0:04:43

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/2 0:04:43

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/2 0:04:43

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/2 0:04:43

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/2 17:06:42

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/2 5:08:03

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/2 1:50:52

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…