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

非接触测温自动开门器:Arduino + 红外测温 + 舵机驱动

项目简介

针对疫情防控需求,设计一款非接触式自动开门装置:人体红外传感器检测人员靠近 → MLX90614 红外测温模块测量额温 → 体温正常 (30-37°C) 驱动双舵机开门 5 秒 → 体温异常 (>37°C) 蜂鸣器报警拒绝开门 → LCD 实时显示温度与状态。以 Arduino UNO 为核心,结构简单、成本低廉,适合家庭、办公室、小型场所部署。

硬件清单

接线指南

模块信号脚Arduino 引脚备注
MLX90614SDA/SCLA4/A5I2C 通讯,板载上拉
I2C LCDSDA/SCLA4/A5共用 I2C 总线,地址 0x27
HC-SR501OUTD4高电平触发
舵机 1PWMD7开门 90°→180°
舵机 2PWMD8同步反向 180°→90°
蜂鸣器信号D13共用板载 LED 引脚

工作流程

  1. 系统上电初始化:LCD 显示欢迎、舵机归中 (90°)、传感器就绪
  2. HC-SR501 检测到人体靠近 (D4 变高)
  3. 读取 MLX90614 物体温度 (mlx.readObjectTempC())
  4. 温度 < 30°C:LCD 提示“Not detected, retest!”,可能测量距离过远或环境温度低
  5. 30°C ≤ 温度 < 38°C:LCD 显示“body temperature ok”,双舵机同步旋转开门,延时 5 秒后同步关门
  6. 温度 ≥ 38°C:蜂鸣器鸣叫 0.5 秒,LCD 显示“Keep out!”,门保持关闭

核心代码

#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <Wire.h>
#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();
LiquidCrystal_I2C lcd(0x27, 20, 4);
Servo myservo1, myservo2;
#define RED_LED 13
#define PIR_PIN 4

void setup() {
  Serial.begin(9600);
  pinMode(RED_LED, OUTPUT);
  pinMode(PIR_PIN, INPUT);
  myservo1.attach(7);
  myservo2.attach(8);
  myservo1.write(90);
  myservo2.write(90);
  mlx.begin();
  lcd.init(); lcd.backlight();
}

void loop() {
  if (digitalRead(PIR_PIN) == HIGH) {
    float temp = mlx.readObjectTempC();
    lcd.setCursor(0,0); lcd.print("ObjectTemp:");
    lcd.setCursor(13,3); lcd.print("-DKARDU");
    controlDoor(temp);
  }
}

void controlDoor(float t) {
  Serial.println(t);
  if (t < 31) {
    lcd.setCursor(0,1); lcd.print(t);
    lcd.setCursor(0,2); lcd.print("Not detected,retest!");
  } else if (t >= 30 && t < 38) {
    lcd.setCursor(0,1); lcd.print(t);
    lcd.setCursor(0,2); lcd.print("body temperature ok ");
    for (int pos = 90; pos <= 180; pos++) {
      myservo1.write(pos);
      myservo2.write(180 - pos);
      delay(15);
    }
    delay(5000);
    for (int pos = 180; pos >= 90; pos--) {
      myservo1.write(pos);
      myservo2.write(180 - pos);
      delay(15);
    }
  } else if (t >= 38) {
    digitalWrite(RED_LED, HIGH);
    lcd.setCursor(0,1); lcd.print(t);
    lcd.setCursor(0,2); lcd.print(" Keep out! ");
    delay(500);
    digitalWrite(RED_LED, LOW);
  }
}

改进建议

原理图

原理图展示 I2C 总线共享、舵机 PWM 驱动、PIR 与蜂鸣器数字 IO 连接。

制造工艺

  1. 重型设备制动系统高效巡检指南:保障安全合规
  2. 重型设备制动系统巡检:确保安全停车与 OSHA 合规
  3. 树莓派与Arduino协作构建机器人:分步指南
  4. 在SolidWorks中创建渐进剖视动画:分步教程
  5. 手自动变速器动力传递原理深度解析
  6. 自动变速器系统权威指南:类型、部件、工作原理
  7. 自动润滑系统详解:工作原理、类型与工业应用价值
  8. 汽车门把手维修全攻略:省钱DIY步骤详解
  9. 构建制胜原型:快速产品开发分步实战指南
  10. 提升空气压缩机系统效率:实证技巧与策略
  11. 基于PIR传感器的自动门开启系统:电路、原理与应用
  12. 玻璃纤维生产全流程指南