جدول المحتويات:
- الخطوة 1: المعدات التي نحتاجها..
- الخطوة 2: توصيلات الأجهزة
- الخطوة 3: الكود
- الخطوة 4: عمل الكود
- الخطوة 5: التطبيقات والميزات
- الخطوة 6: موارد للمضي قدماً
فيديو: توجيه الخريطة من خلال خادم الويب: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
إنترنت الأشياء ، (IoT) هو أحد الموضوعات الشائعة على هذا الكوكب في الوقت الحالي. وهو ينمو بسرعة يومًا بعد يوم مع الإنترنت. تعمل إنترنت الأشياء على تغيير المنازل البسيطة إلى منازل ذكية ، حيث يمكن التحكم في كل شيء بدءًا من الأضواء إلى الأقفال من هاتفك الذكي أو سطح المكتب. هذه هي الرفاهية التي يريد الجميع امتلاكها.
نحن نلعب دائمًا بالأدوات التي حصلنا عليها ونواصل العمل على الانتقال إلى الخطوة التالية من حدودنا. نحاول أن نقدم لعملائنا رؤية لأحدث التقنيات والأفكار. بحيث يمكنك تحويل منزلك إلى منازل ذكية والاستمتاع بطعم الفخامة دون بذل مجهود كبير.
اليوم ، نفكر في العمل على أحد أهم الموضوعات في إنترنت الأشياء - اتجاه الخريطة الرقمية.
سنقوم ببناء خادم ويب يمكننا من خلاله مراقبة تحركات أي جهاز أو شيء (الأمر متروك لك ، من تريد التجسس ؛)). يمكنك دائمًا التفكير في ترقية هذا المشروع إلى المستوى التالي مع بعض التعديلات ولا تنس إخبارنا في التعليقات أدناه.
لنبدأ من.. !!
الخطوة 1: المعدات التي نحتاجها..
1. جهاز استشعار LSM9DS0
المستشعر 3 في 1 المصنوع بواسطة STMicroelectronics ، LSM9DS0 عبارة عن نظام داخل حزمة يضم مستشعر تسريع خطي رقمي ثلاثي الأبعاد ، ومستشعر معدل زاوي رقمي ثلاثي الأبعاد ، ومستشعر مغناطيسي رقمي ثلاثي الأبعاد. يحتوي LSM9DS0 على مقياس تسارع خطي كامل يبلغ ± 2g / ± 4g / ± 6g / ± 8g / ± 16g ، مجال مغناطيسي بالحجم الكامل ± 2 / ± 4 / ± 8 / ± 12 gauss ومعدل زاوي ± 245 / ± 500 / ± 2000 ديسيبل.
2. Adafruit Huzzah ESP8266
المعالج ESP8266 من Espressif عبارة عن متحكم 80 ميجا هرتز مع واجهة WiFi الأمامية كاملة (كعميل ونقطة وصول) ومكدس TCP / IP مع دعم DNS أيضًا. يعد ESP8266 منصة رائعة لتطوير تطبيقات إنترنت الأشياء. يوفر ESP8266 منصة ناضجة لمراقبة التطبيقات والتحكم فيها باستخدام Arduino Wire Language و Arduino IDE.
3. مبرمج USB ESP8266
تم تصميم مهايئ مضيف ESP8266 الخاص به خصيصًا بواسطة Dcube Storefor لنسخة Adafruit Huzzah من ESP8266 ، مما يسمح بواجهة I²C.
4. كابل توصيل I2C
5. كبل USB صغير
يعد مصدر طاقة كبل USB الصغير خيارًا مثاليًا لتشغيل Adafruit Huzzah ESP8266.
الخطوة 2: توصيلات الأجهزة
بشكل عام ، يعد إجراء الاتصالات أسهل جزء في هذا المشروع. اتبع التعليمات والصور ، ولن تواجه أي مشاكل.
بادئ ذي بدء ، خذ Adafruit Huzzah ESP8266 وضع مبرمج USB (مع منفذ I²C المواجه للداخل) عليه. اضغط على مبرمج USB بلطف وقد انتهينا من هذه الخطوة بنفس سهولة الفطيرة (انظر الصورة أعلاه).
توصيل المستشعر و Adafruit Huzzah ESP8266 خذ المستشعر وقم بتوصيل كابل I²C به. للتشغيل السليم لهذا الكابل ، يرجى تذكر أن I²C Output يتصل دائمًا بمدخل I²C. يجب اتباع نفس الشيء بالنسبة لـ Adafruit Huzzah ESP8266 مع تثبيت مبرمج USB فوقه (انظر الصورة أعلاه).
بمساعدة ESP8266 USB Programmer ، من السهل جدًا برمجة ESP. كل ما عليك فعله هو توصيل المستشعر بمبرمج USB وأنت على ما يرام. نحن نفضل استخدام هذا المحول لأنه يجعل توصيل الجهاز أسهل كثيرًا. لا داعي للقلق بشأن لحام دبابيس المرساب الكهروستاتيكي في المستشعر أو قراءة المخططات ودبابيس البيانات. يمكننا استخدام أجهزة استشعار متعددة والعمل عليها في وقت واحد ، ما عليك سوى إنشاء سلسلة. بدون مبرمج USB للتوصيل والتشغيل ، هناك الكثير من مخاطر إجراء اتصال خاطئ. يمكن للأسلاك السيئة أن تقتل شبكة wifi الخاصة بك وكذلك المستشعر الخاص بك.
ملاحظة: يجب أن يتبع السلك البني دائمًا الاتصال الأرضي (GND) بين خرج أحد الأجهزة ومدخل جهاز آخر.
تشغيل الدائرة
قم بتوصيل كبل USB الصغير بمقبس الطاقة الخاص بـ Adafruit Huzzah ESP8266. أشعلها وفويلا ، نحن على ما يرام!
الخطوة 3: الكود
يتوفر رمز ESP الخاص بمستشعر Adafruit Huzzah ESP8266 و LSM9DS0 في مستودع جيثب الخاص بنا.
قبل الانتقال إلى الكود ، تأكد من قراءة التعليمات الواردة في ملف المستند التمهيدي وإعداد Adafruit Huzzah ESP8266 وفقًا لذلك. سيستغرق إعداد ESP 5 دقائق فقط.
الشفرة طويلة لكنها في أبسط شكل يمكنك تخيله ولن تجد صعوبة في فهمه.
لراحتك ، يمكنك نسخ رمز ESP العامل لهذا المستشعر من هنا أيضًا:
// موزعة بترخيص إرادة حرة. // استخدمها بالطريقة التي تريدها ، سواء كانت ربحًا أم مجانيًا ، شريطة أن تتناسب مع تراخيص الأعمال المرتبطة بها. // LSM9DSO // تم تصميم هذا الرمز للعمل مع TCS3414_I2CS I2C Mini Module المتاح من dcubestore.com.
#يشمل
#يشمل
#يشمل
#يشمل
// عنوان LSM9DSO Gyro I2C هو 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO عنوان Accl I2C هو 1E (30) # تعريف Addr_Accl 0x1E
const char * ssid = "your ssid" ؛
const char * password = "كلمة المرور الخاصة بك" ؛ int xGyro و yGyro و zGyro و xAccl و yAccl و zAccl و xMag و yMag و zMag ؛
خادم ESP8266WebServer (80) ؛
معالج باطل ()
{بيانات int غير موقعة [6] ؛
// بدء نقل I2C
Wire.beginTransmission (Addr_Gyro) ؛ // حدد سجل التحكم 1 Wire.write (0x20) ؛ // معدل البيانات = 95 هرتز ، X ، Y ، تمكين المحور Z ، الطاقة على Wire.write (0x0F) ؛ // Stop I2C Transmission Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (Addr_Gyro) ؛ // حدد سجل التحكم 4 Wire.write (0x23) ؛ // نطاق كامل 2000 dps ، تحديث مستمر Wire.write (0x30) ؛ // Stop I2C Transmission Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (Addr_Accl) ؛ // حدد سجل التحكم 1 Wire.write (0x20) ؛ // معدل بيانات التسريع = 100 هرتز ، X ، Y ، تمكين المحور Z ، الطاقة على Wire.write (0x67) ؛ // Stop I2C Transmission على الجهاز Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (Addr_Accl) ؛ // حدد سجل التحكم 2 Wire.write (0x21) ؛ // التحديد الكامل للمقياس +/- 16 جرام Wire.write (0x20) ؛ // Stop I2C Transmission Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (Addr_Accl) ؛ // حدد سجل التحكم 5 Wire.write (0x24) ؛ // دقة عالية مغناطيسية ، معدل بيانات الإخراج = 50 هرتز كتابة الأسلاك (0x70) ؛ // Stop I2C Transmission Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (Addr_Accl) ؛ // حدد سجل التحكم 6 Wire.write (0x25) ؛ // مغناطيسي كامل النطاق +/- 12 جاوس سلك كتابة (0x60) ؛ // Stop I2C Transmission Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (Addr_Accl) ؛ // حدد سجل التحكم 7 Wire.write (0x26) ؛ // الوضع العادي ، وضع التحويل المغناطيسي المستمر Wire.write (0x00) ؛ // Stop I2C Transmission Wire.endTransmission () ؛ تأخير (300) ؛
لـ (int i = 0؛ i <6؛ i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Gyro) ؛ // حدد سجل البيانات Wire.write ((40 + i)) ؛ // Stop I2C Transmission Wire.endTransmission () ؛
// طلب 1 بايت من البيانات
Wire.requestFrom (Addr_Gyro، 1) ؛
// قراءة 6 بايت من البيانات
// xGyro lsb، xGyro msb، yGyro lsb، yGyro msb، zGyro lsb، zGyro msb if (Wire.available () == 1) {data = Wire.read ()؛ }}
// تحويل البيانات
int xGyro = ((data [1] * 256) + data [0]) ؛ int yGyro = ((data [3] * 256) + data [2]) ؛ int zGyro = ((data [5] * 256) + data [4]) ؛
لـ (int i = 0؛ i <6؛ i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl) ؛ // حدد سجل البيانات Wire.write ((40 + i)) ؛ // Stop I2C Transmission Wire.endTransmission () ؛
// طلب 1 بايت من البيانات
Wire.requestFrom (Addr_Accl، 1) ؛
// قراءة 6 بايت من البيانات
// xAccl lsb، xAccl msb، yAccl lsb، yAccl msb // zAccl lsb، zAccl msb if (Wire.available () == 1) {data = Wire.read ()؛ }}
// تحويل البيانات
int xAccl = ((data [1] * 256) + data [0]) ؛ int yAccl = ((data [3] * 256) + data [2]) ؛ int zAccl = ((data [5] * 256) + data [4]) ؛
لـ (int i = 0؛ i <6؛ i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl) ؛ // حدد سجل البيانات Wire.write ((8 + i)) ؛ // Stop I2C Transmission Wire.endTransmission () ؛
// طلب 1 بايت من البيانات
Wire.requestFrom (Addr_Accl، 1) ؛
// قراءة 6 بايت من البيانات
// xMag lsb، xMag msb، yMag lsb، yMag msb // zMag lsb، zMag msb if (Wire.available () == 1) {data = Wire.read ()؛ }}
// تحويل البيانات
int xMag = ((data [1] * 256) + data [0]) ؛ int yMag = ((data [3] * 256) + data [2]) ؛ int zMag = ((data [5] * 256) + data [4]) ؛
// إخراج البيانات إلى الشاشة التسلسلية
Serial.print ("المحور السيني للدوران:") ؛ Serial.println (xGyro) ؛ Serial.print ("المحور الصادي للدوران:") ؛ Serial.println (yGyro) ؛ Serial.print ("Z-Axis of rotation:") ؛ Serial.println (zGyro) ؛ Serial.print ("تسريع في المحور X:") ؛ Serial.println (xAccl) ؛ Serial.print ("تسريع في المحور ص:") ؛ Serial.println (yAccl) ؛ Serial.print ("تسريع في المحور Z:") ؛ Serial.println (zAccl) ؛ Serial.print ("المجال المغناطيسي في المحور X:") ؛ Serial.println (xMag) ؛ Serial.print ("المجال المغناطيسي في المحور Y:") ؛ Serial.println (yMag) ؛ Serial.print ("ملف مغناطيسي في المحور Z:") ؛ Serial.println (zMag) ؛
// إخراج البيانات إلى خادم الويب
server.sendContent ("
متجر DCUBE
www.dcubestore.com
"" LSM9DS0 Sensor I2C Mini Module
);
server.sendContent ("
X-Axis of rotation = "+ String (xGyro))؛ server.sendContent ("
Y- محور الدوران = "+ سلسلة (yGyro)) ؛ server.sendContent ("
Z-Axis of rotation = "+ String (zGyro))؛ server.sendContent ("
التسريع في X-Axis = "+ String (xAccl)) ؛ server.sendContent ("
التسريع في المحور ص = "+ سلسلة (yAccl)) ؛ server.sendContent ("
التسريع في المحور Z = "+ سلسلة (zAccl)) ؛ server.sendContent ("
حفظ مغناطيسي في X-Axis = "+ String (xMag)) ؛ server.sendContent ("
حفظ مغناطيسي في المحور ص = "+ سلسلة (yMag)) ؛ server.sendContent ("
حقل مغناطيسي في المحور Z = "+ سلسلة (zMag)) ؛ تأخير (1000) ؛}
الإعداد باطل()
{// تهيئة اتصال I2C كـ MASTER Wire.begin (2 ، 14) ؛ // تهيئة الاتصال التسلسلي ، ضبط معدل البث بالباود = 115200 Serial.begin (115200) ؛
// الاتصال بشبكة WiFi
WiFi.begin (SSID ، كلمة المرور) ؛
// انتظر الاتصال
while (WiFi.status ()! = WL_CONNECTED) {delay (500) ؛ Serial.print (".") ؛ } Serial.println ("") ؛ Serial.print ("متصل بـ") ؛ Serial.println (ssid) ؛
// احصل على عنوان IP الخاص بـ ESP8266
Serial.print ("عنوان IP:") ؛ Serial.println (WiFi.localIP ()) ؛
// ابدأ الخادم
server.on ("/"، handleroot)؛ server.begin () ، Serial.println ("بدأ خادم HTTP") ؛ }
حلقة فارغة()
{server.handleClient () ، }
الخطوة 4: عمل الكود
الآن ، قم بتنزيل (أو git pull) الكود وافتحه في Arduino IDE.
قم بتجميع وتحميل الكود وشاهد الإخراج على Serial Monitor.
ملاحظة: قبل التحميل ، تأكد من إدخال شبكة SSID وكلمة المرور في الرمز.
انسخ عنوان IP الخاص بـ ESP8266 من Serial Monitor والصقه في متصفح الويب الخاص بك. سترى صفحة ويب بها محور الدوران والتسارع وقراءة المجال المغناطيسي في 3 محاور.
يظهر إخراج المستشعر على Serial Monitor و Web Server في الصورة أعلاه.
الخطوة 5: التطبيقات والميزات
LSM9DS0 عبارة عن نظام داخل حزمة يضم مستشعر تسريع خطي رقمي ثلاثي الأبعاد ، ومستشعر معدل زاوي رقمي ثلاثي الأبعاد ، ومستشعر مغناطيسي رقمي ثلاثي الأبعاد. من خلال قياس هذه الخصائص الثلاث ، يمكنك اكتساب قدر كبير من المعرفة حول حركة الكائن. قياس قوة واتجاه المجال المغناطيسي للأرض باستخدام مقياس المغناطيسية ، يمكنك تقريب اتجاهك. يمكن لمقياس التسارع في هاتفك قياس اتجاه قوة الجاذبية وتقدير الاتجاه (عمودي ، أفقي ، مسطح ، إلخ). يمكن للطائرات المروحية الرباعية المزودة بجيروسكوبات مدمجة أن تبحث عن لفات أو درجات مفاجئة. يمكننا استخدام هذا في نظام تحديد المواقع العالمي (GPS).
تتضمن بعض التطبيقات الأخرى التنقل الداخلي وواجهات المستخدم الذكية والتعرف المتقدم على الإيماءات والألعاب وأجهزة إدخال الواقع الافتراضي وما إلى ذلك.
بمساعدة ESP8266 ، يمكننا زيادة سعتها إلى طول أكبر. يمكننا التحكم في أجهزتنا ومراقبة الأداء من أجهزة الكمبيوتر المكتبية والأجهزة المحمولة لدينا. يمكننا تخزين البيانات وإدارتها عبر الإنترنت ودراستها في أي وقت لإجراء تعديلات. تشتمل المزيد من التطبيقات على أتمتة المنزل ، والشبكة الشبكية ، والتحكم اللاسلكي الصناعي ، وشاشات الأطفال ، وشبكات الاستشعار ، والإلكترونيات القابلة للارتداء ، وأجهزة Wi-Fi التي تدرك الموقع ، ومنارات نظام موضع Wi-Fi.
الخطوة 6: موارد للمضي قدماً
لمزيد من المعلومات حول LSM9DS0 و ESP8266 ، تحقق من الروابط أدناه:
- LSM9DS0 ورقة بيانات جهاز الاستشعار
- LSM9DS0 مخطط الأسلاك
- ورقة البيانات ESP8266
موصى به:
البرنامج التعليمي: كيفية استخدام ESP32-CAM في خادم الويب لدفق الفيديو: 3 خطوات
البرنامج التعليمي: كيفية استخدام ESP32-CAM في خادم الويب لدفق الفيديو: الوصف: ESP32-CAM هو ESP32 Wireless IoT Vision Development Board في شكل صغير جدًا ، مصمم للاستخدام في العديد من مشاريع إنترنت الأشياء ، مثل الأجهزة الذكية المنزلية والصناعية تحكم لاسلكي ، مراقبة لاسلكية ، تحديد QR اللاسلكي
ESP8266 مع برنامج Thingspeak و DHT11 التعليمي - خادم الويب: 7 خطوات
ESP8266 مع برنامج Thingspeak و DHT11 التعليمي | خادم الويب: مرحبًا ، ما الأمر يا رفاق! Akarsh هنا من CETech. هذا المشروع الخاص بي هو أكثر من منحنى تعليمي لفهم منصة الكلام إلى جانب فكرة MQTT ثم استخدام Thingspeak مع ESP8266. في نهاية المقال ، سنشارك
خادم الويب ESP8266 Weather Monitor Web (بدون Arduino): 4 خطوات
خادم الويب ESP8266 Weather Monitor Web (بدون Arduino): أصبح "إنترنت الأشياء" (IoT) موضوعًا متزايدًا للمحادثة يومًا بعد يوم. إنه مفهوم لا يمتلك فقط القدرة على التأثير في طريقة عيشنا ولكن أيضًا على طريقة عملنا. من الآلات الصناعية إلى الأجهزة القابلة للارتداء - باستخدام
ESP 8266 Nodemcu Ws 2812 Neopixel Based MOOD مصباح يتحكم فيه خادم الويب المحلي: 6 خطوات
ESP 8266 Nodemcu Ws 2812 Neopixel Based MOOD مصباح يتحكم فيه خادم الويب المحلي: ESP 8266 Nodemcu Ws 2812 Neopixel Based MOOD مصباح متحكم فيه باستخدام خادم الويب
مؤشر LED يتم التحكم فيه عبر الإنترنت باستخدام خادم الويب المستند إلى ESP32: 10 خطوات
LED يتم التحكم فيه عبر الإنترنت باستخدام خادم الويب المستند إلى ESP32: نظرة عامة على المشروع في هذا المثال ، سنكتشف كيفية إنشاء خادم ويب يستند إلى ESP32 للتحكم في حالة LED ، والتي يمكن الوصول إليها من أي مكان في العالم. ستحتاج إلى كمبيوتر Mac لهذا المشروع ، ولكن يمكنك تشغيل هذا البرنامج حتى على i