Dual i2c Oled display with Arduino Mega 2560 with sensor DHT11 and MQ135





In questo progetto visualizzeremo temperatura umidità e qualità dell'aria su due display oled connessi ad arduino mega con sensori DHT11 e MQ135.Sul primo display quindi avremo le letture del sensore DHT11,mentre sul secondo display le letture del sensore MQ135.
Importante è che i due display abbiano due indirizzi i2c differenti nel mio caso 
sono 0x3C e 0x3D.Su google trovate facilmente le guide per poter cambiare indirizzo ad un display oled(bisogna agire su di un ponticello posto sul retro del display).


Questo è lo schema.(testato solo su arduino mega 2560)




collegamenti:
  

Per i due display  GND=GND pin di arduino (cavo nero)
                              Vcc=5V pin di arduino (cavo rosso)
                               SCL=SCK pin di arduino (cavo verde)
                               SDA=SDA pin di arduino (cavo bianco)



Sensore DHT11  Vcc=5V pin arduino cavo rosso
                             OUT=pin  2 di arduino cavo viola
                             GND=GND pin di arduino cavo nero


Sensore MQ135    A0=pin A0 di arduino cavo giallo
                               D0= lasciato libero
                               Vcc=5V pin di arduino cavo rosso
                               GND=GND pin di arduino cavo nero


ATTENZIONE VERIFICATE SEMPRE BENE TUTTI I COLLEGAMENTI E LE DICITURE SUI VARI SENSORI CHE POTREBBERO DIFFERIRE DALLO SCHEMA QUI RIPORTATO.
 
Il codice

//prova DHT11 e MQ135 con doppio display oled ssd1306 da 128x64px ed arduino mega 2560 by LabCippo

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_Sensor.h>
#include "DHT.h"
#include <Adafruit_SSD1306.h>


#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define DHTPIN 2     // Digital pin connected to the DHT sensor
#define DHTTYPE    DHT11     // DHT 11

Adafruit_SSD1306 display(OLED_RESET);
Adafruit_SSD1306 display2( OLED_RESET);

DHT dht(DHTPIN, DHTTYPE);

void setup() {

  dht.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);//importante che i due display abbiano indirizzi differenti
  display2.begin(SSD1306_SWITCHCAPVCC, 0x3D);

  display.display();
  display2.display();
  delay(1000);

  display.clearDisplay();
  display2.clearDisplay();



}

void loop() {
  delay(1000);
  int sensorValue = analogRead(A0);

  //leggo temperatura e umidità
  float t = dht.readTemperature();
  float h = dht.readHumidity();


  //clear display 1
  display.clearDisplay();

  // visualizzo sul display1 la temperatura da DHT11
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.print("  Temperatura: ");
  display.setTextSize(2);
  display.setCursor(0, 10);
  display.print(t);
  display.print(" ");
  display.setTextSize(1);
  display.cp437(true);
  display.write(167);
  display.setTextSize(2);
  display.print("C");

  // visualizzo sul display1 l'umidità da DHT11
  display.setTextSize(1);
  display.setCursor(0, 35);
  display.print("    Umidita: ");
  display.setTextSize(2);
  display.setCursor(0, 45);
  display.print(h);
  display.print(" %");

  display.display();

  display2.clearDisplay();          //clear display 2
  display2.setTextColor(WHITE);
  display2.clearDisplay();
  display2.setTextSize(1);            //visualizzo sul display2 i dati del sensore mq135
  display2.setCursor(0, 10);
  display2.print("    AIR QUALITY");
  display2.setCursor(10, 40);
  display2.print("PPM");
  display2.setTextSize(3);
  display2.setCursor(40, 40);
  display2.print(sensorValue);
  delay(1000);
  display2.display();

}


Post popolari in questo blog

Arduino nano+Mq135+display oled 0.96" ssd1306 128x64

Arduino weather station wireless con NRF24L01+PA+LNA+dht11+bmp180+mq135+HC-05 con doppio display oled 0,96" arduino nano+mega

Arduino+DHT11+BMP180+Oled display i2c sh1106 con schermate che si alternano

Modulo di contatto

Nome

Email *

Messaggio *