جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
مرحبًا بالجميع ، هذا هو أول برنامج Instructable لي على الإطلاق ، آمل أن أساعد مجتمع المصنّعين كما استفدت منه.
غالبًا ما نستخدم المستشعرات في مشاريعنا ولكن إيجاد طريقة لجمع البيانات وتخزينها ونقلها الهواتف أو الأجهزة الأخرى على الفور واللاسلكية لم تكن عملية جاهزة. سيرشدك هذا Instructable خلال
- الحصول على البيانات من جهاز الاستشعار (DHT 11) - مستشعر درجة الحرارة والرطوبة.
- تخزين البيانات المكتسبة في بطاقة SD مع وحدة بطاقة SD.
- نقل البيانات لاسلكيًا باستخدام Bluetooth إلى تطبيق Android مخصص.
- تخزين قيم المستشعر المستلمة كملف نصي (ملف.txt).
الخطوة 1: قائمة المكونات
دعونا ننزل لجمع القوات للقيام بهذا المشروع الرائع.
- Arduino Uno (أي اردوينو آخر سيكون مناسبًا أيضًا)
- وحدة بطاقة SD الصغيرة.
- وحدة بطاقة SD (الوحدة التي أستخدمها هي 8 جيجابايت ، يُنصح باستخدام> = 32 جيجابايت)
- HC05 - وحدة بلوتوث
- DHT11 (مستشعر درجة الحرارة والرطوبة)
- حفنة من لاعبا.
- هاتف أندرويد
الخطوة الثانية: التوصيلات:
تم الانتهاء من تجميع المكونات وتوصيلها في منتصف الطريق للمشروع. المنتجات المذكورة متاحة بسهولة في معظم متاجر البيع بالتجزئة الإلكترونية ومواقع الإنترنت مثل Amazon.
اتصال اردوينو - HC05 (بلوتوث):
- +5 فولت - Vcc
- Gnd - Gnd
- دبوس 0 - Tx
- دبوس 1 - Rx
اردوينو - اتصال وحدة SDcard:
- +5 فولت - Vcc
- Gnd - Gnd
- دبوس 11 - MOSI (Master Out Slave In)
- دبوس 12 - MISO (Master In Slave Out)
- دبوس 13 - SCk (متزامن على مدار الساعة)
- دبوس 4 - CS (تحديد رقاقة)
اتصال اردوينو - HC05 (بلوتوث):
- +5 فولت - Vcc
- Gnd - Gnd
- دبوس A0 - إشارة
الخطوة 3: الإجراء
قم بتوصيل جميع الأجزاء كما هو مذكور في الخطوة السابقة ، وبهذا يمكننا كتابة الكود في Arduino Ide للوصول إلى هدفنا.
الجزء الثاني من مشروعنا هو الحصول على تطبيق Android يستقبل قيم المستشعر ، ويعرض القيم ويخزنها في ملف في الهاتف المحمول. لقد استخدمت Thunkable لإنشاء تطبيق Android وقدمت أيضًا ملف apk و aia له.
الخطوة 4: كود اردوينو:
تم تقديم وشرح كود Arduino أدناه.
كود اردوينو هو في الغالب شرح ذاتي مع مكتبة بطاقة SD ومكتبة DHT11. يستخدم البلوتوث جهاز تسلسلي وهو pin0 و pin1 من arduino وبالتالي يحدث نقل البلوتوث مع وظائف Serial print () التي تستخدم بروتوكول I2C وتستخدم وحدة بطاقة SD بروتوكول SPI للتواصل معها.
/*
* بطاقة SD متصلة بناقل SPI كما يلي:
** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 (لـ MKRZero SD: SDCARD_SS_PIN) * * توصيل وحدة HC 05: ** TX - pin 0 (افتراضي) [يمكن أن يكون تم تغييره إذا تم استخدام Softwareserial] ** RX - pin 1 (افتراضي) [يمكن تغييره إذا تم استخدام Softwareserial]
*/
#يشمل
# تضمين # تضمين
ملف myFile ؛
dht DHT ؛ #define DHT11_PIN A0
الإعداد باطل() {
// افتح الاتصالات التسلسلية وانتظر حتى يفتح المنفذ: Serial.begin (9600) ؛ Serial.println ("النوع ، / t الحالة ، / t الرطوبة (٪) ، / t درجة الحرارة (C)") ؛ بينما (! المسلسل) {؛ // انتظر حتى يتم توصيل المنفذ التسلسلي. مطلوب لمنفذ USB أصلي فقط} DHTAcq () ؛ sdCardWrite ("test3.txt") ؛ sdCardRead ("test3.txt") ؛
}
DHTAcq باطل ()
{Serial.println ("DHT11، / t") ؛ int chk = DHT.read11 (DHT11_PIN) ، Serial.print (DHT.humidity، 1) ؛ Serial.print ("، / t")؛ Serial.print (DHT.temperature، 1) ؛ تأخير (2000) ؛ }
sdCardWrite باطلة (String fileNameStr)
{Serial.println ("تهيئة بطاقة SD") ؛ if (! SD.begin (4)) {Serial.println ("فشلت التهيئة.")؛ إرجاع؛ } Serial.println ("تم التهيئة!")؛ // افتح الملف. لاحظ أنه يمكن فتح ملف واحد فقط في كل مرة ، // لذلك عليك إغلاق هذا الملف قبل فتح ملف آخر. myFile = SD.open (fileNameStr، FILE_WRITE) ، // إذا تم فتح الملف على ما يرام ، فاكتب إليه: if (myFile) {myFile.println ("DHT11، / t")؛ int chk = DHT.read11 (DHT11_PIN) ، myFile.print (DHT.humidity، 1) ؛ myFile.print ("، / t")؛ myFile.print (DHT.temperature، 1) ؛ myFile.close () ، Serial.println ("تم!") ؛ تأخير (200) ؛ /*Serial.print ("الكتابة على test.txt …")؛ myFile.println ("اختبار 1 ، 2 ، 3.") ؛ // أغلق الملف: myFile.close () ؛ Serial.println ("تم") ؛ * /} else {// إذا لم يفتح الملف ، اطبع خطأ: Serial.println ("خطأ في فتح test.txt") ؛ }}
sdCardRead باطل (String fileName)
{// أعد فتح الملف للقراءة: myFile = SD.open (fileName) ؛ if (myFile) {Serial.println ("test.txt:") ؛ // اقرأ من الملف حتى لا يوجد شيء آخر فيه: while (myFile.available ()) {Serial.write (myFile.read ())؛ } // أغلق الملف: myFile.close () ؛ } else {// إذا لم يتم فتح الملف ، اطبع خطأ: Serial.println ("خطأ في فتح test.txt")؛ }}
حلقة فارغة() {
// لا شيء يحدث بعد الإعداد //Serial.println("test 1.. 2.. 3 ") ؛ // تأخير (1000) ؛ }
الخطوة 5: تطبيق Android:
تم إنشاء تطبيق Android باستخدام تطبيق Thunkable مع برمجة السحب والإفلات. سيتم تسجيل البيانات على الملصق الموجود على الشاشة وبمجرد الضغط على زر تخزين البيانات على الموقع AppInventor / Data مع اسم الملف الذي تم إعطاؤه الرمز.
يمكن توسيع المشروع ليشمل التخزين دون اتصال لأي بيانات المستشعر التي نريدها عن طريق استبدال وحدات الاستشعار المطلوبة ويمكن توسيع التطبيق لاسترداد البيانات من التخزين ومعالجتها لتناسب التطبيق.