جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53
HMC5883 عبارة عن بوصلة رقمية مصممة للاستشعار المغناطيسي للمجال المنخفض. يحتوي هذا الجهاز على نطاق مجال مغناطيسي عريض +/- 8 Oe ومعدل إخراج يبلغ 160 هرتز. يشتمل مستشعر HMC5883 على برامج تشغيل أوتوماتيكية لشريط إزالة المغنطة وإلغاء الإزاحة و 12 بت ADC الذي يتيح دقة توجيه بوصلة من 1 إلى 2 درجة. تم تصميم جميع وحدات I²C Mini Modules لتعمل عند 5VDC.
في هذا البرنامج التعليمي ، سنشرح العمل التفصيلي لـ HMC5883 باستخدام فوتون الجسيم. الجسيمات فوتون هي لوحة تسهل إرسال واستقبال البيانات من موقع الويب ، والتي تدعم الميزة الأساسية لإنترنت الأشياء (IoT).
الخطوة 1: الأجهزة المطلوبة:
تشمل المواد التي نحتاجها لتحقيق هدفنا مكونات الأجهزة التالية:
1. HMC5883
2. جسيم الفوتون
3. كابل I2C
4. I2C Shield للفوتون الجسيمي
الخطوة 2: ربط الأجهزة:
يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر وفوتون الجسيمات. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:
سيعمل HMC5883 على I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.
خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك. كل ما تحتاجه هو أربعة أسلاك!
مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.
هذه الوصلات موضحة في الصور أعلاه.
الخطوة 3: رمز لقياس شدة المجال المغناطيسي:
لنبدأ الآن برمز الجسيمات.
أثناء استخدام وحدة المستشعر مع Arduino ، نقوم بتضمين مكتبة application.h و spark_wiring_i2c.h. تحتوي مكتبة "application.h" و spark_wiring_i2c.h على الوظائف التي تسهل اتصال i2c بين المستشعر والجسيم.
يتم توفير رمز الجسيمات بالكامل أدناه لراحة المستخدم:
#يشمل
#يشمل
// HMC5883 عنوان I2C هو 0x1E (30)
#define Addr 0x1E
int xMag = 0 ، yMag = 0 ، zMag = 0 ؛
الإعداد باطل()
{
// تعيين متغير
Particle.variable ("i2cdevice"، "HMC5883") ؛
Particle.variable ("xMag" ، xMag) ؛
Particle.variable ("yMag" ، yMag) ؛
Particle.variable ("zMag" ، zMag) ؛
// تهيئة اتصال I2C باعتباره MASTER
Wire.begin () ؛
// تهيئة الاتصال التسلسلي ، اضبط معدل الباود = 9600
Serial.begin (9600) ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد تكوين السجل أ
Wire.write (0x00) ؛
// ضبط تكوين القياس العادي ، معدل إخراج البيانات = 0.75 هرتز
Wire.write (0x60) ؛
// إيقاف ناقل الحركة I2C
Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد وضع التسجيل
Wire.write (0x02) ؛
// ضبط القياس المستمر
Wire.write (0x00) ؛
// إيقاف ناقل الحركة I2C
Wire.endTransmission () ؛
تأخير (300) ؛
}
حلقة فارغة()
{
بيانات int غير الموقعة [6] ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل البيانات
Wire.write (0x03) ؛
// إيقاف ناقل الحركة I2C
Wire.endTransmission () ؛
// طلب 6 بايت من البيانات
Wire.request From (Addr، 6) ؛
// قراءة 6 بايت من البيانات
// xMag msb و xMag lsb و zMag msb و zMag lsb و yMag msb و yMag lsb
إذا (Wire.available () == 6)
{
البيانات [0] = Wire.read () ،
البيانات [1] = Wire.read () ،
البيانات [2] = Wire.read () ؛
البيانات [3] = Wire.read () ؛
البيانات [4] = Wire.read () ؛
البيانات [5] = Wire.read () ؛
}
تأخير (300) ؛
// تحويل البيانات
xMag = ((البيانات [0] * 256) + البيانات [1]) ؛
إذا (xMag> 32767)
{
xMag - = 65536 ؛
}
zMag = ((data [2] * 256) + data [3]) ؛
إذا (zMag> 32767)
{
zMag - = 65536 ؛
}
yMag = ((البيانات [4] * 256) + البيانات [5]) ؛
إذا (yMag> 32767)
{
yMag - = 65536 ؛
}
// إخراج البيانات إلى لوحة القيادة
Particle.publish ("المجال المغناطيسي في المحور السيني:" ، سلسلة (xMag)) ؛
تأخير (1000) ؛
Particle.publish ("المجال المغناطيسي في المحور Y:" ، سلسلة (yMag)) ؛
تأخير (1000) ؛
Particle.publish ("المجال المغناطيسي في المحور Z:" ، سلسلة (zMag)) ؛
تأخير (1000) ؛
}
تنشئ الدالة Particle.variable () المتغيرات لتخزين إخراج المستشعر وتعرض وظيفة Particle.publish () الإخراج على لوحة القيادة بالموقع.
يظهر خرج المستشعر في الصورة أعلاه للرجوع إليها.
الخطوة 4: التطبيقات:
HMC5883 عبارة عن وحدة متعددة الرقاقات مثبتة على السطح مصممة للاستشعار المغناطيسي للمجال المنخفض مع واجهة رقمية لتطبيقات مثل البوصلة منخفضة التكلفة والقياس المغناطيسي. تتيح الدقة والدقة العالية المستوى من درجة إلى درجتين تطبيقات الملاحة المشاة وتطبيقات LBS.
موصى به:
قياس المجال المغناطيسي باستخدام HMC5883 و Raspberry Pi: 4 خطوات
قياس المجال المغناطيسي باستخدام HMC5883 و Raspberry Pi: HMC5883 عبارة عن بوصلة رقمية مصممة للاستشعار المغناطيسي للمجال المنخفض. يحتوي هذا الجهاز على نطاق مجال مغناطيسي عريض +/- 8 Oe ومعدل إخراج يبلغ 160 هرتز. يشتمل مستشعر HMC5883 على برامج تشغيل أوتوماتيكية لأحزمة إزالة المغنطة وإلغاء الإزاحة و
قياس المجال المغناطيسي باستخدام HMC5883 و Arduino Nano: 4 خطوات
قياس المجال المغناطيسي باستخدام HMC5883 و Arduino Nano: HMC5883 عبارة عن بوصلة رقمية مصممة للاستشعار المغناطيسي للمجال المنخفض. يحتوي هذا الجهاز على نطاق مجال مغناطيسي عريض +/- 8 Oe ومعدل إخراج يبلغ 160 هرتز. يشتمل مستشعر HMC5883 على برامج تشغيل أوتوماتيكية لأحزمة إزالة المغنطة وإلغاء الإزاحة و
قياس الرطوبة باستخدام HYT939 والفوتون الجزيئي: 4 خطوات
قياس الرطوبة باستخدام HYT939 وفوتون الجسيمات: HYT939 هو مستشعر رطوبة رقمي يعمل على بروتوكول اتصال I2C. الرطوبة هي عامل محوري عندما يتعلق الأمر بالنظم الطبية والمختبرات ، لذلك من أجل تحقيق هذه الأهداف ، حاولنا ربط HYT939 مع التوت باي. أنا
قياس درجة الحرارة باستخدام MCP9803 والفوتون الجزيئي: 4 خطوات
قياس درجة الحرارة باستخدام MCP9803 والفوتون الجسيمي: MCP9803 عبارة عن مستشعر درجة حرارة عالي الدقة بسلكين. وهي مُجسَّدة بسجلات قابلة للبرمجة بواسطة المستخدم تسهل تطبيقات استشعار درجة الحرارة. هذا المستشعر مناسب لنظام مراقبة درجة الحرارة متعدد المناطق المتطور للغاية
قياس درجة الحرارة باستخدام TMP112 والفوتون الجزيئي: 4 خطوات
قياس درجة الحرارة باستخدام TMP112 والفوتون الجسيمي: TMP112 عالي الدقة ، منخفض الطاقة ، وحدة استشعار درجة الحرارة الرقمية I2C MINI. يعتبر TMP112 مثاليًا لقياس درجة الحرارة الممتدة. يوفر هذا الجهاز دقة تبلغ ± 0.5 درجة مئوية دون الحاجة إلى المعايرة أو تكييف إشارة المكون الخارجي