Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // SPDX-FileCopyrightText: 2022 Limor Fried for Adafruit Industries
- //
- // SPDX-License-Identifier: MIT
- #include <Arduino.h>
- #include "Adafruit_MAX1704X.h"
- #include <SensirionI2cSen66.h>
- #include <Wire.h>
- #include <Fonts/FreeSans12pt7b.h>
- #include <Adafruit_GFX.h> // Core graphics library
- #include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
- #include <SPI.h>
- Adafruit_ST7789 display = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
- SensirionI2cSen66 sensor;
- GFXcanvas16 canvas(240, 135);
- Adafruit_MAX17048 lipo;
- bool maxfound = false;
- bool lcfound = false;
- // macro definitions
- // make sure that we use the proper definition of NO_ERROR
- #ifdef NO_ERROR
- #undef NO_ERROR
- #endif
- #define NO_ERROR 0
- static char errorMessage[64];
- static int16_t error;
- void setup() {
- Serial.begin(115200);
- // while (! Serial) delay(10);
- delay(100);
- // turn on the TFT / I2C power supply
- pinMode(TFT_I2C_POWER, OUTPUT);
- digitalWrite(TFT_I2C_POWER, HIGH);
- delay(10);
- display.init(135, 240); // Init ST7789 240x135
- display.setRotation(3);
- canvas.setFont(&FreeSans12pt7b);
- canvas.setTextColor(ST77XX_WHITE);
- if (!lipo.begin()) {
- Serial.println(F("Couldnt find Adafruit MAX1704X?\nMake sure a battery is plugged in!"));
- while (1) delay(10);
- }
- Serial.print(F("Found MAX17048"));
- Serial.print(F(" with Chip ID: 0x"));
- Serial.println(lipo.getChipID(), HEX);
- maxfound = true;
- }
- uint8_t j = 0;
- void loop() {
- float massConcentrationPm1p0 = 0.0;
- float massConcentrationPm2p5 = 0.0;
- float massConcentrationPm4p0 = 0.0;
- float massConcentrationPm10p0 = 0.0;
- float humidity = 0.0;
- float temperature = 0.0;
- float vocIndex = 0.0;
- float noxIndex = 0.0;
- uint16_t co2 = 0;
- error = sensor.readMeasuredValues(
- massConcentrationPm1p0, massConcentrationPm2p5, massConcentrationPm4p0,
- massConcentrationPm10p0, humidity, temperature, vocIndex, noxIndex,
- co2);
- if (error != NO_ERROR) {
- Serial.print("Error trying to execute readMeasuredValues(): ");
- errorToString(error, errorMessage, sizeof errorMessage);
- Serial.println(errorMessage);
- return;
- }
- if (j % 2 == 0) {
- canvas.fillScreen(ST77XX_BLACK);
- canvas.setCursor(0, 17);
- canvas.setTextColor(ST77XX_RED);
- canvas.println("Adafruit Feather");
- canvas.setTextColor(ST77XX_YELLOW);
- canvas.println("ESP32-S3 TFT Demo");
- canvas.setTextColor(ST77XX_GREEN);
- canvas.print("Battery: ");
- canvas.setTextColor(ST77XX_WHITE);
- canvas.print(lipo.cellVoltage(), 1);
- canvas.print(" V / ");
- canvas.print(lipo.cellPercent(), 0);
- canvas.println("%");
- canvas.setTextColor(ST77XX_BLUE);
- canvas.print("I2C: ");
- canvas.setTextColor(ST77XX_WHITE);
- for (uint8_t a=0x01; a<=0x7F; a++) {
- if (valid_i2c[a]) {
- canvas.print("0x");
- canvas.print(a, HEX);
- canvas.print(", ");
- }
- }
- canvas.println("");
- canvas.print("Buttons: ");
- Serial.println(digitalRead(0));
- Serial.println(digitalRead(1));
- Serial.println(digitalRead(2));
- if (!digitalRead(0)) {
- canvas.print("D0, ");
- }
- if (digitalRead(1)) {
- canvas.print("D1, ");
- }
- if (digitalRead(2)) {
- canvas.print("D2, ");
- }
- display.drawRGBBitmap(0, 0, canvas.getBuffer(), 240, 135);
- pinMode(TFT_BACKLITE, OUTPUT);
- digitalWrite(TFT_BACKLITE, HIGH);
- }
- j++;
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment