قراءة المزيد

#include #include #include #include #define O2_PIN 0 // يجب تعديل هذه القيمة لتتوافق مع الدبوس المتصل بالمستشعر // دالة لتحويل القيمة التناظرية إلى نسبة تركيز الأكسجين float analogToOxygen(int analogValue) { // هذه المعادلة تعتمد على نوع المستشعر والمعايرة. // القيم الافتراضية: // 0 يعادل 0% أكسجين و1023 يعادل 100% أكسجين. float voltage = (analogValue * 5.0) / 1023.0; // تحويل القراءة إلى فولت float oxygenConcentration = (voltage / 5.0) * 100; // تحويل الفولت إلى نسبة return oxygenConcentration; } int main() { // تهيئة مكتبة wiringPi للتعامل مع الدبابيس if (wiringPiSetup() == -1) { std::cerr << "Failed to initialize wiringPi!" << std::endl; return -1; } while (true) { // قراءة قيمة التناظرية من الدبوس int analogValue = analogRead(O2_PIN); // تحويل القيمة إلى نسبة الأكسجين float oxygenLevel = analogToOxygen(analogValue); // عرض القيمة std::cout << "Oxygen Concentration: " << oxygenLevel << "%" << std::endl; // الانتظار لمدة ثانية قبل القراءة التالية sleep(1); } return 0; }