/*
* ACTIVITY: THE MODULAR PLANT
* Current Status: SPAGHETTI CODE (Messy!)
* Mission: Move the code into 3 functions.
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_SHT31.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
const int PIN_LED = 2; // LED Pin
// Global Objects
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
Adafruit_SHT31 sht30 = Adafruit_SHT31();
// GLOBAL VARIABLES (Shared Data)
float t = 0; // Temperature
float h = 0; // Humidity
void setup() {
Serial.begin(115200);
pinMode(PIN_LED, OUTPUT);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
for(;;); // Stop if screen fails
}
if (!sht30.begin(0x44)) {
while (1) delay(1); // Stop if sensor fails
}
display.setTextColor(WHITE);
}
// ---------------------------------------------------------
// TODO: CREATE YOUR 3 FUNCTIONS HERE (BELOW THIS LINE)
// void blinkAlert() { ... }
// void readSHT30() { ... }
// void updateScreen() { ... }
// ---------------------------------------------------------
void loop() {
// --- PART 1: BLINK ALERT ---
// (Move this logic to void blinkAlert)
digitalWrite(PIN_LED, HIGH);
delay(200);
digitalWrite(PIN_LED, LOW);
delay(200);
// --- PART 2: READ SENSOR ---
// (Move this logic to void readSHT30)
t = sht30.readTemperature();
h = sht30.readHumidity();
// --- PART 3: UPDATE SCREEN ---
// (Move this logic to void updateScreen)
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.println("MODULAR PLANT SYSTEM");
display.drawLine(0, 10, 128, 10, WHITE);
display.setTextSize(2);
display.setCursor(0, 25);
display.print("T: "); display.print(t, 1); display.println(" C");
display.print("H: "); display.print(h, 1); display.println(" %");
display.display();
}
No hay comentarios:
Publicar un comentario