martes, 3 de marzo de 2026

SIXTH GRADE SPAGETTI CODE

 /*

 * 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