Arduino Masterclass - Μάθημα 2.2: Ποιότητα Αέρα (Air Quality) 🌬️

Στο προηγούμενο μάθημα είδαμε τον MQ-135. Σήμερα, ανεβαίνουμε επίπεδο με τον Sensirion SCD40. Αυτός ο αισθητήρας χρησιμοποιεί φωτοακουστική τεχνολογία για να μετρήσει τα πραγματικά μόρια του CO2 στον αέρα, ακριβώς όπως κάνουμε στο Project MLA.

🛠️ Τι θα χρειαστούμε;

  1. Arduino Uno ή ESP32.

  2. Αισθητήρας SCD40 (I2C interface).

  3. Καλώδια Jumper.

🔌 Η Συνδεσμολογία (I2C)

Ο SCD40 επικοινωνεί μέσω του πρωτοκόλλου I2C, οπότε χρειαζόμαστε μόνο 4 καλώδια:

  • VCC ➡️ 3.3V ή 5V (ανάλογα το breakout)

  • GND ➡️ GND

  • SCL ➡️ Arduino A5 (ή SCL pin)

  • SDA ➡️ Arduino A4 (ή SDA pin)



💻 Ο Κώδικας (SCD4x Basic Reading)

Θα χρειαστείτε τη βιβλιοθήκη "Sensirion I2C SCD4x" από το Library Manager του Arduino IDE.

/*
 * Unique Tech - Arduino Masterclass
 * Lesson 2.2b: True CO2 with Sensirion SCD40
 * Χρήση βιβλιοθήκης Sensirion I2C SCD4x
 */

#include <Arduino.h>
#include <SensirionI2cScd4x.h>
#include <Wire.h>

SensirionI2cScd4x scd4x;

void setup() {
  Serial.begin(115200);
  Wire.begin();

  scd4x.begin(Wire);

  // Σταμάτημα προηγούμενων μετρήσεων
  scd4x.stopPeriodicMeasurement();

  // Έναρξη μετρήσεων (κάθε 5 δευτερόλεπτα)
  uint16_t error = scd4x.startPeriodicMeasurement();
  if (error) {
    Serial.print("Error starting measurement: ");
    Serial.println(error);
  }

  Serial.println("SCD40 Initialized. Waiting for first reading...");
}

void loop() {
  uint16_t co2;
  float temperature;
  float humidity;

  // Διάβασμα δεδομένων
  uint16_t error = scd4x.readMeasurement(co2, temperature, humidity);

  if (error) {
    Serial.print("Error reading measurement: ");
  } else if (co2 == 0) {
    Serial.println("Invalid sample detected.");
  } else {
    Serial.print("CO2: ");
    Serial.print(co2);
    Serial.print(" ppm | Temp: ");
    Serial.print(temperature);
    Serial.print(" °C | Humidity: ");
    Serial.print(humidity);
    Serial.println(" %");
  }

  delay(5000); // Ο SCD40 ανανεώνει κάθε 5 δευτερόλεπτα
}

Βρες το πλήρες αποθετήριο στο GitHub!

🚀 Unique Tech Pro-Tips (Project MLA Insights)

  • Αυτόματη Βαθμονόμηση (ASC): Ο SCD40 έχει ενσωματωμένο αλγόριθμο που αυτο-ρυθμίζεται αν εκτίθεται σε φρέσκο αέρα για λίγες ώρες την εβδομάδα.

  • Θερμοκρασία: Ο αισθητήρας ζεσταίνεται ελαφρώς κατά τη λειτουργία. Στο MLA, χρησιμοποιούμε offset στον κώδικα για να διορθώνουμε τη θερμοκρασία, ώστε να μην επηρεάζεται από το ίδιο το hardware.

Challenge: Φτιάξτε ένα σύστημα που αν το CO2 ξεπεράσει τα 1000ppm (όριο για κλειστούς χώρους), το Arduino θα στέλνει ειδοποίηση "Άνοιξε το παράθυρο!".


📜 Άδεια Χρήσης & Πνευματικά Δικαιώματα

Το περιεχόμενο αυτής της ανάρτησης (κείμενα, οδηγίες και φωτογραφίες) αποτελεί πνευματική ιδιοκτησία της Unique Tech. Ο παρεχόμενος κώδικας διατίθεται υπό την άδεια MIT License.

Προϋπόθεση χρήσης: Επιτρέπεται η ελεύθερη χρήση και αναπαραγωγή, αρκεί να συμπεριλαμβάνεται η αρχική δήλωση πνευματικών δικαιωμάτων και η αναφορά στην Unique Tech ως αρχική πηγή. Για την πλήρη ανάλυση των δικαιωμάτων σας, διαβάστε τους Όρους Χρήσης μας εδώ.


#UniqueTech #SCD40 #CO2Sensor #AirQuality #MLAProject #STEM #Robotics

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Πώς να "διαβάζεις" τον αέρα: Σύνδεση αισθητήρων μέσω I2C με Arduino

Γιατί νυστάζουμε στην τάξη; Η αλήθεια πίσω από το CO2 και η λύση της Unique Tech

Καλωσορίσατε στο Unique Tech Blog!