#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define sensor A0
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void show(int position, char* text);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
display.startscrollright();
display.stopscroll();
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
while (true);
}
delay(2000);
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(45, 1);
oled.println("CO2");
oled.display();
}
void loop() {
int level = analogRead(A0);
Serial.print(level);
Serial.print("ppm");
Serial.println();
delay(200);
display.startscrollright(0x00, 0x0F);
delay(2000);
display.stopscroll();
delay(1000);
if (level <= 100) {
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(45, 50);
oled.println("CLEAN");
oled.setCursor(45, 1);
oled.println("CO2");
oled.setCursor(22, 30);
oled.println(level);
oled.setCursor(72, 30);
oled.println("ppm");
oled.display();
digitalWrite(6, HIGH);
delay(100);
digitalWrite(6, LOW);
delay(100);
}
else if (level <= 150) {
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(45, 50);
oled.println("NORMAL");
oled.setCursor(45, 1);
oled.println("CO2");
oled.setCursor(22, 30);
oled.println(level);
oled.setCursor(72, 30);
oled.println("ppm");
oled.display();
digitalWrite(6, HIGH);
delay(100);
digitalWrite(6, LOW);
delay(100);
}
else if (level <= 200) {
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(25, 50);
oled.println("MEDIOCRE");
oled.setCursor(45, 1);
oled.println("CO2");
oled.setCursor(22, 30);
oled.println(level);
oled.setCursor(72, 30);
oled.println("ppm");
oled.display();
digitalWrite(7, HIGH);
delay(100);
digitalWrite(7, LOW);
delay(100);
}
else if (level <= 250) {
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(45, 50);
oled.println("HIGH");
oled.setCursor(45, 1);
oled.println("CO2");
oled.setCursor(32, 30);
oled.println("ppm");
oled.setCursor(72, 30);
oled.println("ppm");
oled.display();
digitalWrite(7, HIGH);
delay(100);
digitalWrite(7, LOW);
delay(100);
}
else if (level > 300) {
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(20, 50);
oled.println("VERY HIGH");
oled.setCursor(45, 1);
oled.println("CO2");
oled.setCursor(22, 30);
oled.println(level);
oled.setCursor(72, 30);
oled.println("ppm");
oled.display();
digitalWrite(5, HIGH);
delay(999);
digitalWrite(5, LOW);
delay(999);
}
float humi = dht.readHumidity();
float tempC = dht.readTemperature();
if (isnan(humi) || isnan(tempC)) {
Serial.println("Failed to read from DHT sensor!");
} else {
Serial.print("Humidity: ");
Serial.print(humi);
Serial.print("%");
Serial.print(" | ");
Serial.print("Temperature: ");
Serial.print(tempC);
Serial.print("°C ~ ");
}
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Temperature: ");
display.setTextSize(2);
display.setCursor(0, 10);
display.print(tempC);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("C");
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Humidity: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(humi);
display.print(" %");
display.display();
}
}
error code
C:\Users\amish\Documents\Arduino\sketch_dec17a\sketch_dec17a.ino: In function 'void setup()':
sketch_dec17a:21:3: error: 'display' was not declared in this scope
display.startscrollright();
^~~~~~~
C:\Users\amish\Documents\Arduino\sketch_dec17a\sketch_dec17a.ino:21:3: note: suggested alternative: 'delay'
display.startscrollright();
^~~~~~~
delay
C:\Users\amish\Documents\Arduino\sketch_dec17a\sketch_dec17a.ino: In function 'void loop()':
sketch_dec17a:46:3: error: 'display' was not declared in this scope
display.startscrollright(0x00, 0x0F);
^~~~~~~
C:\Users\amish\Documents\Arduino\sketch_dec17a\sketch_dec17a.ino:46:3: note: suggested alternative: 'delay'
display.startscrollright(0x00, 0x0F);
^~~~~~~
delay
C:\Users\amish\Documents\Arduino\sketch_dec17a\sketch_dec17a.ino: At global scope:
sketch_dec17a:190:1: error: expected declaration before '}' token
}
^
Multiple libraries were found for "Adafruit_SSD1306.h"
Used: C:\Users\amish\Documents\Arduino\libraries\Adafruit_SSD1306
Not used: C:\Users\amish\Documents\Arduino\libraries\Adafruit_SSD1306-master
Not used: C:\Users\amish\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED
Multiple libraries were found for "DHT.h"
Used: C:\Users\amish\Documents\Arduino\libraries\DHT_sensor_library
Not used: C:\Users\amish\Documents\Arduino\libraries\NanoPlayBoard
exit status 1
'display' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
i am using an 128x64 OLED screen for display and an MQ-135 for CO2 and a DHT11 aensor