目录

一、超声波简介

超声波原理:

二、DHT11温湿度传感器 

引脚定义:

三、SSD1315手册资料

代码参考

电路连接:

效果展示

实验电路​


实验器材:
    超声波传感器,Arduino uno,DHT11温湿度传感器,SSD1315 OLED显示屏

一、超声波简介

超声波原理:

利用声音测距,声音在空气中的速度是340m/s(15℃)
当声音传播时,若遇到障碍物时,就会被反弹回来,通过计时反弹回来的时间就可以计算出从发射端到障碍物的距离

二、DHT11温湿度传感器 

引脚定义:

工作电压:3V-5.5V宽电压供电

DHT11是一款含有已校准数字信号输出的温湿度复合传感器,采用了自主研发的集成式数字温湿度元件,应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。DHT11传感器内包含一个温湿度测量元件和一个高性能MCU

三、SSD1315手册资料

SSD1315是一款单芯片CMOS OLED/PLED驱动控制芯片,直接从内部128*64位GDDRAM中显示数据,可直接引用SSD1306使用

代码参考

#include <DHT.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define DHTPIN 2
#define DHTTYPE DHT11
#define TRIGGER_PIN A0
#define ECHO_PIN A1

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(TRIGGER_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 init failed"));
    for(;;);
  }
  
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("Sensor Monitor");
  display.println("Starting up...");
  display.display();
  delay(1000);
}

void loop() {
  delay(2000);

  digitalWrite(TRIGGER_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIGGER_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN, LOW);
  
  unsigned long duration = pulseIn(ECHO_PIN, HIGH);
  unsigned int distance = duration / 58;

  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("DHT read failed");
    display.clearDisplay();
    display.setCursor(0, 0);
    display.println("Sensor Error!");
    display.display();
    return;
  }

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\tTemp: ");
  Serial.print(t);
  Serial.print("℃\tDist: ");
  Serial.print(distance);
  Serial.println(" cm");

  display.clearDisplay();
  
  // 第一行:状态信息
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.print(millis()/1000);
  display.print("s | ");
  display.setCursor(40, 0);
  display.print("Refreshing...\n");
  
  // 第二行:温度
  display.setTextSize(1);
  display.setCursor(0, 22);
  display.print("Temp:");
  display.setTextSize(1);
  display.setCursor(35, 22);
  display.print(t);
  display.print("C");

 
  
  // 第三行:湿度
  display.setTextSize(1);
  display.setCursor(0, 32);
  display.print("Humidity:");
  display.setTextSize(1);
  display.setCursor(55, 32);
  display.print(h);
  display.print("%");

  
  
  // 第四行:距离
  display.setTextSize(1);
  display.setCursor(0, 42);
  display.print("Distance:");
  display.setTextSize(1);
  display.setCursor(55, 42);
  display.print(distance );
  display.print("cm");

  
  display.display();
}

电路连接:

超声波:

Vcc接5V   Gnd接地  Trig接A0 Echo接A1

DHT11:

VCC接3.3v GND接地  DATA接2 

OLED1315:

 Vcc接5V   Gnd接地 SCL SDA分别接开发板的SCL SDA

效果展示

实验电路

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐