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

اردوينو العمل مع ملفات متعددة (قراءة / كتابة): 4 خطوات
اردوينو العمل مع ملفات متعددة (قراءة / كتابة): 4 خطوات

فيديو: اردوينو العمل مع ملفات متعددة (قراءة / كتابة): 4 خطوات

فيديو: اردوينو العمل مع ملفات متعددة (قراءة / كتابة): 4 خطوات
فيديو: #10 اردوينو: إستعمال المداخل digitalRead (push button) 2024, يوليو
Anonim
اردوينو يعمل مع ملفات متعددة (قراءة / كتابة)
اردوينو يعمل مع ملفات متعددة (قراءة / كتابة)

مرحبا يا شباب

أقدم لكم اليوم مشروع Arduino الذي يعمل مع RTC shield الذي يمكنه تخزين البيانات. المهمة الرئيسية لهذا المشروع هي العمل مع ملفات متعددة مخزنة على بطاقة sc. يحتوي هذا المشروع على كود يعمل مع ثلاثة ملفات مخزنة مباشرة على بطاقة SD مع اردوينو و RTC shield. نظرًا لأن هذا المشروع يعمل مع درع DataLogger ، سيتم أيضًا تخزين هذه البيانات في نفس الوقت تمامًا كما هي على جهاز الكمبيوتر الخاص بك.

هذا المشروع هو نسخة مطورة من مشروعي الأخير. يمكن العثور على هذا المشروع في موقع التعليمات باسم Arduino Data Logger Shield Small Project. إذا كان لديك بعض المشاكل في فهم هذا المشروع ، أقترح عليك أن ترى أسهل أولاً.

الفرق الرئيسي بين هذين المشروعين هو أن هذا المشروع يستخدم 3 ملفات نصية ، وهذه المرة أيضًا نقرأ البيانات من اثنين منهم. نظرًا لأنه يمكننا قراءة البيانات ، يمكننا الحصول على القيمة المتوسطة للرطوبة ودرجة الحرارة المخزنة على بطاقة sd. سيظهر هذا أيضًا على شاشة LCD المتصلة بـ Arduino.

مرة أخرى ، إذا كنت جديدًا في Arduino وهذا هو مشروعك الأول الذي يستخدم DataLogger ، أقترح أن تذهب وتحقق من هذا الرابط https://www.instructables.com/id/Arduino/2015-Logg… وعندما تحصل على كل شيء على ذلك ، تعال إلى هنا واستمتع ببعض المرح. لنبدأ.

الخطوة 1: الأجزاء

القطع
القطع
القطع
القطع
القطع
القطع

في كل مرة أكتب فيها مشاريع مثل هذه ، سأبدأ بكل الأجزاء التي استخدمتها في هذا المشروع. سأقترح أيضًا بعض المستشعرات التي يمكن استخدامها والتي يمكن أن تجعل هذا المشروع مختلفًا قليلاً.

القطع:

  • اردوينو uno rev3
  • درع مسجل بيانات اردوينو
  • بطاقة ذاكرة SD
  • شاشة LCD 1602 خضراء مع I2C (يمكنك استخدام أي شاشة أخرى)
  • DHT22 (يعمل DHT11 جيدًا أيضًا ، لكن دقته ليست هي نفسها dht22)
  • عدد قليل من الكابلات الطائر
  • اللوح
  • بطارية 9 فولت

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

الخطوة 2: توصيل جميع الأجزاء معًا

ربط جميع الأجزاء معًا
ربط جميع الأجزاء معًا

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

في الجزء العلوي من هذه الخطوة ، يمكنك أن ترى تخطيطيًا مصنوعًا من الفريتز. الشيء السهل هو أنك تحتاج إلى توصيل مسجل البيانات الخاص بك في الجزء العلوي من اردوينو الخاص بك. قم بتوصيل بطاقة sd الخاصة بك بمسجل البيانات ، وآخر شيء عليك القيام به هو توصيل مستشعر dht وشاشات الكريستال السائل. نحن نستخدم 5 فولت من اردوينو للجزء + على اللوح ، GND للجزء ، وباتباع هذه الخطوط ، فإنك تتصل أيضًا + خط المستشعر وشاشات الكريستال السائل إلى + خط لوح الخبز. الشيء نفسه ينطبق على - الأجزاء ، يذهبون فقط إلى السطر الذي يلي -. مستشعر Dht متصل بالدبوس 7 هذه المرة. LCD متصلة بـ A4 و A5. سهل ، أليس كذلك؟

شاشة LCD:

  • VCC إلى 5V (+ جزء على اللوح)
  • GND إلى gnd (جزء على اللوح)
  • SDA إلى دبوس A4 التناظري
  • SCL إلى الدبوس التناظري A5

DHT22:

لقد استخدمت dht مع لوحة بها ثلاثة دبابيس لاستخدامها:

  • + إلى 5 فولت
  • - إلى GND
  • إلى الرقم الرقمي 7

الخطوة 3: البرمجة

رمز الوقت هذا أكثر تعقيدًا. تم التعليق على جزء كبير منه حتى تتمكن من فهمه بسهولة.

سأشرح هذا الرمز في أجزاء قليلة قصيرة.

1.أول شيء يجب أن تضعه في اعتبارك أن هذا الرمز سيحتاج إلى عدد قليل من المكتبات المثبتة على جهاز الكمبيوتر الخاص بك. تلك هي: Time (TimeLib) ، Wire ، LiquidCrystal ، DHT ، OneWire ، SPI ، SD ، RTClib. ربما يمكنك استخدام بعض المكتبات الأخرى ولكن هذه المكتبات عملت معي. بعد ذلك نقوم بتحديد كل ما هو مطلوب لهذا المشروع. من السهل تحديد مستشعر DHT ، ما عليك سوى ذكر الدبوس المتصل بالمستشعر ونوع المستشعر. بعد ذلك ، تحتاج إلى تحديد بعض المسامير التي سيتم استخدامها لبطاقة SD ورقم RTC. وبعد ذلك يمكنك رؤية المتغيرات المستخدمة لهذا المشروع.

3. يستخدم المشروع طرقًا قليلة وكلها تعمل مع مستشعر DHT. إذا كنت تعمل في مشروع باستخدام هذا النوع من أجهزة الاستشعار ، فيمكنك استخدامه. هذه الطرق هي getTemperature () ، getMidTemperature () ، getHumidity () ، getMidHumidity () ، readSensorData () ، printLcdTemperature () ، printHumidity () ، printLcdMidTemperature () ، printMidHumidity ().

4. في الإعداد ، هناك القليل من الأشياء اللازمة لإنجازها. بادئ ذي بدء ، تحتاج إلى تحديد الوقت. نظرًا لأننا نستخدم RTC هنا ، فنحن نريد أن نحظى بالوقت المناسب عندما يحفظ Arduino البيانات من المستشعر. سيتم التعليق على هذا الجزء في التعليمات البرمجية. إذا ألغيت التعليق //RTC.adjust (DateTime(_DATE_، _TIME_)) ؛ يمكنك ضبط الوقت على مشروعك. بعد تعيين الوقت المناسب ، يمكنك التعليق على هذا الجزء مرة أخرى ، ويمكنك استخدام اردوينو الخاص بك بدون جهاز كمبيوتر. هذا رائع لأنه يمكنك استخدام مستشعر درجة الحرارة في بعض الغرف الأخرى وتتبع درجة الحرارة دون الحاجة إلى جهاز الكمبيوتر الخاص بك. الجزء الثاني الذي يجب القيام به هو استخدام بطاقة SD الخاصة بك والتي سيتم تخزين البيانات عليها. سيحاول Shield معرفة ما إذا كانت هناك بطاقة وتهيئتها. إذا لم يكن هناك خطأ ، فسيتم عرض رسالة الخطأ في شاشة Serial على Arduino IDE.

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

الجزء الأخير من الإعداد هو تهيئة LCD ، ومستشعر dht.

5. جزء الحلقة هو الجزء الرئيسي من المشروع. يعد العمل مع المستشعر هذه المرة أمرًا سهلاً للغاية لأنه يستخدم طريقة واحدة فقط وهي قراءة القيم التي يحصل عليها المستشعر. جزء LCD هو أيضا سهل جدا. الجزء التالي هو الجزء الذي نحتاج إلى شرحه هنا. هذا المشروع يفعل شيئًا كل دقيقة. دقيقة واحدة يخزن البيانات في datalog.txt. يمكن قراءة هذه البيانات من قبل شخص لا يعرف حتى كيفية برمجة اردوينو. على الجانب الآخر. دقيقة واحدة يحفظ درجة الحرارة على datalogB.txt ودقيقة واحدة يحفظ الرطوبة على datalogC.txt. نحتاج إلى datalogB.txt و dataLogC.txt حتى نتمكن من القراءة من بطاقة الذاكرة الخاصة بنا. لذلك إذا واصلنا قراءة الكود الخاص بنا ، يمكنك أن ترى أيضًا أن هذا الرمز يقرأ القيم المتوسطة لدرجة الحرارة والرطوبة ويخزنها في صف واحد. كنت أرغب في صنع جهاز يأخذ آخر عشرة أرقام فقط في الملف. لذلك يعمل هذا المشروع دائمًا من خلال القيم من البطاقة ، ويحفظ آخر عشرة أرقام. يتم استخدام هذه الأرقام المخزنة في صفوف حتى نتمكن من الحصول على متوسط قيمة درجة الحرارة ومتوسط قيمة الرطوبة. والتي تظهر أيضًا على شاشة LCD الخاصة بنا بعد مرور بعض الوقت

الخطوة 4: استخدام بطاقة SD و Arduino بعد ذلك

باستخدام Arduino و SD Card بعد ذلك
باستخدام Arduino و SD Card بعد ذلك
باستخدام Arduino و SD Card بعد ذلك
باستخدام Arduino و SD Card بعد ذلك
باستخدام Arduino و SD Card بعد ذلك
باستخدام Arduino و SD Card بعد ذلك
باستخدام Arduino و SD Card بعد ذلك
باستخدام Arduino و SD Card بعد ذلك

هنا يمكنك أن ترى ما هو معروض على شاشات الكريستال السائل وكيف يعمل المشروع. كما أضع هنا صورًا لكتالوجات البيانات التي حفظتها. Datalog.txt هو الملف الذي يمكن استخدامه لمعرفة كيفية تخزين الجهاز لكل قيمة. يوجد DatalogB و datalogC حتى تتمكن من رؤية كيف يبدوان. لقد تمت كتابتها على هذا النحو حتى تتمكن من استخدام طريقة التحليل وقراءة البيانات دون مشاكل.

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

شكرا يا رفاق لقراءة هذا المشروع. آمل أن يساعدك. اشكرك.

مع كل التحيات سيباستيان

موصى به: