传感器数值读取
电路连接
DHT11:
GND-负极
VCC-5V正极
OUT-Arduino 8脚
加载库函数
dht11.zip
有的库函数是离线下载的,可以通过这个方式下载库函数的压缩包,再进行载入
示例程序
/**********************************************************************
DHT11温湿度传感器的数据读取
-----------------------------------------------------------------------
修订历史/Revision History
日期/Date 作者/Author 参考号/Ref 修订说明/Revision Description
2021/03/30 金陵中学 1.0 金陵中学Arduino选修课使用
-----------------------------------------------------------------------
*/
#include <dht11.h>
#define DHT11PIN 8
dht11 DHT11;
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println();
int chk = DHT11.read(DHT11PIN);
float h = (float)DHT11.humidity;
float t = (float)DHT11.temperature;
Serial.print("Humidity (%): ");
Serial.print(t, 1);//1代表1位小数,2代表2位小数,以此类推
Serial.print(" Temperature (C): ");
Serial.print(h, 1);
delay(500);
}
OLED自动气象站
电路连接
DHT11:
GND-负极
VCC-5V正极
OUT-Arduino 8脚
OLED显示屏:
GND-负极
VCC-5V正极
SCL-Arduino A5脚
SDA-Arduino A4脚
示例程序
/**********************************************************************
Arduino自动气象站
-----------------------------------------------------------------------
修订历史/Revision History
日期/Date 作者/Author 参考号/Ref 修订说明/Revision Description
2021/04/12 金陵中学 1.0 金陵中学Arduino选修课使用
-----------------------------------------------------------------------
*/
#include <dht11.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define DHT11PIN 8
dht11 DHT11;
#define OLED_RESET 4
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.setTextColor(WHITE);//开像素点发光
}
void loop() {
int chk = DHT11.read(DHT11PIN);
float h = (float)DHT11.humidity;
float t = (float)DHT11.temperature;
display.clearDisplay();//清屏
display.setTextSize(1); //设置字体大小
display.setCursor(7, 0);//设置显示位置
display.println("JinLing High School");//输出字符
display.setCursor(7, 15);//设置显示位置
display.println("Temperature(%):");//输出字符
display.setCursor(100, 15);//设置显示位置
display.print(t,1);//显示温度
display.setCursor(7, 45);//设置显示位置
display.println("Humidity(%):");//输出字符
display.setCursor(100, 45);//设置显示位置
display.print(h,1);//显示温度
display.display();//开显示
delay(100);
}