当前位置: 首页 > news >正文

你的旧安卓手机别扔!用Termux API把它改造成智能家居控制中心(支持红外/通知/传感器)

用闲置安卓手机打造零成本智能家居中枢:Termux API实战指南

抽屉里那台积灰的旧安卓手机,可能比你想象中更有价值。当大多数人的旧设备沦为电子垃圾时,极客们已经发现了一个隐藏玩法——通过Termux将其改造成完全本地化的智能家居控制中心。不同于需要购买网关、中枢设备的传统方案,这种改造不仅零成本,还能充分利用手机既有的红外发射器、各类传感器和联网能力。下面我们将深入解析如何通过Termux API实现这个创意方案。

1. 硬件准备与环境配置

在开始前,确保你的旧安卓手机满足以下条件:

  • 系统版本在Android 7.0以上(部分API需要更高版本)
  • 具备红外发射功能(大部分2015年后机型支持)
  • 传感器完好(通常需要加速度计、光线传感器等)
  • 存储空间剩余2GB以上

必要工具安装:

pkg update && pkg upgrade pkg install termux-api python pip install flask requests termux-setup-storage

提示:执行termux-setup-storage会触发Android的存储权限请求,必须允许才能正常访问传感器数据和文件系统

验证基础功能是否正常:

termux-infrared-frequencies termux-sensor -l

正常情况应分别输出红外频率范围和传感器列表。若报错,可能需要检查设备硬件兼容性。

2. 红外家电控制实战

利用手机红外模块控制传统家电是改造的核心场景。以控制空调为例,我们需要先学习原始红外信号:

步骤1:捕获红外信号

# 需要另一台红外遥控器配合 echo "准备学习红外信号,将遥控器对准手机红外发射器" | termux-tts-speak termux-infrared-transmit -f 38000 # 此时按下空调遥控器电源键,观察终端输出

步骤2:存储信号特征将捕获的十六进制信号保存为JSON文件:

# save_ir_code.py import json code = "0000 006D 0000 0022 00AC 00AB..." # 替换为实际捕获的信号 with open('ac_power.json', 'w') as f: json.dump({"freq":38000, "pattern":code}, f)

步骤3:创建控制接口用Python构建REST API来控制空调:

# ir_server.py from flask import Flask import os, json app = Flask(__name__) @app.route('/ac/<command>') def control_ac(command): with open(f'ac_{command}.json') as f: data = json.load(f) os.system(f'termux-infrared-transmit -f {data["freq"]} {data["pattern"]}') return f'AC {command} success' if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)

启动服务后,通过http://手机IP:8080/ac/power即可远程控制空调开关。同样的原理可以扩展到电视、风扇等设备。

3. 环境监测与自动化响应

旧手机的传感器能变身高精度环境监测站。以下是几个典型应用场景:

温湿度监控报警系统

# monitor.sh while true; do temp=$(termux-sensor -s "温度传感器名称" -n 1 | jq '.values[0]') if (( $(echo "$temp > 30" | bc -l) )); then termux-notification --title "高温警报" --content "当前温度${temp}℃" termux-tts-speak "警告,环境温度过高" fi sleep 300 done

智能灯光调节根据环境光传感器数据自动调节屏幕亮度作为夜灯:

# auto_light.py import json, os from time import sleep while True: light = json.loads(os.popen('termux-sensor -s "光线传感器名称" -n 1').read()) lux = light['values'][0] brightness = min(255, max(10, int(lux * 2.5))) os.system(f'termux-brightness {brightness}') sleep(60)

将上述脚本设置为开机自启动:

termux-job-scheduler --script /path/to/auto_light.py --period-ms 3600000

4. 通知中枢与智能联动

旧手机可以聚合各类智能设备通知,并实现跨平台联动:

微信消息转发到Telegram

# notify_forward.py import requests from datetime import datetime def on_notification(id, title, content): if "微信" in title: tg_bot_token = "YOUR_BOT_TOKEN" chat_id = "YOUR_CHAT_ID" message = f"📱微信消息 @ {datetime.now()}\n{content}" requests.post( f"https://api.telegram.org/bot{tg_bot_token}/sendMessage", json={"chat_id": chat_id, "text": message} ) while True: # 实际应用中需通过Termux:API监听通知 pass

门铃摄像头联动当检测到门铃通知时:

  1. 自动截图保存
  2. 通过Telegram发送警报
  3. 本地TTS语音播报
termux-camera-photo -c 0 front_door.jpg termux-media-scan front_door.jpg curl -X POST "https://api.telegram.org/..." -F photo="@front_door.jpg" termux-tts-speak "门口有人到访,请及时查看"

5. 进阶功能与系统优化

要使这个中枢系统长期稳定运行,还需要考虑以下优化:

能耗控制方案

# 限制CPU频率 su -c 'echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor' # 关闭不必要的传感器 termux-sensor -c

网络可靠性增强

# network_watchdog.py import os, time def check_network(): return os.system("ping -c 1 8.8.8.8") == 0 while True: if not check_network(): os.system("termux-wifi-enable false && sleep 5 && termux-wifi-enable true") os.system('termux-toast -g top "网络已重置"') time.sleep(60)

数据可视化界面使用Termux内置的Web服务器展示传感器数据:

# sensor_dashboard.py from flask import Flask, render_template_string import subprocess app = Flask(__name__) TEMPLATE = """ <html><body> <h1>环境监测面板</h1> <div>温度: {{temp}}℃</div> <div>湿度: {{humi}}%</div> <svg width="400" height="100"> <rect x="0" y="0" width="{{light}}%" height="20" fill="blue"/> </svg> </body></html> """ @app.route('/') def dashboard(): temp = subprocess.getoutput('termux-sensor -s 温度传感器 -n 1 | jq ".values[0]"') return render_template_string(TEMPLATE, temp=temp, humi=45, light=70) if __name__ == '__main__': app.run(port=8080)

这个方案在我家稳定运行了8个月,成功替代了原本需要花费上千元的智能家居中枢设备。实际使用中发现,2018年发布的小米8在持续运行时的日均耗电量约为35%,配合旧手机的大电池容量,完全不需要外接电源。

http://www.jsqmd.com/news/765565/

相关文章:

  • 告别盲猜:用Process Monitor给你的软件行为做一次“全身体检”(以Chrome/微信为例)
  • 探索模型广场功能并找到适合文本摘要任务的最佳模型
  • 从哈工大论文到你的DSP:ESO谐波抑制算法移植实战,附C代码核心片段与调试心得
  • Omdia最新研究表明:蜂窝物联网数据流量到2035年将达到218.6艾字节
  • 如何永久保存微信聊天记录:三步实现完整备份与深度分析
  • 如何让Direct3D 8游戏在现代Windows上流畅运行:d3d8to9终极指南
  • 终极音乐解锁解决方案:Unlock-Music开源工具详解
  • 零成本实现家庭服务器24小时稳定在线:luci-app-aliddns动态域名解析终极指南
  • 高效智能的免费小说下载工具:novel-downloader终极解决方案
  • Docker 27车载容器“瘦身后遗症”预警:27种轻量化陷阱与反模式(含3家头部车企实车崩溃日志分析)
  • AISMM模型五个等级——不是阶梯是悬崖:Level 3未达标=AI系统法律免责权自动失效
  • 创业团队如何利用 Taotoken 统一管理多个 AI 模型的 API 调用与成本
  • 避坑指南:在Ruoyi登录流程中集成密码强制修改,我踩了这三个Token管理的坑
  • 利用taotoken多模型能力为github开源项目构建智能助手
  • 2026届毕业生推荐的五大AI辅助写作方案推荐
  • 5分钟学会Unity游戏去马赛克:六大插件完全指南
  • 特征工程:从5个核心维度构造水果销售预测特征
  • AI根本守不住秘密!不依靠大模型的输出过滤才是铜墙铁壁
  • 打破维度边界:用开源工具将沉浸式VR视频转为传统2D格式
  • 2026 年 CS 1.6 死斗服务器开服指南(Linux)
  • 别再只怪代码了!从硬件角度排查Arduino ESP32/UNO异常复位:电源、噪声与接地的坑
  • 轻量级AI聊天界面的技术实现:Ollama Web UI Lite深度解析
  • 2026年5月黏糊麻辣烫加盟避坑:杭景元东北老式麻辣烫品牌推荐榜,保姆式运营与精细化利润分析指南
  • MCP 2026推理引擎集成实战:5步完成LLM服务低延迟接入,实测P99延迟压降至<87ms
  • 土豆膨大用肥技术强的厂家推荐 - 品牌企业推荐师(官方)
  • Masonry
  • GetQzonehistory完整教程:5分钟永久保存QQ空间所有历史记录
  • AI性格越好越爱瞎编!Nature揭开大模型致命的温柔
  • AI赋能算法设计:借助快马平台生成智能车竞赛弯道模糊控制优化方案
  • 如何永久保存网络小说:novel-downloader完整指南