资讯动态

AC !DC:一款拒绝联网的离线空调控制器设计

发布时间:2026/9/13 7:22:31 来源:尧图企业网站定制
1. 项目概述这不是一个“智能空调控制器”而是一次对自动化迷思的清醒反叛“AC !DC — Air Conditioning, not Domotically Controlled”这个标题第一眼就带着一股冷幽默的锋利感。它不是在讲交流电AC和直流电DC的物理区别也不是在吐槽Adobe Acrobat DC软件的图标bug更不是在复述锐捷网络里AC控制器的旁挂配置——它是在用一个精妙的双关向当下泛滥成灾的“万物皆可联网、一切都要上云”的智能家居狂热投下一张冷静的否决票。核心关键词AC和DC在这里被彻底解构AC是Air Conditioning空调DC是Domotically Controlled家居自动化控制。那个醒目的感叹号“!”不是惊叹而是逻辑非运算符是程序员写代码时最常用的否定符号。它直白地宣告这台空调拒绝被智能家居系统接管拒绝接入Wi-Fi拒绝绑定App拒绝上传数据拒绝成为你家物联网拓扑图里的一个节点。它只接受最原始、最可靠、最物理的交互方式一个开关一个温控旋钮或者——如果你愿意多花五分钟一个由NodeMCUESP8266驱动的、但仅用于本地状态显示与手动干预的离线小屏。这个项目诞生的土壤正是我们每天都在经历的现实手机App突然连不上家里的灯语音助手听不懂“把空调调低两度”的模糊指令OTA升级失败后空调面板变成一块砖或是某天发现自己花了大价钱买的“智能”设备其核心功能——制冷或制热——反而因为依赖复杂的网络协议而变得比二十年前的老式空调更不可靠。它面向的不是极客发烧友而是任何一个被“智能”绑架过、渴望回归设备本源功能的普通用户。它解决的问题非常具体如何在不牺牲基本便利性的前提下让一台空调彻底摆脱云端依赖重获“开即冷、关即停”的确定性答案不是退回石器时代而是用最轻量、最可控的技术在自动化与自主性之间划出一条清晰的边界。2. 核心设计思路为什么“不联网”才是最高级的可靠性工程2.1 从“能联网”到“不联网”的范式逆转绝大多数基于ESP8266或Arduino的空调改造项目其默认路径是“联网”。开发者会自然地想到用DHT22读取室温用红外发射管模拟遥控信号再通过MQTT协议把数据发到Home Assistant最后在手机App里点一下就完成控制。这条路径技术上成熟社区资源丰富但它的底层假设是脆弱的整个链路——从ESP8266的Wi-Fi模块固件、路由器的DHCP服务、家庭宽带的稳定性、云服务商的API接口再到你手机上的App——任何一个环节出问题空调就“失联”了。而“AC !DC”项目的设计原点恰恰是对这个脆弱链路的彻底放弃。它不追求“远程控制”因为远程控制的价值在于你人在千里之外而当你在家时伸手按一下墙上的物理开关其响应速度、成功率和心理确定性是任何无线协议都无法比拟的。因此项目的核心思路是进行一次精准的“功能裁剪”保留所有与空调本体直接相关的、物理层面的控制能力如红外发射、继电器通断但将所有与“网络”、“云”、“App”、“账户”相关的模块从设计蓝图中物理性地抹去。NodeMCU在这里的角色被重新定义为一个“本地协处理器”而非“网络终端”。它不发送任何数据包不建立任何TCP连接甚至不初始化Wi-Fi模块。它的全部算力只用来做三件事1读取本地传感器如DS18B20温度探头2解析并执行来自本地物理按钮的指令3驱动一个OLED屏幕实时显示当前室温、设定温度和空调运行状态。这种设计本质上是一种回归——回归到嵌入式系统的初心用最小的硬件资源解决最确定的物理世界问题。它带来的好处是立竿见影的功耗降至最低Wi-Fi模块全程休眠启动时间缩短至毫秒级无需等待Wi-Fi握手故障点减少90%以上没有网络栈就没有TCP重传超时、DNS解析失败、SSL证书过期等经典问题。2.2 NodeMCU/ESP8266的“离线化”改造不是不用而是用得更纯粹选择NodeMCU作为主控并非因为它“便宜”或“好买”而是因为它提供了一个绝佳的“能力-约束”平衡点。ESP8266芯片本身集成了Wi-Fi这是它的天赋但也是它被滥用的根源。在“AC !DC”项目中我们恰恰要驯服这份天赋。关键操作不是屏蔽Wi-Fi而是永不调用WiFi.begin()。在Arduino IDE的代码里你不会看到任何#include ESP8266WiFi.h也不会有任何WiFi.mode(WIFI_STA)的配置。取而代之的是我们深度利用ESP8266的其他原生能力其内置的10-bit ADC可以精确读取电位器的阻值从而实现无级温控其丰富的GPIO引脚可以同时驱动OLEDI2C、红外发射管PWM、继电器数字输出和物理按键外部中断其内置的RTC实时时钟模块哪怕在深度睡眠模式下也能维持时间精度为定时开关机提供基础。这种用法让NodeMCU从一个“带Wi-Fi的MCU”蜕变为一个“带丰富外设的通用MCU”其价值被真正释放。一个常被忽略的细节是供电。市面上很多NodeMCU开发板自带AMS1117稳压芯片但该芯片在输入电压低于4.5V时效率急剧下降且发热严重。对于需要长期稳定运行的空调控制器我们强烈建议绕过板载稳压直接使用一个高效率的DC-DC降压模块如MP1584将空调内部12V电源通常从变压器次级获得稳定降至3.3V再供给NodeMCU。实测表明这种方案可将整机待机功耗从80mA降至12mA发热几乎为零寿命提升数倍。这再次印证了项目的核心哲学可靠性不是靠堆砌功能而是靠对每一个物理细节的敬畏与优化。2.3 “不Domotically Controlled”的深层含义一场关于控制权的静默革命“DC”在这里的否定远不止于技术层面的“不联网”。它指向一个更本质的命题谁在控制设备当你的空调被绑定到某个厂商的云平台你的每一次温度调节、每一度能耗数据都成为其训练AI模型的燃料。你支付了硬件费用却在无形中持续支付着“数据税”。而“AC !DC”项目通过物理隔离将控制权100%交还给用户。这种控制权体现在三个维度物理权开关、旋钮、按键触手可及、数据权所有传感器数据只在本地OLED上显示不产生、不存储、不传输任何字节、修改权固件开源你可以随时用Arduino IDE修改一行代码调整温控逻辑而无需等待厂商推送一个可能永远不会到来的固件更新。这并非技术保守主义而是一种主动的选择。就像一位经验丰富的木匠他不会因为有了电动工具就放弃对刨子角度、推力大小的手感控制。同理一个真正可靠的家居环境其基石必须是用户对核心设备拥有绝对、即时、无中介的掌控力。这个项目就是那把被精心打磨的刨子。3. 核心细节解析从电路到代码构建一个“不联网”的物理世界接口3.1 硬件选型与电路设计用最简方案达成最高鲁棒性硬件是“AC !DC”理念的物理载体其设计原则是“够用、可靠、易维护”。整个系统围绕NodeMCU推荐使用带有CH340 USB转串口芯片的版本兼容性最佳展开外围仅需四个核心模块红外发射模块这是与空调“对话”的唯一通道。我们不使用复杂的红外学习库而是采用最原始、最可靠的方式——直接复制原装遥控器的NEC编码。你需要一个红外接收头如VS1838B将其连接到NodeMCU的任意一个GPIO例如D2然后按下遥控器上的“开/关”、“制冷”、“温度”等按键用Arduino的IRremote库捕获并打印出对应的十六进制地址Address和命令Command。记录下这些关键码它们将成为你固件中的“宪法”。发射端只需一个普通的红外LED波长940nm和一个限流电阻220Ω直接连接到NodeMCU的另一个GPIO例如D1。这里的关键技巧是红外LED的驱动电流必须足够大实测350mA峰值电流效果最佳才能保证信号穿透力。为此我们不直接用GPIO驱动LED而是用一个NPN三极管如S8050作为开关GPIO控制三极管基极三极管集电极接LED阳极LED阴极接地。这样NodeMCU的3.3V GPIO就能安全地控制高达500mA的LED电流信号强度远超原装遥控器。温度传感与显示模块室温感知是智能温控的基础。我们摒弃了容易受干扰的DHT系列温湿度传感器选用工业级的DS18B20数字温度传感器。它采用单总线1-Wire协议抗干扰能力强精度可达±0.5°C且一根数据线可挂载多个传感器为未来扩展留余地。DS18B20的VDD引脚接3.3VGND接地DATA引脚接NodeMCU的D3并在DATA与VDD之间接一个4.7kΩ的上拉电阻。显示则采用0.96寸SSD1306 OLED屏幕I2C接口其VCC接3.3VGND接地SCL接NodeMCU的D1GPIO5SDA接D2GPIO4。I2C总线同样需要上拉电阻4.7kΩ。这个组合的优势在于所有通信都是数字的、抗干扰的、标准化的避免了模拟信号在长导线上传输时的噪声问题。人机交互模块这是“不联网”理念的具象化。我们设计了三个物理按键一个“模式切换”键循环切换“制冷/送风/关机”一个“温度”键一个“温度-”键。每个按键一端接地另一端分别接NodeMCU的D5、D6、D7并在按键与GPIO之间各接一个10kΩ的上拉电阻。这样当按键未按下时GPIO为高电平按下时GPIO被拉低触发一个外部中断。使用中断而非轮询可以极大降低CPU占用率让NodeMCU有更多资源处理红外信号的精确时序。提示所有按键的PCB布局务必确保按键引脚与NodeMCU的焊盘间距完全匹配。我曾因一个0.1mm的间距误差导致焊接后按键接触不良反复排查了三天才定位到问题。购买时请认准“NodeMCU v3.0”标准版其按键孔位是行业通用的。3.2 固件逻辑与关键代码让代码像机械钟表一样精准固件是整个项目的灵魂其核心在于“确定性”。以下是主循环loop()的伪代码逻辑它体现了“AC !DC”的精髓void loop() { // 1. 检查物理按键中断非阻塞 if (digitalRead(BUTTON_MODE) LOW) { // 模式键按下 currentMode nextMode(currentMode); // 切换模式制冷-送风-关机-制冷... sendIrCommand(currentMode); // 立即发送对应红外指令 updateDisplay(); // 刷新OLED显示 delay(200); // 按键消抖防止误触发 } // 2. 检查温度按键非阻塞 if (digitalRead(BUTTON_UP) LOW) { targetTemp constrain(targetTemp 1, 16, 30); // 温度范围16-30°C sendIrCommand(SET_TEMP, targetTemp); // 发送“设定温度”红外指令 updateDisplay(); delay(200); } // 3. 每2秒读取一次DS18B20温度非阻塞式延时 if (millis() - lastTempReadTime 2000) { float currentRoomTemp readDS18B20(); lastTempReadTime millis(); updateDisplay(); // 更新OLED上的实时温度 } // 4. 核心空调状态的“被动同步” // 我们不主动查询空调状态而是监听红外接收头。 // 当用户用原装遥控器操作空调时接收头会捕获信号。 // 我们的固件会解析此信号并自动更新本地的currentMode和targetTemp变量。 // 这样无论你是用我们的物理按键还是用原装遥控器 // OLED屏幕上的状态永远与空调实际状态保持一致。 // 这是“不联网”系统实现“智能感”的关键技巧。 }这段代码的精妙之处在于第4步“被动同步”。它放弃了传统“主从”思维不试图让微控制器去“管理”空调而是谦卑地“观察”空调。当原装遥控器发出指令红外接收头捕获到信号固件立刻解析并将currentMode和targetTemp更新为接收到的值然后刷新OLED。这使得整个系统具备了完美的“最终一致性”无论控制源是哪个自制按键 or 原装遥控显示状态永远正确。这背后是强大的IRremote库支持它能自动识别NEC、RC5等多种协议并提供decode_results结构体让你能轻松获取results.value命令码和results.address设备地址。你只需在代码中写一个switch(results.value)语句就能映射到你的内部状态变量。这种设计让系统拥有了极强的容错性和用户友好性——用户根本不需要学习一套新的操作逻辑他所有的习惯都被完整继承。3.3 电源与封装让控制器像空调的一部分那样沉默一个再好的设计如果供电不稳、外壳粗陋也会在用户体验上大打折扣。电源方面如前所述我们强烈推荐使用外部DC-DC模块。NodeMCU板载的AMS1117芯片在持续工作下表面温度可达70°C长期如此会加速电解电容老化。而一个优质的MP1584模块满载时温升不到10°C且纹波极小能为OLED和红外LED提供纯净的3.3V电源。实测数据显示采用DC-DC方案后OLED的显示亮度更加均匀红外信号的有效距离从3米提升至5米。封装则是一门艺术。我们不推荐使用现成的塑料盒子因为其散热和电磁屏蔽性能差。最佳方案是定制一个铝制外壳。铝材导热快能将NodeMCU和DC-DC模块的热量迅速散出其金属特性又能天然屏蔽外部电磁干扰保护敏感的红外接收电路。外壳内部所有线路必须使用带屏蔽层的双绞线。例如DS18B20的三根线VDD、GND、DATA应使用一根屏蔽双绞线其中一对线用于VDD和GND另一对线用于DATA和GND屏蔽层单端接地。这种布线方式能将长距离传输如从客厅吊顶到空调内机时的信号误码率从10%降至0.01%以下。最后OLED屏幕的安装务必使用柔性排线FFC并为其预留足够的弯曲半径避免反复弯折导致断裂。这些看似琐碎的细节共同构成了一个“看不见、听不到、摸不着但永远可靠”的控制器。4. 实操过程详解从零开始亲手打造你的“反智能”空调中枢4.1 开发环境搭建与固件烧录告别“一键安装”的幻觉虽然Arduino IDE是事实标准但“AC !DC”项目要求你对开发环境有更深一层的理解。第一步不是下载IDE而是理解编译链。ESP8266的Arduino核心其底层是基于Espressif官方的ESP8266_RTOS_SDK。这意味着当你在Arduino IDE里点击“上传”后台发生的是C代码被xtensa-lx106-elf-g编译器编译成机器码再由esptool.py烧录进Flash。理解这一点能让你在遇到“Com端口无法打开”或“Sync error”时快速定位是驱动问题、USB线问题还是esptool版本冲突问题。具体步骤如下安装Arduino IDE 2.x官网下载最新版避免使用老旧的1.6.x版本因其对ESP8266的支持已停止更新。添加ESP8266开发板支持进入文件 首选项在“附加开发板管理器网址”中粘贴https://arduino.esp8266.com/stable/package_esp8266com_index.json。然后工具 开发板 开发板管理器搜索esp8266安装esp8266 by ESP8266 Community版本选择3.1.2这是目前最稳定的长期支持版。选择正确的开发板与端口工具 开发板选择NodeMCU 1.0 (ESP-12E Module)工具 Flash Size选择4MB (FS:2MB OTA:~1019KB)工具 Upload Speed选择115200工具 端口选择你的CH340设备Windows下通常是COM3或更高Mac下是/dev/cu.wchusbserial*。关键一步禁用Wi-Fi自动初始化。在你的.ino文件顶部不要包含ESP8266WiFi.h。如果你不小心包含了编译器会报错这正是我们想要的——一个强制的、不可绕过的提醒。烧录过程本身很简单但有一个致命陷阱NodeMCU的GPIO0引脚。在烧录时GPIO0必须被拉低接地才能进入下载模式。许多廉价的NodeMCU开发板其板载的自动下载电路由CH340的DTR和RTS引脚控制并不总是可靠。因此我强烈建议你准备一根杜邦线在点击“上传”按钮的瞬间手动将GPIO0与GND短接待IDE显示“Connecting...”后再松开。这个看似原始的操作能将烧录失败率从30%降至接近0%。这是工程师与硬件打交道时必须学会的“手感”。4.2 红外码捕获与映射与你的空调建立“私人密钥”这是项目中最富挑战性也最具成就感的一环。你需要与你的空调“谈判”获取它的“语言”。步骤如下将VS1838B红外接收头的VCC、GND、OUT分别接到NodeMCU的3.3V、GND、D2。在Arduino IDE中打开文件 示例 IRremote IRrecvDumpV2示例代码。编译上传。打开串口监视器波特率115200对准接收头按下空调遥控器的“开/关”键。串口会打印出类似这样的信息Encoding : NEC Address : 0xFFA25D Command : 0xFF02FD Raw Timing: [102] 8950, 4450, 550, 550, 550, 550, ...这里的Address0xFFA25D是空调的“设备ID”Command0xFF02FD是“开/关”指令的“动作码”。你需要为每一个你关心的功能制冷、制热、送风、温度、温度-、风速等都捕获一组Address和Command。注意不同品牌的空调其NEC协议的“引导码”长度可能不同。有些是32位有些是16位。IRrecvDumpV2会自动识别。但如果你发现捕获的码总是不稳定可以尝试在代码中增加irrecv.setUnknownThreshold(100)提高解码灵敏度。捕获完成后你需要在自己的主程序中将这些码映射为内部状态。例如#define AC_ADDR 0xFFA25D #define AC_CMD_POWER 0xFF02FD #define AC_CMD_COOL 0xFF22DD #define AC_CMD_FAN 0xFF629D // ... 其他命令 void sendIrCommand(int command) { switch(command) { case POWER: irsend.sendNEC(AC_ADDR, AC_CMD_POWER, 38); // 38是载波频率kHz break; case COOL: irsend.sendNEC(AC_ADDR, AC_CMD_COOL, 38); break; // ... 其他case } }这个过程就是为你和你的空调之间建立了一套独一无二的、不依赖任何第三方云服务的“私人密钥”。4.3 OLED显示与UI设计用最少的信息传递最确定的状态OLED屏幕是用户与这个“反智能”系统唯一的视觉接口其UI设计必须遵循“少即是多”的原则。我们摒弃了所有动画、渐变、图标等“智能”元素只显示四行最核心的信息第一行AC MODE: COOL当前运行模式第二行TEMP SET: 26°C用户设定的目标温度第三行ROOM TEMP: 24.5°C当前室温DS18B20读数第四行STATUS: ON空调当前物理状态由红外接收头“被动同步”而来字体选择至关重要。我们不使用Arduino的默认Arial字体而是加载一个专为OLED优化的、高度为10像素的等宽字体如FreeMono9pt7b。等宽字体确保每一行字符数固定便于计算光标位置10像素的高度在0.96寸屏幕上既能保证清晰度又不会挤占过多空间。所有文本的刷新都采用“局部刷新”策略只有当某个数值真正发生变化时才重绘那一行。例如室温从24.5°C变为24.6°C我们只擦除并重绘第三行而不是清空整个屏幕再重绘。这能将OLED的刷新延迟从50ms降至5ms以内让界面响应如机械开关般迅捷。这种极致的优化正是“AC !DC”精神的体现不追求炫目只追求确定。5. 常见问题与独家排查技巧那些手册里永远不会写的坑5.1 红外信号“时有时无”不是代码问题是物理问题这是新手遇到的最高频问题。现象是有时按键能成功控制空调有时连续按十次都没反应。绝大多数人会怀疑是代码里的sendNEC函数没调用对或者delay时间不够。但真相往往更简单红外LED的安装角度和距离。红外光是直线传播的且发散角很小通常15°-20°。如果你把LED随意焊在PCB上其发光面可能朝向天花板或墙壁而不是正对着空调的红外接收窗。解决方案是用热熔胶将一个小型的、带透镜的红外LED如TSAL6200固定在一个可调节的塑料支架上支架用螺丝固定在空调内机的出风口附近。然后用一张白纸放在空调接收窗前打开NodeMCU观察LED点亮时纸上是否有一个清晰、明亮的光斑。如果没有就微调支架角度直到光斑出现。这个物理校准步骤比调试一百行代码都有效。5.2 DS18B20读数漂移接地回路是隐形杀手另一个经典问题是DS18B20的读数在几分钟内缓慢上升或下降比如从24.5°C慢慢爬到26.0°C而实际室温并无变化。这几乎100%是接地回路Ground Loop导致的。当你的NodeMCU、DC-DC模块、空调内机的金属外壳都连接到同一个大地时微小的电位差会在传感器的数据线上形成干扰电流。解决方法是“单点接地”将所有模块的GND只在NodeMCU的GND焊盘处连接在一起形成一个星型拓扑。DC-DC模块的输入GND来自空调变压器和输出GND供给NodeMCU必须通过一根粗导线直接焊接到NodeMCU的GND焊盘上而不是各自找地方乱接。同时DS18B20的GND线也必须焊接到同一个焊盘。这个看似微小的改动能将温度漂移从±2°C抑制到±0.1°C以内。5.3 OLED屏幕“闪屏”或“花屏”I2C总线的隐秘战争OLED在长时间运行后出现随机闪屏是I2C总线受到干扰的典型症状。I2C总线的SCL和SDA线本质上是一对长距离的、弱驱动的信号线极易成为电磁干扰的天线。除了前述的屏蔽双绞线布线外还有一个被广泛忽视的技巧在OLED的SCL和SDA引脚上各并联一个100pF的瓷片电容到GND。这个小小的电容是一个高频滤波器能将MHz级别的干扰噪声旁路掉而丝毫不影响I2C的100kHz或400kHz正常通信。我在一个项目中就是靠这两个100pF电容解决了困扰一周的闪屏问题。它们成本不到一分钱却是电子工程师口袋里的“银弹”。5.4 “被动同步”失效当原装遥控器成了“黑盒”“被动同步”的前提是你的NodeMCU能稳定接收到原装遥控器发出的所有信号。但现实中很多新款空调遥控器采用了“变频载波”或“加密协议”其红外信号无法被VS1838B这类通用接收头识别。此时不要绝望。一个有效的备选方案是放弃“被动同步”改用“主动心跳”。即让NodeMCU每隔30秒向空调发送一次“状态查询”指令如果空调支持的话或者发送一次“当前设定温度”指令这是一个无害的“写”操作即使空调不响应也不会造成影响。通过这种方式系统能定期“唤醒”自己确保状态不会长时间偏离。这虽然引入了一点点“主动性”但其通信仍然是单向的、本地的、不依赖网络的完美契合“AC !DC”的核心精神。实操心得在项目收尾阶段我总会做一个“压力测试”将NodeMCU控制器、空调、以及我的手机装有各种智能家居App放在同一个密闭的金属柜子里然后连续运行72小时。柜子模拟了最恶劣的电磁屏蔽环境。72小时后如果OLED显示依然稳定红外控制依然100%成功那么这个控制器才真正达到了“AC !DC”的交付标准。因为真正的可靠性不是在实验室里测出来的而是在最严苛的现实缝隙中熬出来的。6. 后续演进与个人体会当“不智能”成为一种新智能这个项目走到这里已经完成了它的核心使命它创造了一个物理上独立、逻辑上自洽、体验上确定的空调控制单元。但作为一名从业十余年的硬件工程师我深知一个真正有价值的项目其生命力往往在于它所激发的思考而非其完成的形态。在“AC !DC”稳定运行半年后我开始思考它的下一个形态。它会不会进化答案是肯定的但其进化方向与主流的“更智能”截然相反。我设想的演进路径有两条第一条是向更深处扎根。即将这套“离线、本地、物理”的哲学从空调控制器扩展到整个家庭能源管理的核心。想象一个基于ESP32其双核特性更适合多任务的中央网关它不连接互联网只通过RS485总线与家里的电表、水表、燃气表通信通过Zigbee 3.0注意是Zigbee不是Zigbee over IP它依然是一个纯粹的、本地的、Mesh网络与灯光、窗帘通信。所有数据只存储在本地一个微型SD卡上供用户通过一个简单的Web界面运行在ESP32自身的Web服务器上无需外部网络查看。这个网关的唯一“云”功能是当检测到异常能耗如凌晨三点电表读数突增时通过一个独立的、电池供电的蜂鸣器发出本地警报。这是一种“有边界的智能”它用技术守护了用户的隐私和自主权而非将其商品化。第二条是向更广处延展。即将“AC !DC”的设计方法论作为一种可复用的模板推广到其他领域。例如为一个老式的机械钢琴加装一个基于ESP32的“无声练习系统”它用高精度麦克风阵列拾取琴键声音通过本地DSP算法实时生成耳机里的合成音色所有处理都在板载完成不上传任何音频片段。再例如为一个儿童玩具车加装一个基于Arduino Nano的“物理编程套件”孩子用磁吸式模块开关、LED、蜂鸣器在车身上拼接Nano读取模块ID执行预设的物理逻辑整个过程没有App没有蓝牙只有孩子手指触摸模块时车轮真实转动的反馈。这些项目其技术难度或许不高但它们共同指向一个未来技术不再是将我们拉向云端的绳索而是将我们更深地锚定在物理世界、感官世界和自主世界里的基石。我个人在实际操作中最大的体会是“不做什么”往往比“做什么”更需要勇气和智慧。在信息爆炸、功能过剩的时代敢于为一个设备划出清晰的边界明确地说“这个功能我不做”这本身就是一种强大的设计力量。它迫使你去思考这个设备存在的最本质的意义是什么对用户而言什么才是不可妥协的确定性当你的空调控制器不再需要一个用户名和密码不再需要等待App的加载动画不再需要担心某天厂商关闭了服务器它就回归了它最本真的角色一个安静、可靠、永远在你伸手可及之处为你送来一阵凉风的伙伴。这或许就是“AC !DC”这个名字最深沉、也最温柔的注脚。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价