جدول المحتويات:

تخطيط شدة الضوء باستخدام مكتبة Arduino و Python الرئيسية في Arduino: 5 خطوات
تخطيط شدة الضوء باستخدام مكتبة Arduino و Python الرئيسية في Arduino: 5 خطوات

فيديو: تخطيط شدة الضوء باستخدام مكتبة Arduino و Python الرئيسية في Arduino: 5 خطوات

فيديو: تخطيط شدة الضوء باستخدام مكتبة Arduino و Python الرئيسية في Arduino: 5 خطوات
فيديو: Контрольная лампа переменного тока с диммером Arduino AC 2024, شهر نوفمبر
Anonim
تخطيط شدة الضوء باستخدام مكتبة Arduino و Python الرئيسية Arduino
تخطيط شدة الضوء باستخدام مكتبة Arduino و Python الرئيسية Arduino

Arduino هو أداة اقتصادية وفعالة وعملية للغاية ، فإن برمجته في Embedded C يجعل عملية جعل المشاريع مملة! تعمل الوحدة النمطية Arduino_Master في Python على تبسيط هذا الأمر وتتيح لنا إجراء العمليات الحسابية وإزالة قيم القمامة ورسم رسم بياني للتمثيل المرئي للبيانات.

إذا كنت لا تعرف هذه الوحدة حتى الآن ، فقم بتثبيتها باستخدام الأمر pip install Arduino_Master

لا تقلق إذا كنت لا تعرف كيفية استخدام هذه الوحدة ، قم بزيارة هذا الرابط => Arduino_Master

ومع ذلك ، سيكون رمز هذا المشروع متاحًا دائمًا في هذا الدليل.

اللوازم

بالنسبة لهذا المشروع ، ستحتاج إلى ما يلي:

  1. اردوينو
  2. مقاوم يعتمد على الضوء (LDR) و
  3. تم تثبيت Python 3 على جهاز الكمبيوتر الخاص بك.

الخطوة 1: بناء دائرتك:

بناء دائرتك
بناء دائرتك

سنستخدم دبوس A1 من Arduino للحصول على بيانات الإدخال. يمكنك أيضًا استخدام دبابيس 5V و GND في Arduino بدلاً من البطارية. قم بإجراء الاتصال على النحو التالي:

  1. قم بتوصيل أحد طرفي LDR بالطرف الموجب لبطارية 5 فولت أو دبوس 5 فولت في Arduino.
  2. قم بتوصيل الطرف الآخر من LDR بالتوازي مع الطرف A1 والطرف السالب للبطارية أو دبوس GND في Arduino.
  3. استخدم المقاوم للتأكد من عدم تدفق كل التيار إلى GND مما قد يؤدي إلى عدم الحصول على إشارة قوية بما يكفي للاستشعار عند محطة A1 من Arduino. (أستخدم المقاوم 10 كيلو أوم).

الخطوة الثانية: برمجة اردوينو الخاص بك:

تستخدم وحدة Arduino_Master مراقب تسلسلي من Arduino لإرسال واستقبال البيانات. تتمثل ميزة استخدام هذه الوحدة في أنه بمجرد برمجة Arduino ، يمكنك تغيير برنامج python بمفرده لمشاريع مختلفة لأن البرمجة في Python أسهل نسبيًا!

الشفرة:

// يستخدم متغير LDR_1 للدلالة على دبوس A1 في Arduino.

int LDR_1 = A1 ؛

// سيتم تخزين البيانات المستلمة من A1 في LDR_Value_1.

تعويم LDR_Value_1 ؛

إدخال سلسلة

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

{pinMode (LDR_1 ، INPUT) ، // تم تعيين LDR_1 كدبوس INPUT. Serial.begin (9600) ؛ // تم ضبط معدل البث بالباود على 9600.}

حلقة فارغة()

{if (Serial.available ()> 0) // إذا كان أي إدخال متاحًا في الشاشة التسلسلية ، فتابع. {المدخلات = Serial.readString () ، // اقرأ الإدخال كسلسلة. إذا (الإدخال == "البيانات") {LDR_Value_1 = القراءة التناظرية (LDR_1) * (5.0 / 1023.0) ؛ // (5/1023) هو عامل التحويل للحصول على القيمة بالفولت. Serial.println (LDR_Value_1) ، // إذا كان الإدخال يساوي "DATA" ، فقم بقراءة الإدخال من LDR_1 واطبعه على Serial Monitor. } else int i = 0 ؛ // إذا كان الإدخال لا يساوي "البيانات" ، فلا تفعل شيئًا! }

}

الخطوة 3: برمجة Python لرسم بيانات من Arduino:

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

قم بتحميل البرنامج التالي إلى Python IDE الخاص بك وقم بتشغيله:

افعل ذلك لشدة مختلفة من الضوء وباستخدام الرسم البياني ارسم استنتاجًا على سبيل المثال إذا كانت الشدة أقل من 1 ، فإن الغرفة مظلمة جدًا. بالنسبة للشدة بين 1 و 2 ، تكون الغرفة مظلمة إلى حد كبير. لشدة أكبر من 2 ، يتم تشغيل الضوء.

# استيراد وحدة Arduino_Master

من Arduino_Master استيراد *

# جمع البيانات

البيانات = عامل التصفية (ardata (8 ، ضغط = خطأ ، ديناميكي = صحيح ، msg = "DATA" ، خطوط = 30) ، نوع متوقع = 'num' ، حد = [0 ، 5])

# تم ضبط الحد على 5 لأننا نستخدم بطارية 5 فولت.

# رسم القيم

الرسم البياني (البيانات ، stl = 'dark_background' ، التسمية = 'كثافة الضوء')

الخطوة 4: البرنامج النهائي للتحقق من شدة الضوء في الغرفة

بعد الوصول إلى استنتاج من البيانات التي حصلت عليها ، قم بتحميل البرنامج التالي وتأكد من تغيير الحدود وفقًا لاستنتاجك.

# استيراد وحدة Arduino_Master

من Arduino_Master import # جمع البيانات = عامل التصفية (ardata (8، squeeze = False، dynamic = True، msg = "DATA"، الأسطر = 50)، added_type = 'num'، limit = [0، 5]) # تصنيف البيانات استنادًا إلى معلومات الاستنتاج = بالنسبة إلى i في النطاق (len (البيانات)): الكثافة = البيانات إذا كانت الكثافة 1 والشدة = 2: info.append ('Light ON') # رسم الرسم البياني. compGraph (data، info، stl = 'dark_background'، label1 = 'Light Intensity'، label2 = 'State')

الخطوة 5: النتيجة:

نتيجة
نتيجة

سيستغرق تشغيل البرنامج دقيقة أو دقيقتين لأنك تقرأ 50 قيمة لحظية من Arduino.

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

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

موصى به: