Código
O CÓDIGO C / C ++
ESTE É O ESBOÇO RELEVANTE PARA O PROJETO, AS DECLARAÇÕES DE COMENTÁRIOS EXPLICARÃO O TRABALHO #include // inclui a biblioteca Serial Peripheral Interface # include // inclui a biblioteca Two Wire Interface # include // incluir biblioteca de gráficos Adafruit # include // incluir biblioteca Adafruit ST7735 TFT # include // incluir biblioteca de sensores Adafruit BMP280 # include "DHT.h" // incluir sensor DHTXX library # define DHTPIN 2 // Pino de dados DHT11 conectado ao pino Arduino D2 # define DHTTYPE DHT11 // especificando o tipo de sensor DHT usado # define TFT_RST 8 // O pino TFT RST está conectado ao pino Arduino D8 # define TFT_CS 10 // TFT O pino CS está conectado ao pino Arduino D9 # define TFT_DC 9 // O pino TFT DC está conectado ao pino Arduino D10 // inicializa ST7735 SÉRIE TFT libraryAdafruit_ST7735 tft =Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_RST); // define o endereço I2C do dispositivo:0x76 ou 0x77 (0x77 é o endereço padrão da biblioteca) #define BMP280_I2C_ADDRESS 0x76 Adafruit_BMP280 bmp280; // inicializa a biblioteca Adafruit BMP280 DHT dht (DHTPIN, DHTTYPE); // inicializa o sensor DHT void setup (void) {dht.begin (); // sincronizando o sensor DHT tft.initR (INITR_144GREENTAB); // inicializa um chip ST7735S, guia preta tft.fillScreen (ST77XX_BLACK); // definindo fundo preto tft.drawFastHLine (0, 15, tft.width (), ST77XX_CYAN); // desenha uma linha de separação horizontal na posição (0, 15) tft.setTextColor (ST77XX_CYAN, ST77XX_BLACK); // define a cor do texto para fundo branco e preto tft.setTextSize (1); // definindo o tamanho do texto para 1 //tft.setCursor(4, 0); // move o cursor para a posição (4, 0) pixel //tft.print("ARDUINO + ST7735 TFT "); tft.setCursor (25, 5); // move o cursor para a posição (25, 5) pixel tft.print ("WEATHER BUDDY"); // inicializa o sensor BMP280 if (bmp280.begin (BMP280_I2C_ADDRESS) ==0) {// erro de conexão ou endereço do dispositivo errado! tft.setTextColor (ST77XX_RED, ST77XX_CYAN); // define a cor do texto para fundo vermelho e preto tft.setTextSize (2); // configurando o tamanho do texto para 2 tft.setCursor (5, 76); // move o cursor para a posição (5, 76) pixel tft.print ("Conexão"); tft.setCursor (35, 100); // move o cursor para a posição (35, 100) pixel tft.print ("Error"); enquanto (1); // fique aqui} tft.drawFastHLine (0, 55, tft.width (), ST77XX_CYAN); // desenha a linha de separação horizontal na posição (0, 55) pixel tft.drawFastHLine (0, 95, tft.width (), ST77XX_CYAN); // desenha a linha de separação horizontal na posição (0, 195) pixel tft.setTextColor (ST77XX_RED, ST77XX_BLACK); // define a cor do texto para fundo vermelho e preto tft.setCursor (30, 20); // move o cursor para a posição (30, 20) pixel tft.print ("TEMPERATURE"); // definindo o cabeçalho da primeira seção tft.setTextColor (ST77XX_CYAN, ST77XX_BLACK); // define a cor do texto para ciano e fundo preto tft.setCursor (40, 60); // move o cursor para a posição (40, 60) pixel tft.print ("HUMIDADE"); // definindo o cabeçalho da segunda seção tft.setTextColor (ST77XX_GREEN, ST7735_BLACK); // define a cor do texto para fundo verde e preto tft.setCursor (40, 100); // move o cursor para a posição (40, 100) pixel tft.print ("PRESSURE"); // definindo o cabeçalho para a terceira seção tft.setTextSize (2); // configurando o tamanho do texto para 2} // loopvoid principal loop () {char _buffer [8]; // lê a temperatura, umidade e pressão do sensor BMP280 float temp =bmp280.readTemperature (); // obtém a temperatura em ° C float hum =dht.readHumidity (); // obtém a umidade em rH% float pres =bmp280.readPressure (); // obtém a pressão em hPa // imprime a temperatura (em ° C) if (temp <0) // se a temperatura <0 sprintf (_buffer, "-% 02u.% 02u", (int) abs (temp), (int ) (abs (temp) * 100)% 100); else // se a temperatura> =0 sprintf (_buffer, "% 02u.% 02u", (int) temp, (int) (temp * 100)% 100); // definir a aproximação do valor tft.setTextColor (ST77XX_YELLOW, ST77XX_BLACK ); // define a cor do texto para fundo amarelo e preto tft.setCursor (11, 34); // move o cursor para a posição (11,34) pixel tft.print (_buffer); // imprime a temperatura do sensor BMP-280 tft.drawCircle (89, 34, 2, ST77XX_YELLOW); // imprime o símbolo de grau (°) (pode ser omitido se * for usado no lugar) tft.setCursor (95, 34); // move o cursor para a posição (95,34) pixel tft.print ("C"); // imprime o símbolo Celcius // 2:imprime umidade (em%) sprintf (_buffer, "% 02u", (int) (hum)); // configurando a aproximação do valor tft.setTextColor (ST77XX_MAGENTA, ST77XX_BLACK); // define a cor do texto para magenta e fundo preto tft.setCursor (45, 74); // move o cursor para a posição (45,74) pixel tft.print (_buffer); // imprime a umidade do sensor DHT-11 tft.setCursor (75, 74); // move o cursor para a posição (75,74) pixel tft.print ("%"); // imprime o símbolo de porcentagem // 3:imprime pressão (em hPa) sprintf (_buffer, "% 04u.% 02u", (int) (pres / 100), (int) ((uint32_t) pres% 100)); // configurando a aproximação do valor tft.setTextColor (ST77XX_ORANGE, ST77XX_BLACK); // define a cor do texto como fundo laranja e preto tft.setCursor (3, 112); // move o cursor para a posição (3.112) pixel tft.print (_buffer); // imprime a pressão atmosférica de BMP-280 tft.setCursor (91, 112); // move o cursor para a posição (91,112) pixel tft.print ("hPa"); // imprime a unidade de pressão atmosférica como hecto pascal delay (1000); // aguarde 1 segundo antes de fazer a próxima leitura do sensor}