参考:基于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
    • 特性
    • Arduino开发环境
    • 超声波模块介绍
    • 响应测距核心代码
    • 自己实现感应开盖功能的代码
    • 关于距离中除以58的说明
    • SG90舵机
  • 接线
  • 成品如下

硬件平台介绍 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   D8Servo 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);  }}

关于距离中除以58的说明

声音在干燥、20℃的空气中的传播速度大约为343m/s,即34300cm/s,换算单位,34300 / 1,000,000cm/us。即为0.0343cm/us,再换一个角度,1/0.0343cm/us,即29.15us/cm,这就意味这,291.5us表示10cm的距离,1cm就是29.15us, 但是从发送到接受,声音走过2倍的距离。所以实际距离就是1cm对应58.3us。实际整个测距过程是测的发出声波到收到回波的时间,程序里的时间是us,换成距离cm,要除以58(58.3)

SG90舵机


型号:SG90 重量13克 角度90°~270°
红色线为电压 棕色线为地线 橙色线为信号线
尺寸:21.5mm11.8mm22.7mm
重量:9克
五负载速度:0.12s/60° (4.8V)
堵转扭矩:1.2-1.4公斤/厘米(4.8V)
使用温度:-30℃~60℃
死区设定:7us
工作电压:4.8V-6V

接线

超声波测距模块

1.VCC接Wemos板的5V口
2.Trig接Wemos板的D8
3.Echo接Wemos板的D2
4.Gnd接Wemos板的GND
  • 1
  • 2
  • 3
  • 4

SG90舵机

1.橙色线接Wemos板的D5
2.红色线接Wemos板的3.3V
3.灰色线接Wemos板的另一个GND
  • 1
  • 2
  • 3

成品如下

基于Wemos D1的感应开盖垃圾桶相关推荐

  1. 基于 wemos d1 智能感应开盖垃圾桶

    基于WEMOS d1的智能感应开盖垃圾桶 1.需要用的软件: arduino 垃圾桶视频: 智能感应开盖垃圾桶 2.硬件清单 1.Wemos d1 板子 2.超声波模块 3.SG90 舵机 4.垃圾桶 ...

  2. 基于Wemos的智能感应开盖垃圾桶——日记

    参考:基于Wemos的智能感应开盖垃圾桶--日记 作者:9art0 发布时间:2020-09-24 00:40:59 网址:https://blog.csdn.net/GatoWong/article ...

  3. 基于Wemos的智能感应开盖垃圾桶

    基于Wemos的智能感应开盖垃圾桶 前言 硬件部分 软件部分 一.舵机控制 二.超声波控制 三.项目整体代码 思考 前言 记录嵌入式学习的第一个小项目吧,基于Wemos的智能感应开盖垃圾桶(上官可编程 ...

  4. 初识嵌入式之WeMos D1超声波感应开盖垃圾桶

    目录 硬件平台介绍:WeMos D1 开发环境介绍:ARDUINO开发环境 WeMos的IO口测试:驱动蜂鸣器 蜂鸣器 接线 由于该芯片基于串口连接------安装串口驱动 开发环境配置 选择端口 让 ...

  5. 基于Wemos D1的智能感应开盖垃圾桶

    硬件:这个项目我们主要用到的东西有环保型垃圾桶,Wemos D1模块,舵机,超声波模块,串口助手,若干条杜邦线等等. 环境:arduino 思路:首先这个项目又超声波,wemos d1模块,舵机SG9 ...

  6. 基于Wemos的感应开盖垃圾桶

    基于Wemos的感应开盖垃圾桶 一.绪论 1.研究背景 2.研究意义 二.系统总体设计方案 1.设计思路 2.硬件平台功能介绍 3.软件开发环境 三.设计思路实现步骤 1.Wemos的IO口研究驱动蜂 ...

  7. 51单片机之感应开盖垃圾桶

    目录 定时器 晶振 时钟周期 机械周期 每经过一个机械周期经过多长时间 定时器和计数器的区别 定时器相关寄存器 定时10ms,相关寄存器的配置 单片机中断 什么是中断 中断源 中断优先级 中断函数 中 ...

  8. 基于51单片机来开发的智能感应开盖垃圾桶

    为什么要引入定时器呢? 因为定时到报表的时候,可以由硬件执行那部分程序,软件部分仍然单独运行. 一.智能垃圾桶需求分析: 当距离小于等于10时,垃圾桶开盖持续两秒钟,否则垃圾桶关闭盖子 当检测到震动时 ...

  9. 第四篇 小项目整合-感应开盖垃圾桶v3.0

    目录 一.项目概述 1.功能描述 2.所需硬件 3.接线说明 二.开发步骤 1.SG90和HC-SR04代码整合 2.添加按键控制(433M)和开盖滴滴声(蜂鸣器) 3.添加震动控制(外部中断配合)

最新文章

  1. 工具 | 四元数长什么样?这个小工具将旋转量可视化+相互转换,效果直观!
  2. openssl、x509、crt、cer、key、csr、ssl、tls
  3. 从这篇文章可以看出有些错误,由此可以看出,还是看msdn要好的多,这是我的经验
  4. VC++中,如何定义callback函数和它的触发事件?
  5. replication debug for PRODUCT_MAT
  6. [BZOJ2152]聪聪可可(点分治)
  7. 安卓 qemu 运行linux,在Qemu的beagleboard上运行Android
  8. C++ Reference: Standard C++ Library reference: C Library: cwctype: wint_t
  9. 扫描仪服务器正在运行中,针对使用 Acrobat 时出现的扫描仪问题的故障排除提示...
  10. 人工智能的历史(History of artificial intelligence)
  11. JavaScript大师Nicholas C. Zakas又一大作出中文版了
  12. SpringBoot基础学习之整合Swagger框架(下篇)
  13. arduino esp32 读福申甲醛传感器
  14. C# 的1ms延时函数
  15. ECCV 2022 旷视入选论文亮点解读(上)
  16. Non-UTF-8 code starting with ‘\xb5‘ in file D:\eclipse\Python\test\__init__.
  17. 斐波那契数列 - 递推公式及通项公式 代码
  18. WEB开发技能树-JavaScript-DOM
  19. 琢石成器――windows环境下32位汇编语言程序设计(第三版)笔记
  20. python的递归为什么难理解_为什么Python有最大的递归深度?

热门文章

  1. z-index ie无效
  2. canvas--初级
  3. 【oracle】关于创建表时用default指定默认值的坑
  4. Sqoop拒绝连接错误
  5. UEditor 百度富文本编辑器 .Net实例
  6. 编程挑战:字符串的完美度
  7. 嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs
  8. halcon Bit图位像素处理算子,持续更新
  9. HALCON示例程序obj_diff.hdev算子obj_diff 的使用
  10. 误删了microsoft visual c++后如何正常运行matlab