arduino uno + 舵机 + dht11 + 杜邦线 + usb + 面包板 测温度 控制舵机运动
器材:arduino uno + 舵机 + dht11 + 杜邦线 + usb + 面包板
第一步:dht11测量 温湿度
贴代码:
double Fahrenheit(double celsius)
{
return 1.8 * celsius + 32;
} //摄氏温度度转化为华氏温度
double Kelvin(double celsius)
{
return celsius + 273.15;
} //摄氏温度转化为开氏温度
// 露点(点在此温度时,空气饱和并产生露珠)
// 参考: http://wahiduddin.net/calc/density_algorithms.htm
double dewPoint(double celsius, double humidity)
{
double A0= 373.15/(273.15 + celsius);
double SUM = -7.90298 * (A0-1);
SUM += 5.02808 * log10(A0);
SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
SUM += log10(1013.246);
double VP = pow(10, SUM-3) * humidity;
double T = log(VP/0.61078); // temp var
return (241.88 * T) / (17.558-T);
}
// 快速计算露点,速度是5倍dewPoint()
// 参考: http://en.wikipedia.org/wiki/Dew_point
double dewPointFast(double celsius, double humidity)
{
double a = 17.271;
double b = 237.7;
double temp = (a * celsius) / (b + celsius) + log(humidity/100);
double Td = (b * temp) / (a - temp);
return Td;
}
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 2
void setup()
{
Serial.begin(9600);
Serial.println("DHT11 TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
}
void loop()
{
/*Serial.println("\n");*/
int chk = DHT11.read(DHT11PIN);
/*Serial.print("Read sensor: ");
switch (chk)
{
case DHTLIB_OK:
Serial.println("OK");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Checksum error");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println("Time out error");
break;
default:
Serial.println("Unknown error");
break;
}*/
/*Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity, 2);*/
// Serial.print("Temperature (oC): ");
Serial.print((float)DHT11.temperature, 2);
Serial.println((float)DHT11.humidity, 2);
/* Serial.print("Temperature (oF): ");
Serial.println(Fahrenheit(DHT11.temperature), 2);
Serial.print("Temperature (K): ");
Serial.println(Kelvin(DHT11.temperature), 2);
Serial.print("Dew Point (oC): ");
Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));
Serial.print("Dew PointFast (oC): ");
Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));*/
delay(2000);
}
注明代码出处:http://www.arduino.cn/thread-1429-1-2.html
第二步:可以通过ArduBlock可视化编程
自己改过后的代码:
double Fahrenheit(double celsius)
{
return 1.8 * celsius + 32;
} //摄氏温度度转化为华氏温度
double Kelvin(double celsius)
{
return celsius + 273.15;
} //摄氏温度转化为开氏温度
// 露点(点在此温度时,空气饱和并产生露珠)
// 参考: http://wahiduddin.net/calc/density_algorithms.htm
double dewPoint(double celsius, double humidity)
{
double A0= 373.15/(273.15 + celsius);
double SUM = -7.90298 * (A0-1);
SUM += 5.02808 * log10(A0);
SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
SUM += log10(1013.246);
double VP = pow(10, SUM-3) * humidity;
double T = log(VP/0.61078); // temp var
return (241.88 * T) / (17.558-T);
}
// 快速计算露点,速度是5倍dewPoint()
// 参考: http://en.wikipedia.org/wiki/Dew_point
double dewPointFast(double celsius, double humidity)
{
double a = 17.271;
double b = 237.7;
double temp = (a * celsius) / (b + celsius) + log(humidity/100);
double Td = (b * temp) / (a - temp);
return Td;
}
#include <Servo.h>
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 2
Servo servo_pin_3;
void setup()
{
Serial.begin(9600);
Serial.println("DHT11 TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
servo_pin_3.attach(3);
}
void loop()
{
static int a=0;
int chk = DHT11.read(DHT11PIN);
Serial.println((float)DHT11.temperature, 2);
Serial.println((float)DHT11.humidity, 2);
if((float)DHT11.temperature>18)
{
servo_pin_3.write( a );
a+=20;
}
delay(1000);
}
这是我改过之后的代码可以在串口监视器看到温湿度让后用温度大于18度让舵机运动。
转载注明出处。
arduino uno + 舵机 + dht11 + 杜邦线 + usb + 面包板 测温度 控制舵机运动相关推荐
- Arduino UNO 连接DHT11 通过串口实时显示温湿度
(一)实验需要准备的硬件材料: 1.一块Arduino UNO板(带数据线) 2.DHT11 温湿度传器 3.杜邦线若干.面包板 (二)需要准备的软件: 1.Arduino安装程序包: 链接:http ...
- arduino电源接口直径多大_求助:Arduino UNO(如下图)有三种供电方式:USB供电,5v(供应芯片,下面一排接口中“...
1.首先在你的电脑上插上"aroduino",这时候电脑右下角就会显示出来: 插上"aroduino" 2.因为找不到驱动,所以过一会就会看到提示"未 ...
- 用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。
一.通过STMcube创建项目 1.配置引脚 2.配置exit 3.配置sys 4.配置gpio 5.创建项目生成代码 点击右上角GENERAT CODE 二.通过keil5编辑并修改部分代码 在打开 ...
- 杜洋单片机pcb百度云_[分享][下载]杜洋工作室的面包板入门单片机基础版和提高版完整下载...
1. 我的元件库\74LS595.LibPkg ..........\78稳压块.SCHLIB ..........\8-8点阵.LibPkg ..........\8-8点阵.Pcb ...
- 基于arduino UNO R3的远程可控的红外热释传感器 (转)
首先实物图奉上,比较简陋别见怪啦哈哈 <ignore_js_op> ●实验名称:基于机智云平台的红外热释传感器的应用 ●实验目的:1. 能够在云平台下,手机实时观测传感器返回的AD值: ...
- 使用ESP8266与小爱同学通过Arduino控制舵机
一.硬件 名称 数量 ESP8266开发板 1 Arduino UNO 1 MG995舵机 1 杜邦线 若干 二.开发环境配置 本实验通过Arduino IDE调用Blinker提供的SDK实现 ID ...
- Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所构成的室内安全报警模块
该系统模块主要由Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所组成,MQ-2烟雾浓度传感器 ...
- 利用arduino UNO配合Orangepi 4B实现制作机器人
利用arduino UNO配合Orangepi 4B实现制作机器人 在上一个博客的最后我提到了利用Orangepi 4B制作机器人(传送门) 在这部分需要有更多的准备 知识储备 硬件方面准备 软件方面 ...
- Arduino uno 宿舍NFC开门方案
目录 0x00 前言 0x01 材料 0x02 连接 0x03 编程 References 0x00 前言 本人由于过于懒惰,同时又发现宿舍门实在简陋,2021年了都不能刷校园卡进门,正值暑假留校,就 ...
- 基于Arduino Uno的RFID门禁
前言 这个门禁已经用了一年多啦~实测很稳定 接线也比较简单,而且实用性拉满,适合用来入门 因为我宿舍靠阳台下雨会泼水所以就没做指纹和密码,有兴趣的也可以拓展多种解锁方式 背景 本人没有带钥匙出门的习惯 ...
最新文章
- Pci设备驱动:设备枚举
- startos 5.1 如何 root 登陆
- 如何在vue里面正确的引用 jquery 和 第三方插件
- libevent源码学习-----event操作
- Java并发编程—ScheduledThreadPoolExecutor原理分析
- OLW (Open Live Writer)安装代码高亮插件方法(简明)
- 漫步最优化七——介绍
- 面试嵌入式开发工程师问的问题记录一下
- archivedDataWithRootObject NSUserDefaults
- springmvc配置servlet
- echarts-map的使用
- 基于Ubuntu的linux环境制作嵌入式SD/TF启动卡
- 兰勃特等角圆锥(Lambert Conformal Conic)投影正反变换
- MATLAB含有绝对值的线性规划,Lingo求解带绝对值的线性规划模型
- 普通话-汉语拼音字母表
- 支持iphone的打印服务器,无需购买WiFi打印机,实现电脑、iPad、iPhone共享无线打印...
- Unity3d FingerGestures
- 深度解析——图片加载到内存中的大小计算内存优化
- 电脑使用越来越慢,如何解决
- 《中国人史纲》读书笔记:第四章 半信史时代 第五章 信史时代