- المكونات مطلوبة
- وحدة استشعار الضغط BMP280:
- مخطط الدائرة لواجهة BMP280 مع Arduino:
- برنامج Arduino لواجهة BMP280 مع Arduino:
- العمل في مشروع ربط مستشعر الضغط Arduino BMP280
إذا كنت ترغب في بناء نظام مراقبة درجة الحرارة الخاص بك أو قياس ارتفاع الطائرة بدون طيار الخاصة بك أو تريد ببساطة قياس الضغط الجوي في منطقتك ، فإن واحدة من أفضل الوحدات التي يمكنك استخدامها في مشروعك هي وحدة استشعار الضغط BMP280. BMP280 هو مستشعر مراقبة الضغط ودرجة الحرارة المطلق وهو نسخة مطورة من مستشعرات BMP085 و BMP180 و BMP183. لماذا يطلق عليه نسخة مطورة؟ سيتم مناقشتها في الأقسام التالية. لقد استخدمنا بالفعل الإصدار الأقدم BMP180 مع Arduino في أحد دروسنا السابقة.
يمكن استخدام وحدة الاستشعار BMP280 جنبًا إلى جنب مع وحدات التحكم الدقيقة مثل Arduino و PIC و AVR وما إلى ذلك. بالنسبة لهذا المشروع ، سنستخدم Arduino Uno مع BMP280 جنبًا إلى جنب مع وحدة عرض LCD 16x2 لعرض قيم درجة الحرارة والضغط. قبل ربط BMP280 مع Arduino ، نحتاج إلى تنزيل مكتبة BMP280 Arduino ، التي طورتها Adafruit. انقر فوق ارتباط مكتبة Adafruit BMP280 هذا لفتح صفحة Github المعنية وإضافة ملف الرأس إلى Arduino IDE.
المكونات مطلوبة
- اردوينو
- BMP280
- توصيل الأسلاك
- مجلس الخبز
- شاشة LCD- 16 × 2
وحدة استشعار الضغط BMP280:
تعمل وحدة الاستشعار BMP280 مع الحد الأدنى من الجهد (VDD) 1.71 فولت ، بينما تعمل وحدات استشعار الإصدار السابق على 1.8 فولت (VDD). عندما يتعلق الأمر بالاستهلاك الحالي ، فإن BMP280 يستهلك 2.7uA ، بينما يستهلك BMP180 12uA ، ويستهلك BMP183 و BMP085 5uA لكل منهما. يدعم BMP280 أيضًا أوضاع التصفية الجديدة. تدعم وحدة الاستشعار BMP280 بروتوكولات I2c و SPI ، بينما يدعم المستشعر المتبقي إما I2c أو SPI. تبلغ دقة وحدة الاستشعار BMP280 ± 0.12 hPa، وهو ما يعادل فرق ± 1 متر في الارتفاع. نظرًا لهذه الميزات الرئيسية ، يتم استخدامه في الغالب في العديد من التطبيقات. يتكون مستشعر BMP من عنصر استشعار الضغط وعنصر استشعار الرطوبة وعنصر استشعار درجة الحرارة التي ترتبط بشكل أكبر بالواجهة الأمامية للضغط والواجهة الأمامية للرطوبة والواجهة الأمامية لدرجة الحرارة. هذه الواجهة الأمامية IC هي مكبرات صوت تناظرية للحساسية تستخدم في تضخيم الإشارات الصغيرة. يتم تغذية خرج IC للواجهة الأمامية التناظرية إلى ADC كإشارة إدخال. في هذا يتم تحويل القيم التناظرية إلى جهد رقمي ويتم تغذية هذا الجهد إلى الدوائر المنطقية لمزيد من التفاعل مع العالم الخارجي.
تتكون وحدة مستشعر BMP280 من ثلاثة أوضاع للطاقة ، ووضع السكون ، والوضع القسري ، والوضع العادي. في وضع السكون ، لا يتم إجراء أي قياسات ويكون استهلاك الطاقة على الأقل. في الوضع الإجباري ، يتم إجراء قياس واحد وفقًا لخيارات القياس والتصفية المحددة. يتنقل الوضع العادي باستمرار بين فترة القياس والاستعداد ، وسيتم تحديد الفترة الزمنية للدورات بواسطة Tstandby. التيار في وضع الاستعداد أعلى قليلاً من وضع السكون.
مخطط الدائرة لواجهة BMP280 مع Arduino:
يظهر أدناه مخطط الدائرة لتوصيل Arduino بمستشعر BMP280 وشاشة LCD. إذا كنت جديدًا تمامًا على Arduino و LCD ، فيمكنك التحقق من هذا البرنامج التعليمي Arduino LCD لفهم كيفية استخدام Arduino مع شاشات LCD.
ترتبط دبابيس VCC و GND الخاصة بالمستشعر بمسامير 3v3 و GND في Arduino. تتصل دبابيس SCL و SDA في المستشعر بلوحتي A5 و A4 من لوحة Arduino. اتصالات LCD هي كما يلي
اسم دبوس LCD |
اردوينو دبوس |
VSS و RW |
GND |
RS |
D9 |
ه |
د 8 |
D4، D5، D6، D7 |
D5، D4، D3، D2 |
برنامج Arduino لواجهة BMP280 مع Arduino:
يمكن العثور على كود BMP280 Arduino الكامل في أسفل هذه الصفحة والذي يمكن تحميله مباشرة إلى لوحة Arduino الخاصة بك. شرح نفسه يرد أدناه
يتم تضمين هذه المكتبات لتمكين الوظائف الخاصة. # تضمين ملفات الرأس يمكننا قراءة القيم القادمة من المستشعر مباشرة. يتضمن #
#تضمن
إنشاء كائن BMP لـ Adafruit_BMP280. يتم إنشاء ملف كائن للوصول إلى وظائف خاصة.
Adafruit_BMP280 bmp ؛ // I2C
ضبط دبابيس Arduino للتواصل مع شاشة LCD. باستخدام هذه الدبابيس سيتم نقل البيانات.
LiquidCrystal LCD (9 ، 8 ، 5 ، 4 ، 3 ، 2) ؛
تهيئة شاشة LCD والاتصال التسلسلي.
إعداد باطل () {lcd.begin (16،2) ؛ Serial.begin (9600) ؛ Serial.println (F ("اختبار BMP280")) ؛ lcd.print ("مرحبًا بك في") ؛ lcd.setCursor (0،1) ؛ lcd.print ("CIRCUIT DIGEST") ؛ تأخير (1000) ؛ lcd.clear () ؛ إذا (! bmp.begin ()) {Serial.println (F ("تعذر العثور على مستشعر BMP280 صالح ، تحقق من الأسلاك!")) ؛ بينما (1) ؛ }
تعمل هذه الوظيفة عند فشل تهيئة كائن bmp.
/ * الإعدادات الافتراضية من ورقة البيانات. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL، / * وضع التشغيل. * / Adafruit_BMP280:: SAMPLING_X2، / * Temp. * / Adafruit_BMP280:: STANDBY_MS_500) ؛ /* وقت الاستعداد. * /}
يقوم هذا الجزء من الكود بطباعة درجة الحرارة على الشاشة التسلسلية ولأغراض التصحيح.
الحلقة الفارغة () {Serial.print (F ("Temperature =")) ؛ Serial.print (bmp.readTemperature ()) ؛ Serial.println ("* C") ؛
تُستخدم الوظيفة bmp.readPressure و bmp.readTemprature لاستدعاء وظائف خاصة وإرجاع قيم درجة الحرارة والضغط.
lcd.print (bmp.readTemperature ()) ؛ lcd.print (bmp.readPressure ()) ؛
العمل في مشروع ربط مستشعر الضغط Arduino BMP280
يتم استخدام الدالتين bmp.readTemprature () و bmp.readPressure () لإرجاع قيم درجة الحرارة والضغط. هذه الوظائف هي مجموعة من العبارات التي تؤدي مهمة خاصة ، في حالتنا لإعادة ملفات درجة الحرارة والضغط. يتم استدعاء هذه الوظائف باستخدام وظائف bmp.readTemprature () و bmp.readPressure () . و lcd.setCursor يحدد المؤشر من LCD إلى الموضع المطلوب على الشاشة. و lcd.print يقوم الأمر بطباعة البيانات من الموضع الذي حدده المبرمج. إذا لم يتم تعيين موضع لشاشة LCD افتراضيًا ، فإنها تأخذ (0،0) كوضع أولي ، وتستمر في طباعة البيانات. تأخذ البيانات التالية موضع العمود التالي ، ويستمر الإجراء حتى يصل إلى نهاية الصف وينتقل إلى الصف التالي.
يمكن استخدام BMP280 في الألعاب الطائرة والهواتف المحمولة والأجهزة اللوحية وأجهزة الكمبيوتر وأجهزة GPS وأجهزة الرعاية الصحية المحمولة ومحطات الطقس المنزلية وما إلى ذلك من خلال اتباع هذا الإجراء واستخدام ملفات الرأس وبعض الوظائف الخاصة ، يمكننا بسهولة واجهة BMP280 مع اردوينو. يمكن أيضًا العثور على العمل الكامل في الفيديو الموضح أدناه ، آمل أن تكون قد استمتعت بهذا البرنامج التعليمي BMP280 Arduino وتعلمت شيئًا مفيدًا. إذا كان لديك أي سؤال ، فاتركه في قسم التعليقات أدناه أو استخدم المنتديات لأسئلة فنية أخرى.