亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino Nano 打造 JARVIS v1 家庭自动化:分步教程

元器件与材料

所需工具

软件与在线服务

项目简介

缘起

作为钢铁侠粉丝,我深受 JARVIS 语音助手启发,决心自制家庭自动化系统。虽有现成方案,但我选择用 Arduino 亲手实现。

工作原理

通过 Arduino 和安装在各房间的继电器电路控制灯、风扇、电视等设备。手机通过蓝牙发送指令到 Arduino,后续可扩展更多功能。核心任务是手机采集语音指令并经蓝牙发布给 Arduino,再由 Arduino 驱动继电器开关设备。

硬件搭建

电路极简,总成本不足 $20。

步骤 1:元件清单

Arduino Nano 打造 JARVIS v1 家庭自动化:分步教程

步骤 2:接线

Arduino Nano 打造 JARVIS v1 家庭自动化:分步教程

Arduino → 蓝牙模块

Arduino → 继电器板

演示用 4 路继电器,可控 4 台设备。

步骤 3:代码

String voice;
int led1 = 2, led2 = 3, led3 = 4, led4 = 5, led5 = 6;

void allon() {
  digitalWrite(led1, HIGH); digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH); digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
}
void alloff() {
  digitalWrite(led1, LOW); digitalWrite(led2, LOW);
  digitalWrite(led3, LOW); digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
}

void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT); pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT); pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
}

void loop() {
  while (Serial.available()) {
    delay(10);
    char c = Serial.read();
    if (c == '#') break;
    voice += c;
  }
  if (voice.length() > 0) {
    Serial.println(voice);
    // 批量控制
    if (voice == "*all on")  allon();
    else if (voice == "*all off") alloff();
    // 单独控制
    else if (voice == "*TV on")        digitalWrite(led1, HIGH);
    else if (voice == "*fan on")       digitalWrite(led2, HIGH);
    else if (voice == "*computer on")  digitalWrite(led3, HIGH);
    else if (voice == "*bedroom lights on")  digitalWrite(led4, HIGH);
    else if (voice == "*bathroom lights on") digitalWrite(led5, HIGH);
    else if (voice == "*TV off")       digitalWrite(led1, LOW);
    else if (voice == "*fan off")      digitalWrite(led2, LOW);
    else if (voice == "*computer off") digitalWrite(led3, LOW);
    else if (voice == "*bedroom lights off") digitalWrite(led4, LOW);
    else if (voice == "*bathroom lights off") digitalWrite(led5, LOW);
    voice = "";
  }
}

步骤 4:手机应用

暂用现成 App:BT Voice Control for Arduino (SimpleLabsIN 开发)
下载:apkpure.com

步骤 5:演示视频

当前功能限于开关控制,但已具备基础自然语言处理能力,可移植到其他项目。感谢 Hackster.io 平台支持创客创新!

项目仓库:GitHub

原理图

Arduino Nano 打造 JARVIS v1 家庭自动化:分步教程

制造工艺

  1. 树莓派打造家庭自动化系统:手机远程控制灯风扇大门
  2. 自制家用作业书写机:Arduino + GRBL 控制的笔绘仪
  3. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  4. 自制可拳击的可编程键盘按钮:基于 Arduino 与压电元件的分步指南
  5. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
  6. Arduino 合成乐音:从零实现 88 键钢琴全音域
  7. 基于 Arduino 和超声波传感器的自动门控制系统
  8. 基于 Arduino Mega 与物联网传感器的高级家庭监控系统
  9. 蓝牙遥控 Arduino 小车完整 DIY 指南
  10. Arduino Modbus 从机开发全攻略:基于 RS485 扩展板的分步实现指南
  11. 用 Arduino UNO 自制迷你钢琴 — 图文教程
  12. DIY 迷你示波器:基于 Arduino Nano 与 OLED 显示屏的逐步教程