基于 MediaTek LinkIt™ Smart 7688 的智能分区空调控制系统
元器件与物料
| 元器件 | 数量 | 备注 |
|---|---|---|
| Espressif ESP8266 ESP-01 | 1 | 温湿度节点 WiFi 透传 |
| Arduino Nano R3 | 1 | 备选温湿度节点主控 |
| Microchip ATtiny85 | 1 | 超低功耗温湿度节点主控 |
| DHT22 温湿度传感器 | 1 | 楼上/楼下各一 |
| Tower Pro MG996R 金属齿舵机 | 2 | 控制风管挡板开合 |
软件与在线服务
- Arduino IDE (添加 LinkIt Smart 7688 Duo 开发板包)
项目背景
痛点:全屋供暖成本高
首个冬天用电暖器局部取暖,电费翻倍;第二年买 WiFi 恒温器虽方便但仍全屋供暖。运动传感器日志显示:工作日 18:00-21:00 全家在楼下,21:00 后上楼就寝,作息极其规律。
对策:分区风管挡板 + 定时/占用控制
商用多区 HVAC 硬件昂贵且软件陈旧。自建方案:现有 WiFi 温湿度节点 + 小型舵机驱动风管挡板,核心控制器跑 Web 应用下发指令。




核心硬件:LinkIt Smart 7688 Duo HDK
集成 OpenWRT Linux (MT7688) 与 Arduino 兼容 MCU (ATmega32U4) 于一板,自带 WiFi、GPIO、UART、I2C、PWM。三步上手:通电连 AP → Web 配置家庭 WiFi → Arduino IDE 添加开发板包。支持串口/无线下载,极其便捷。


启用 MCU 直连 WiFi (Yun Bridge 兼容)
SSH 登录板卡,执行:
uci set yunbridge.config.disabled='0'
uci commit
/etc/init.d/yunbridge restart
即可在 Arduino 草图中用 Bridge 与 HttpClient 访问本地 Web 服务。

软件架构
三层协作:
- 分布式温湿度节点 (ATtiny85/Nano + DHT22 + ESP8266) 定时 HTTP GET 上报至 LinkIt 本地 Web 服务。
- LinkIt 上运行的 PHP WebApp (uHTTPd + PHP) 汇总数据,按时间/占用决定挡板状态 (0=全屋, 1=仅楼下, 2=仅楼上),写入
vent.txt;提供手机友好的 Web 界面手动覆盖。 - MCU 端草图 每 60 秒轮询
vent.txt,驱动两路舵机开合对应挡板。




硬件安装
舵机舵盘直连挡板杠杆,铝角支架 + 不锈钢柱固定舵机机身,后续将加扎带防松动。LinkIt 安装在阁楼风管旁,供电取自现有插座。


核心代码
MCU 端:LinkIt Smart Duo WiFi Vent (C++)
#include <Servo.h>
#include <Bridge.h>
#include <HttpClient.h>
Servo upservo, downservo;
int uppos = 0, downpos = 0;
const char* host = "192.168.1.80";
int dopen = 80, dclose = 0, uopen = 140, uclose = 0;
void setup() {
upservo.attach(9); downservo.attach(10);
pinMode(13, OUTPUT); digitalWrite(13, LOW);
Bridge.begin(); digitalWrite(13, HIGH);
}
void wholehouse() { /* 两舵机全开 */ }
void downstairs() { /* 下开上关 */ }
void upstairs() { /* 上开下关 */ }
void loop() {
HttpClient client;
String url = "https://" + String(host) + "/vent.txt";
client.get(url);
while (client.available()) {
char c = client.read();
if (c == '2') upstairs();
else if (c == '1') downstairs();
else if (c == '0') wholehouse();
}
delay(60000);
}
温湿度节点:WiFi Temp Sensor (C++)
const char* host = "192.168.1.80";
const char* devID = "downstairs";
#include <SoftwareSerial.h> SoftwareSerial ser(10,11);
#include <DHT.h> #define DHTPIN 2 #define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
long utime = 300000; // 5分钟
void setup() {
Serial.begin(9600); ser.begin(9600);
ser.println("AT+RST"); delay(10);
dht.begin();
// 25秒等待WiFi连接...
}
void loop() {
float t = dht.readTemperature(true);
int h = dht.readHumidity();
float hi = dht.computeHeatIndex(t, h);
// AT+CIPSTART TCP 连接 host:80
// 构造 GET /tempupdate.php?ID=...&field1=t&field2=h&field3=hi
// AT+CIPSEND 发送
delay(utime);
}
WebApp:Vent.php (PHP)
<html><head><style>.myButton{...}</style></head><body><div align="center">
<a href="vent.php?zone=2" class="myButton">Upstairs Only</a><br><br>
<a href="vent.php?zone=0" class="myButton">Whole House</a><br><br>
<a href="vent.php?zone=1" class="myButton">Downstairs Only</a><br><br>
<?php
$f = fopen("vent.txt","r"); $status = fgets($f);
if($status!="") echo "<h1>Vents currently open for ";
if($status=="0") echo "the Whole House";
if($status=="1") echo "Downstairs Only";
if($status=="2") echo "Upstairs Only";
echo "<br>"; fclose($f);
if($_GET["zone"]!=""){
$f = fopen("vent.txt","w+");
echo "<h1>Sending command to open vents for ";
if($_GET["zone"]=="0") echo "the Whole House";
if($_GET["zone"]=="1") echo "Downstairs Only";
if($_GET["zone"]=="2") echo "Upstairs Only";
echo "</h1>"; fwrite($f,$_GET['zone']); fclose($f);
}
?>
</div></body></html>
Android WebApp Manifest (JSON)
{
"name": "LinkIt Smart Vent",
"icons": [{"src":"LinkIt_icon_36.png","sizes":"36x36","type":"image/png","density":0.75},
{"src":"LinkIt_icon_48.png","sizes":"48x48","type":"image/png","density":1.0},
{"src":"LinkIt_icon_128.png","sizes":"128x128","type":"image/png","density":1.0},
{"src":"LinkIt_icon_192.png","sizes":"192x192","type":"image/png","density":1.0}],
"start_url": "vent.php", "display": "standalone", "orientation": "portrait"
}
改进计划
- 3D 打印专用舵机支架,消除间隙;升级金属齿大扭矩舵机。
- 逐房间加装舵机,单 LinkIt 最多可驱动 10+ 路 PWM。
- 对接家庭自动化系统,基于实时占用而非定时控制挡板。
- 接入天气预报 API,提前预热。
- WiFi 恒温器开放 API 后实现联动。
原理图
温湿度节点原理图:ATtiny85/Nano + DHT22 + ESP8266 软串口透传 (见 rain_gauge_NtjqXF6QEw.fzz)。
制造工艺
- 集成二维码、RFID与体温验证的门禁控制系统
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- 自制 Arduino 电视遥控器:3D 打印外壳、电池供电、支持三大品牌协议
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
- Windows 10 Cortana 蓝牙控制 Arduino LED:UWP 应用开发全流程
- ThimbleKrox:基于 Arduino Micro 与 MPU-6050 的指戴式鼠标控制器
- 提升质量管控:3D 打印工装赋能制造精度
- GÖPEL携手Universal Robots UR10e协作机器人革新汽车质量控制
- 智慧采购:AI与人类洞察的融合
- Millport SmartLathez 1740 CNC车床:精密与动力的结合
- DATA MODUL 推出 23.1 英寸超薄 TFT 显示器,支持智能 Wi-Fi 控制