手把手教你做一个物联网垃圾桶(ARDUINO ESP8266)_arduino垃圾桶程序(1)

UNO****主板

ESP8266

可充电电池(12500)

升压模块(自己选就行)

超声波模块(SR04)

金属齿轮舵机(MGS90)

12V继电器

研究现状:

市面上现阶段智能垃圾桶成本相对较为高昂,此外智能化程度不高,难以作为将来物联网的智能家居的一部分此外市场上没有智能开盖的桌面垃圾桶,开盖多半是按压式,非常不便捷

随着生活水平的提高,人们更加追求干净、健康、绿色的生活方式。

研究趋势:

智能化

提高人们生活舒适精致度

以低成本实现需求

实用耐用好用

研究意义:

增强大学生的创新意识和创新能力

增强我们的机械设计制造的动手能力

实现对生活废弃物的病菌消杀

为生活中的卫生健康提供保障。

**项目简介:**本装置通过紫外线等消毒方式对携带病毒的生活废弃物进行一定程度的消杀,从而大大降低清洁人员和拾荒者的感染概率,省财省力省时,减轻人们除了防疫以外的其它生活负担,对当前社会现状具有一定的实用性及创新性。同时充分考虑紫外线对人眼的刺激,做了开盖前自动关灯处理,考虑到紫外线灯长时间工作会产生较大热量,设计了照明和休息时长。

实施方案:

通过超声传感器实现位置距离的准确获取,从而实现对用户状态的信息精确判别

通过设计的电路实现对于紫外线灯和舵机的精确控制,并留存状态标志位,使得可以无线智能控制

网络安全方面,使用加密网络控制MQTT协议**,只有知道特定密钥才可以访问,并且适配了图形化控制界面,接入专门软件点灯blinker”,**任何用户只要获得分享权限就可以使用

充分的可拓展性和共享性,专门的密钥可以通过手机号共享,且可以接入小爱同学等AI助手

运行逻辑:本次设计采用了双机通信技术**,实现了较好的WIFI通信效果,其中UNO****作为主机,ESP8266作为从机**

本装置做到在实现感应开盖,杀毒灭菌的智能逻辑和灵敏基础上,实现wifi互联,从而实现远程开盖,通过利用紫外线等装置,定时自动消杀废弃物,对生活垃圾进行预消毒工作。实现物联网,互联网与垃圾桶的融合创新**。**

具体代码

ESP8266(上)和UNOR3(下)

#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT//支持小爱同学
#define BLINKER_WITHOUT_SSL      //非SSL加密通信接入,省堆栈  
#include <Blinker.h>

#define LED  LED_BUILTIN  // 板子上的灯 
#define PASSIO  2  // 板子上的io2
char auth[] = "4a633cdd91eb"; // blinker app提供的秘钥
char ssid[] = "小琮的Xiaomi 13 Pro";// wifi 名字
char pswd[] = "23456789";// wifi 密码

bool wsState;
uint8_t wsMode = BLINKER_CMD_MIOT_DAY;
// 新建组件对象
BlinkerButton Button1("btn-abc");//注意:要和APP组件’数据键名’一致
BlinkerButton Button2("btn-open");//注意:要和APP组件’数据键名’一致
// 按下BlinkerAPP按键即会执行该函数
void button1_callback(const String & state) {
 BLINKER_LOG("get button state: ", state);
 digitalWrite(LED, !digitalRead(LED));
 Blinker.vibrate();
}
 void button2_callback(const String & state)
{
    digitalWrite(PASSIO, !digitalRead(PASSIO));
    BLINKER_LOG("get button state: ", state);
    Button1.icon("icon_2");
    Button1.color("#FFFFFF");
    Button1.text("一直开盖");
    Button1.print("on");
}

//小爱电源类回调
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, LOW);       
        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, HIGH);
        BlinkerMIOT.powerState("off");
        BlinkerMIOT.print();
    }
}

void setup() {
 // 初始化串口,并开启调试信息,调试用可以删除
 Serial.begin(115200); 
 BLINKER_DEBUG.stream(Serial);
 // 初始化IO
 pinMode(LED_BUILTIN, OUTPUT); 
 digitalWrite(LED_BUILTIN, HIGH); // 初始化 led 高电平 ,则灯熄灭状态
 pinMode(PASSIO, OUTPUT); 
 digitalWrite(PASSIO, LOW); // 初始化 2 低电平 ,则灯熄灭状态
 // 初始化blinker
 Blinker.begin(auth, ssid, pswd);
 Button1.attach(button1_callback);
 Button2.attach(button2_callback);

 //小爱同学务必在回调函数中反馈该控制状态 
 BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数
// BlinkerMIOT.attachQuery(miotQuery);
} 
void loop()
{
  Blinker.run();

}

/*程序说明:基于UNO 本程序通过超声波判断距离实现舵机角度变化 并且通过定时器实现扫描超声波 实现闭盖时进行紫外线消杀(每工作10分钟休息10分钟) 单位cm*/
//当您使用Servo库时,开发板的9号和10号引脚的PWM功能是无法使用的。
/*注意事项:
(1)如果你使用了 MsTimer2 库, 则 pin11 和 pin3 就不能再用做 PWM 输出了! 因为该 pin3 和 pin11 的 PWM 是靠 timer2 帮忙的! (tone()也是)
(2)注意 Servo.h 库与 TimerOne 都是使用内部定时器 timer1 会影响pin 9, pin 10 的 PWM
(3)tone() 使用 timer2 定时器; 若使用 Tone 库的 Tone 对象(Tone 变量)也是优先使用 timer2 定时器,若用两个 Tone 变量则 timer1 也会被用掉, 用三个 Tone 则连控制 millis( )的 timer0 也会被用掉。
(4)别忘了, timer0 负责帮忙控制 pin 5 和 pin 6 的 PWM 输出。只要不去改变 timer 的 Prescaler 就不会影响其控制的 PWM pin, 但MsTimer2 库与 tone( )都会改变 Prescaler ! !*/
#include <Servo.h>            //加载文件库
#include <MsTimer2.h>  //没安装的自己安装

#define limit_distance 15     //宏定义感应距离单位cm
#define uvcpin  10 //紫外线灯控制引脚(正)
#define worktime 600 //工作时间 单位10ms
#define resttime 600 //休息时间 单位10ms
#define pospin 9 //舵机引脚
#define posclose 120
int pos = 0; //舵机角度
Servo myservo; //设置伺服对象
const int trigpin = 2;  //超声波输出
const int echopin = 3;  //超声波输入
int posflag = 0; //判断盖子是否开启
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/66a99dfebe0ab92d254e0ea078d445ab.png)

![img](https://img-blog.csdnimg.cn/img_convert/52c4a85f47b7c2182717b78a5deedae6.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/5fde1a532fe130f1467be24f082e0b60.png)

 ![img](https://img-blog.csdnimg.cn/img_convert/bb92d738a5e35b653b65482495cf37b0.png)

![img](https://img-blog.csdnimg.cn/img_convert/0812b860342be726f5e10ca8bba2fcc7.png)

![img](https://img-blog.csdnimg.cn/img_convert/09311075dd4e978c8bf9fca897f4e86e.png)

![](https://img-blog.csdnimg.cn/img_convert/2e2f90d264ec2a4acfaf45a9086ec3b1.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


1715743692989)]

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值