用arduino做一个智能垃圾桶

这几天工作忙得差不多了,有点时间继续折腾我的arduino,上次从TB买的arduino 套件中有一个人体热能感应模块,就是用来感应人体接近信号的。今天我们用这个东东来做一个简易的智能垃圾桶。要实现的功用是:当有人接近时,垃圾能用自动打开盖子,人离开时,盖子能自动关闭。

一、所需材料和工具:

1 Arduino单片机 我用的是Arduino Nano

2 人体热能感应模块
我用的是一个杂牌的,但接线和使用方式和HC-SR501一样

3 舵机 SG90

4 翻盖式垃圾桶 最好是小一点的。

5 手机充电头和mini USB电源线 直接给单片机供电用的,不是我们手机个常用的microUSB接口或TYPE C接口。

6 导线
7 热熔胶枪
8 电烙铁
9 刀片及其它工具
说明:
1、因为SG90舵机的扭矩很小(可以理解为这个舵机没多大劲),只能推动小垃圾桶的盖子,如果垃圾桶过大,我们就需要扭矩更大的舵机,并需要给舵机单独供电。
2、我的arduiono套件随机赠送的人体热能感应模块是一个杂牌的东东,但接线和使用方法与HC-SR501相同。

二、程序代码

代码很简单,只有几行。

#include <Servo.h>//舵机所需类的头文件
/*
 * 本例结合人体红外感应模块和舵机实现对垃圾桶的自动控制。
 * 当人接近或离开垃圾桶时,单片机根据信号强度的变化,操作舵机旋转到指度角度,实现垃圾桶的自动开关。
 * 人体红外感应模块型号为HC-SR501,三条线分别为+5伏,地线和输出信号口,输出信号接A3
 * 舵机用型号为sg90,本舵机有三条线,红为+5伏,褐色为GND,橙色为信号给,本例接pin9
 * 本例在arduino nano上实验通过
*/

Servo myservo;  // 创建舵机对象来控制舵机
int angle_pos = 0;
int pin_sensory= A3;//设置A3接人体感应信号的out口

int value;
void setup()
{
   // 初始化串口通信
   Serial.begin(9600);
   Serial.println("Signal Intensity:");
   // 把连接在引脚9上的舵机赋予舵机对其控制
   myservo.attach(9);
   pinMode(pin_sensory,INPUT);
   myservo.write(angle_pos);

}
void loop()
{
      value= analogRead(pin_sensory);
      Serial.println(value);
      angle_pos=myservo.read();
      if (value>=400)//当值大于400时,舵机转到90度,垃圾桶开盖。
      //这个值需要自己根据不同距离调整,距离越近,信号越强,经验数据:在距离探头20公分时,强度值约800,人离开后,强度值约40。
      {
         myservo.write(90);//舵机转到90度
         delay(50);
      }

      else
      {
        delay(50);
        myservo.write(0);//舵机回到0度

      }

        delay(1000);
}

三、线路连接

实物连接如下图:

说明一下:
1、SG-90舵机上有三条线,一般情况下棕色是地线,接GND,红色是V+,接正5伏,橙色为控制线,我接在9号接口。
舵机有两种驱动方式,第一种方式是无驱动的,可以用在所有可用的端口上,但程序代码比较复杂,用起来相对麻烦,第二种是有驱动的,代码非常简单,但只能接在9、10两个口上,本例中使用第二种方式(所在我们代码的开头第一行就引用了舵机驱动类的头文件)。
2、HC-SR501人体热能感应模块也有三个接口,上面标的有,VCC接正5伏,GND接地线,OUT我接在A3上。
3、本来还想加一个LED指示灯,用来在夜间指示垃圾桶的位置,但感应模块上有一个蓝色的指示灯,在人体接近时就会自动点亮,所以这个就省了。

四、安装和调试

1、写入程序,这个都会,我用的是arduino IDE(1.8.5版的),将上面的代码复制进去,在面包板上按上图接好,编译后直接点击上传就行了。


2、改装垃圾桶
我找的垃圾桶是那种翻盖的桌上小垃圾桶,盖子像一个翘翘板。将盖子从限位销中取出来,用刀片将限位销去掉,然后在限位销的位置打孔。
然后找一个用完的水笔芯(之所以选择水笔芯,是因为他的粗细刚好能套在舵机主轴的齿轮上,而且结合得非常紧。)穿过刚才打的孔和垃圾桶盖子上的孔,并用热熔胶固定。

然后在垃圾外侧固定舵机、单片机和感应模块,为了外面美观一些,我用3D打印机做了一个小盒子放单片机和感应模块,没有的朋友可以用一个雪茄盒或其它材料代替。
将舵机主轴插入水笔芯的孔中,并用热熔胶将舵机和小盒子固定住。
需要注意的时,舵机主轴固定在水笔芯的时候要注意舵机的0度和90度位置,以免出现初始化时垃圾桶盖子关不严的情况。

五、运行效果

使用miniUSB线和手机充电头给arduino通过5伏直流电,就可以运行了,运行情况见以下视频连接。看起来拉风吧!
https://v.youku.com/v_show/id_XNDM5Nzk3MTQ1Mg==.html?spm=a2h3j.8428770.3416059.1

原文地址:https://blog.51cto.com/6273125/2442334

时间: 2024-10-09 03:07:41

用arduino做一个智能垃圾桶的相关文章

用arduino 做一个万年历

每月下旬的四到五天有一个工作量的低谷期,利用这段时间,我们再折腾一下arduino.这次我们做一个万年历.一.所需材料根据我们就地取材的原则,这次我们还是要充分利用现有材料:材料表:1.一个带I2C的LCD1602显示屏,用于显示日期.时间.星期等信息.之所以要用带I2C的屏,是因为单独的LCD1602需要接12条线,除了VVC和GND外,占6个接口,而且还需要一个10K的电位器来调整屏的亮度,而使用带I2C的,一共有四条线就足够了一条VVC,一条GND,一条SDA,一条SCL,而且自带调节屏幕

用蓝牙芯片CC2541/CC2540实现一个智能恒温箱

最近突然想自己做一个智能小冰箱玩一玩,于是决定动手试一试. 成品效果图 原材料 半导体制冷片一只 散热风扇 12V电源一台 智能恒温箱电路板 控制板的PCB图 原理图 供电部分原理图 制冷片控制部分原理图 蜂鸣器原理图 温度传感器原理图 GITHUB地址 完整代码以及电路图我放在了GITHUB上,欢迎下载哦. https://github.com/dingbig/bluttooth_ice_box 控制部分源代码 1 /**************************************

从智能垃圾桶模型引发的思考?

背景: 随着人们的生活水平不断提高,家居生活现代化是个必然的趋势.智能垃圾桶很好的解决了无需接触垃圾桶就可投放垃圾,防止交叉感染等问题.减少生活当中各种病菌交叉感染的几率:无异味溢出.但其存在需要经常更换电池,电池寿命问题. 目的: 第一:通过这篇文章,大致能了解目前市面上智能垃圾桶的工作原理. 第二:当使用电池供电,可能对于此产品来讲,功耗会偏大.采用外部供电方式,是否能满足需求. 第三:设计一个产品模型可能不需要考虑很多因素,但设计一款产品考虑因素还有哪些,讨论一下. 实验材料 Arduin

Arduino + SmartAirFilter 制作智能感应的 PM 空气净化器

先说 SmartAirFilters 知道 SmartAirFilters 源自微博上转发的非常火的那个帖子,和动辄七八千元的商用产品比,几百元的 SmartAirFilters(下面简称电扇) 确实不贵.一次和朋友在清华科技园里附近的咖啡馆聊天,正好遇见他们在那里做 DIY 体验工坊,作为 DIYer 爱好者,理所应当给个赞,就败了个 1.0 试一试. 空气 PM 的监控 空气过滤效果究竟怎样?作为数据控,理所应当必须看数据说话.正好在玩 Arduino Yun,就起意搞个灰尘传感器监控一下.

自己动手做个智能小车(1)

自己动手做个智能小车(1) --介绍及工具材料准备 目前物联网发展很迅速,软硬结合也越来越流行.对硬件有些兴趣的我,也想来做点业余玩具. 这是个业余小作品,可以学习一些基本硬件.单片机,底层软件,Android编程等知识,同时不失趣味性. 直接上图: 怎么每张图有个手机?-- 哈哈那是遥控器. 介绍: 这个小车是一个三轮车,为啥采用三轮:方便.灵活.控制简单,比如要转个弯,只需要把这边的轮子速度降下来,就转过去了:还可以原地旋转,两个轮子速度相同,方向相反即可,这是四轮车办不到的. 问,边上的手

自己想要做一个网站应该怎么做

软件开发和网站开发完全是两个不同的,两个地方侧重的是不一样的.软件开发是属于手机端的开发,主要面向是安卓,ios开发,网站开发是电脑端的开发,语言分很多种:常用的有java.php..net,每个语言都有自己的特点和风格.软件开发主要分两种安卓开发和ios开发,安卓开发学习书籍书的话建议买 精通Android2 ,或者 Android2高级编程 这两本书,讲解的细致,但是一定要结合sdk来看.看完之后就可以自己动手做做项目了.对于java基础,我现在的感觉是 如果要深入学习android平台,j

自己动手做个智能小车(5)

自己动手做个智能小车(5) --用程序来控制轮子 PWM控制电路完工了,接下来得把电路接到单片机,由单片机进行控制了.回想电路图: 这个图中,输入有3根组,A,B,C,其中,A入口,我们可以当成PWM控制线,B,C为正反转.停止控制线,整个状态可以罗列为下面表格: A控制 B控制 C控制 Q1 Q2 Q3 Q4 电机状态 X 0 0 0/导通 0/导通 0/截止 0/截止 刹车 PWM 1 0 1/截止 0/导通 PWM 0/截止 正转 PWM 0 1 0/导通 1/截止 0/截止 PWM 反转

自己动手做个智能小车(3)

自己动手做个智能小车(3) --让小电脑运行程序吧 通了电源,也有了初步的规划,我们就把主芯片给接上,并让其工作起来. 这个主芯片就是89C52单片机,有人说,单片机没学过啊,怎么没,没关系,在里,我们就从最简单的入手,然后再慢慢加功能.我们知道学个新程序,一般从HelloWord开始,那单片机同样,也从其本的开始. 51单片机,有40个引脚,其中,芯片从一个U口的左侧开始计数,然后一圈编号,40脚与20脚接电源的正负极.其中,1~8 0~17 39~32 1~28 为单片机的P1 P3 P0

自己动手做个智能小车(2)

自己动手做个智能小车(2) --基本布局及电源部份 上一章中,我们逻列出所有需要的零件,接下来就是我们开始拼装的时候了.电路图... 没有, 没有完整的,我们就一步步做吧,纯手工,焊到哪就是哪,不通了就飞线(注:正常电路从板子下面走,但如果实在有交叉过不去时,就可以在上面用一导线直接相联,叫飞线,正式design好的板子一般都不用飞的咯). 虽说焊到哪是哪,但是还是得稍微布局设计一下. 观察一下小车,电机分布在两边,前面一轮子,后面空, 所以后面空地方肯定不能压重物,不然会压翻掉. 电路板100