RaspBar icon

ESP8266_DHT22_ST7735.ino

RaspBar | PRO | 02/01/23 05:30:43 AM UTC (Edited) | 0 ⭐ | 1047 👁️ | Never ⏰ | []
C++ |

3.79 KB

|

None

|

0 👍

/

0 👎

/**************************************************************************
 * 
 * ESP8266 NodeMCU (ESP-12E)mit ST7735S TFT Display (128x160 Pixel) 
 * und DHT22 Luftdruck-, Temperatursensor.
 *
 *************************************************************************/
 
#include <Adafruit_GFX.h>      // include Adafruit graphics library
#include <Adafruit_ST7735.h>   // include Adafruit ST7735 TFT library
#include <DHT.h>               // include Adafruit DHT library code
 
//LED Setup
int LEDrot = D0; // -> GPIO-16
int LEDblau = D3; // -> GPIO-0
 
 
// ST7735 TFT module connections
#define TFT_RST   -1     // TFT RST pin is connected to NodeMCU pin RST
#define TFT_CS    D8     // TFT CS  pin is connected to NodeMCU pin D8
#define TFT_DC    D4     // TFT DC  pin is connected to NodeMCU pin D4
// initialize ST7735 TFT library with hardware SPI module
// SCK (CLK) ---> NodeMCU pin D5 (GPIO14)
// MOSI(DIN) ---> NodeMCU pin D7 (GPIO13)
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
 
#define DHTPIN  D6           // DHT11 data pin is connected to NodeMCU pin D6 (GPIO5)
#define DHTTYPE DHT22        // DHT11 sensor is used
DHT dht22(DHTPIN, DHTTYPE);  // configure DHT library
 
void setup(void)
{
  //LED initialisieren -> LED aus
  pinMode(LEDrot, OUTPUT); // Pin D0 ist ein Ausgang.
  pinMode(LEDblau,OUTPUT); // Pin D3 ist ein Ausgang.
  digitalWrite(LEDrot, LOW); // Schalte die LED an Pin D0 aus. D0 ist beim Start des ESP8266 auf HIGH.
  digitalWrite(LEDblau, LOW); // Schalte die LED an Pin D3 aus.  
  
  tft.initR(INITR_BLACKTAB);     // initialize a ST7735S chip, black tab
  tft.fillScreen(ST7735_BLACK);  // fill screen with black color
  tft.drawFastHLine(0, 50,  tft.width(), ST7735_BLUE);   // draw horizontal blue line at position (0, 50)
  tft.drawFastHLine(0, 102,  tft.width(), ST7735_BLUE);  // draw horizontal blue line at position (0, 102)
 
  tft.setTextColor(ST7735_WHITE, ST7735_BLACK);  // set text color to white with black background
  tft.setTextSize(1);                 // text size = 1
  tft.setCursor(4, 16);               // move cursor to position (4, 16) pixel
  tft.print("ESP8266 + ST7735 TFT");
  tft.setCursor(22, 33);              // move cursor to position (22, 33) pixel
  tft.print("+ DHT22 SENSOR");
  tft.setTextColor(ST7735_GREEN, ST7735_BLACK);     // set text color to green with black background
  tft.setCursor(25, 61);              // move cursor to position (25, 61) pixel
  tft.print("TEMPERATURE =");
  tft.setTextColor(ST7735_YELLOW, ST7735_BLACK);  // set text color to yellow with black background
  tft.setCursor(34, 113);              // move cursor to position (34, 113) pixel
  tft.print("HUMIDITY =");
  tft.setTextSize(2);                     // text size = 2
  tft.drawCircle(83, 80, 2, ST7735_RED);  // print degree symbol ( ° )
  tft.setTextColor(ST7735_RED, ST7735_BLACK);  // set text color to red with black background
  tft.setCursor(89, 78);
  tft.print("C");
 
  // initialize DHT11 sensor
  dht22.begin();
}
 
// main loop
void loop()
{
  // read humidity in rH%
  int Humi = dht22.readHumidity() * 10;
  // read temperature in degree Celsius
  int Temp = dht22.readTemperature() * 10;
 
  // print temperature (in °C)
  tft.setTextColor(ST7735_RED, ST7735_BLACK);  // set text color to red with black background
  tft.setCursor(17, 78);
  if(Temp < 0)    // if temperature < 0
    tft.printf("-%02u.%1u", (abs(Temp)/10)%100, abs(Temp) % 10);
  else            // temperature >= 0
    tft.printf(" %02u.%1u", (Temp/10)%100, Temp % 10);
 
  // print humidity (in %)
  tft.setTextColor(ST7735_CYAN, ST7735_BLACK);  // set text color to cyan with black background
  tft.setCursor(29, 130);
  tft.printf("%02u.%1u %%", (Humi/10)%100, Humi % 10);
 
  delay(1000);    // wait a second
}
 
// end of code.
 

Comments