2021-06-12

利用DHT11和水位传感器监测温湿度和水位的arduino实验

在这个arduino实验中,使用DHT11的温湿度传感器和水位传感器监测当前环境中的温度、湿度以及水位的变化情况,并将数值显示在串口监视器上。
首先,准备实验需要的器材:
Arduino Uno
DHT11
水位传感器
面包板
一杯水
杜邦线
USB线

下面需要知道DHT11和水位传感器的引脚连接,DHT11有4个引脚,从左往右分别是VCC、DATA、NC、GND,VCC是接正极(这里是接5V),DATA接数据引脚(1—13都可以),NC不接线,GND是负极接地。水位传感器有三个引脚,从左往右分别是负极,正极,s引脚,负极就是接GND,正极接5V,是引脚是模拟信号的引脚接A0。
2021-06-12

搞清楚引脚的连接后,下面要在IDE中编写程序了,需要下载arduino IDE,下载地址:https://www.arduino.cc/en/software 下面就是arduino IDE的界面
2021-06-12

下载后在arduino IDE中,我们首先要安装DHT11的库,然后就要在程序中设定DHT11和水位传感器连接到Arduino Uno上的引脚号,下面就是完整程序代码。

#include <DHT.h>
// Define DHT11 pin
DHT dht(8,DHT11);

// Analog input pin
const int analogInPin = A0;
// PWM output pin
const int analogOutPin = 9;

// Potentiometer voltage value
int sensorValue = 0;
// Analog output value (PWM)
int outputValue = 0;

void setup() {
Serial.begin(9600);
//Open data communication of DHT11
dht.begin();
}

void loop() {
// Read analog value
sensorValue = analogRead(analogInPin);
// Transform data interval
outputValue = map(sensorValue, 0, 1023, 0, 255);
delay(500);
float T = dht.readTemperature();
float H = dht.readHumidity();
// Output PWM value
analogWrite(analogOutPin, outputValue);

// Print results to serial monitor
Serial.print(“sensor = " );
Serial.print(sensorValue);
Serial.print(”\t output = “);
Serial.println(outputValue);
Serial.print(“Temperature:”);
Serial.print(T);
Serial.print(“℃”);
Serial.print(“Humidity:”);
Serial.print(H);
Serial.print(”%");
// Wait for 200ms for the next cycle
// Ensure that the next value can be read stably
delay(200);
}

程序写好,下面就要进行实物连接了。
原理图:
2021-06-12
实物连接图:
2021-06-12
实物图连接好之后,将程序上传到arduino uno开发板上,下面我们需要准备一杯水,将水位传感器的一端慢慢浸入水中,这时打开串口监视器,就会看到温湿度以及水位的情况了。

串口监视器输出:
2021-06-12
下面是实验的演示过程:

<iframe allowfullscreen="true" data-mediaembed="bilibili" id="4EBjQHmN-1623507525938" src="https://player.bilibili.com/player.html?aid=376085624"></iframe>

video

上一篇:查找与排序:堆排序


下一篇:温湿度传感器DH11