dht11和ds18b20测温度

lcd显示室温

本文分为三部分:

  • 硬件讲解
  • 代码实现
  • ds18b20替代dht11

1.硬件讲解
材料:

  • dht11温湿度传感器*1
  • arduino uno*1
  • lcd*1
  • 杜邦线* n
  • 面包板*1
  • 电位计*1

引脚说明:
在这里插入图片描述
连接图:
在这里插入图片描述
dht11的DATA引脚采用单总线

2.代码实现

#include <LiquidCrystal.h>
#include <DHT.h>

#define DHTPIN 8
#define DHTTYPE DHT11

LiquidCrystal lcd(12,11,5,4,3,2); 
DHT dht(DHTPIN,DHTTYPE);

void setup() {
  // put your setup code here, to run once:
    Serial.begin(9600);
    dht.begin();
    lcd.begin(16,2);
}

void loop() {
  // put your main code here, to run repeatedly:
    delay(3000);//dht需要反应时间
    lcd.clear();
    float t=dht.readTemperature();
    float h=dht.readHumidity();
    lcd.print("temperature is");
    lcd.setCursor(0,1);
    lcd.print(t);
    lcd.print((char)223);
    lcd.print("C");
    delay(3000);
    lcd.clear();
    lcd.print("humidity is");
    lcd.setCursor(0,1);
    lcd.print(h);
    lcd.print("%");
    //加入了湿度测量

}

3.ds18b20替代dht11
它长这样
在这里插入图片描述
引脚说明:正对字面从左到右GND,DATA,VCC

连接图:在这里插入图片描述
代码:`

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

#define ONE_WIRE_BUS 8
OneWire temp(ONE_WIRE_BUS);
DallasTemperature sensors(&temp);
LiquidCrystal lcd(12,11,2,3,4,5);
float temperature = 0;

void setup() {
  // put your setup code here, to run once:
    Serial.begin(9600);
    sensors.begin();
    lcd.begin(16,2);
    lcd.print("hello,world!");
    delay(1000)}

void loop() {
  // put your main code here, to run repeatedly:
    sensors.requestTemperatures();
    temperature = sensors.getTempCByIndex(0);
    delay(100);
    temperature = (temperature*10);
    lcd.clear();
    lcd.print("temperature is");
    lcd.setCursor(0,1);
    lcd.print((long)temperature/10);
    lcd.print(".");
    lcd.print((long)temperature%10);
    lcd.print((char)223);
    lcd.print("C");
    delay(1000);    
}

lcd显示温度为-127则是报错,一般是接线出问题了

小结
在测温方面,ds18b20完全可以和dht11平起平坐,同时ds18吧、20体积小接线灵活,可操作性强,其实这些温度传感器无非就是一些能随温度变化而改变的物品,只要一个物品能够感知外界变化并反馈出电信号,那么它就可以被制成传感器了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值