Πώς να "διαβάζεις" τον αέρα: Σύνδεση αισθητήρων μέσω I2C με Arduino
Στο project μας που βραβεύτηκε στο ACSTAC, το πρώτο βήμα ήταν να συλλέξουμε δεδομένα. Χωρίς σωστές μετρήσεις, η AI δεν μπορεί να πάρει αποφάσεις. Σε αυτόν τον οδηγό, θα σας δείξουμε πώς να συνδέσετε τον αισθητήρα SCD40 χρησιμοποιώντας το πρωτόκολλο I2C, το οποίο είναι ιδανικό για να διατηρούμε την καλωδίωση του ρομπότ μας καθαρή και οργανωμένη.
Τι θα χρειαστείτε (Hardware):
Arduino Uno (ή το Uno Q).
Αισθητήρας SCD40 (Sensirion).
Breadboard και 4 καλώδια (jumper wires).
Βήμα 1: Η Σύνδεση (Wiring) Ο SCD40 λειτουργεί άψογα με το πρωτόκολλο I2C. Στο Arduino Uno, οι συνδέσεις είναι οι εξής:
VCC: Συνδέστε το στα 5V ή 3.3V (ελέγξτε το module σας, συνήθως το SCD40 δέχεται και τα δύο).
GND: Συνδέστε το στο GND του Arduino.
SCL (Serial Clock): Συνδέστε το στο Pin A5.
SDA (Serial Data): Συνδέστε το στο Pin A4.
Note: Αν χρησιμοποιείτε το Arduino Uno Q, μπορείτε απλά να χρησιμοποιήσετε ένα καλώδιο Qwiic/STEMMA QT για σύνδεση σε δευτερόλεπτα χωρίς breadboard!
Βήμα 2: Ο Κώδικας (Programming)
α χρειαστεί να εγκαταστήσετε τη βιβλιοθήκη "Adafruit SCD4X" από το Library Manager του Arduino IDE.
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_SCD4X.h>
Adafruit_SCD4X scd4x;
void setup() {
Serial.begin(115200);
while (!Serial) delay(10); // Αναμονή για άνοιγμα του Serial Monitor
Wire.begin();
if (!scd4x.begin()) {
Serial.println("Αποτυχία εύρεσης SCD40! Ελέγξτε τις συνδέσεις.");
while (1) delay(10);
}
// Έναρξη συνεχόμενων μετρήσεων
if (!scd4x.startPeriodicMeasurement()) {
Serial.println("Αποτυχία έναρξης μετρήσεων.");
while (1) delay(10);
}
Serial.println("Ο SCD40 είναι έτοιμος!");
}
void loop() {
if (scd4x.readMeasurement()) {
Serial.print("CO2: ");
Serial.print(scd4x.getCO2());
Serial.println(" ppm");
}
delay(5000); // Ο SCD40 ανανεώνει την τιμή περίπου κάθε 5 δευτερόλεπτα
}
Βρείτε το GitHub Repositorie εδώ
Γιατί προτιμάμε το I2C;
Στην Unique Tech, επιλέξαμε το I2C γιατί στο βιο-ρομποτικό μας σύστημα έχουμε πολλούς αισθητήρες. Με το I2C, μπορούμε να προσθέσουμε και άλλους (όπως αισθητήρες PM2.5 ή υγρασίας) στην ίδια "γραμμή" (bus), χρησιμοποιώντας μόνο τα ίδια 2 pins (A4/A5), χωρίς να γεμίσουμε το Arduino με δεκάδες καλώδια!
Pro-Tip από την Unique Tech: Ο SCD40 χρειάζεται περίπου 3 λεπτά λειτουργίας για να σταθεροποιήσει τις μετρήσεις του. Επίσης, φροντίστε να μην ακουμπάτε τον αισθητήρα με τα χέρια σας κατά τη διάρκεια της μέτρησης, καθώς η θερμότητα του σώματός σας και η ανάσα σας θα αλλοιώσουν τα αποτελέσματα!
Στο επόμενο tutorial, ο Γρηγόρης θα μας δείξει πώς αυτά τα δεδομένα CO2 τροφοδοτούν το AI μοντέλο μας για να προβλέψουμε την ευεξία των μαθητών!

Σχόλια
Δημοσίευση σχολίου