المواد المستخدمة
اردوينو اونو او جينون
Adafruit BMP280
Adafruit OLED 128x32 i2c
مرحبًا بك ومرحبا بكم في هذا البرنامج التعليمي حيث أستخدم BMP280 لقياس درجة الحرارة والضغط والإرتفاع أيضًا ، بمساعدة لوحة Arduino UNO وشاشة OLED ، وهنا بعض من المعلمات الرئيسية BMP280 من ورقة البيانات:
لذا بالنسبة لهذا المشروع ، سنستخدم الوحدة لقياس كل هذه الأشياء في النظامين المتري والإمبراطوري كالمعتاد ، لست متأكدًا من الوحدات ولكن يمكنك دائمًا تحويلها من خلال الشفرة ، وهنا المكونات التي سنقوم بها استعمال:
الاختبار واستكشاف الأخطاء وإصلاحها:
بعد توصيل الوحدة ، من الأفضل اختبار الشفرة من مثال المكتبة ، واسمها هو "BMP280test" ، إذا لم يتم اكتشاف وحدتك كما في الصورة أدناه:
يمكنك تشغيل شفرة i²c للماسح الضوئي (ولكن قم بإلغاء توصيل أي جهاز آخر i²c مثل LCD أو OLED) ، وإذا لم يتم كسر الوحدة ، أو إذا لم يكن لديك مشكلة في اللحام ، فسترى أن الجهاز قد تم اكتشافه بواسطة الماسح الضوئي :
الآن لاحظ هذا العنوان وانتقل إلى ملف مكتبة c ++ الخاص بك ، يتم تثبيت المكتبة عادة في
“Documents/Arduino/Libraries”:
وفتحه باستخدام محرر مناسب ، فأنا أستخدم
Dev ++c
ثم انتقل إلى السطر "41" و "_i2caddr" تغيير "a" باستخدام العنوان الموجود على جهاز العرض التسلسلي:
حفظ الكل وإغلاقه ، يُقصد بالمكتبة العمل مع الوحدات التي تحتوي على 0x77 كعنوان i²c ، لكن العنوان الذي أستخدمه له 0x76.
قم بتشغيل رمز الاختبار مرة أخرى:
كود البرمجة
#include <Adafruit_BMP280.h> Adafruit_BMP280 bmp; // I2C Interface void setup() { Serial.begin(9600); Serial.println(F("BMP280 test")); if (!bmp.begin()) { Serial.println(F("Could not find a valid BMP280 sensor, check wiring!")); while (1); } /* Default settings from datasheet. */ bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */ Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ Adafruit_BMP280::FILTER_X16, /* Filtering. */ Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ } void loop() { Serial.print(F("Temperature = ")); Serial.print(bmp.readTemperature()); Serial.println(" *C"); Serial.print(F("Pressure = ")); Serial.print(bmp.readPressure()/100); //displaying the Pressure in hPa, you can change the unit Serial.println(" hPa"); Serial.print(F("Approx altitude = ")); Serial.print(bmp.readAltitude(1019.66)); //The "1019.66" is the pressure(hPa) at sea level in day in your region Serial.println(" m"); //If you don't know it, modify it until you get your current altitude Serial.println(); delay(2000); }Adafruit SSD1306
Adafruit GFX library
BMP280_Adafruit_library
ليست هناك تعليقات:
إرسال تعليق