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

J.A.R.V.I.S. - 基于 Arduino 101 的智能家居语音助手系统

核心硬件清单

组件数量功能
Arduino 101 (Intel Curie)1主控,内置 BLE 与 6 轴 IMU
Arduino 4 路继电器扩展板1控制风扇、灯、咖啡机等高压负载
Arduino GSM Shield V21短信远程查询/控制
HC-05 蓝牙模块1与 Android App 通信
电能表 + LDR 光敏电阻1脉冲计数测量用电量
LM358N 比较器电路1将 LDR 模拟信号整形为数字脉冲

辅助工具与软件平台

系统架构与工作流程

整体信号流向

  1. 语音输入 → Android App (Google 语音识别 API)
  2. 自然语言处理 → App 本地 / 云端 (CNN 深度学习模型)
  3. 加密指令 → 蓝牙 (HC-05) → Arduino 101
  4. 指令解析执行 → 控制继电器通断
  5. 状态反馈 → 蓝牙 → App 语音播报 / 界面更新

引脚分配

Arduino 引脚功能连接目标
D8脉冲输入 (中断)电能表 LDR 计数电路输出
D6IN1风扇继电器
D4IN2灯光继电器
D5IN3咖啡机继电器
D7IN4预留/指示灯
TX/RX (硬件串口1)GSM 通信GSM Shield
软串口 (D2/D3)蓝牙通信HC-05

核心功能模块

1. 无线电能监测与短信查询

利用 LDR 监测电能表红色脉冲指示灯,LM358 整形后接入 D8 中断引脚计数。每个脉冲代表固定电量(如 5Wh)。用户发送短信 "#units*" 到 GSM 模块号码,系统回复当前用电度数与费用估算。

2. AI 语音虚拟助手

3. AR 增强现实控制

电能表改装步骤

  1. 将 LDR 贴在电能表红色脉冲 LED 上方,用黑色胶带遮光防干扰
  2. LDR 串联电阻组成分压电路,输出接 LM358N 比较器
  3. 比较器输出数字脉冲接 Arduino D8 (中断脚)
  4. 相线经继电器控制负载,零线直通
  5. GSM 模块 TX/RX 与 Arduino 硬件串口交叉连接

关键代码片段

Arduino 主程序 - 电能计数与短信回复

#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);

#define PULSE_PIN 8
volatile unsigned int pulse_count = 0;
float units = 0;
unsigned int rupees = 0;
char sms_buffer[70];
byte sms_idx = 0, sms_ready = 0;

void setup() {
  lcd.begin(16,2);
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(PULSE_PIN, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(PULSE_PIN), countPulse, FALLING);
  gsm_init();
  lcd.print("System Ready");
}

void loop() {
  units = rupees / 5.0;
  lcd.setCursor(0,0); lcd.print("Units:"); lcd.print(units);
  lcd.setCursor(0,1); lcd.print("Cost:"); lcd.print(rupees);
  checkSerial();  // 处理短信指令
}

void countPulse() {
  pulse_count++;
  rupees = pulse_count * 5;  // 假设 1 脉冲 = 5 单位费用
}

void checkSerial() {
  while (Serial.available()) {
    if (Serial.find("#")) {
      sms_idx = 0;
      while (Serial.available()) {
        char c = Serial.read();
        sms_buffer[sms_idx++] = c;
        if (c == '*') { sms_ready = 1; break; }
      }
    }
  }
  if (sms_ready && strncmp(sms_buffer, "units", 5) == 0) {
    sendSMS("Units: " + String(units) + "\nCost: " + String(rupees));
    sms_ready = 0;
  }
}
// GSM 初始化、发送短信函数省略...

蓝牙指令控制继电器

#define CH_FAN 6
#define CH_LIGHT 4
#define CH_COFFEE 5
#define CH_EXTRA 7

void setup() {
  Serial.begin(9600);  // 蓝牙通信波特率
  pinMode(CH_FAN, OUTPUT); pinMode(CH_LIGHT, OUTPUT);
  pinMode(CH_COFFEE, OUTPUT); pinMode(CH_EXTRA, OUTPUT);
  digitalWrite(CH_FAN, HIGH); digitalWrite(CH_LIGHT, HIGH);
  digitalWrite(CH_COFFEE, HIGH); digitalWrite(CH_EXTRA, HIGH); // 低电平触发
}

void loop() {
  if (Serial.available()) {
    char cmd = Serial.read();
    switch (cmd) {
      case 'c': digitalWrite(CH_LIGHT, LOW); break;   // 灯开
      case 'e': digitalWrite(CH_LIGHT, HIGH); break;  // 灯关
      case 'd': digitalWrite(CH_FAN, LOW); break;     // 风扇开
      case 'f': digitalWrite(CH_FAN, HIGH); break;    // 风扇关
      case 'k': digitalWrite(CH_COFFEE, LOW); break;  // 咖啡机开
      case 'g': digitalWrite(CH_COFFEE, HIGH); break; // 咖啡机关
      case 'z': allOff(); break;                      // 全关
    }
  }
}

void allOff() {
  digitalWrite(CH_FAN, HIGH); digitalWrite(CH_LIGHT, HIGH);
  digitalWrite(CH_COFFEE, HIGH); digitalWrite(CH_EXTRA, HIGH);
  // 告别闪烁动画...
}

Android App 与 AR App

电路原理图

完整原理图包含:ATX 电源改装(12V 供继电器/电机, 5V 供逻辑)、继电器驱动(L293D)、LCD1602(I2C)、按键分压、LDR 计数电路、GSM/蓝牙串口。详见项目附件原理图。

项目亮点与不足

亮点

待改进

制造工艺

  1. 打造低成本家庭无线传感器网络:Arduino + 树莓派 + Xively 物联网平台
  2. 自制家用作业书写机:Arduino + GRBL 控制的笔绘仪
  3. 基于 Web 控制的 DMX 灯光系统 – Arduino 主控制器
  4. DIY 蓝牙控制 Arduino 间谍小车
  5. DIY VR 滑板:用 Arduino、Google Cardboard 与蓝牙打造虚拟滑雪体验
  6. 自主家庭助理机器人 O'nine - ROS + Alexa 语音控制 + 机械臂 + 麦克纳姆轮全向移动
  7. Alexa 语音控制 Arduino 智能家居中枢:基于 Yun + PubNub + AWS Lambda 全栈实现
  8. 无线Arduino编程盾:HC-05蓝牙模块实现免USB线烧录
  9. Arduino Nano 专用 2.8 英寸 TFT 扩展板 – 320×240 SPI 显示屏
  10. 适用于 Arduino UNO/MEGA 的 Nixie 管时钟扩展板 NCS314 – 兼容 IN-14/IN-12 型号
  11. 基于 Arduino Mega 与物联网传感器的高级家庭监控系统
  12. Arduino Mega 2560 驱动的开源植物生长箱控制器:固件与硬件全指南