首页
/ 智能垃圾桶制作指南:使用Johnny-Five红外传感器实现自动开盖功能

智能垃圾桶制作指南:使用Johnny-Five红外传感器实现自动开盖功能

2026-02-05 05:07:14作者:邓越浪Henry

想要打造一个智能垃圾桶,让它在有人靠近时自动开盖,离开时自动关闭吗?🎯 使用JavaScript机器人编程框架Johnny-Five,结合红外传感器和舵机,你可以轻松实现这个智能家居项目。本文将为你详细介绍如何使用Johnny-Five红外传感器技术制作自动开盖智能垃圾桶。

🚀 项目概述

智能垃圾桶自动开盖系统基于红外接近传感器检测人体接近,通过舵机控制垃圾桶盖的开合。当传感器检测到有人靠近时,舵机会自动打开垃圾桶盖;当人离开后,盖子会自动关闭,实现完全自动化的卫生体验。

📦 所需硬件组件

  • Arduino开发板(如Uno、Nano等)
  • GP2Y0A21YK红外接近传感器
  • 标准舵机(如SG90或MG996R)
  • 垃圾桶(带可动盖子的款式)
  • 面包板、杜邦线、电阻等连接配件

🔧 硬件连接指南

红外传感器连接

红外接近传感器连接到Arduino的模拟引脚A0,用于检测人体接近距离。该传感器能够检测10-80厘米范围内的物体,非常适合垃圾桶应用场景。

红外传感器连接图

舵机连接

舵机连接到数字引脚10,负责控制垃圾桶盖的开合动作。通过精确的角度控制,可以实现平稳的开关盖操作。

舵机连接图

💻 软件编程实现

安装Johnny-Five

首先需要安装Node.js和Johnny-Five库:

npm install johnny-five

核心代码逻辑

主要的代码逻辑在proximity.js示例基础上进行扩展,添加舵机控制功能:

const { Board, Proximity, Servo } = require("johnny-five");
const board = new Board();

board.on("ready", () => {
  // 初始化红外传感器
  const proximity = new Proximity({
    controller: "GP2Y0A21YK",
    pin: "A0"
  });

  // 初始化舵机
  const lidServo = new Servo(10);
  let isOpen = false;

  proximity.on("change", () => {
    const { centimeters } = proximity;
    
    if (centimeters < 30 && !isOpen) {
      // 有人靠近,打开盖子
      lidServo.to(90);
      isOpen = true;
      console.log("垃圾桶盖已打开");
    } else if (centimeters > 50 && isOpen) {
      // 人已离开,关闭盖子
      lidServo.to(0);
      isOpen = false;
      console.log("垃圾桶盖已关闭");
    }
  });
});

⚙️ 参数调优技巧

  • 检测距离调整:根据实际使用场景调整触发距离(示例中为30厘米)
  • 延时关闭设置:可以添加延时关闭功能,避免频繁开关
  • 角度微调:根据垃圾桶盖的实际开合角度调整舵机转动范围

🎯 实际应用场景

这种智能垃圾桶设计特别适合:

  • 厨房和卫生间,保持卫生
  • 办公室环境,提升便利性
  • 医疗场所,减少接触传播
  • 智能家居系统集成

🔍 故障排除提示

如果遇到问题,可以参考sensor.jsservo.js库文件的详细文档,检查硬件连接和代码逻辑。

🌟 扩展功能建议

  • 添加LED指示灯显示工作状态
  • 集成声音提示功能
  • 连接物联网平台实现远程监控
  • 添加手动开关 override功能

通过这个项目,你不仅能制作出实用的智能垃圾桶,还能深入学习Johnny-Five在物联网和机器人领域的强大功能。开始你的智能家居创作之旅吧!✨

登录后查看全文
热门项目推荐
相关项目推荐