SIM800L تحكم SMS مقرها

Pin
Send
Share
Send


SIM800L V2.0 GSM / GPRS هي وحدة GSM / GPRS رباعية الموجات متوافقة مع اردوينو. يتم استخدام الوحدة النمطية لتنفيذ وظائف GSM (المكالمات والرسائل النصية القصيرة) و GPRS. ميزة هذه الوحدة هي واجهة TTL بجهد 5 فولت ، والذي يسمح لك بتوصيلها مباشرة بأردوينو أو أي نظام آخر مزود بمصدر طاقة 5 فولت. تتطلب معظم وحدات GSM / GPRS في السوق اتصالات منظم أو تحويل مستوى ، بينما في SIM800L V.2 لا تتطلب GSM / GPRS دوائر تحويل مستوى واجهة إضافية.
هنا مثال على مشروع يستخدم SIM800L V.2 GSM / GPRS. معنى المشروع هو التحكم في التبديل باستخدام وحدة تحكم SMS. يمكنك بسهولة تشغيل وإيقاف معظم الأجهزة المنزلية في المنزل ، مثل اللاما ، المروحة ، وما إلى ذلك.

خصائص وحدة SIM800L V.2 GSM / GPRS


فيما يلي جميع المواصفات الفنية لوحدة SIM800L V.2 GSM / GPRS:
  • TTL واجهة تسلسلية متوافقة مع 3.3V و 5 V ميكروكنترولر متوافق مع اردوينو.
  • وحدة SIM800L لديها واجهة تسلسلية TTL.
  • سد الهوائي
  • دعم الشبكة: أربعة نطاقات 850/900/1800/1900 ميغاهيرتز ، قادرة على إجراء المكالمات والرسائل النصية القصيرة ونقل البيانات مع انخفاض استهلاك البطارية بشكل كبير.
  • واجهة VDD TTL UART ، بحيث يمكنك توصيل وحدة MCU مباشرةً مثل 51MCU أو ARM أو MSP430. VDD المكونات المستخدمة لتتناسب مع الجهد TTL.
  • الموديل: SIMCOM SIM800L
  • العمل الجهد: من 3.7V إلى 5V.
  • الأبعاد: 40 مم × 28 مم × 3 مم
  • GPRS multislot class 12/10
  • GPRS Batch Service Class B
  • يتوافق مع GSM المرحلة 2/2 +
  • الفئة 4 (2 واط @ 850/900 ميغاهيرتز)
  • الفئة 1 (1 وات @ 1800/1900 ميغاهيرتز)

المواد المطلوبة


ستحتاج:


1. SIM800L V.2 GSM / جي بي آر إس وحدة.
2. اردوينو أونو.
3. 4-قناة وحدة التتابع 5 فولت.
4. الأسلاك - لاعبا.
5. امدادات الطاقة 5 فولت.
(روابط نشطة إلى المتجر للشراء)

التجمع والتكوين


بمجرد توصيل جميع المكونات ، قم بإنشاء برنامج ، ثم قم بتنزيله على Arduino الخاص بك. لكن أولاً ، يجب تثبيت مكتبة GPRS ، والتي يمكنك تنزيلها:
gprs.zip 28.02 Kb (التنزيلات: 509)

كود البرنامج لاردوينو


بعد توصيل SIM800L ، ووحدة الترحيل ذات 4 قنوات ، و Arduino بالكمبيوتر ، أدخل الرمز أدناه ثم انتهيت.
#include #include #define TIMEOUT 5000 #define ACTIVE LOW #define OFF HIGH byte Relay = {A0، A1، A2، A3}؛ بايت StatRelay4؛ char buffNumber20؛ char currentLine500 = ""؛ int CurrentLineIndex = 0؛ bool nextLineIsMessage = false؛ String replyNumber = "089510863958"؛ جي بي آر إس جي بي آر إس. إعداد باطل () {لـ (int i = 0 ؛ i >> قراءة الرسائل القصيرة تلقائيًا ") ؛ gprs.preInit () ؛ تأخير (1000) ؛ بينما (0! = gprs.init ()) {تأخير (1000) ؛ مسلسل .print ("init errorrn")؛} // إدارة الرسالة إلى وضع ASCII إذا (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn" ، "OK" ، TIMEOUT)) {ERROR ("ERROR: CNMI") ؛ return؛} // قراءة الرسائل القصيرة الواردة إذا (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1،2،0،0،0rn" ، "OK" ، TIMEOUT)) {خطأ (CNR ") ؛ return؛} int pjg = replyNumber.length () + 1؛ buffNumberpjg؛ replyNumber.toCharArray (buffNumber، pjg)؛ Serial.print ("Send reply to number =>")؛ Serial.println (buffNumber)؛ Serial.println ("تم التهيئة") ؛ Serial.println ("======================================= ========================))} حلقة باطلة () {// تغيير حالة ترحيل ON / OFF لـ (int i = 0؛ i 0) {if (nextLineIsMessage) {Serial.println (lastLine)؛ // ===================================== ============================== >> وظيفة وحدة التحكم في التتابع // وحدة التحكم في التتابع 1 إذا (lastLine.indexOf ("Relay 1 ON ")> = 0) {StatRelay0 = AKTİF. Serial.print ("Reply ==== >>>>")؛ Serial.println ("حالة الترحيل 1 نشطة") ؛ gprs.sendSMS (buffNumber ، "حالة الترحيل 1 نشطة") ؛ } if if (lastLine.indexOf ("Relay 1 OFF")> = 0) {StatRelay0 = MATI؛ Serial.print ("Reply ==== >>>>")؛ Serial.println ("Relay 1 Status Off")؛ gprs.sendSMS (buffNumber، "Relay 1 Status Off")؛ } // Relay 2 Controller if (lastLine.indexOf ("Relay 2 ON")> = 0) {StatRelay1 = AKTIF؛ Serial.print ("Reply ==== >>>>")؛ Serial.println ("حالة الترحيل 2 نشطة") ؛ gprs.sendSMS (buffNumber ، "حالة الترحيل 2 نشطة") ؛ } if if (lastLine.indexOf ("Relay 2 OFF")> = 0) {StatRelay1 = MATI؛ Serial.print ("Reply ==== >>>>")؛ Serial.println ("Relay 2 Status Off")؛ gprs.sendSMS (buffNumber ، "Relay 2 Status Off") ؛ } // Relay 3 Controller if (lastLine.indexOf ("Relay 3 ON")> = 0) {StatRelay2 = AKTIF؛ Serial.print ("Reply ==== >>>>")؛ Serial.println ("حالة الترحيل 3 نشطة") ؛ gprs.sendSMS (buffNumber ، "حالة الترحيل 3 نشطة") ؛ } if if (lastLine.indexOf ("Relay 3 OFF")> = 0) {StatRelay2 = MATI؛ Serial.print ("Reply ==== >>>>")؛ Serial.println ("Relay 3 Status Off")؛ gprs.sendSMS (buffNumber، "Relay 3 Status Off")؛ } // Relay 4 Controller if (lastLine.indexOf ("Relay 4 ON")> = 0) {StatRelay3 = AKTIF؛ Serial.print ("Reply ==== >>>>")؛ Serial.println ("حالة الترحيل 4 نشطة") ؛ gprs.sendSMS (buffNumber ، "حالة الترحيل 1 نشطة") ؛ } if if (lastLine.indexOf ("Relay 4 OFF")> = 0) {StatRelay3 = MATI؛ Serial.print ("Reply ==== >>>>")؛ Serial.println ("Relay 4 Status Off")؛ gprs.sendSMS (buffNumber ، "Relay 4 Status Off") ؛ } nextLineIsMessage = false؛ } // ================================================ =================== >>} // مسح صفيف char للسطر التالي من القراءة لـ (int i = 0 ؛ أنا <sizeof (currentLine) ؛ ++ i) {currentLinei = (char) 0؛ } currentLineIndex = 0؛ } آخر {currentLinecurcurrentLineIndex ++ = lastCharRead؛ }}}

فحص الجهاز


تعمل الأداة عن طريق إرسال رسائل نصية قصيرة إلى SIM800L مع تسلسل محدد من الأحرف. على سبيل المثال ، لتمكين الترحيل 1 ، استخدم الأمر "Relay 1 ON" ، ولإيقاف تشغيله ، استخدم الأمر "Relay 1 OFF". تحتوي بقية المرحلات على نفس الأوامر تقريبًا ، باستثناء الرقم التسلسلي لكل مرحل تريد العمل عليه. بعد إرسال رسالة تلقائيًا ، يرسل جهاز SIM800 استجابة في شكل رسالة حالة لكل بطاقة SIM.

تجميع الفيديو والتكوين والتحقق من الجهاز



المقالة الأصلية باللغة الإنجليزية

Pin
Send
Share
Send

شاهد الفيديو: التحكم بالأجهزة عن طريق الرسائل Device control via sms using Sim800l GSM module and Arduino (قد 2024).