基于Wemos D1的感应开盖垃圾桶_wemos d1 r3(1)

参考:基于Wemos D1的感应开盖垃圾桶(增加自己的代码实现部分)
作者:LEO-max
发布时间:2020-12-29 15:21:26
网址:https://blog.csdn.net/zouchengzhi1021/article/details/111880104?spm=1001.2014.3001.5502

目录
硬件平台介绍 WeMos D1

在这里插入图片描述

特性
  1. 基于ESP-8266EX
  2. Arduino兼容,使用arduino IDE来编程
  3. 11 * I/O 引脚
  4. 1 * ADC引脚(输入范围0-3.3V)
  5. 板载5V 1A开关电源(高输入电压24V)

**工作中**

  1. 和STM32模块开发类似,集成度高
  2. 更经济便宜
软件环境介绍
Arduino开发环境

优点:

  1. 集成很多开发库如串口,网络,sg90等各种硬件开发接口,迅捷开发
  2. 自带串口调试工具

缺点:

  1. 程序编译速度慢
超声波模块介绍

在这里插入图片描述

超声波传感器模块上面通常有两个超声波元件器,一个用于发射,一个用于接受。电路板上有4个引脚:VCC(正极)、Trig(触发)、Echo(回应)、GND(接地)

主要参数:
  1. 工作电压与电流:5V、15mA
  2. 感测距离:2~400cm
  3. 感测角度:不大于15°
  4. 被测物体的面积不要小于50cm²并且尽量平整
  5. 具备温度补偿电路

在超声波模块的出发脚位输入10微秒以上的高电位,即可发射超声波。发射超声波之后,与接收到传回的超声波之前,“响应”脚位呈现高电位,因此,程序可从“响应”脚位的高电位脉冲持续时间,换算出被测物的距离。

超声波模块原理:

在这里插入图片描述

在这里插入图片描述

响应测距核心代码
const byte trigPin = 10;
const int echoPin = 9;
unsigned long d;
unsigned long ping(){
	digitalWrite(trigPIN, HIGH);
	delayMicroseconds(10);	//发送一个10us脉冲
	digitalWrite(trigPin, LOW);
	return pulseIn(echoPin, HIGH);	//波传过程echo高点品,计算高电平时间就获取波传输时间,单位是us

}

void setup(){
	pinMode(trigPin, OUTPUT)
	pinMode(echoPin, INPUT);
	Serial.begin(115200);
}

void loop(){
	d = ping()/58;
	Serial.print(d);
	Serial.print("cm");
	Serial.printn();
	delay(1000);
}		

自己实现感应开盖功能的代码
#include <Servo.h>

#define DuoPIN D5
#define Echo D2
#define Trig D8

Servo myDuoji;
long getTime(){
  
  digitalWrite(Trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);

  return pulseIn(Echo, HIGH);
  }

void initChaoShengBo()
{
  pinMode(Echo,INPUT);
  pinMode(Trig,OUTPUT);
 
 }

void setup() {
  initChaoShengBo();
  myDuoji.attach(DuoPIN);
  
}

void loop() {
  // put your main code here, to run repeatedly:
  long dis;
  dis = (getTime())/58;
  if(dis < 10){
      myDuoji.write(90);
      delay(2000);
   }
   else{
      myDuoji.write(180);  
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

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

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

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

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

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

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

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

 

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

**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**

<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

mg src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是代码: ``` #define TRIGGER_PIN D1 // 定义超声波模块的控制引脚 #define ECHO_PIN D2 // 定义超声波模块的测距引脚 #define LED_PIN D5 // 定义LED的控制引脚 void setup() { pinMode(TRIGGER_PIN, OUTPUT); // 设置超声波模块的控制引脚为输出模式 pinMode(ECHO_PIN, INPUT); // 设置超声波模块的测距引脚为输入模式 pinMode(LED_PIN, OUTPUT); // 设置LED的控制引脚为输出模式 Serial.begin(9600); // 初始化串口通信,用于输出测距结果 } void loop() { digitalWrite(TRIGGER_PIN, LOW); // 给超声波模块的控制引脚发送低电平信号 delayMicroseconds(2); // 延迟2微秒 digitalWrite(TRIGGER_PIN, HIGH); // 给超声波模块的控制引脚发送高电平信号 delayMicroseconds(10); // 延迟10微秒 digitalWrite(TRIGGER_PIN, LOW); // 给超声波模块的控制引脚发送低电平信号 long duration = pulseIn(ECHO_PIN, HIGH); // 读取超声波模块返回的脉冲信号的持续时间 float distance = duration * 0.034 / 2; // 根据声波在空气中的传播速度计算出距离,单位为厘米 if (distance < 10) { // 如果距离小于10厘米 digitalWrite(LED_PIN, HIGH); // 点亮LED } else { // 如果距离大于等于10厘米 digitalWrite(LED_PIN, LOW); // 熄灭LED } Serial.print("Distance: "); // 输出距离 Serial.print(distance); Serial.println(" cm"); delay(500); // 延迟500毫秒,避免频繁读取超声波模块返回的脉冲信号 } ``` 在这段代码中,我们使用 `pulseIn()` 函数读取超声波模块返回的脉冲信号的持续时间,然后根据声波在空气中的传播速度计算出距离。如果距离小于10厘米,则点亮LED,否则熄灭LED。同时,我们还通过串口输出当前的测距结果。你可以将Wemos D1连接到电脑上,打开串口监视器,就可以看到测距结果了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值