ESP8266-Arduino编程实例-OLED显示BMP180传感器数据

OLED显示BMP180传感器数据

1、应用实例介绍

本实例将演示如何通过OLED显示BMP180传感器数据。实例主要由两部分组成:

  • BMP180数据采集
  • OLED数据显示

在前面的文章中,对BMP180的应用及驱动做了详细的介绍,请参考:

在前面的文章中,对OLED的应用及驱动做了详细的介绍,请参考:

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • BMP180传感器模块一个
  • OLED(SSD1306)模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次使用到BMP180传感器驱动库如下:

使用OLED驱动库如下:

1)导入依赖库头文件

1
2
3
4
5
6
7
8
#include <Wire.h> 
#include "SSD1306Spi.h"
#include <Adafruit\_BMP085.h>

// OLED设备
SSD1306Spi display(D3, D4, D8); // RES, DC, CS
Adafruit_BMP085 bmp;

2)设备初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void setup() 
{
// 串口初始化
Serial.begin(9600);
// BMP180初始化
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP180 sensor, check wiring!");
while (1) {}
}

// OLED初始化
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_10);
}

3)数据采集与显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void loop(){
display.clear();
// 读取BMP180数据
String pressureStr = "Pressure = ";
pressureStr.contact(bmp.readPressure());
pressureStr.concat(" Pa");
String tempStr = "Temp =";
float temperature = bmp.readTemperature();
tempStr.concat(temperature);
tempStr.concat("\*C");

// 显示数据
display.drawString(1, 3, pressureStr);
display.drawString(1, 30, tempStr);

delay(2000);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/127681937