回家自动亮灯:Arduino Yun + iPhone GPS 智能照明
零部件清单
| 组件 | 数量 |
|---|---|
| Arduino Yun | 1 |
| LED | 1 |
| 220 Ω 电阻 | 1 |
| 面包板 | 1 |
| 跳线 | 若干 |
| Apple iPhone | 1 |
在线服务
- Arduino Web Editor
- Blynk App (iOS/Android)
项目原理
利用 Blynk 的 GPS 定位功能,手机实时上报坐标给 Arduino Yun。Yun 将手机坐标与预设“家”坐标比对,判断是否在约 60 米范围内的正方形区域内。在区域内点亮 LED(实为继电器控制家庭照明),离开则熄灭。
功能逻辑
// 伪代码核心逻辑
if (isInParameter(latitude, longitude)) {
TurnLEDOn(); // 进家范围 → 亮灯
} else {
TurnLEDOff(); // 离开范围 → 灭灯
}
Yun 自动以家坐标为中心生成四角坐标形成正方形判定区。
制作步骤
1. 硬件电路
LED 经 220 Ω 电阻接 Yun 数字引脚(原文示意图为 D13),其余引脚悬空。
2. 获取家庭坐标
用 Google Maps 长按家庭位置,复制经纬度填入代码 myLocationLat / myLocationLng。
3. Blynk 配置
- 安装 Blynk App,注册账号,获取 Auth Token
- 新建项目选 Arduino Yun,添加 “GPS” Widget 绑定 Virtual Pin V0
- 在 App 中开启 GPS 流式上报
4. 代码关键段
// 读取手机 GPS
BLYNK_WRITE(V0) {
latitude = param[0].asFloat();
longitude = param[1].asFloat();
}
// 判定是否在家范围
if (latitude <= maxLat && latitude >= minLat &&
longitude <= maxLng && longitude >= minLng) {
geolocation = 1;
} else {
geolocation = 0;
}
// 控制 LED
if (geolocation == 1) digitalWrite(pinLED, HIGH);
else digitalWrite(pinLED, LOW);
5. 变量配置
auth[]:填 Blynk Auth TokenmyLocationLat/Lng:填家庭坐标proDebug:调试时设 1 并可在代码中硬编码测试坐标
扩展建议
将 LED 换为继电器模块即可控制真实家庭照明。代码稍加修改可移植到 ESP8266/ESP32 等自带 WiFi 的板卡。注意:手机需开启移动数据,Blynk 免费版每日有一定请求限额。
制造工艺
- Arduino Mega 按键 PWM 调光:三阶段渐变 LED 实战教程
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino Cloud 集成:随时随地监控家中温度
- 打造功能完整的 Arduino 驱动 3D 打印机械臂:分步指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino + TEA5767 打造 FM 收音机:Nokia 5110 显频谱/信号强度/立体声
- Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里
- Arduino RGB 颜色混合器 – 分步制作教程