惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
WordPress大学
WordPress大学
S
Schneier on Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
AWS News Blog
AWS News Blog
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
NISL@THU
NISL@THU
T
Tor Project blog
L
Lohrmann on Cybersecurity
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
G
GRAHAM CLULEY
博客园_首页
K
Kaspersky official blog
GbyAI
GbyAI
P
Privacy & Cybersecurity Law Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
AI
AI
爱范儿
爱范儿
Cloudbric
Cloudbric
MongoDB | Blog
MongoDB | Blog
Martin Fowler
Martin Fowler
aimingoo的专栏
aimingoo的专栏
I
InfoQ
腾讯CDC
O
OpenAI News
F
Full Disclosure
P
Privacy International News Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Webroot Blog
Webroot Blog
Forbes - Security
Forbes - Security
MyScale Blog
MyScale Blog
L
LangChain Blog
H
Help Net Security
C
CERT Recently Published Vulnerability Notes
C
Cisco Blogs
人人都是产品经理
人人都是产品经理
S
Security @ Cisco Blogs
T
Tenable Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
News and Events Feed by Topic
博客园 - 三生石上(FineUI控件)
Attack and Defense Labs
Attack and Defense Labs
Apple Machine Learning Research
Apple Machine Learning Research

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
购买配件
2017-12-21 · via 少数派

我家有三个单体空调,型号比较老,每次要在各自的控制面板上调节开关和温度,也没有定时控温功能。如果想实现远程操控(比如在手机上),最简单的方案就是 Nest Thermostat。然而抠门如我一看每个售价$169,三个要五百多美元,便萌生自己改装的念头。

可行吗?根据电路常识推测,空调各部分工作应该是由相应 IO(Input / Output)的高低电位触发,那么只要找到控制面板所连结的 IO,就可以取而代之。换个角度,即使空调结构是黑盒子,既然 Nest Thermostat 能用于大部分空调型号,这说明:1,空调的 API(操控界面)是高度统一的;2,只要能模拟 Nest 的行为,就可以实现从空调 API 到 Nest API 的转换;3,网上一定有许多通用的 DIY 开源项目。

在这个课题上,我花了一半时间找合适的开源项目。你需要综合评价:对方解决的问题是否和你一致,交互界面你是否喜欢,配件是否经济实惠,软硬件系统是否强健,是否有后续开放性,可否融合到更广的智能家居平台等等。由于是第一次改装家电,后两个因素暂时不考虑。因为我手头有多余的树莓派 Zero,在定制的 Linux 系统下可以轻松安装 Web App,通过 ssh 编程也极为简便,于是就以 thermostat + raspberry pi + web 为关键词搜索,最终选中了这个方案:PyStat。

PyStat 的用户界面是一个网页:

用户界面非常直观:第一行显示室温和目标温度。第二行的三个圆圈表明相应部件是否工作。比如,在制热时,制热和风扇同时工作,所以第1、3个圆圈是亮的,中间代表制冷的不亮。第三行的三个方块是用户选择的工作模块,最多可选一个。注意无论选制冷还是制热,风扇始终是工作的。第四行是温度选择。选好模式和温度后点击 Submit Changes 即可传送指令。最下方是由 darksky.net API 提供的天气预报。

因为是 Web App ,就可以在家里任何浏览器上操作,比如手机和 Tablet 上:


(打折时淘的 Fire Tablet 重获生机,可以嵌到墙里)

因为是内网页面,你只能在联入家里 Wifi 的设备上操控,即不能在回家路上事先打开空调——这是这个方案的缺点之一。我会在以后的系统智能家居方案中探索这个需求。

如果你喜欢这个界面,就可以下载代码库,撸起袖子干了:

购买配件

树莓派 Zero W $10 + shipping

Micro SD 卡(至少8G) $8

4 Channel Relay $7

DS18B20温度探头 $6

一个4.7k~10k欧姆的电阻

导线若干、Micro USB 充电线一根

总价:$31+。除了树莓派以外的配件在 AliExpress 上买便宜得多,只是要等2-3周。

此外,你可能还需要用于测试的 LED 灯若干、面包版、电焊工具、micro HDMI 线、micro USB hub、USB 鼠标键盘等辅助配件,以上都不算在耗材里。

预备树莓派

1,在树莓派上安装 Rasbian 系统,参考这里。建议安装这个带图形桌面的版本。

2,通过 Micro HDMI 连显示器,在图形界面里连上家里的 Wifi。

3,如果选择 ssh 联入,记得在 raspi-config 设置里 enable ssh。

4,下载代码:https://github.com/zhaozhichen/PyStat

设置温度探头

我先扯开一点,讲一下空调是怎么控制温度的。

纠正一个许多人都有的错误印象:(以制热为例)温度调得越高,空调功率越大,室温升温越快。事实上,对大部分普通空调,制热制冷功率是恒定的,和所调温度无关。比如室温是10度,制热目标温度设为20度,在制热过程中室温逐渐升高,当到达目标温度加容错值(比如2度),也就是22度时,空调停止工作。此后,室温逐渐回落,当落到目标温度减去容错值,也就是18度时,制热再次开启,如此往复保证室温在设定温度周围(18~22度)震荡。所以,设定温度高低只能决定最终稳定的室温,而不能改变初始升温的速度。

说这个原理,是因为我们要在程序里复现以上逻辑,也就是说除了控制制热/制冷/风扇的输出信号,我们还需要测量室温的输入信号。

温度是模拟量。不同于 Arduino,树莓派只支持数字输入,于是需要 DS18B20 这样的 1-Wire 设备将模拟信号转换为脉冲数字信号,然后解码为模拟量,保存在 /sys/bus/w1/devices 中。请参考这个 教程,并将你的温度探头序列号复制到这里。注意:我们用4号接口。

安装 Web App

我自己不会做网站,尤其不懂前端,对 LAMP 结构的 web server 敬而远之。直到发现基于 python 的 flask,三行代码写 Hello World,真是找到了救命稻草,一见钟情。Flask 的 web server 教程请参考这里

这个系统的主代码是 ThermostatMain.py,初次运行时开启三个线程,分别是 :

  • ThermostatService

    • 从 current.set 读取指令(模式:制热/制冷/风扇,目标温度);

    • 通过温度探头读取室温;

    • 通过 GPIO 输出制热/制冷/风扇的开关。

  • ThermostatWeb

    • web server,通过温度探头读取室温显示在网页上;

    • (可选)从指定的天气信息服务商 API 读取所在地气候、天气预报等信息。推荐 darksky.net 提供的 API;

    • 将用户在网页上做的指令保存于 current.set。

  • ThermostatScheduler

    • 定时开关,这个没有用户界面,我也没有用上。

然后循环运行以下任务:

  • 记录室温、指令、天气情况等信息,通过 sqlite3 保存到数据库中;

  • 检测各进程,及时报错。

运行主程序:

$ Python3 ThermostatMain.py

然后在其他设备上访问:192.168.X.X:5000(填写树莓派的 IP 地址),应该可以看到用户界面。

这是 web app 的单元测试(unit test)。

树莓派电路

如果你没有在树莓派上用过 python 的 GPIO 库,可以参考这个教程。我们用的树莓派的 GPIO 针脚排布在这里,此外可以在这里看到更详细的参数。我们用到了4个接口,除了用于前文提到的用于温度探头的4号口,其他三个输出口分别是:

  • 制热开关:17

  • 制冷开关:27

  • 风扇开关:22

除此之外,还需要用到3.3伏电位和地线(ground)。所以,焊接后的电路如下(温度探头的焊接方式在前文提到的教程里):

(由于我用的是树莓派 Zero,不带 Wifi 功能,所以需要外接 USB Wifi 模块。如果你买的是我推荐的树莓派 Zero W,就可以忽略这个模块。)

在接空调之前,建议用 LED 灯模拟空调,检测制热/制冷/风扇在网页提供的指令下是否工作正常。比如,在17口和地线之间串联进一个 LED 灯加一个大于1k的电阻(防止 LED 灯电流过载而烧毁),如果空调应该处于制热模式,灯应该亮。

这是树莓派的单元测试。

注意:由于我们用到的 Relay 的开关和树莓派 GPIO 的输出是相反的,所以你在用 LED 灯测试时需要在这里将输出指令掉转过来。)

空调电路

尽量获得空调的手册(至少是比较接近的型号),了解遥控模式的使用方式。比如,这个是和我家空调型号比较接近的控制板布局(摘自手册):

注意 C、E、F 区。E 区中的 Remote 必须调至 ON,这意味着你将通过 C 区针脚操控空调,同时也意味着你放弃了控制面板的操作权。C 区的针脚布局如下:

每个空调的布局不尽相同,但一般都至少含有 R、G、W、Y、C 五个接口。含义如下:

  • R:24伏高电位

  • C:地线 Ground

  • G:风扇

  • W:制热

  • Y:制冷

当 W 和 R 相连,W 就获得了高电位,制热模式开启。风扇和制冷同理。

这种通用接口称为 Thermostats C Wire,可以参考这篇介绍

在连入空调前,建议你先测试遥控模式下针脚是否工作正常。拿一根导线,将 R 和 G 连上,应该可以触发风扇工作。如果不行,将空调电源拔掉再接上试试。

这是空调遥控模块的单元测试。

注意,我们在树莓派上也连出五根线,分别对应以上五个接口。但是,树莓派的电位是3.3伏,而空调面板使用24伏,不能直接对接,需要用转换电压的 Relay,电路示意图如下(摘自这里):

(空调地线不用接,因为它们最终连到同一个 Ground:地面——字面意思,非冷笑话。)

实物图(我用的是8通道 Relay,其实只用了其中三个通道):

最后,连入空调电路:

最后运行主程序,进行端到端成品测试(End to end test)。

祝你成功!

补充

1,设置静态IP:

sudo vi /etc/dhcpcd.conf

加上(第二行自选IP):

interface wlan0 static ip_address=192.168.X.X/24

static routers=192.168.0.1

static domain_name_servers=192.168.0.1

2,开机启动程序:

sudo crontab -e

加上:

@reboot sh /home/pi/PyStat/launch.sh >/home/pi/logs/cronlog 2>&1