بارومتر مع وظائف متقدمة. حساس الضغط الجوي BMP085 والاردوينو

14.05.2019

تحياتي الزملاء!
لأن في الشتاء يكون الطقس غير مناسب للطيران في الغالب، مما يعني أن هناك الكثير من وقت الفراغ، والذي سيكون من الجيد شغله بشيء حتى لا يجف الدماغ من الكسل. قررت مؤخرًا أن أتقن موضوع الهوليفار الشرس والمناقشات الساخنة، ألا وهو: المتحكم الدقيق Atmega328 في تنفيذ Arduino.
أطلب منك بشدة ألا تبدأ أي نقاش حول Arduina نفسها؛ فهناك الكثير من المعلومات حول إيجابياتها وسلبياتها على الإنترنت.
لذلك، مع الأخذ في الاعتبار تفاصيل الموقع، أعتقد أنه ليس الموضوع تمامًا للحديث عن "المنزل الذكي"، لذلك سنقوم ببناء مقياس ارتفاع بارومتري مع شاشة LED مكونة من ثلاثة أرقام مكونة من سبعة أجزاء تعتمد على Arduino.

المزيد من التفاصيل؟


سأقول على الفور أنني لا أدعي أنني أصلي أو مبتكر، فهناك الكثير من المشاريع المماثلة على الإنترنت. لكني لم أجد شيئًا مشابهًا في هذا المصدر من خلال البحث، فقررت نشره، عسى أن يكون مفيدًا لشخص ما.
مرة أخرى، كتبت الكود بنفسي، لذا إذا كان كل شيء هنديًا، فلا تحكم عليه بقسوة =) ما زلت أتعلم فقط. آخر مرة قمت فيها ببرمجة وحدات التحكم كانت في سنتي الرابعة في المعهد منذ أكثر من 10 سنوات =) أهلا بالنقد المختص والبناء!
سأحاول أن أشرح بوضوح وبالتفصيل كيفية تجميع مثل هذا الجهاز، وأعتقد أنه يمكن لأي شخص لديه أي مستوى من التدريب تقريبًا التعامل معه.

الميزة الرئيسية لهذا الجهاز هو سعره. حتى في الحياة وأسعار الصرف اليوم، يمكنك إنفاق 350 روبل، وهو ليس مالًا بشكل عام. ستحتاج أيضًا إلى أيدي مستقيمة والقدرة على التعامل مع مكواة اللحام.

وظائف الجهاز:
- قياس الارتفاع الحالي وعرضه على شاشة LED.
- حفظ الحد الأقصى لقيمة الارتفاع الذي حدث منذ تشغيل الطاقة.
- عرض الحد الأقصى للارتفاع بالضغط على زر.
- تسجيل أقصى قيمة للارتفاع في الذاكرة غير المتطايرة (EEPROM) لوحدة التحكم (المحفوظة بعد إيقاف التشغيل).
- قراءة الحد الأقصى للارتفاع المخزن من EEPROM وعرضه على الشاشة.

النقطة المرجعية صفر هي الارتفاع الذي تم تشغيل الجهاز عنده.

ما ستحتاج إليه (توجد بين قوسين كلمات رئيسية للبحث في جميع أنواع مواقع ebays، وما إلى ذلك)
- متحكم Arduino، من حيث المبدأ، سيفعل أي شخص تقريبًا ذلك إذا تم تكييف الكود، ولكن تم تجميع كل شيء واختباره على أساس (Arduino Nano).

- مستشعر الارتفاع الجوي مع ناقل I2C (BMP085).

- شاشة LED مكونة من ثلاثة أرقام وسبعة أجزاء مع أنود مشترك (شاشة LED مكونة من 7 أجزاء).
- الأسلاك لتوصيلها كلها في وحدة واحدة، لقد استخدمت الجاهزة مع الموصلات، ولكن هذا ليس ضروريا على الإطلاق (سلك دوبونت).

- زر أي بدون تثبيت الموضع سيفعل (Tact Switch Push Button). على سبيل المثال هذا:
- مقاومة من 1 كيلو أوم إلى 10 كيلو أوم .
- ثلاث مقاومات 100 أوم.
- مكواة لحام بكل الغبولات وإمكانية استخدامها.
- برامج الاردوينو.

خياري:
- لوحة تطوير لعرض الأسلاك.

بالنسبة لأولئك الذين هم خارج الموضوع تماما. قبل محاولة تجميع الجهاز والتعمق في الكود، أوصي بشدة بزيارة وقراءة العديد من الموارد:
مقدمة للموضوع، أمثلة بسيطة.
حول توصيل شاشة من سبعة أجزاء مع أمثلة.
وصف المستشعر والأمثلة والمكتبات.
لن يستغرق الأمر الكثير من الوقت، وسيزيد من فهمك بشكل كبير =)

أولا، قليلا عن العرض.
شاشة LED المكونة من سبعة أجزاء مع أنود مشترك هي عبارة عن مجموعة من مصابيح LED مثل هذا (محاطة بدائرة باللون الأحمر في الصورة):
إذا ألقيت نظرة فاحصة على الرسم التخطيطي، فسيصبح من الواضح أن واحدة فقط من التصريفات يمكن أن تضيء في المرة الواحدة، أي. لعرض رقم مكون من ثلاثة أرقام، عليك إشعال وإطفاء كل رقم على حدة، والقيام بذلك بسرعة كبيرة. لذلك، فإن الأرقام سوف تومض مهما كانت، والشيء الرئيسي هو أن هذا الخفقان متكرر بما فيه الكفاية ولا ينظر إليه بالعين على أنه وميض. هذا يعني أن Arduino سيعمل أيضًا كوحدة تحكم لهذه الشاشة، حيث يقوم بشكل أساسي برسم الأرقام التي تشكل الرقم الذي يساوي الارتفاع الحالي.
اسمحوا لي أن أقوم بالحجز على الفور: يمكنك شراء حل جاهز باستخدام وحدة تحكم مدمجة، ولكنه يكلف 5 مرات أكثر، ولم أجد التنفيذ المناسب عند البحث، لأن... كنت أرغب حقًا في الحصول على إصدار 3 بت، ولكن هناك المزيد والمزيد من الإصدار 4 بت معروض للبيع.
بالمناسبة، مع الأخذ في الاعتبار أن شاشة العرض مكونة من ثلاثة أرقام، فإن الحد الأقصى للارتفاع الذي يمكنها عرضه = 999 مترًا. من حيث المبدأ، يمكن تكييف الجهاز بسهولة مع شاشة مكونة من 4 أرقام، ولكن يجب تعديل البرنامج قليلاً. يمكن لأي شخص يفهم الكود المكون من 3 أرقام أن يعدله بسهولة ليشمل 4 أرقام.
ونتيجة لذلك، على الرغم من المشاكل التي ظهرت مع هذا الوميض نفسه، تمكنا من تحقيق نتائج مقبولة إلى حد ما، المزيد عن ذلك أدناه، لأنه نشأت المشاكل بسبب جهاز استشعار الارتفاع.
مزيد من التفاصيل حول المستشعر.
المستشعر بارومتري، أي. يحدد التغيرات في الارتفاع على أساس التغيرات في الضغط الجوي. في الواقع، يقوم المستشعر بقياس الضغط الجوي فقط؛ رمز المكتبة الخاص بالمستشعر هو المسؤول عن حساب الارتفاع كدالة للضغط. في هذه الحالة، يحتوي المستشعر على ADC وواجهة I2C مدمجة، أي. فهو يعطي القيمة المقاسة في شكل رقمي، وهو ما يعد بلا شك ميزة إضافية. توجد مكتبة جاهزة للعمل مع المستشعر. لقد استخدمت الإصدار الأول، وهو أقل استهلاكًا للموارد وأسهل في الاندماج في الكود. تتيح لك وظيفة المكتبة ضبط دقة القياس على مقياس من 0 - أقل دقة، إلى 3 - أكبر دقة (انظر الكود). على الرغم من أنني، بصراحة، لم ألاحظ فرقًا كبيرًا بين المستويات الأعلى من 0. يبلغ خطأ القياس حوالي متر واحد، وهو أمر مقبول تمامًا بشكل عام. نتيجة القياس هي الارتفاع المطلق فوق مستوى سطح البحر عند الضغط الجوي العادي. لكن هذا غير مثير للاهتمام على الإطلاق. من ناحية أخرى، باستخدام Arduino والعمليات الرياضية البسيطة، يمكنك بسهولة حساب الارتفاع النسبي، وهو ما تم القيام به.
ولكن كان هناك ذبابة في المرهم: يستغرق استطلاع المستشعر باستخدام الوظيفة القياسية وقتًا طويلاً، وبالنظر إلى أن Arduino هو أيضًا وحدة تحكم في العرض مكونة من سبعة أجزاء، فقد تم الحصول على تأثيرات خاصة مضحكة جدًا، أي. أثناء استطلاع المستشعر، توقف الإخراج على الشاشة من تلقاء نفسه وبالتالي تم إضاءة الرقم الذي تم عرضه في تلك اللحظة لفترة أطول قليلاً من الأرقام الأخرى. وكانت النتيجة هذا النوع من الطوق المكون من ثلاثة عناصر.
في النهاية، بعد التلاعب بالتأخيرات واختيار فترة استطلاع المستشعر المثالية، تمكنا من تحقيق الغياب الكامل تقريبًا للوميض. علاوة على ذلك، ليست هناك حاجة لاستقصاء المستشعر في كل دورة برنامج؛ فالارتفاع يتغير بسرعة محدودة. لكن وميض الرقم الأول بسبب الخطأ والاستقصاء المتكرر للمستشعر لا يبدو جميلاً.
من حيث المبدأ، إذا كانت لدي مهارة أفضل، فيمكنني إعادة كتابة مكتبة المستشعرات، لكنني لست مستعدًا بعد. وفي هذا التنفيذ يؤدي وظائفه بالكامل، والباقي عبارة عن كلمات.
تم تحويل إخراج الأرقام إلى المقاطعة، وتم التخلص من الخفقان، وتم تحديث الرسم التخطيطي.
هذا هو المكان الذي من المحتمل أن أنهي فيه رحلتي القصيرة إلى عناصر الجهاز وأنتقل إلى التجميع.

مخطط اتصال عناصر الجهاز (قابل للنقر):


أسئلة متوقعة من سلسلة “ماذا، لم أتمكن من رسم مخطط عادي؟!” سأقول إنني أستطيع ذلك، ولكن بالنسبة للمبتدئين أعتقد أن هذا الخيار سيكون أسهل في الفهم، ولكن بالنسبة للمبتدئين لا يهم، وبالتالي تتم قراءة المخطط بشكل طبيعي. لقد وجدت دبوسًا مكونًا من سبعة أجزاء فقط للإصدار ذو الأربعة بتات؛ ويختلف الإصدار ذو الثلاثة بتات ببساطة بسبب غياب الجزء السادس.

أما بالنسبة لإمدادات الطاقة للجهاز: يمكن للاردوينو في شكله الأصلي أن يعيش عادة من 7 فولت إلى 16 فولت، وفي الحالات القصوى من 6 فولت إلى 20 فولت. لكن مع الأخذ بعين الاعتبار أن لدي نسخة صينية، لم أجرب أي تجارب سيئة، لكن بطارية LiPo 3S تعمل بدون مشاكل.
يُنصح بتعبئة المستشعر بحيث يكون الوصول إلى الهواء مجانيًا، ولكن في نفس الوقت يمنع تدفق الهواء المباشر إلى الفتحة الموجودة في المستشعر، على سبيل المثال، قم بتغطيته بالمطاط الرغوي.
أوصي بإزالة مصابيح RX وTX LED من لوحة Arduino، لأن... فهي متصلة على التوازي مع الأطراف الرقمية 0 و1، ولهذا السبب ستتوهج الأجزاء المتصلة بهذه الأطراف بسطوع أقل.

BMP085 عبارة عن مستشعر لمراقبة الضغط الجوي (بالإضافة إلى أنه يراقب درجة الحرارة أيضًا).

يتم استخدام المستشعر في العديد من المشاريع، بما في ذلك تلك التي تستخدم Arduino، لأنه لا يوجد لديه نظائرها عمليا. بالإضافة إلى ذلك، فهي غير مكلفة أيضًا. السؤال الأول الذي يطرح نفسه هو: لماذا يقوم أي شخص بقياس الضغط الجوي؟ هناك سببان لهذا. الأول هو التحكم في الارتفاع فوق مستوى سطح البحر. ومع زيادة الارتفاع، ينخفض ​​الضغط. مريحة للغاية عند المشي لمسافات طويلة، كبديل للملاحين GPS. وبالإضافة إلى ذلك، يتم استخدام الضغط الجوي للتنبؤ بالطقس.

تم استبدال BMP085 بمستشعر BMP180، الذي يتصل بـ Arduino ووحدات التحكم الدقيقة الأخرى بنفس طريقة سابقته، ولكنه أصغر حجمًا وأقل تكلفة.

الخصائص التقنية لBMP085

  • نطاق الحساسية: 300-1100 hPa (9000 م - 500 م فوق مستوى سطح البحر)؛
  • القرار: 0.03 هبأ / 0.25 م؛
  • درجة حرارة التشغيل -40 إلى +85 درجة مئوية، دقة قياس درجة الحرارة +-2 درجة مئوية؛
  • الاتصال عبر i2c؛
  • يستخدم V1 الموجود في الوحدة مصدر طاقة ومنطق 3.3 فولت ؛
  • يستخدم V2 الموجود على الوحدة طاقة 3.3-5 فولت وطاقة منطقية؛

بعد إعادة تشغيل Arduino IDE، يمكنك تشغيل المثال الأول للرسم، والذي يظهر الكود الخاص به أدناه:

#تتضمن <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_BMP085_U.h>

Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);

الإعداد باطل (باطل)

Serial.begin(9600);

Serial.println("اختبار مستشعر الضغط"); Serial.println("");

/* تهيئة المستشعر */

إذا (!bmp.begin())

/* إذا ظهرت الرسالة: "حدثت مشكلة في اكتشاف BMP085..."،

تأكد من توصيل المستشعر بشكل صحيح */

Serial.print ("عفوًا، لم يتم اكتشاف BMP085 ... تحقق من الأسلاك أو I2C ADDR!");

حدث Sensors_event_t؛

bmp.getEvent(&event);

/* عرض النتائج (يتم قياس الضغط الجوي بـ hPa) */

إذا (الحدث.الضغط)

/* عرض الضغط الجوي بوحدة hPa */

Serial.print("الضغط:"); Serial.print(event.pressure); Serial.println("hPa");

افتح نافذة الشاشة التسلسلية (معدل الباود - 9600). يجب أن يُخرج مخططنا بيانات الضغط بوحدة hPa (هكتوباسكال). يمكنك التحقق من وظيفة المستشعر عن طريق الضغط بإصبعك على المستشعر. ويوضح الشكل قيم الضغط بعد الضغط بالإصبع.


قياس الارتفاع عن سطح البحر

ربما تعلم أن الضغط ينخفض ​​مع زيادة الارتفاع. أي أنه يمكننا حساب الارتفاع بمعرفة الضغط ودرجة الحرارة. مرة أخرى، سنترك الرياضيات وراء الكواليس. إذا كنت مهتمًا بالحسابات، يمكنك الاطلاع عليها على صفحة ويكيبيديا هذه.

في المثال أدناه، سيتم استخدام مكتبة Arduino الإضافية. لحساب الارتفاع باستخدام مستشعر BMP085، قم بتحديث وظيفة "void loop()". التغييرات اللازمة على الرسم موضحة في الرسم أدناه. ونتيجة لذلك، سوف تحصل على قيمة درجة الحرارة بناءً على مستوى الضغط وقيمة درجة الحرارة.

/* إنشاء حدث جديد للمستشعر */

حدث Sensors_event_t؛

bmp.getEvent(&event);

/* عرض النتائج (الضغط الجوي بـ hPa) */

إذا (الحدث.الضغط)

/* عرض الضغط الجوي بوحدة hPa */

Serial.print("الضغط:");

Serial.print(event.pressure);

Serial.println("hPa");

/* لحساب الارتفاع بدقة معينة، عليك أن تعرف *

* متوسط ​​الضغط ودرجة الحرارة المحيطة

*بالدرجات المئوية وقت أخذ القراءات*

*إذا لم تكن لديك هذه البيانات، يمكنك استخدام "القيمة الافتراضية"

* والتي تساوي 1013.25 hPa (يتم تعريف هذه القيمة على أنها

*SENSORS_PRESSURE_SEALEVELHPA*

* في ملف Sensor.h). لكن النتائج لن تكون دقيقة*

*القيم المطلوبة يمكن العثور عليها في المواقع الإلكترونية التي تحتوي على توقعات درجات الحرارة*

*أو على مصادر مراكز المعلومات في المطارات الكبيرة*

*على سبيل المثال، بالنسبة لباريس، فرنسا، يمكنك العثور على متوسط ​​قيمة الضغط الحالية*

*عبر الموقع: http://bit.ly/16Au8ol */

/* الحصول على قيمة درجة الحرارة الحالية من مستشعر BMP085 */

درجة حرارة تعويم؛

bmp.getTemperature(&temperature);

Serial.print("درجة الحرارة:");

Serial.print (درجة الحرارة)؛

Serial.println("C");

/* تحويل البيانات المستلمة إلى الارتفاع */

/* تحديث السطر التالي بالقيم الحالية ​​*/

تعويم seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA;

Serial.print("الارتفاع:");

Serial.print(bmp.pressureToAltitude(seaLevelPressure,

Serial.println("م");

Serial.println("");

Serial.println("خطأ في المستشعر");

نقوم بتشغيل المخطط ونرى الارتفاع المحسوب فوق مستوى سطح البحر.

يمكن زيادة دقة قراءات BMP085 بشكل كبير عن طريق تحديد متوسط ​​قيمة الضغط، والذي يختلف حسب الطقس. كل 1 hPa من الضغط الذي لم نأخذه بعين الاعتبار يؤدي إلى خطأ قدره 8.5 متر!

يوضح الشكل أدناه قيم الضغط من أحد مصادر المعلومات الخاصة بمطار أوروبي. تم تمييز قيمة الضغط باللون الأصفر، والتي يمكننا استخدامها لتوضيح النتائج.


دعونا نغير السطر التالي في مخططنا، ونكتب فيه القيمة الحالية (1009 hPa):

تعويم مستوى ضغط البحر = 1009؛

ونتيجة لذلك، سوف نحصل على نتائج مختلفة قليلا:

نصيحة: عند تحديد الضغط، لا تنس تحويل البيانات المستخدمة إلى hPa.

استخدام BMP085 (API v1)

دعونا نكرر مرة أخرى: من أجل معرفة الضغط والارتفاع فوق مستوى سطح البحر، نحتاج إلى إجراء بعض الحسابات. ولكن تم تضمينها جميعًا بالفعل في مكتبة Adafruit_BMP085 Arduino (API v1)، والتي يمكن تنزيلها من الرابط.

بعد تثبيت المكتبات، تحتاج إلى إعادة تشغيل Arduino IDE

بعد إعادة التشغيل، يمكنك تشغيل المثال الأول للرسم:

#تتضمن <Wire.h>

Adafruit_BMP085 bmp;

Serial.begin(9600);

Serial.println("*C");

Serial.print("الضغط =");

Serial.println("Pa");

println();

بعد وميض Arduino، افتح الشاشة التسلسلية. اضبط معدل الباود على 9600. سيخرج الرسم درجة الحرارة بالدرجات المئوية والضغط بالباسكال. إذا وضعت إصبعك على عنصر الاستشعار في المستشعر، فستزيد درجة الحرارة والضغط:


قياس الارتفاع (API v1)

للتحكم في الارتفاع، ما عليك سوى تشغيل المخطط أدناه:

#تتضمن <Wire.h>

#include <Adafruit_BMP085.h>

Adafruit_BMP085 bmp;

Serial.begin(9600);

Serial.print("درجة الحرارة =");

Serial.print(bmp.readTemperature());

Serial.println("*C");

Serial.print("الضغط =");

Serial.print(bmp.readPressure());

Serial.println("Pa");

// احسب الارتفاع فوق مستوى سطح البحر بناءً على القيم

// الضغط الجوي "القياسي" يساوي 1013.25 مليبار = 101325 باسكال

Serial.print("الارتفاع =");

Serial.print(bmp.readAltitude());

Serial.println("متر");

println();

قم بتشغيل الرسم لعرض النتائج:


انطلاقا من القراءات أعلاه، نحن على ارتفاع -21.5 مترا بالنسبة لمستوى سطح البحر. لكننا نعلم أننا فوق البحر! نتذكر نفس المشكلة عند استخدام API V2. يجب أن نأخذ الطقس بعين الاعتبار! نعم. لنفترض أننا وجدنا موقعًا للطقس جيدًا وكان الضغط 101.964 باسكال. افتح المثال أمثلة->BMP085test في Arduino IDE وقم بتحرير السطر الموضح في الشكل أدناه:


في هذا السطر تحتاج إلى إدخال بيانات الضغط الحالية. بعد الإطلاق الجديد، ستجد أن البيانات قد تغيرت بشكل كبير وحصلنا على 29.58 مترًا بعلامة زائد، وهي أقرب إلى الحقيقة بكثير.


اترك تعليقاتك وأسئلتك وشارك تجاربك الشخصية أدناه. غالبًا ما تولد الأفكار والمشاريع الجديدة في المناقشات!

يلعب حجم الضغط الجوي وسرعة وطبيعة تغيراته دورًا مهمًا في التنبؤ بالطقس، كما يؤثر بشكل كبير على رفاهية الأشخاص المعرضين للاعتماد على الطقس - الأمراض المرتبطة بظواهر الطقس المختلفة. تستخدم أجهزة البارومترات لقياس الضغط الجوي. البارومتر اللاسائلي الميكانيكي له يدين. واحد يظهر الضغط الحالي. يتيح لك سهم آخر، والذي يمكن ضبطه يدويًا على أي موضع، تحديد القيمة المقاسة لتحديد اتجاه التغيرات في الضغط الجوي بمرور الوقت. من المرغوب فيه للغاية ألا يُظهر البارومتر الإلكتروني أيضًا قيمة الضغط الجوي فحسب، بل يسمح أيضًا بتحديد ما إذا كانت هناك زيادة أو نقصان ومدى سرعة تغير المعلمة المقاسة.

لا تعرض محطات الأرصاد الجوية المنزلية غير المكلفة سوى الصور التوضيحية لقطرات المطر أو السحب أو الشمس. من الصعب تحديد مدى ارتباط هذه الرموز بالضغط الجوي وما إذا كانت محطة الأرصاد الجوية هذه تحتوي على مستشعر بارومتري أو تستخدم طرقًا إبداعية أخرى للتنبؤ بالطقس. تُظهر محطات الأرصاد الجوية الأكثر تقدمًا قيمة الضغط الحالي كرقم، والتغير في الضغط خلال الساعات القليلة الماضية في شكل رسم بياني شريطي تقريبي، له وظيفة تزيينية بشكل أساسي. محطات الطقس هذه أغلى بكثير. هناك أيضًا أجهزة متقدمة جدًا في السوق مصممة للبحارة ورجال اليخوت وما إلى ذلك، والتي تُظهر تغيرات الضغط والقيمة الحالية بدقة عالية، لكن هذه الأجهزة باهظة الثمن.

يناقش هذا المنشور مقياسًا بسيطًا محلي الصنع يوضح حجم ومعدل التغير في الضغط الجوي، وكذلك درجة حرارة الهواء.

مظهر الجهاز موضح في الصورة.

يتم عرض نتائج القياس على شاشة تركيب الأحرف المكونة من سطرين. يعرض السطر الأول نتيجة قياس الضغط الجوي الحالي بالملليمتر زئبقي، وانحراف قيمة الضغط الحالي عن متوسط ​​قيمة موقع معين (زيادة قيمة الضغط الحالي فوق المتوسط ​​تعتبر إيجابية)، وكذلك درجة حرارة الهواء بالدرجة المئوية. يتم تحديث البيانات الموضحة في السطر العلوي كل 6 ثوانٍ. يكون إخراج البيانات الجديدة مصحوبًا بفلاش LED الموجود فوق المؤشر.

يعرض السطر الثاني من المؤشر زيادات الضغط لآخر ساعة وثلاث ساعات وعشر ساعات. إذا زاد الضغط خلال الفترة الزمنية المحددة، فسيتم عرض الزيادة المقابلة بعلامة زائد، وإلا - بعلامة ناقص. يتم تحديث البيانات الموجودة في السطر الثاني كل 10 دقائق. مباشرة بعد تشغيل البارومتر، سيكون السطر الثاني فارغا. ستظهر القيم الرقمية هناك بعد ساعة واحدة و3 ساعات و10 ساعات على التوالي.

تم تصميم البارومتر للعمل في غرفة جافة ومدفأة عند درجة حرارة 0...40 درجة مئوية وضغط جوي 600...825 ملم زئبق. فن.

يتم تحديد دقة قياس الضغط ودرجة الحرارة بالكامل من خلال دقة مستشعر الضغط Bosch BMP180 المستخدم. الخطأ النموذجي في قياس الضغط هو -1hPa، وهو ما يعادل تقريبًا 0.75 مم زئبقي. يبلغ مكون الضوضاء عند قياس الضغط 0.02 hPa (0.015 مم زئبق). الخطأ النموذجي في قياس درجة الحرارة حوالي 25 درجة مئوية هو +/- 0.5 درجة مئوية. يمكن العثور على المزيد من الخصائص التقنية التفصيلية لمستشعر BMP180 في المواصفات الفنية. الوصف في التطبيق.

يتم حساب الفواصل الزمنية في هذا الجهاز برمجياً. والخطأ في تكوين هذه الفترات، الذي قاسه المؤلف، لا يتجاوز دقيقة واحدة في 10 ساعات.

يظهر الرسم التخطيطي للبارومتر في الشكل.

العنصر الرئيسي للجهاز هو وحدة Arduino Nano. استخدم المؤلف الإصدار 3 مع متحكم ATmega 328. في هذه الحالة، تشغل ذاكرة الوحدة الثلث فقط، لذلك من الممكن استخدام وحدة Arduino Nano مع متحكم ATmega 168.

شاشة Winstar WH1602L عبارة عن سطرين مع 16 حرفًا في كل سطر. أساسها هو وحدة التحكم HD44780. يسمح لك المقاوم R2 بضبط تباين الصورة. إذا كان الجهد عند الطرف 3 (Vo) ينحرف بشكل كبير عن الجهد الأمثل، فلن تظهر أي صورة على الشاشة على الإطلاق. يجب أن يؤخذ هذا الظرف في الاعتبار عند تشغيل الجهاز لأول مرة. بالنسبة لمثال العرض الذي استخدمه المؤلف، كان الجهد الأمثل عند الطرف 3 حوالي 1 فولت. ويحدد المقاوم R3 القيمة الحالية لمصابيح LED الخلفية.

يحتوي مستشعر الضغط BMP180 على غلاف معدني بقياس 3.6x3.6x1 ملم. استنتاجاتها هي منصات الاتصال الموجودة في الجزء السفلي من السكن. بالإضافة إلى ذلك، يتطلب المستشعر مصدر طاقة يبلغ 1.8 - 3.6 فولت. كما تختلف مستويات الإشارة التي يتبادلها المستشعر مع جهاز خارجي عن المستويات المطلوبة. هذه الظروف تجعل الاستخدام المباشر لـ BMP180 أمرًا صعبًا. ولحسن الحظ، تم حل هذه المشكلة بسهولة. الوحدات المعتمدة على أجهزة الاستشعار BMP180 متاحة للبيع، والتي تشمل أجهزة الاستشعار نفسها وجميع العناصر المطابقة. هذه الوحدات عبارة عن لوحة مقاس 10 × 13 مم. تكلفتها حوالي 1.4 دولار أمريكي. يظهر مظهر الوحدة في الصورة التالية.

يومض مصباح LED HL1 كل 6 ثوانٍ، للإشارة إلى عرض نتائج جديدة على شاشة البارومتر. استخدم المؤلف مصباح LED أخضر بقطر 3 مم L-1154GT من Kingbright.
يتمتع المكثف C1 بسعة كبيرة إلى حد ما، مما يجعل الجهاز غير حساس لانقطاع التيار الكهربائي على المدى القصير. إذا لم يكن ذلك مطلوبًا، فيمكن تقليل C1 إلى 500 ميكروفاراد.
يقوم الصمام الثنائي D1 بإيقاف تشغيل الإضاءة الخلفية للمؤشر أثناء انقطاع التيار الكهربائي. يؤدي هذا إلى زيادة عمر بطارية البارومتر من الطاقة المخزنة في المكثف C1.

يمكن تشغيل الجهاز من أي مصدر تيار مستمر (شاحن الهاتف الخليوي، ومصدر الطاقة لأي أداة، وما إلى ذلك) بجهد خرج يبلغ 8...12 فولت. عند جهد 9 فولت، يستهلك البارومتر حوالي 80 مللي أمبير.

يتم تجميع الجهاز على لوح تجارب مقاس 85 × 55 ملم، وهو متصل بالشاشة باستخدام لوح زجاجي.

يقع مستشعر BMP180 في الأسفل - قدر الإمكان من العناصر الرئيسية المولدة للحرارة، وهي المقاوم R3 وشاشة الإضاءة الخلفية LED. جسم الجهاز عبارة عن صندوق بلاستيكي بقياس 160x160x25. يجب حفر سلسلة من فتحات التهوية في الجدران السفلية والعلوية للصندوق.

يتم تقديم المخطط الذي يجب وميضه في ذاكرة وحدة Arduino Nano في التطبيق. استخدم المؤلف Arduino IDE 1.8.1. لدعم حساس الضغط يجب تركيب مكتبة Adafruit-BMP085. يتم تضمين الملف المقابل في المرفق.

قبل تحميل الرسم، في السطر 17، بدلاً من الرقم 740.0، الذي يتوافق مع متوسط ​​الضغط في موقع تركيب مقياس المؤلف، أدخل متوسط ​​الضغط بالملليمتر. غ. فن. ، الموافق للموقع الذي سيتم فيه تركيب البارومتر الخاص بك. كتقريب أولي، يمكن تحديد هذه المعلمة بواسطة الصيغة Рсп = 760 - 0.091h، حيث h هو الارتفاع فوق مستوى سطح البحر بالأمتار. أسهل طريقة لتحديد الارتفاع هي استخدام متصفح GPS.

لا تأخذ هذه الصيغة في الاعتبار العديد من العوامل التي تؤثر على الضغط الجوي ولا تنطبق إلا على الارتفاعات التي تصل إلى 500 متر. إن وصف طرق تحديد متوسط ​​الضغط بشكل أكثر دقة هو خارج نطاق هذا المنشور. ويمكن العثور عليها في العديد من المواد المتعلقة بالأرصاد الجوية المتوفرة على الإنترنت.

قائمة العناصر الراديوية

تعيين يكتب فئة كمية ملحوظةمحلمفكرة بلدي
أ1 وحدة مع جهاز استشعار BMP180 1 إلى المفكرة
أ2 لوحة اردوينو

اردوينو نانو 3.0

1 إلى المفكرة
VD1 المعدل الصمام الثنائي

1N4007

1 إلى المفكرة
HG1 عرض شاشات الكريستال السائلWH1602L1 وينستار إلى المفكرة
HL1 الصمام الثنائي الباعث للضوءإل-1154 جي تي1 كينغبرايت إلى المفكرة
ج1 مكثف كهربائيا4700 فائق التوهج × 16 فولت1

البارومتر هو جهاز يقيس الضغط الجوي. أي أن الضغط الجوي يضغط علينا من جميع الجهات. ونحن نعلم منذ المدرسة أن البارومتر الأول كان عبارة عن صفيحة تحتوي على الزئبق وأنبوب اختبار مقلوب. مؤلف هذا الجهاز هو إيفانجليستا توريسيلي، عالم فيزياء ورياضيات إيطالي. يمكن أخذ القراءات من مقياس الزئبق ببساطة مثل القراءات من مقياس حرارة الكحول: كلما زاد الضغط خارج الدورق، زاد عمود الزئبق بداخله. من المعروف أن بخار الزئبق شديد السمية.

في وقت لاحق، ظهر جهاز أكثر أمانا - مقياسا اللاسائلي. في هذا البارومتر، تم استبدال الزئبق بصندوق مموج مصنوع من القصدير الرقيق، حيث تم إنشاء فراغ. تحت تأثير الغلاف الجوي، ينكمش الصندوق، ومن خلال نظام من الرافعات، يدير السهم الموجود على القرص. هذا هو الشكل الذي يبدو عليه هذين البارومترين. على اليسار يوجد اللاسائلي، وعلى اليمين يوجد مقياس توريتشيلي.

لماذا قد نحتاج إلى البارومتر؟ في أغلب الأحيان، يتم استخدام هذا الجهاز على الطائرات لتحديد ارتفاع الرحلة. كلما ارتفعت المركبة فوق مستوى سطح البحر، قل الضغط الذي يتعرض له البارومتر الموجود على متن الطائرة. بمعرفة هذا الاعتماد، من السهل تحديد الارتفاع.

حالة الاستخدام الشائعة الأخرى هي محطة الطقس محلية الصنع. في هذه الحالة، يمكننا استخدام الاعتماد المعروف للطقس المستقبلي على الضغط الجوي. بالإضافة إلى البارومتر، تم تجهيز هذه المحطات بأجهزة استشعار للرطوبة ودرجة الحرارة.

1. البارومتر الإلكتروني

لا يمكننا استخدام مثل هذه المقاييس الضخمة في الروبوتات. نحن بحاجة إلى جهاز مصغر وموفر للطاقة يمكن توصيله بسهولة بنفس Arduino Uno. يتم تصنيع معظم أجهزة البارومترات الحديثة باستخدام تقنية MEMS، وكذلك مقاييس الدوران ومقاييس التسارع. تعتمد مقاييس MEMS على طريقة قياس الضغط أو الضغط، والتي تستخدم تأثير تغيير مقاومة المادة تحت تأثير قوى التشوه.

إذا قمت بفتح مبيت مقياس البارومتر MEMS، فيمكنك رؤية عنصر الاستشعار (على اليمين)، والذي يقع مباشرة أسفل الفتحة الموجودة في الغلاف الواقي للجهاز، ولوحة التحكم (على اليسار)، التي تقوم بإجراء التصفية الأولية وتحويل القياسات .

2. أجهزة الاستشعار BMP085 وBMP180

أجهزة استشعار الضغط الأكثر بأسعار معقولة، والتي غالبا ما تستخدم في أجهزة التحكم في الطيران وفي العديد من الأجهزة الإلكترونية محلية الصنع، تشمل أجهزة استشعار من BOSH: BMP085 وBMP180. أما البارومتر الثاني فهو أحدث ولكنه متوافق تمامًا مع الإصدار القديم.

بعض الخصائص المهمة لـ BMP180:

  • نطاق القيم المقاسة: من 300 hPa إلى 1100 hPa (من -500 متر إلى +9000 متر فوق مستوى سطح البحر)؛
  • جهد الإمداد: من 3.3 إلى 5 فولت؛
    التيار: 5 μA عند سرعة الاقتراع - 1 هرتز؛
  • مستوى الضوضاء: 0.06 hPa (0.5m) في وضع الطاقة المنخفضة للغاية و0.02 hPa (0.17m) في وضع الدقة المتقدمة.

الآن دعونا نقوم بتوصيل هذا المستشعر بوحدة التحكم ونحاول تقدير الضغط الجوي.

3. اتصال BMP180

يتمتع كلا المستشعرين بواجهة I2C، بحيث يمكن توصيلهما بسهولة بأي منصة من عائلة Arduino. هذا ما يبدو عليه جدول اتصال Arduino Uno.

بي إم بي 180 أرض VCC S.D.A. SCL
اردوينو أونو أرض +5 فولت A4 أ5

رسم تخطيطى

مظهر التخطيط

4. البرنامج

للعمل مع المستشعر نحتاج إلى مكتبة: BMP180_Breakout_Arduino_Library

قم بتنزيله من المستودع وتثبيته في Arduino IDE. الآن كل شيء جاهز لكتابة برنامجك الأول. دعونا نحاول الحصول على البيانات الأولية من المستشعر وإخراجها إلى شاشة منفذ COM.

#يشمل #يشمل ضغط SFE_BMP180؛ إعداد باطلة())( Serial.begin(9600); Pressure.begin(); ) حلقة باطلة())( double P; P = getPressure(); Serial.println(P, 4); تأخير(100); ) double getPressure ()( حالة char؛ double T,P,p0,a; الحالة = الضغط.startTemperature(); إذا (الحالة != 0)( // انتظار تأخير قياس درجة الحرارة (الحالة)؛ الحالة = الضغط.getTemperature( T); if (status != 0)(status = Pressure.startPressure(3); if (status != 0)(// انتظار تأخير قياس الضغط(status); الحالة = Pressure.getPressure(P,T); إذا (الحالة ! = 0)(return(P); ) ) ) ) )

إن إجراء الحصول على الضغط المطلوب من المستشعر ليس تافهاً ويتكون من عدة مراحل. في شكل مبسط، تبدو الخوارزمية كما يلي:

  1. نطلب من البارومتر الحصول على قراءات من مستشعر درجة الحرارة المدمج؛
  2. انتظر وقتًا حتى يقوم المستشعر بتقييم درجة الحرارة؛
  3. نحصل على درجة الحرارة.
  4. نسأل البارومتر عن الضغط؛
  5. انتظر وقت B بينما يقوم المستشعر بتقييم الضغط؛
  6. الحصول على قيمة الضغط
  7. إرجاع قيمة الضغط من الوظيفة.

يعتمد الوقت B على دقة القياس المحددة في الوظيفة startPressure. يمكن للوسيطة الفردية لهذه الدالة أن تأخذ قيمًا من 0 إلى 3، حيث 0 هو التقدير الأدق والأسرع، و3 هو تقدير الضغط الأكثر دقة.

نقوم بتحميل البرنامج على Arduino Uno ونلاحظ تدفق قياسات الضغط الجوي. دعنا نحاول رفع المستشعر فوق رأسك وخفضه إلى مستوى الأرض. سوف تختلف القراءات قليلا. كل ما تبقى هو معرفة كيف يمكننا تحويل هذه الأرقام الغريبة إلى ارتفاع فوق مستوى سطح البحر.

5. تحويل الضغط إلى الارتفاع

يقوم مستشعر BMP180 بإرجاع قيمة الضغط بالهكتوباسكال (hPa). في هذه الوحدات يتم عادةً قياس الضغط الجوي. 1 هبأ = 100 باسكال. ومن المعروف أن الضغط عند مستوى سطح البحر يبلغ في المتوسط ​​1013 هكتوباسكال، وكل متر إضافي فوق مستوى سطح البحر سيخفض هذا الضغط بمقدار 0.11 هكتوباسكال فقط (تقريبًا).

وهكذا، إذا طرحنا من نتيجة الدالة getPressureالرقم هو 1013، ونقسم الفرق المتبقي على 0.11، فنحصل على الارتفاع عن سطح البحر بالمتر. هكذا سيتغير برنامجنا:

حلقة باطلة())( double P, Alt; P = getPressure(); Alt = (P - 1013)/0.11; Serial.println(Alt, 2); تأخير(100); )

في الواقع، يعتمد الضغط بشكل غير خطي على الارتفاع فوق مستوى سطح البحر، وصيغتنا مناسبة فقط للارتفاعات التي نعيش فيها عادةً. ولحسن الحظ، تعرف البشرية اعتماداً أكثر دقة للضغط على الارتفاع، وهو ما يمكننا تطبيقه للحصول على نتائج أكثر دقة.

هنا p هو الضغط المقاس عند نقطة معينة، p0 هو الضغط النسبي الذي يتم قياس الارتفاع عليه.

تحتوي مكتبة SFE_BMP180 بالفعل على وظيفة تستخدم الوظيفة المحددة. صيغة للحصول على الارتفاع الدقيق. نستخدمها في برنامجنا.

#يشمل #يشمل ضغط SFE_BMP180؛ مزدوج P0 = 0؛ إعداد الفراغ ())( Serial.begin(9600); الضغط.begin(); P0 = الضغط.getPressure(); ) حلقة باطلة())( double P, Alt; P = getPressure(); Alt = الضغط.altitude (P ,P0) Serial.println(Alt, 2); تأخير(100);

لم أنسخ وظيفة getPressure بالكامل لإبقاء النص قابلاً للقراءة.

ظهر في البرنامج متغير آخر P0 وهو الضغط الذي سنقيسه في بداية البرنامج. في حالة الطائرة، P0 سيكون الضغط عند موقع الإقلاع بالنسبة إلى المكان الذي سنبدأ بالصعود إليه.

6. التصور

الآن دعونا نحاول عرض قراءات الضغط في البرنامج SFMonitorودعونا نرى كيف يتغير الضغط عندما يتحرك المستشعر إلى ارتفاع 2 متر.

بايت ثابت ثابت PACKET_SIZE = 1؛ بايت ثابت ثابت VALUE_SIZE = 2؛ static const boolean SEPARATE_VALUES = true; #يشمل #يشمل #يشمل ضغط SFE_BMP180؛ SerialFlow rd(&Serial); مزدوج P0 = 0؛ إعداد الفراغ ())( rd.setPacketFormat(VALUE_SIZE, PACKET_SIZE, SEPARATE_VALUES); rd.begin(9600); Pressure.begin(); P0 = getPressure(); ) حلقة باطلة())( double P; P = getPressure( rd.setPacketValue(100+int((P - P0)*100)); تأخير(100) مزدوج getPressure( ... )

ونتيجة للبرنامج حصلنا على رسم بياني للضغط بالباسكال:

7. الخاتمة

وكما تعلمنا من الدرس، فإن تحديد الارتفاع فوق مستوى سطح البحر ليس مهمة تافهة. لا يعتمد الضغط بشكل غير خطي على الارتفاع فحسب، بل تفسد الصورة أيضًا بعوامل خارجية مختلفة. على سبيل المثال، يتغير الضغط في منزلنا باستمرار بمرور الوقت. حتى في بضع دقائق، يمكن أن يتراوح الارتفاع الذي يقاسه جهازنا بين 0.5 و1 متر. تؤثر درجة الحرارة أيضًا بشكل كبير على جودة القياسات، لذلك يجب أن نأخذها في الاعتبار عند حساب الضغط.

بالنسبة للطائرات، يوصى باستخدام أجهزة استشعار عالية الدقة مثل MS5611. يمكن أن تصل دقة قياس البارومتر إلى 0.012 hPa، وهو أفضل بـ 5 مرات من BMP180. كما يتم استخدام إحداثيات نظام تحديد المواقع العالمي (GPS) لتوضيح الارتفاع الجوي للرحلة.

حظا سعيدا في مراقبة الغلاف الجوي! 🙂

مقدمة

ما الذي يمكن عرضه على شاشة مكونة من سطرين غير عبارة "Hello World!"؟ لماذا لا يتم عرض درجة الحرارة والرطوبة والضغط؟

تُظهر المستشعرات المقدمة كبرنامج تعليمي لـ Arduino (DHT11، DHT22) درجة حرارة الهواء والرطوبة. ولأغراض تعليمية (للجامعة) كان من الضروري أيضًا مراقبة الضغط. وبطبيعة الحال، لدى القسم مقياسا، ولكن لماذا لا تقوم ببناء مقياس خاص بك؟ بالإضافة إلى ذلك، يمكنك تجميع القراءات بشكل أكبر في الوضع التلقائي، وهذه تجربة جيدة في تعلم الاردوينو.

بطريقة أو بأخرى، تم طلب المكونات من الصين وتم تجميع هذا الجهاز.

المكونات المطلوبة

تم استخدام USB-UART لإرسال المخطط إلى اردوينو. يمكنك أيضًا استخدام Raspberry Pi أو جهاز كمبيوتر مزود بمنفذ COM.

مخطط اتصال البرامج الثابتة ورمز البرنامج

وصل USB-UART من الصين مع مجموعة من الأسلاك:

كان هناك ما يكفي منهم. لقد تركت العبور عند 3.3 فولت، على الرغم من أن نسختي من اردوينو تعمل بـ 5 فولت.

UART - اردوينو
5 فولت - VCC
تكسد - آر إكس دي
آر إكس دي - تكسد
غند - غند
CTS - DTR (اختياري، لم ينجح معي، ربما لأن جهد الإشارة ظل 3.3 فولت)

إذا لم تقم بتوصيل DTR، فبعد إرسال البرنامج الثابت، يجب إعادة تشغيل Arduino باستخدام الزر المدمج، وسيبدأ تبادل البيانات النشط في كلا الاتجاهين (كما يتضح من مصابيح LED الموجودة على USB-UART)، بعد البرنامج الثابت تم تحميله بنجاح، وسوف يعيد تشغيل نفسه.

مكتبات الطرف الثالث المطلوبة:

الكود نفسه، مع التعليقات من الأمثلة (في حالة احتياج شخص ما إلى تغيير شيء ما).

شفرة

#يشمل #include "SparkFunBME280.h" #include "Wire.h" #include "SPI.h" #include // كائن الاستشعار العالمي BME280 mySensor; LiquidCrystal_I2C شاشات الكريستال السائل (0x3F،16،2)؛ // عنوان العرض، في حالتي 0x3F void setup () (lcd.init ()؛ lcd.backlight ()؛ //*** إعدادات برنامج التشغيل ***************** ***************// //commInterface يمكن أن يكون I2C_MODE أو SPI_MODE // حدد chipSelectPin باستخدام أسماء دبوس اردوينو // حدد عنوان I2C يمكن أن يكون 0x77 (افتراضي) أو 0x76 //For I2C، قم بتمكين ما يلي وتعطيل قسم SPI mySensor.settings.commInterface = I2C_MODE mySensor.settings.I2CAddress = 0x76; // عنوان المستشعر، في حالتي غير قياسي // بالنسبة إلى SPI، قم بتمكين ما يلي وتعطيل قسم I2C // mySensor.settings.commInterface = SPI_MODE; //mySensor.settings.chipSelectPin = 10; ****// يمكن أن يكون //renMode: // 0، وضع السكون // 1 أو 2، الوضع القسري // 3، الوضع العادي mySensor.settings.runMode = 3؛ // في المثال يقترحون استخدام الوضع القسري ، ولكن عند التحديث مرة واحدة في الثانية، يمكن أن يكون الوضع العادي //tStandby: // 0, 0.5 مللي ثانية // 1, 62.5 مللي ثانية // 2, 125 مللي ثانية // 3, 250 مللي ثانية // 4, 500 مللي ثانية // 5, 1000 مللي ثانية // 6، 10 مللي ثانية // 7، 20 مللي ثانية mySensor.settings.tStandby = 5; // من الواضح أنه في كثير من الأحيان ليس من الضروري // يمكن إيقاف تشغيل الفلتر أو استخدام عدد من معاملات FIR: // 0، إيقاف الفلتر // 1، المعاملات = 2 // 2، المعاملات = 4 // 3، المعاملات = 8 // 4، المعاملات = 16 mySensor.settings.filter = 0; يمكن أن يكون //tempOverSample: // 0، تم تخطيه // 1 إلى 5، أخذ العينات الزائدة *1، *2، *4، *8، *16 على التوالي mySensor.settings.tempOverSample = 1; يمكن أن يكون //pressOverSample: // 0، تم تخطيه // 1 إلى 5، أخذ العينات الزائدة *1، *2، *4، *8، *16 على التوالي mySensor.settings.pressOverSample = 1; //humidOverSample يمكن أن يكون: // 0، تم تخطيه // 1 إلى 5، أخذ العينات الزائدة *1، *2، *4، *8، *16 على التوالي mySensor.settings.humidOverSample = 1; // يؤدي الاتصال بـ .begin() إلى تحميل الإعدادات mySensor.begin(); ) void loop() ( // يمكن عرض الحروف مرة واحدة، ومن ثم يمكن تغيير القراءات، ولكن يمكن أن تتغير القراءات عند تغيير عدد الأرقام المهمة. "H = "؛ شاشات الكريستال السائل .print((uint8_t)mySensor.readFloatHumidity()); ); شاشات الكريستال السائل.طباعة("باسكال");


يمكن تخمين عنوان المستشعر؛ حيث يوجد اثنان منهم فقط.

يمكنك معرفة كيفية معرفة عنوان شاشتك. اعتمادًا على الدائرة الدقيقة، هناك علامتان.

في هذه الحالة:


وسوف يكون العنوان 0x3F ل A0 - A2 مفتوح:

يمكن إزالة لحام مؤشر LED المحاط بدائرة بشكل بيضاوي بشكل أفضل.

مخطط الاتصال

تم اختيار المقاومة لتكون نصف مقاومة المستشعر (بين VVC و GND) بحيث يكون انخفاض الجهد عبرها 1.7 فولت. يمكن أيضًا تشغيل الدائرة من مدخل RAW، بجهد مختلف (على سبيل المثال، من التاج).

تُظهر الصورة أنه من أجل الاكتناز، يمكنك توصيل الطاقة إلى المستشعر وعرضه من دبوس آخر. يمكنك أيضًا رؤية فرع من زوج من الأسلاك باللون البرتقالي والأصفر؛ مقاوم 100 أوم معلق عليهما لتقليل سطوع الإضاءة الخلفية (يمكنك ترك العبور، لكنه سيؤذي عينيك).

في حالتي، يتم تشغيل كل شيء من مصدر طاقة قديم للكمبيوتر. يمكن تشغيله بواسطة USB. تم لصق جميع المكونات باستخدام غراء Moment الذي كان في متناول اليد.

الحد الأدنى

ظهر 1602 في مكان العمل، مثبتًا على الطاولة، مما يوضح الضغط والرطوبة ودرجة الحرارة. يمكن إعادة تحميل اردوينو دون إزالته (ربما يصبح خطًا زاحفًا).