esp8266&点灯科技&arduino

2023-11-01

ESP8266&点灯科技&arduino

esp8266实现温度传感器、利用超声波传感器测距与舵机控制

ESP8266驱动DS18B20

  1. ESP8266与DS18B20的硬件连接

DS18B20 属性文本

  1. DS18B20引脚排列

DS18B20 属性文本

3.读取一次DS18B20温度数据

发送复位信号–>检测回应信号—>发送 0xCC–>发送 0x44->发送复位信号—>检测回应信号—>写 0xcc—>写 0xbe—>循环 8 次读取温度低字节—>循环 8 次读取温度高字节---->打印温度信息

4.硬件说明
DS18B20 GND和VDD分别与esp8266GND和3v3连接,DQ与引脚D4连接

舵机的控制

1.硬件说明

舵机 属性文本

连接方式如下:

橙线连接数字引脚D7

棕线连接到GND引脚

红线连接到3V3引脚

2.代码实现

利用超声波传感器测距

1.基本说明

超声波传感器可以通过使用超声波来测量距离。传感器头发射超声波并接收从目标反射回来的波。超声波传感器通过测量发射和接收之间的时间来测量到目标的距离。当然,简单来说,超声波传感器是通过使用声波来测量物体的距离的装置。它通过发出特定频率的声波来测量距离,并等待该声波反弹。通过记录在产生的声波和声波反弹之间所花费的时间,可以计算传感器和物体之间的距离。

接下来我们开始来搭建硬件。

1.原理说明
舵机 属性文本

舵机 属性文本

超声波模块到底是怎么运行的呢?

在使用之前我们必须弄清楚这个传感器的运行方法,因为传感器本身只是把它的“ECHO”引脚保持在高电平,使之持续一段时间,这对应于从发送的波形到接收反射(回波)所花费的这一段时间。

模块发出一阵声波,同时向回声引脚施加电压。

该模块从声波接收反射并从回波引脚消除电压。

在测距的时候,超声波传感器中产生脉冲将数据发送到NodeMCU或任何其它的微控制器。

起始脉冲约为10us,基于距离的PWM信号将为150 us-25us。如果没有障碍物,则NodeMCU生成38us脉冲,以确认没有检测到物体。

在读取HC-SR04测的距离之前,得先了解如何计算距离的,这有一个公式。

Distance = 1/2×T×C

其中Distance是距离,T是发射和接收之间的时间,C是声速。

(该值乘以1/2,因为T是返回距离的时间。)

2.连接HC-SR04

舵机 属性文本

舵机 属性文本

开始编程

//wifi模块  温度传感器
#define BLINKER_WIFI //定义wifi模块
#include <Blinker.h>

#include<OneWire.h>
#include<DallasTemperature.h>

#include <Servo.h>  

char auth[]="daced4da6547";//点灯中的密钥
char ssid[]="";  //此处输入热点名称
char pswd[]="";  //此处输入热点密码

const int TrigPin = 4;     //设置发射脚位,对应ESP8266 D2
const int EchoPin = 5;    //设置接收脚位,对应ESP8266 D1
float cm;                //浮点型数据类型(加小数点,提高精准度)

BlinkerButton Button1("btn-max");   //位置1 按钮 数据键名
BlinkerSlider Slider1("max-num");   //位置1 滑块 数据键名  范围0-180
Servo myservo;


BlinkerNumber JULI("num-juli");
BlinkerNumber TEMP("num-wendu");
float juli_read =0;
float temp_read = 0;//定义浮点型全局变量 储存传感器读取的温湿度数据

#define ONE_WIRE_BUS D4
//定义一个OneWire对象,并使用D4引脚作为单总线的引脚

//单总线的引脚的对象作为传感器的参数。
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
   //定义温度数据键名

int servo_max;
  
void button1_callback(const String & state) {    //位置1 按钮
    BLINKER_LOG("get button state: ", servo_max);
    myservo.write(servo_max);
    Blinker.vibrate();
}
  
void slider1_callback(int32_t value)
{
  BLINKER_LOG("get slider value: ", value);
    servo_max = value;
    Slider1.color("#1E90FF");
    Slider1.print();
    myservo.write(value);//去掉即可用按钮控制
}
 




int counter = 0;

void heartbeat()
{
    TEMP.print(temp_read);        //给blinkerapp回传温度数据
    JULI.print(juli_read);        //给blinkerapp回传juli数据
}

void setup()
{
    //初始化端口
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
    
   pinMode(TrigPin, OUTPUT);
   pinMode(EchoPin, INPUT);
  
    Blinker.begin(auth, ssid, pswd);//运行blinker
    
    Blinker.attachHeartbeat(heartbeat);//将传感器获取的数据传给blinker app上

    Button1.attach(button1_callback);
    Slider1.attach(slider1_callback);
    myservo.attach(D7);
    myservo.write(10);
}

void loop(void)
{
Blinker.run();//运行Blinker
sensors.requestTemperatures();
   float t=sensors.getTempCByIndex(0);
   temp_read=t;
   
digitalWrite(TrigPin, LOW);       //用低高低电平发送脉冲给Trigpin引脚
  delayMicroseconds(2);             //微秒级延时
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);
  cm = pulseIn(EchoPin, HIGH)/ 58.0; //读取脉冲宽度,换算成厘米
  float s =cm;
  juli_read = s;
  delay(1000);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

esp8266&点灯科技&arduino 的相关文章

  • 基于LSTM模型的共享自行车需求预测

    公众号 尤而小屋作者 Peter编辑 Peter 大家好 我是Peter 今天给大家带来一篇新的kaggle数据分析实战案例 基于长短期记忆网络 LSTM 模型的伦敦自行车需求预测分析 本文的两个亮点 高级可视化 本文使用seaborn进行
  • react-native-mapbox-gl在RN中的使用 --工作笔记

    搭建好react native环境后 初始化项目 参见官方搭建环境 这里引入react native mapbox gl也分新旧两个版本 旧的已经不维护了 推荐使用新的 功能模块也比较多 然后引入react native mapbox gl
  • PHP代码审计 -- 文件上传

    工具 环境 工具 Seay源代码审计系统 文本编辑器一个 环境 phpstudy 网站源码是 zbzcms 步骤 1 将zbzcms网站源码放入phpstudy 根据网站安装引导完成网站搭建 2 打开Seay 新建项目 gt 选择网站源码
  • ISO9706.1中对于医疗器械的安全分类

    医用设备的分类 按防电击类型分类 类设备和 类设备 按防电击的程度分类 B型设备 对电击有特定防护程度的设备 允许漏电流 保护接地连接 若有 的可靠性 如 彩超 电子血压计等 BF型 有F型应用设备部分的B型设备 允许漏电值规定值增加了对应
  • NPOI导出表格信息,导出图片

    StringBuilder strTemp new StringBuilder strTemp Append select dbo fu GetCompanyNameById company id as CompanyName from I
  • 2023年8月京东白酒行业数据分析(京东数据开放平台)

    中秋 国庆 双节 即将到来之际 白酒市场中越来越多的促销手段浮现 除了线下门店 线上电商也推出 百款直降 限量预约抢购 百亿补贴 等活动 如习酒消费满额享华为手机 五粮液指定产品满219减120元 洋河海之蓝实付满2999元赢云南畅游卡 作
  • java中servletcontext_java中获取ServletContext常见方法

    1 在javax servlet Filter中直接获取 ServletContext context config getServletContext 2 在HttpServlet中直接获取 this getServletContext

随机推荐

  • HTTP协议/RTP/RTSP协议/RTMP协议的区别

    RTSP RTMP HTTP的共同点 区别 共同点 1 RTSP RTMP HTTP都是在应用应用层 2 理论上RTSP RTMPHTTP都可以做直播和点播 但一般做直播用RTSP RTMP 做点播用HTTP 做视频会议的时候原来用SIP协
  • react与antd搭配实现图片上传与设置主图功能

    antd的upload可以实现上传 但是其上传之后 图片列表展示都是其组件里面已经封装好的 也没有vue那种提供插槽solt的功能 但是我司需要实现在每张图片下方有个radio标签来设置主图 左思右想 是不是得直接把upload组件拿过来再
  • jquery 表单清空

    frm form clear
  • 怎么升级服务器浏览网页速度快,如何快速提升网页速度有哪些优化技巧

    我们使用电脑和手机时候最不能忍受就是设备又卡又慢了 严重影响我们工作或者游戏体验 对于网页打开速度优化 肯定会说到SEO规则 下面一起看看具体分析 一 谷歌如何看待网页速度 首先我们以谷歌为例 了解搜索引擎是如何看待这个问题 早前 谷歌的资
  • 华为OD机试真题-统计友好度最大值【2023Q1】

    题目描述 工位由序列F1 F2 Fn组成 Fi值为0 1或2 其中0代表空置 1代表有人 2代表障碍物 1 某一空位的友好度为左右连续老员工数之和 2 为方便新员工学习求助 优先安排友好度高的空位 给出工位序列 求所有空位中友好度的最大值
  • UE4文件读写(.txt文本文档)

    UE4文件读写 txt文本文档 一 创建C 类继承BlueprintFunctionLibrary 二 用到的函数 读取文件 bool FFileHelper LoadFileToString FString Result const TC
  • node.js os模块

    获取 系统信息的模块 包括操作系统和硬件信息 但是能力很有限 用法 var os require os node版本 0 8 22 os tmpdir 获取系统的临时目录 os endianness 获取cpu的字节序 返回的值可能是 BE
  • HBase的数据热点和Hbase常见避免热点问题的方法

    只要使用过 听说过HBase的人 我想对HBase的数据热点想必也不会陌生 数据热点是如何出现的 这得从HBase的存储结构说起 对于HBase详细的存储结构可以上网搜一下 这里就不补充了 我们只需要知道 我们的HBase的表会被划分为1个
  • 【模型部署】c++调用tensorRT的模型(engine)

    将分割模型就行腾搜人RT转化后得到engine 该博客主要是针对c 调用tensorRT的模型文件engine 文章目录 1 框架 2 main tensorRT exe 2 1 LoadCathodeHeadEngine 读取模型 2 2
  • odoo报错:AttributeError: ‘_unknown‘ object has no attribute ‘id‘

    在开发中遇到的这个问题 AttributeError unknown object has no attribute id 1 当在一个模块中写了一个many2one字段 例如a fields many2one base repair 基础
  • TTL电平和CMOS电平总结

    转载自 https blog csdn net godloveyuxu article details 72965351 1 TTL电平 输出高电平 gt 2 4V 输出低电平 lt 0 4V 在室温下 一般输出高电平是3 5V 输出低电平
  • R数据科学-第4章使用tibble实现简单数据框

    下面一个部分将介绍数据处理 将数据以合适的形式导入R 从而进行可视化和建模 tibble是一种简单数据框 其更易于在tidyverse中使用 一 使用与创建 1 将数据框转换为tibble gt library tidyverse gt a
  • SpringBoot2.x 集成Activiti6.xs :java.lang.ArrayStoreException: sun.reflect.annotation.***

    今天使用SpringBoot2 x 版本集成Activiti 6 x 启动Application java 程序 提示如下错误信息 org springframework beans factory BeanCreationExceptio
  • css隐藏状态,仅使用CSS淡出后隐藏元素

    CSS page moz animation name fadeIn webkit animation name fadeIn ms animation name fadeIn animation name fadeIn moz anima
  • IDEA-使用插件远程连接Redis(收费与免费插件)

    前言 IDEA连接Redis可视化 可以在IDEA中 删除存储的缓存等操作 使用 1 收费 点击工具栏的File gt Settings gt Plugins 然后进行搜索Redis 我这里下载过了 然后点击Install进行下载 下载好后
  • 《推荐系统实践》第二章 利用用户行为数据

    2 1 用户行为数据简介 在电子商务网站中行为主要包括网页浏览 购买 点击 评分和评论等 用户行为在个性化推荐系统中一般分两种 显性反馈行为 explicit feedback 和隐性反馈行为 implicit feedback 显性反馈行
  • ajax的responseText是什么东西

    你向ajax后台的程序发送xmlhttp请求的时候 后台程序接到请求会进行处理 处理结束后 可以返回一串数据给前台 这个就是responseText 一般在后台程序C 中是Response Write 字符串 php中使用的是echo 就是
  • JVM系列之类加载

    前言 虚拟机把描述类的数据从Class文件加载到内存 并对数据进行校验 转换解析和初始化 最终形成可以被虚拟机直接使用的Java类型 这个过程就称为JVM的类加载机制 今天我们主要从下面两个方面说下类加载 类加载时机和类加载过程 类加载时机
  • 单元测试打桩,通俗易懂解释。

    在软件开发中的单元测试过程中 单元测试打桩通常是一种模拟或替代正在被测试的组件或系统的策略 在单元测试打桩过程中 测试代码使用一个 虚拟 实现来替代掉实际组件或系统的某些部分 从而可以进行封闭式的测试 简单来说 单元测试打桩是一种 模拟卡
  • esp8266&点灯科技&arduino

    ESP8266 点灯科技 arduino esp8266实现温度传感器 利用超声波传感器测距与舵机控制 ESP8266驱动DS18B20 ESP8266与DS18B20的硬件连接 DS18B20引脚排列 3 读取一次DS18B20温度数据