Share
Pin
Tweet
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.
تجميع الفيديو والتكوين والتحقق من الجهاز
المقالة الأصلية باللغة الإنجليزية
Share
Pin
Tweet
Send
Share
Send