توصيل الميكروفون بوحدة GSM. إنذار GSM للميزانية مع أدمغة Arduino

منذ وقت ليس ببعيد، عرض علي أحد الأصدقاء وظيفة تتعلق بإنشاء برامج ثابتة لوحدة تحكم دقيقة كان من المفترض أن تتواصل مع الخادم باستخدام وحدة SIM900D GSM. لم يكن لدي أي علاقة ببرمجة وحدات التحكم الدقيقة من قبل، وآخر مرة قمت فيها بالبرمجة بلغة C كانت خلال أيام دراستي، لكن الفضول سيطر وبدأت العمل. تتوفر الوثائق الخاصة بهذا الجهاز على الإنترنت، ولكن لم يكن من الممكن العثور على أمثلة جيدة للعمل مع TCP/IP في التعليمات البرمجية. لم يتبق شيء للقيام به سوى تحميل الوثائق، وتخزين السجائر والشاي، والبدء في المناورة بين أشعل النار. وكان هناك الكثير من المكابس. في الواقع، لهذا السبب كتبت هذا المقال - لتسهيل الأمر على الآخرين.

ما كان مطلوبا

كان من الضروري كتابة التعليمات البرمجية التي يمكنها تهيئة وحدة GSM، وإنشاء اتصال بالخادم، واستقبال وإرسال البيانات التعسفية، والتحقق من حالة الاتصال والعمل دون فشل. وأيضًا أن تكون مضغوطة بدرجة كافية لتناسب الذاكرة المحدودة لوحدة التحكم الدقيقة وتترك مساحة للوظيفة الرئيسية والمزيد في الاحتياطي.

ماذا حدث في النهاية

وكانت النتيجة رمز C الذي يمكنه القيام بكل ما هو مطلوب. نظرًا لمتطلبات الضغط، كان علينا تحليل الإجابات وإنشاء سلاسل باستخدام الكود الخاص بنا، وهو أمر محرج حتى أن نعرضه على الأشخاص الشرفاء. ولذلك أنصح الجميع باستخدام التعبيرات العادية لهذه الأغراض. سأقوم أيضًا بنقل الكود الخاص بي إلى محرك تعبير عادي خفيف الوزن، ولكن بعد إنشاء برنامج ثابت يعمل بكامل طاقته.

يتطلب الكود وظائف/وحدات ماكرو للعمل مع المنفذ التسلسلي، بالإضافة إلى وجود وظائف memset وmemcpy. لذلك يمكن نقلها إلى منصة أخرى بسهولة نسبية، دون لمس مجموعة من المكتبات على طول الطريق.

وما الذي تبدو عليه؟

تم إجراء البرمجة والاختبار تحت نظام التشغيل Windows 7. وأصبح الكود الناتج هو المادة الرئيسية لهذه المقالة. لن أعطي الكود بالكامل وأعلق عليه، ولكن بدلاً من ذلك سأعرض خوارزمية الإعداد والعمل مع وحدة GSM.

الميزات التي يتطلبها الكود:

  • uint16_t init_serial_port(char *port_name) تقوم هذه الوظيفة بتكوين المنفذ التسلسلي المحدد. تحت ويندوز.
  • uint16_t puts_serial(uint8_t *buffer, uint16_t size) وهذا يكتب سلسلة بايت إلى هذا المنفذ.
  • get_serial(uint8_t *buffer, uint16_t size) وبالتالي يقرأ سلسلة بايت من المنفذ التسلسلي.
الوظائف التي يوفرها الكود:
  • init_gprs() & stop_gprs() تتم تهيئة وحدة GSM وتعطيلها وفقًا لذلك.
  • uint16_t Connect_gprs(uint8_t Index, uint8_t mode, char *address, char *port) ينشئ اتصالاً بالخادم. تجدر الإشارة إلى أن الوحدة يمكن أن تعمل مع بروتوكولي TCP وUDP كعميل وكعميل. يتم دعم ما يصل إلى 8 اتصالات متزامنة كحد أقصى.
  • uint16_t Close_gprs(uint8_t Index) يغلق الاتصال المحدد.
  • uint16_t send_gprs(uint8_t Index, uint8_t *buffer, uint16_t size) يرسل رسالة عبر الاتصال المحدد.
  • uint16_t recv_gprs(uint8_t Index, uint8_t *buffer, uint16_t size) تلقي رسالة. وظيفة غير قابلة للحظر، مما يعني أنها لن تنتظر ظهور البيانات في الدفق، ولكنها ستعيد التحكم في حالة عدم وجود شيء لتلقيه. تجدر الإشارة إلى أن تنفيذ هذا السلوك أسهل من الحظر.

كيفية العمل مع المنفذ التسلسلي

انها بسيطة جدا. توجد وحدات ماكرو لوحدة التحكم الدقيقة المستهدفة لإرسال/استقبال البيانات عبر USART، ولكن نظرًا لأنه من الأسهل تصحيح أخطاء هذا الرمز من كمبيوتر سطح المكتب، فقد تم تزويدي بحزمة من محول USB<->وحدة USART وGSM. كل ما تبقى هو تعلم كيفية العمل مع المنفذ التسلسلي لنظام التشغيل Windows. اتضح أن الأمر بسيط. باختصار، يتم تمثيل المنفذ التسلسلي في نظام التشغيل كملف عادي، ويتم نقل المعلومات باستخدام وظائف ReadFile وWriteFile. تحتاج فقط إلى تعيين بعض المعلمات باستخدام الدالتين SetCommTimeouts وSetCommState.

هذا ما تبدو عليه وظيفة تهيئة المنفذ:
uint16_t init_serial_port(char *port_name) ( مهلات COMMTIMEOUTS؛ معلمات DCB؛ نتيجة int؛ serial_port_handle = CreateFile(port_name, // "\\\\.\\COMx" GENERIC_READ | GENERIC_WRITE, 0, // قيم المعلمات اللاحقة يتم إصلاحها عند العمل مع المنفذ NULL، OPEN_EXISTING، 0، NULL)؛ if (serial_port_handle == INVALID_HANDLE_VALUE) ( printf("خطأ في فتح منفذ تسلسلي!\n"); return 1; ) // الحد الأقصى للوقت بين قراءة بايتين في مهلة الصف.ReadIntervalTimeout = 100؛ // القيمة التالية مضروبة في عدد الأحرف المقروءة من مهلات المنفذ.ReadTotalTimeoutMultiplier = 0؛ // وإضافة إلى هذه القيمة، الحد الأقصى للوقت لإكمال // يتم الحصول على العملية بأكملها timeouts.ReadTotalTimeoutConstant = 1000; // القيمة هي نفس المعلمتين السابقتين، ولكن يتم أخذ مهلة الكتابة في الاعتبار timeouts.WriteTotalTimeoutMultiplier = 0; timeouts.WriteTotalTimeoutConstant = 1000; result = SetCommTimeouts(serial_port_handle, &timeouts); if ( النتيجة == 0) ( printf("خطأ في تحديد مهلة المنفذ التسلسلي!\ n"); Close_serial_port(); العودة 1؛ ) // تحتوي معلمات المنفذ على أبسط الإعدادات - لا يوجد تكافؤ، // لا يوجد تحكم في التدفق، بتة توقف واحدة. memset(¶meters,0,sizeof(parameters)); بارامترات.DCBlength = sizeof(DCB); GetCommState(serial_port_handle, &parameters); parameters.BaudRate = (DWORD)BAUD_RATE; المعلمات.ByteSize = 8؛ بارامترات.التكافؤ = نوباريتي؛ بارامترات.StopBits = ONESTOPBIT; بارامترات.fAbortOnError = TRUE؛ بارامترات.fDtrControl = DTR_CONTROL_DISABLE; بارامترات.fRtsControl = RTS_CONTROL_DISABLE; بارامترات.fBinary = TRUE؛ بارامترات.fParity = FALSE؛ بارامترات.fOutX = خطأ؛ بارامترات.fInX = خطأ؛ المعلمات.XonChar = (uint8_t)0x00; بارامترات.XoffChar = (uint8_t)0xff; بارامترات.fErrorChar = FALSE؛ بارامترات.fNull = FALSE؛ بارامترات.fOutxCtsFlow = FALSE؛ بارامترات.fOutxDsrFlow = FALSE؛ المعلمات.XonLim = 128؛ المعلمات.XoffLim = 128؛ result = SetCommState(serial_port_handle, &parameters); if (result == 0) ( printf("خطأ في تعيين معلمات المنفذ التسلسلي!\n"); Close_serial_port(); return 1; ) return 0; )

كيف يتم الاتصال بوحدة GSM؟

بمجرد تكوين المنفذ التسلسلي، يمكن إرسال أوامر AT إليه. يجب أن يكون الأمر الأول هو التسلسل "AT\r"، والذي يسمح للوحدة بضبط معدل البث بالباود على المنفذ التسلسلي تلقائيًا. ستبدو الاستجابة التي يمكن تلقيها بعد ذلك من المنفذ بالشكل "AT\r\r\nOK\r\n" .

الأمر عبارة عن سلسلة بسيطة من أحرف ASCII. لكي يتم قبول الأمر بواسطة الوحدة، يجب عليك وضع حرف إرجاع "\r" في نهايته. ردًا على ذلك، سترسل الوحدة سلسلة من الأحرف تتكون من جزأين - الأمر الذي تستجيب له الوحدة والاستجابة مفصولة عنه بالأحرف "\r\r\n"، التي تنتهي بالأحرف "\r\n" " . لتسهيل تحليل الاستجابات، قمت بإنشاء ماكرو يقوم بتعيين مؤشر إلى بداية الاستجابة في المخزن المؤقت المتلقي. إذا كنت تريد إخراج الاستجابة إلى وحدة التحكم، فأنت بحاجة إلى إضافة حرف فارغ إلى نهاية الرسالة المستلمة.

باطلة at_send(char *cmd, uint16_t size) ( uint16_t result; cmd = "\r"; result = puts_serial(cmd, size); return;) uint16_t at_recv(uint8_t *buffer, uint16_t size) ( نتيجة uint16_t; النتيجة = get_serial (المخزن المؤقت، الحجم)؛ نتيجة الإرجاع؛)
هذا هو تقريبًا ما تبدو عليه الوظائف المساعدة لإرسال أمر وتلقي استجابة.

تهيئة الوحدة النمطية

أكبر وظيفة في الكود هي المسؤولة عن تكوين الوحدة. أثناء التهيئة، يتم إرسال العديد من أوامر AT. سأصفهم بالترتيب الذي تم إرسالهم به إلى الوحدة. لا أصف على وجه التحديد الحجج وخيارات الإجابة بالتفصيل، لأنه يمكن العثور عليها في الوثائق.
  • "AT+CPIN=pin-code" كما قد تتخيل، يؤدي هذا الأمر إلى فتح بطاقة SIM عن طريق إدخال رمز التعريف الشخصي. للتحقق مما إذا كان رقم التعريف الشخصي مطلوبًا، يمكنك استخدام الأمر "AT+CPIN؟" .
  • ""AT+CREG؟"" يقوم هذا الأمر بإرجاع حالة تسجيل الوحدة على الشبكة. تحتاج إلى القيام بذلك حتى تستجيب الوحدة بأنها مسجلة على الشبكة.
  • "AT+CGATT=1" يفرض على الوحدة الاتصال بـ GPRS. يمكنك التحقق مما إذا كان متصلاً باستخدام الأمر "AT+CGATT؟" .
  • "AT+CIPRXGET=1" يتيح الاسترداد اليدوي للبيانات المنقولة عبر الاتصال. افتراضيًا، يتم تعطيل هذا الخيار ويتم إرسال البيانات إلى المنفذ التسلسلي بمجرد استلامها. هذا ليس مريحًا للغاية، على الرغم من أنه ليس بالغ الأهمية - يمكنك تكوين الوحدة النمطية بحيث تنقل أيضًا مع البيانات رؤوس IP، والتي يمكنك من خلالها تحديد من تم استلام الحزمة منه. قررت أنه سيكون من الأسهل الحصول على البيانات يدويًا ولم أكن مخطئًا. كما أفهم، يتم قبول هذا الأمر فقط من خلال وحدات SIM.COM GSM.
  • "AT+CIPMUX=1" بشكل افتراضي، يمكن للوحدة إنشاء اتصال واحد فقط. يمكّن هذا الإعداد القدرة على إنشاء اتصالات متعددة. سيختلف إرسال واستقبال البيانات بمعلمة واحدة فقط - فهرس الاتصال.
  • "AT+CSTT="internet"" APN - اسم نقطة الوصول، اسم نقطة الوصول لـ GPRS. بالنسبة لمزود الخدمة الخاص بي يبدو تمامًا مثل هذا.
  • "AT+CIICR" ينشئ اتصالاً لاسلكيًا بـ GPRS. قد يستغرق الأمر بعض الوقت، لذا تحتاج إلى تشغيله في حلقة والتحقق من الإجابة.
  • "AT+CIFSR" يُرجع عنوان IP الخاص بالوحدة النمطية. أستخدمه للتحقق مما إذا كانت الوحدة متصلة بالإنترنت.
  • "AT+CDNSCFG="8.8.8.8"،"8.8.4.4"" يقوم هذا الأمر بتعيين خوادم DNS التي ستستخدمها الوحدة.
  • "AT+CIPSTATUS" بالإضافة إلى معلومات حول حالة الاتصال، يوفر هذا الأمر معلومات حول ما إذا كانت الوحدة النمطية جاهزة لتأسيس اتصالات. لذلك عليك التحقق من إجابتها.
بعد تنفيذ هذه الأوامر، ستكون الوحدة جاهزة للاستخدام. حسنا، أو لا. ذلك يعتمد على حظك.

إجراء وكسر الاتصالات

يتم إنشاء الاتصال باستخدام الأمر "AT+CIPSTART=index،"mode"،"address"، "port"" .
  • يشير الفهرس إلى الرقم التسلسلي للاتصال، ويمكن أن يأخذ القيم من 0 إلى 7.
  • يحدد الوضع البروتوكول الذي سيتم استخدامه بواسطة الاتصال. يمكن أن يكون "TCP" أو "UDP".
  • العنوان يحدد عنوان الخادم. إذا تم تحديد خوادم DNS أثناء الإعداد، فيمكنك استخدام كل من عنوان IP واسم المجال.
  • يحدد المنفذ منفذ الخادم الذي سيتم إنشاء الاتصال به.
لاحظ أنه عند استخدام بروتوكول UDP، بشكل افتراضي، سيتم إرسال واستقبال مخططات البيانات من عنوان واحد فقط. من أجل استخدام UDP على أكمل وجه وإرسال/استقبال البيانات من أي عناوين، يمكنك استخدام ما يسمى بوضع UDP الموسع، الذي تم تكوينه باستخدام الأمر "AT+CIPUDPMODE". أحيلك إلى الوثائق للحصول على التفاصيل.

ردًا على أمر ما، يمكنك الحصول على العديد من الإجابات المحتملة. إذا كان كل شيء على ما يرام، فبعد المعيار "موافق"، بعد فترة قصيرة من الزمن، يمكنك الحصول على واحدة من ثلاث إجابات:

  • "الفهرس، الاتصال بالفعل" يعني أن الاتصال بالفهرس المحدد قد تم إنشاؤه بالفعل ويستحق البحث عنه.
  • "الفهرس، CONNECT OK" كل شيء واضح هنا.
  • "الفهرس، فشل الاتصال" يعني أن هناك مشاكل في إنشاء الاتصال.
يمكنك إغلاق الاتصال باستخدام الأمر "AT+CIPCLOSE=index" . يمكنك قطع كافة الاتصالات وإلغاء تنشيط واجهة GPRS باستخدام الأمر "AT+CIPSHUT".

نقل البيانات

يتم نقل البيانات باستخدام الأمر "AT+CIPSEND=index,length" حيث يحدد الفهرس الاتصال الذي يجب إرسال البيانات عبره، ويحدد الطول طول حزمة البيانات. بالمناسبة، يمكنك معرفة وحدة الإرسال الكبرى (MTU) لكل اتصال باستخدام الأمر "AT+CIPSEND=؟" .

إذا كان كل شيء على ما يرام، فسوف تستجيب الوحدة للأمر من خلال المطالبة ">"، وبعد ذلك تحتاج إلى إرسال البيانات إلى المنفذ التسلسلي. بمجرد أن تتلقى الوحدة عددًا من البايتات يساوي الطول، ستقول شيئًا مثل "index,SEND OK" . بشكل عام، لا يتعين عليك استخدام معلمة الطول، ولكن في هذه الحالة يجب الإشارة بوضوح إلى نهاية حزمة البيانات باستخدام الرمز 0x1A، في المجموعة الطرفية Ctrl+Z. من الواضح أن هذا الخيار غير مناسب لنقل البيانات التعسفية.

كما ترون، نقل البيانات ليست عملية معقدة للغاية. لذلك، دعونا ننتقل إلى الجزء الأكثر إثارة للاهتمام - تلقي البيانات.

جار استقبال البيانات

بمجرد أن تتلقى وحدة GSM البيانات، فإنها تشير إلى ذلك عن طريق إرسال سلسلة مثل "+CIPRXGET:1,index\r\n" إلى المنفذ التسلسلي. أنا بصراحة لا أعرف ماذا يعني ذلك، لأن وظيفة الوحدة هذه موثقة بشكل سيئ، لكنها تظهر بالنسبة لي في جميع الرسائل المتعلقة باستقبال الحزم.

لم أستمتع بفكرة الاضطرار إلى مراقبة رسائل الوحدة بطريقة أو بأخرى. ومع ذلك، بعد اللعب قليلاً مع مصحح الأخطاء، اكتشفت أن الوحدة لا ترسل أي رسائل أخرى غير متزامنة، وكذلك أنه بعد تنفيذ أي أمر AT، تظهر هذه الرسالة في بداية المخزن المؤقت. منذ أن قمت بإنشاء ماكرو لفصل الاستجابة عن الأمر من خلال البحث عن السلسلة الفرعية "\r\r\n"، لم أتأثر بأي شكل من الأشكال. لذلك تم تنفيذ وظيفة استقبال البيانات بكل بساطة.

لذلك، يمكنك تلقي البيانات باستخدام الأمر "AT+CIPRXGET=2,index,length" . هناك طريقتان لوضع الاستلام، وفي هذه الحالة يتم سكب البايتات ببساطة في المنفذ التسلسلي. يمكنك أيضًا تحديد تلقي البيانات كنص سداسي عشري، وذلك لمنع التعارضات مع التحكم في تدفق البرنامج. لم أكن بحاجة إلى هذا، لأنني لا أستخدم التحكم في التدفق على الإطلاق. تحدد معلمة الطول حجم حزمة البيانات التي نريد تلقيها في المرة الواحدة.

ردًا على ذلك، سنتلقى شيئًا مثل "+CIPRXGET:2,index,received,excess\r\n__DATA__\r\nOK\r\n" . سيحتوي الحقل المستلم على عدد البايتات في حزمة البيانات __DATA__، وسيحتوي الحقل الزائد على عدد البايتات المنتظرة في المخزن المؤقت للوحدة النمطية. لذا، إذا كان الحقل المستلم صفرًا، فيمكنك أن تقول بضمير مرتاح أنه لا يوجد شيء يمكن استلامه. في الواقع، باستخدام هذا، قمت بتنفيذ وظيفة غير محظورة لتلقي البيانات.

أخيراً

قبل كتابة التعليمات البرمجية، أوصي بشدة بالارتياح لأوامر AT باستخدام PuTTY، الذي يعمل بشكل رائع مع منفذ تسلسلي.

آمل أن تساعد المعلومات الواردة في هذه المقالة شخصًا ما في كتابة رمز لبطاقة SIM900 الخاصة به. من الممكن تمامًا أن يتم تطبيق مبادئ العمل مع وحدة GSM الموضحة أعلاه على وحدات الطرازات الأخرى، وربما الشركات المصنعة.

ستكون تجربة استخدام SIM900 الموضحة أدناه أكثر فائدة لأولئك الذين عملوا بالفعل قليلاً مع الوحدة. بالنسبة لأولئك القراء الذين بدأوا للتو في دراسة هذه الدائرة الدقيقة ويخططون لاستخدامها لتبادل البيانات عبر الإنترنت، قمنا بإعداد سلسلة من الدروس حول هذا الموضوع. هنا .

لذلك، SIM900 عبارة عن وحدة GSM من SIM COM، يتم التحكم فيها بواسطة أوامر AT، وهي قادرة على إرسال الرسائل القصيرة وإجراء المكالمات وتنظيم اتصال CSD مباشر وتبادل المعلومات عبر GPRS.

كانت بين يدي لوحة تصحيح أخطاء درع SIM900 GPRS التي تم طلبها من الصين - وهي متوافقة مع منصة Arduino.

تحتوي اللوحة على شريحة SIM900 نفسها، وموصلات للميكروفون وسماعات الرأس، ومفتاح إمداد الطاقة (من موصل خارجي أو من Arduino)، وهوائي، والعديد من مصابيح LED للإشارة إلى أوضاع التشغيل، وموصل للبطارية (إذا كان في الوقت الحقيقي هناك حاجة إلى ساعة)، وزر تشغيل/إيقاف. لقد وجدت وصفًا جيدًا على موقع ويكي الشركة المصنعة . يوجد أيضًا رمز للتحكم في المودم في أوضاع مختلفة.

كما تخبرنا الشركة المصنعة، فإن اللوحة متوافقة تمامًا مع Arduino Uno. في الواقع، يتم توصيل لوحة SIM900 ببساطة بجهاز Uno وتبدأ العمل على الفور. ومع ذلك، كما اتضح، يمكن أن يكون Arduino Uno "ضعيفًا" في تنفيذ بعض الوظائف، لكنني سأتحدث عن هذا أدناه.

تعمل اللوحة مع Arduino Mega مع بعض القيود. ويرجع ذلك إلى حقيقة أن Mega، على عكس Uno، لديها دبابيس 7 و 8، وهي غير متاحة للاستخدام كبرنامج تسلسلي (برنامج USART). يمكن حل هذه المشكلة عن طريق تحويل واجهة USART إلى الأرجل 0 و1؛ ولهذا الغرض، يتم توفير وصلات العبور على لوحة SIM900.

بشكل عام، يمكن توصيل اللوحة بأي وحدة تحكم ذات واجهة USART. على سبيل المثال، حاولت التحكم في المودم باستخدام وحدة التحكم STM32F4.

SIM900: الرسائل القصيرة والمكالمات

حقق اختبار وحدة تبادل الرسائل النصية القصيرة والمكالمات نجاحًا كبيرًا! تعاملت الوحدة مع هذه المهام دون أي مشاكل، ولهذا قمت ببساطة بنسخ c نفس الموقع، قام بتجميع وميض هذا الكود في Arduino Uno:

// مرحل تسلسلي - سيقوم Arduino بتصحيح الرابط التسلسلي // بين الكمبيوتر ودرع GPRS // بسرعة 19200 بت في الثانية 8-N-1 // الكمبيوتر متصل بجهاز UART // GPRS Shield متصل ببرنامج UART #include SoftwareSerial GPRS(7, 8); المخزن المؤقت شار غير الموقعة؛ // صفيف المخزن المؤقت للبيانات التي يتم تلقيها عبر المنفذ التسلسلي int count=0; // عداد الإعداد الفارغ لصفيف المخزن المؤقت () ( GPRS.begin (19200)؛ // معدل باود GPRS Serial.begin (19200)؛ // المنفذ التسلسلي لمعدل باود Arduino. ) حلقة باطلة () ( إذا (GPRS .available()) // إذا كان التاريخ يأتي من منفذ تسلسلي للبرنامج ==> تأتي البيانات من gprs Shield ( while(GPRS.available()) // قراءة البيانات في مصفوفة char ( buffer=GPRS.read(); // كتابة البيانات في المصفوفة if(count == 64)break; ) Serial.write(buffer,count); // إذا لم ينتهي نقل البيانات، فاكتب المخزن المؤقت إلى المنفذ التسلسلي للجهاز ClearBufferArray(); // استدعاء وظيفة ClearBufferArray لمسح مساحة التخزين البيانات من عدد المصفوفة = 0؛ // اضبط عداد الحلقة أثناء الحلقة على الصفر) إذا (Serial.available()) // إذا كانت البيانات متاحة على منفذ تسلسلي للأجهزة ==> تأتي البيانات من جهاز الكمبيوتر أو الكمبيوتر المحمول GPRS.write(Serial .read()); // اكتبها على درع GPRS) void ClearBufferArray() // دالة لمسح مصفوفة المخزن المؤقت ( for (int i=0; i

لإرسال الأوامر إلى الوحدة، يجب أن تكون متصلة بجهاز كمبيوتر. يمكن القيام بذلك باستخدام منفذ Arduino USB. على جهاز الكمبيوتر، تحتاج إلى أي شاشة منفذ COM لهذا الغرض. يمكنك تنزيله من هناأو يمكنك استخدام الشاشة المدمجة في Arduino IDE.

كل ما يفعله برنامج Arduino الثابت هو "التقاط" أوامر المستخدم وإرسالها إلى الوحدة، ثم إعادة الردود إلى SIM900 إلى المستخدم. وبالتالي، من خلال نقل أوامر AT يدويًا إلى الوحدة، قمت باختبار استقبال وإرسال رسائل SMS، ومن خلال توصيل الميكروفون وسماعات الرأس بالموصلات المناسبة، استخدمت وحدة SIM900 كهاتف محمول.

نقل البيانات عبر خدمة GPRS باستخدام SIM900

لقد بدأت تجاربي الأولى في نقل البيانات عبر GPRS باستخدام منصة Arduino UNO للتحكم في SIM900 (ببساطة لأنها كانت في متناول اليد). في البداية، اشتريت استضافة بخادم يقوم بتشغيل Apatche ونشرت عليها تطبيقًا بسيطًا يمكنه الاستجابة لطلبات GET بمهارة. حدث! ما زلت أرسل الأوامر من جهاز الكمبيوتر إلى وحدة تحكم Arduino، والتي بدورها ترسلها إلى SIM900.

كل شيء يعمل بشكل صحيح طالما كانت طلبات GET قصيرة بما يكفي (حتى 100 حرف). ولكن بمجرد أن أصبحت الطلبات أطول، بدأت الإخفاقات: لم يتم نقل الطلبات بالكامل. لقد لوحظ أن مواطن الخلل يمكن أن تظهر أو تختفي حتى عند زيادة أو تقليل برنامج التحكم في Arduino بعدة أسطر. تبين لاحقًا أن الأعطال كانت مرتبطة ببرنامج USART، الذي يستخدمه Arduino UNO للتواصل مع SIM900، لأن يعتمد USART هذا بشكل كامل على دورة البرنامج الخاصة بوحدة التحكم الأساسية. إذا كانت كمية البيانات صغيرة، فلها دائما وقت لنقلها، وإذا زادت كميتها، فإن نتيجة الإرسال تعتمد على مدة دورة البرنامج.

الخلاصة من كل ما سبق: من المستحيل استخدام برنامج USART عند الاتصال ببطاقة SIM900، خاصة عندما يتعلق الأمر بكمية كبيرة من البيانات المرسلة.

يحتوي Arduino Uno على واجهة USART "أجهزة" واحدة فقط، والتي تم استخدامها للتبادل مع جهاز كمبيوتر، لذلك اضطررنا إلى التخلي عن UNO واستبدالها بـ Arduino Mega، التي لا تعاني من نقص USARTs "الأجهزة". بعد هذا "التبييت"، أصبح تشغيل الجهاز مستقرًا وصحيحًا.

SIM900: مكدس TCP-IP أم HTTP؟ ما الأفضل؟

أثناء دراستي لدليل إدارة المودم، اكتشفت أن هناك مجموعتين من أوامر AT. يتم استخدام المجموعة الأولى لنقل البيانات عبر مكدس TCP-IP المدمج، وتستخدم المجموعة الثانية بروتوكول HTTP الذي تم تنفيذه بالفعل بواسطة المنطق الداخلي لـ SIM900. بغض النظر عن مدى تعذيبي لـ Google وYandex أثناء محاولتي معرفة مدى اختلاف هذه الطرق، وما هي إيجابيات وسلبيات كل منهما، لم أتمكن من العثور على أي شيء، لذلك جربت كليهما وأشارك تجربتي العملية هنا.

كلتا الطريقتين تعملان ولهما الحق في الوجود.

تعد تهيئة مكدس TCP-IP أكثر صعوبة قليلاً (يلزم تمرير المزيد من الأوامر إلى الوحدة النمطية)، كما أن إدارتها أكثر صعوبة قليلاً. لإرسال طلب، تحتاج إلى فتح اتصال وانتظار الرد وإغلاقه بشكل صحيح.

HTTP، بعبارات بسيطة، هو متصفح مدمج في SIM900. من السهل التهيئة، لكي تبدأ الاتصال بالخادم، تحتاج إلى فتح جلسة. وفي الوقت نفسه، يقع فتح وإغلاق الاتصال مع كل طلب وحل "المهام التنظيمية" الأخرى على عاتق SIM900. يعد هذا أمرًا مريحًا، كما أن نقل البيانات بهذه الطريقة يكون أسرع إلى حد ما، وذلك على وجه التحديد لأن بطاقة SIM900 يمكنها إجراء جميع "العمليات المساعدة" بشكل أسرع مما تستطيع وحدة التحكم القيام به.

وبالتالي، عند اختيار طريقة التبادل، ما زلت استقر على بروتوكول HTTP.

طلب GET غير صحيح إلى الخادم

في بداية عملي في نقل البيانات عبر خدمة GPRS، ارتكبت خطأً كلفني أكثر من يوم من العذاب. نظرًا لعدم وجود خبرة كافية في التفاعل مع الخادم عبر طلبات GET، فقد قمت، بعد أن اكتسبت معرفة سطحية على الإنترنت، بتجميع طلب مثل:

احصل على http://xxx.ru/d_command.php?UC=1111 HTTP/1.1
المضيف: xxx.ru

هذا الطلب غير صحيح، ولكن تم "تناوله" تمامًا بواسطة المتصفح والخادم الوكيل الذي أرسلت منه طلبات تصحيح الأخطاء - ولهذا السبب اعتبرت الطلب صحيحًا.

الأمر الأكثر إثارة للدهشة هو أن بطاقة SIM900 تعاملت أيضًا بشكل جيد مع الطلب "السيئ" (وكنت أرسل الطلبات عبر مكدس TCP-IP في ذلك الوقت). ومع ذلك، في أحد الأيام، بدأ الخادم في الاستجابة لمثل هذه الطلبات مع الخطأ 404. حدث هذا بسبب ظروف لم يتم توضيحها بعد، إما أن يقوم مزود الاستضافة بتغيير خوارزميات معالجة الطلب (ينفي ذلك)، أو مشغل الهاتف المحمول فعلتها. لكن الحقيقة تظل حقيقة. ثم حاولت إرسال نفس الطلب عبر HTTP - كل شيء يعمل. يتم تفسير ذلك من خلال حقيقة أن بروتوكول HTTP الداخلي لوحدة SIM900 (كما قلت بالفعل، متصفح مدمج بشكل أساسي) قادر على "تحليل" الطلبات غير الصحيحة بشكل صحيح وبثها إلى الشبكة بالشكل الصحيح. هذه ميزة أخرى (مشكوك فيها بالطبع) لاستخدام HTTP، لأنها تسمح للمبرمج ببعض الأخطاء. بشكل عام بالطبع يجب أن يكون الطلب مكتوباً بشكل صحيح ويكون بالشكل التالي:

احصل على /d_command.php?UC=1111 HTTP/1.1
المضيف: xxx.ru

مع هذا الطلب الصحيح، يتم تبادل بطاقة SIM900 بنجاح عبر حزمة TCP-IP وعبر HTTP.

يتجمد SIM900

في بعض الأحيان، عند التبادل عبر GPRS، تنشأ مواقف يمكن بعدها تجميد الوحدة. قد يكون هذا بسبب البيانات غير الصحيحة التي وصلت عبر الشبكة ودفعت SIM900 إلى ذهول، أو التداخل في خط التبادل للوحدة ووحدة التحكم، حيث تلقى SIM900 "ليس ما كان متوقعًا"، أو بعض المشاكل الأخرى غير المعروفة. تحذر الشركة المصنعة للرقاقة من أن هذا قد يحدث وتقترح أنه في مثل هذه الحالات، قم بإعادة تشغيل الوحدة باستخدام تسلسل خاص من النبضات المطبقة على إدخال PWRKEY.

ومع ذلك، كما اتضح، فإن هذا لا يساعد دائمًا - بعد إعادة التشغيل هذه، قد "تستيقظ" الوحدة ولا تزال "متعطلة". وتحذرنا الشركة المصنعة أيضًا من هذا الأمر إذا قرأنا ورقة البيانات الخاصة بالوحدة بعناية. إليك ما توصي به الوثائق:

ملحوظة: يوصى بقطع مصدر طاقة VBAT مباشرةً بدلاً من استخدام دبوس إعادة الضبط الخارجي عندما لا يتمكن SIM900 من الاستجابة لأمر AT "AT+CPOWD=1" ودبوس PWRKEY.

لذلك، فإن الطريقة الصحيحة لإعادة تشغيل الوحدة هي إزالة الطاقة منها تمامًا (من طرف VBAT)، والانتظار لفترة (ثانية على الأقل في حالة حدوث ذلك) وإعادة توصيل الطاقة. لإعادة تشغيل الوحدة، من الأفضل توفير مرحل أو مفتاح ترانزستور على اللوحة، يتم التحكم فيه بواسطة وحدة التحكم.

خاتمة

في المستقبل، أخطط لإصدار سلسلة من المقالات والدروس التي سأخبرك فيها بكيفية تنظيم التبادل بين تطبيق ويب الخادم وSIM900، بدءًا من شراء الاستضافة من المزود وانتهاءً بكتابة رمز برنامج التحكم.

مع السلامة! ترقبوا التحديثات على كسول ذكي .

تتيح لك وحدة GSM وGPRS في مشاريع Arduino الاتصال بالأجهزة المستقلة عن بعد عبر الاتصالات الخلوية العادية. يمكننا إرسال الأوامر إلى الجهاز واستقبال المعلومات منه باستخدام أوامر الرسائل القصيرة أو من خلال اتصال بالإنترنت مفتوح عبر GPRS. في هذه المقالة سوف نلقي نظرة على الوحدات الأكثر شيوعًا لـ Arduino، ونفهم الاتصال وننظر إلى أمثلة البرمجة.

وحدات جي إس إم جي بي آر إس

تُستخدم وحدة GSM لتوسيع قدرات لوحات Arduino العادية - إرسال الرسائل القصيرة وإجراء المكالمات وتبادل البيانات عبر GPRS. هناك أنواع مختلفة من الوحدات، والأكثر استخدامًا هي SIM900، SIM800L، A6، A7.

وصف وحدة SIM900

يتم استخدام وحدة SIM900 في الأنظمة الآلية المختلفة. باستخدام واجهة UART، يتم تبادل البيانات مع الأجهزة الأخرى. توفر الوحدة القدرة على إجراء المكالمات وتبادل الرسائل النصية. يتم تنفيذ الوحدة على مكون SIM900، الذي تم إنشاؤه بواسطة SIMCom Wireless Solution.

تحديد:

  • نطاق الجهد 4.8-5.2 فولت ؛
  • في الوضع العادي، يصل التيار إلى 450 مللي أمبير، والحد الأقصى للتيار في وضع النبض هو 2 أمبير؛
  • دعم 2G.
  • قوة الإرسال: 1 وات 1800 و1900 ميجاهرتز، 2 وات 850 و900 ميجاهرتز؛
  • هناك بروتوكولات TCP وUDP مدمجة؛
  • جي بي آر إس متعدد الفتحات فئة 10/8؛
  • درجة حرارة التشغيل من -30 درجة مئوية إلى 75 درجة مئوية.

باستخدام الجهاز، يمكنك تتبع مسار السيارة مع جهاز GLONASS أو GPS. يتم استخدام القدرة على إرسال رسائل SMS في أجهزة الإنذار اللاسلكية وأنظمة الأمان المختلفة.

وصف وحدة SIM800L

تعتمد الوحدة على مكون SIM800L وتستخدم لإرسال الرسائل القصيرة وإجراء المكالمات وتبادل البيانات عبر خدمة GPRS. يتم تثبيت بطاقة SIM الصغيرة في الوحدة. يحتوي الجهاز على هوائي مدمج وموصل يمكنك توصيل هوائي خارجي به. يتم توفير الطاقة للوحدة من مصدر خارجي أو من خلال محول DC-DC. يتم التحكم باستخدام جهاز كمبيوتر عبر UART أو Arduino أو Raspberry Pi أو الأجهزة المماثلة.

تحديد:

  • نطاق الجهد 3.7 فولت - 4.2 فولت ؛
  • دعم شبكة ذات 4 نطاقات 900/1800/1900 ميجاهرتز؛
  • جي بي آر إس فئة 12 (85.6 كيلو بايت / ثانية) ؛
  • الحد الأقصى الحالي 500 مللي أمبير.
  • دعم 2G.
  • البحث التلقائي في أربعة نطاقات التردد؛
  • درجة حرارة التشغيل من -30 درجة مئوية إلى 75 درجة مئوية.

وصف الوحدة A6

تم تطوير وحدة A6 بواسطة AI-THINKER في عام 2016. يستخدم الجهاز لتبادل الرسائل القصيرة وتبادل البيانات عبر خدمة GPRS. تتميز اللوحة بانخفاض استهلاك الطاقة وصغر الحجم. الجهاز متوافق تمامًا مع مشغلي شبكات الهاتف المحمول الروس.

تحديد:

  • نطاق الجهد 4.5 – 5.5 فولت ؛
  • مصدر الطاقة 5 فولت.
  • تتراوح درجة حرارة التشغيل من -30 درجة مئوية إلى 80 درجة مئوية؛
  • الحد الأقصى للاستهلاك الحالي 900mA.
  • جي بي آر إس فئة 10؛
  • يدعم بروتوكولات PPP، TCP، UDP، MUX.

الوحدة تدعم بطاقات microsim.

وصف الوحدة A7

A7 هي أحدث وحدة من AI-THINKER. بالمقارنة مع سابقه، يحتوي هاتف A6 على نظام تحديد المواقع العالمي (GPS) المدمج، مما يسمح بتصميم مبسط للجهاز.

تحديد:

  • نطاق جهد التشغيل 3.3 فولت-4.6 فولت ؛
  • جهد الإمداد 5 فولت؛
  • الترددات 850/900/1800/1900 ميجا هرتز؛
  • جي بي آر إس فئة 10: ماكس. 85.6 كيلوبت؛
  • قمع الصدى والضوضاء.

يدعم الجهاز بطاقات microSIM. تدعم الوحدة تبادل المكالمات وتبادل الرسائل النصية القصيرة ونقل البيانات عبر GPRS واستقبال الإشارات عبر GPS.

حيث لشراء وحدات GSM لاردوينو

كالعادة، قبل البدء، إليك بعض النصائح والروابط المفيدة لبائعي Aliexpress.

جودة عالية جدًا لوحدة KEYES SIM900 GSM GPRS وحدة SIM800C لـ Arduino من مورد موثوق
درع للتطوير، متوافق مع Arduino، يعتمد على وحدة SIM900 GPRS/GSM وحدة A6 GPRS GSM صغيرة غير مكلفة

ربط درع GSM GPRS بالاردوينو

سننظر في هذا القسم في مشكلات توصيل وحدات GSM بلوحة Aduino. تعتمد جميع الأمثلة تقريبًا على Arduino Uno، ولكن سيتم استخدام معظم الأمثلة أيضًا للوحات Mega وNano وما إلى ذلك.

توصيل وحدة SIM800

للاتصال، تحتاج إلى لوحة Arduino، ووحدة SIM800L، ومحول جهد تنازلي، وأسلاك توصيل، وبطارية 12 فولت. تتطلب وحدة SIM800L جهدًا غير قياسي من Arduino يبلغ 3.7 فولت، وهذا يتطلب محول جهد تنازلي.

يظهر في الشكل دبوس وحدة SIM800.

يجب أن تكون لوحة Arduino متصلة بالكمبيوتر عبر كابل USB. قم بتوصيل بطارية 12 فولت من خلال محول: -12 فولت إلى أرضي Arduino، من الأرض إلى المحول السالب، +12 فولت إلى المحول الموجب. يجب توصيل مخرجات وحدة TX و RX بالمنفذين 2 و 3 في Arduino. يمكن توصيل وحدات متعددة بأي دبابيس رقمية.

ربط الوحدة A6

وحدة A6 أرخص من SIM900 ومن السهل جدًا توصيلها بـ Arduino. يتم تشغيل الوحدة بجهد 5 فولت، وبالتالي لا يتطلب الاتصال عناصر إضافية لخفض الجهد.

للاتصال، ستحتاج إلى لوحة Arduino (في هذه الحالة، يتم أخذ Arduino UNO بعين الاعتبار)، ووحدة A6 GSM، وأسلاك التوصيل. يظهر مخطط الاتصال في الشكل.

يجب أن يكون طرف RX من وحدة GSM متصلاً بـ TX الموجود على لوحة Arduino، ويجب أن يكون طرف TX متصلاً بمنفذ RX الموجود على Arduino. يتم توصيل الأرض من الوحدة بالأرض على وحدة التحكم الدقيقة. يجب أن يكون طرف Vcc الموجود على وحدة GSM متصلاً بـ PWR_KEY.

الاتصال باستخدام درع GSM-GPRS

قبل التوصيل، من المهم الانتباه إلى جهد إمداد الدرع. يمكن أن يصل التيار في وقت المكالمة أو إرسال البيانات إلى قيم 15-2 أمبير، لذلك لا يجب تشغيل الدرع مباشرة من Arduino.

قبل الاتصال بـ Arduino، تحتاج إلى تثبيت بطاقة SIM على درع GSM-GPRS. تحتاج أيضًا إلى تثبيت وصلات العبور TX وRX، كما هو موضح في الشكل.

يتم الاتصال على النحو التالي - يجب توصيل جهة الاتصال الأولى (السلك الأصفر في الشكل) من الدرع بـ TX على Arduino. يتصل الدبوس الثاني (السلك الأخضر) بـ RX على Arduino. الأرض من الدرع متصلة بالأرض من الأروينو. يتم توفير الطاقة لوحدة التحكم الدقيقة عبر كابل USB.

يظهر في الشكل تخطيط الاتصال بين الدرع ولوحة Arduino.

للعمل، سوف تحتاج إلى تثبيت مكتبة GPRS_Shield_Arduino.

للتحقق من صحة الدائرة المجمعة، عليك القيام بما يلي: توصيل RESET وGND على Arduino (سيؤدي ذلك إلى نقل البيانات مباشرة من الدرع إلى الكمبيوتر)، أدخل بطاقة SIM في الدرع وقم بتشغيله قوة الدرع. يجب توصيل لوحة Arduino بالكمبيوتر والضغط على زر الطاقة. إذا تم توصيل كل شيء بشكل صحيح، فسوف يضيء مؤشر LED الأحمر وسيومض مؤشر LED الأخضر.

وصف موجز للتفاعل عبر أوامر AT

أوامر AT هي مجموعة من الأوامر الخاصة للمودم، وتتكون من سلاسل نصية قصيرة. لكي يتعرف المودم على الأمر المعطى له، يجب أن تبدأ الأسطر بالحرف at. سيتم قبول السلسلة عندما يكون المودم في وضع الأوامر. يمكن إرسال أوامر AT إما باستخدام برامج الاتصالات أو يدويًا باستخدام لوحة المفاتيح. يمكن تقسيم جميع الأوامر تقريبًا إلى 3 أوضاع - اختبار، حيث تجيب الوحدة على ما إذا كانت تدعم الأمر؛ قراءة - إخراج معلمات الأمر الحالية؛ الكتابة - سيتم كتابة قيم جديدة.

قائمة أوامر AT الأكثر استخدامًا:

  • AT - للتحقق مما إذا كانت الوحدة متصلة بشكل صحيح. إذا كان كل شيء على ما يرام، فسيتم إرجاع OK.
  • أ/ – كرر الأمر السابق .
  • في + حقوق الملكية الفكرية؟ – الحصول على معلومات حول سرعة المنفذ. ستكون الإجابة +IPR: 0 موافق (0 في هذه الحالة تلقائي).
  • في+ICF؟ - إعداد الإرسال. سيكون الرد +ICF: بت، تكافؤ.
  • في + مؤسسة التمويل الدولية؟ - التحكم في الإرسال. ستكون الإجابة +IFC: محطة من الوحدة، وحدة من المحطة (0 - لا يوجد تحكم، 1 - التحكم في البرنامج، 2 - التحكم في الأجهزة).
  • AT+GCAP - يُظهر إمكانيات الوحدة. الإجابة النموذجية هي +GCAP:+FCLASS,+CGSM.
  • AT+GSN - الحصول على وحدة IMEI. مثال للإجابة 01322600XXXXXXXXX.
  • في + رجال الشرطة؟ - يعرض المشغلين المتاحين.
  • AT+CPAS – حالة الوحدة. الاستجابة +CPAS: 0. 0 – جاهز للعمل، 3 – مكالمة واردة، 4 – اتصال صوتي، 2 – غير معروف.
  • في + سيكلك؟ - معلومات حول الوقت والتاريخ الحالي.
  • AT+CLIP=1 - تمكين/تعطيل معرف المتصل. 1 - مفعل، 0 - معطل.
  • AT+CSCB=0 – استقبال رسائل SMS خاصة. 0 - مسموح، 1 - معطل.
  • AT+CSCS= “GSM” – ترميز الرسائل القصيرة. يمكنك تحديد أحد الترميزات التالية: IRA، GSM، UCS2، HEX، PCCP، PCDN، 8859-1.
  • AT+CMEE=0 – تلقي معلومات الخطأ.
  • AT+CPIN=XXXX – أدخل رمز PIN لبطاقة SIM.
  • AT&F – إعادة التعيين إلى إعدادات المصنع.
  • AT+CPOWD=1 – إيقاف تشغيل الوحدة بشكل عاجل (0) أو عادي (1).
  • ATD+790XXXXXXXXX – اتصل بالرقم +790XXXXXXXXX.
  • ATA – الرد على المكالمة.
  • AT+CMGS=”+790XXXXXXXXX”>اختبار الرسائل القصيرة – إرسال رسالة نصية قصيرة إلى الرقم +790XXXXXXXX.

في هذه الحالة، يتم أخذ الأوامر الأساسية لوحدة SIM900 بعين الاعتبار. قد تختلف الأوامر قليلاً بالنسبة للوحدات المختلفة. سيتم توفير بيانات الوحدة من خلال برنامج "طرفي" خاص يجب تثبيته على الكمبيوتر. يمكنك أيضًا إرسال أوامر إلى الوحدة من خلال شاشة المنفذ في Arduino IDE.

اسكتشات للعمل مع وحدة GSM

إرسال الرسائل القصيرة باستخدام SIM900 كمثال

قبل إرسال رسالة، تحتاج إلى تكوين الوحدة. أولا وقبل كل شيء، تحتاج إلى تحويل الرسالة المرسلة إلى تنسيق نصي. يوجد أمر AT+CMGF=1 لهذا الغرض. تحتاج إلى تحويل الترميز إلى GSM باستخدام الأمر AT+CSCS='GSM'. هذا التشفير هو الأكثر ملاءمة، حيث يتم تمثيل الأحرف في كود ASCII، والذي يسهل على المترجم فهمه.

ثم تحتاج إلى طلب رسالة SMS. للقيام بذلك، يتم إرسال أمر برقم المشترك AT+CMGS=»+79XXXXXXXXXX» r، واستجابة لذلك يطلب منك كتابة رسالة نصية قصيرة. تحتاج إلى إرسال رسالة. عند الانتهاء، تحتاج إلى إرسال الرمز المركب Ctrl+Z، وستسمح الوحدة بإرسال نص إلى المستلم. عند إرسال الرسالة، سيتم إرجاع موافق.

يعتمد التفاعل مع الوحدة على المؤشرات المخصصة لكل رسالة جديدة. باستخدام هذا الفهرس، يمكنك تحديد الرسالة التي تريد حذفها أو قراءتها.

تلقي الرسائل القصيرة. لقراءة رسالة SMS، استخدم الأمر AT + CNMI = 2,2,0,0,0. عندما تصل رسالة نصية إلى الوحدة، سيتم إرسال +CMTI: "SM"،2 إلى المنفذ التسلسلي (في هذه الحالة، 2 هو الرقم التسلسلي للرسالة). لقراءتها، تحتاج إلى إرسال الأمر AT+CMGR=2.

استقبال مكالمة صوتية. أولا وقبل كل شيء، لإجراء محادثة، تحتاج إلى توصيل مكبر الصوت والميكروفون بالوحدة. عند استقبال مكالمة سيظهر الرقم الذي تم الاتصال منه. للعمل، تحتاج إلى تمكين مكتبة GSM:

#يشمل

إذا كانت بطاقة SIM محظورة، فستحتاج إلى إدخال رمز PIN الخاص بها. إذا لم يكن رمز PIN مطلوبًا، فيجب ترك هذا الحقل فارغًا.

# تحديد الرقم التعريفي ""

في الإعداد()، يجب تهيئة نقل البيانات إلى الكمبيوتر. الخطوة التالية هي إنشاء متغير محلي لتتبع حالة اتصال الشبكة. لن يتم تشغيل الرسم حتى يتم توصيل بطاقة SIM بالشبكة.

boolean notConnected = true;

يتم استخدام الدالة gsmAccess.begin() للاتصال بالشبكة. عند إنشاء الاتصال، سيتم إرجاع القيمة GSM_READY.

vcs.hangCall(); – وظيفة تشير إلى أن المودم جاهز لاستقبال المكالمات.

getvoiceCallStatus () - يحدد حالة الرسم. إذا اتصل شخص ما، فإنه يُرجع RECEIVINGCALL. لتسجيل رقم، تحتاج إلى استخدام الدالة RetrieveCallingNumber(). عند الرد على المكالمة، سيعود التحدث. سينتظر الرسم بعد ذلك حرف السطر الجديد لإنهاء المحادثة.

إنشاء اتصال GPRS وإرسال البيانات إلى خادم بعيد

تحتاج أولاً إلى تثبيت مكتبة SoftwareSerial، والتي تتيح لك توفير نقل المعلومات التسلسلية وتوصيل وحدة GSM ووحدة التحكم الدقيقة Arduino.

لإرسال البيانات إلى الخادم، تحتاج إلى إرسال الأوامر التالية:

AT+SAPBR=1,1 – فتح الناقل.

تتعلق الأوامر الثلاثة التالية بتعيين إعدادات اتصال الشبكة.

AT+SAPBR=3,1,\”APN\”،\”internet.mts.ru\” – حدد مشغل MTS، واسم نقطة الوصول.

AT+SAPBR=3,1,\”USER\”،\” mts \” – حدد مستخدم mts.

AT+SAPBR=3,1,\”PWD\”،\” النظام التجاري المتعدد الأطراف\”

AT+SAPBR=1,1 – إنشاء الاتصال.

AT+HTTPINIT – تهيئة http.

AT+HTTPPARA=”URL”، – عنوان URL.

AT+HTTPREAD – في انتظار الرد.

AT+HTTPTERM – إيقاف http.

إذا تم كل شيء بشكل صحيح، فستظهر الأسطر التي تحتوي على أوامر AT في شاشة مراقبة المنفذ. إذا لم يكن هناك اتصال بالمودم، فسوف يظهر خطًا واحدًا في كل مرة. عندما يتم إنشاء اتصال GPRS بنجاح، سيبدأ مؤشر LED الموجود على الوحدة في الوميض.

وحدة GSM عبارة عن جهاز للتحكم (عن بعد) في إخراج المرحل المثبت على اللوحة. توجد فتحة لبطاقة SIM على اللوحة. الغرض الرئيسي هو التحكم في البوابات والحواجز والمصاريع الدوارة.

كيف تعمل وحدة تحكم GSM؟

تحتوي أي وحدة تحكم GSM على قاعدة بيانات خاصة بها يتم فيها تخزين الأرقام المعتمدة. تحتوي وحدة GSM أيضًا على رقمها الخاص (رقم بطاقة SIM) المثبت فيها. إذا تم تسجيل رقمك في قاعدة بيانات وحدة التحكم، فعند الاتصال به، سيتم إغلاق المرحل الموجود على اللوحة لمدة ثانية واحدة، وبالتالي إعطاء أمر للمشغل (البوابة، الحاجز) لفتحه. إذا لم يكن رقمك موجودا في قاعدة البيانات، فسوف تسمع أصوات تنبيه منتظمة على الهاتف ولن يفتح الحاجز.

كيفية إضافة/حذف رقم إلى وحدة تحكم GSM؟

اعتمادًا على طراز وحدة التحكم، فهي تأتي مع برنامجها الخاص للكمبيوتر الشخصي أو الهاتف الذكي، بالإضافة إلى أوامرها الخاصة لإضافة وحذف رقم عبر الرسائل القصيرة. من الأنسب استخدام جهاز كمبيوتر لإضافة أرقام. يتيح لك ذلك إنشاء قاعدة بيانات للأرقام على جهاز الكمبيوتر الخاص بك، ثم تنزيلها عبر كابل USB إلى وحدة التحكم. هناك وحدات تحكم GSM مع الخدمة السحابية الخاصة بها. ماذا يعني ذلك؟ تتيح لك الخدمة السحابية إضافة وحذف الأرقام عبر الإنترنت، دون توصيل كابل USB بها. هذا مريح للغاية، ولكن هناك عيب واحد - سوف تستهلك بطاقة SIM حركة المرور على الإنترنت.

كيفية توصيل وحدة تحكم GSM؟

الاتصال لجميع الوحدات هو نفسه تقريبًا. تحتوي اللوحة على كتلة طرفية لتوصيل طاقة 12-24 فولت، وكتلة إخراج التتابع NO - COM (الوضع المفتوح عادةً)، والتي يتصل بها الكبل من جهات اتصال التحكم الخاصة باللوحة. عادةً ما يتم الحصول على الطاقة لوحدة GSM من لوحة التحكم الآلي، على سبيل المثال من محركات Doorhan، AN، وتحتوي اللوحة على أطراف 12 فولت. BFT، ​​جاء - 24 فولت.

ما هي التعريفة التي يجب أن أختارها لوحدة تحكم GSM؟

في أغلب الأحيان، نوصي بالتعرفة بدون رسوم شهرية. قبل شراء بطاقة SIM، تحتاج إلى تحديد المشغل الذي يتمتع بجودة اتصال أفضل في مكان معين. بالنسبة لوحدات تحكم GSM التي تستخدم بيانات الهاتف المحمول، نوصي بتوصيل حزمة حركة مرور الإنترنت، مثل ELDES Esim 320. والتي تعمل عبر الإنترنت.


مرحبًا!
هنا نشأت مهمة إدارة منزل ريفي ومراقبة درجة الحرارة والأبواب والنوافذ. ثم نشأ السؤال حول وسيلة نقل البيانات. حسنًا، لم تعد هناك حاجة إلى الأسلاك وقناة الراديو نظرًا لارتفاع التكلفة، فخطوط اتصال الألياف الضوئية مجرد حلم، لكن GSM هو ما تحتاجه. في البداية وقعت عيني على الهواتف القديمة "موتورولا"، "نوكيا"، "سوني إريكسون". نظرت واستدرت وغيرت رأيي. أولاً، لم أكن أرغب في اللحام بجهات اتصال الزر، ولم تكن هناك تعليقات. ثانيًا، إن فهم برامج الهاتف ليس بالأمر الكبير على الإطلاق. بشكل عام، من خلال التفكير الإبداعي والسباحة في مساحات شبكة الويب العالمية، بعد أن تم القبض على اثنين من الفيروسات، تم العثور على حل وسط. والعمل مع البرامج وبدون أي أزرار. تقدم الوحدة كل هذا SIM900D. لماذا أحببته؟
- الأول هو سهولة التثبيت. سوف ترى هذا لاحقا. - والثاني هو التواصل عبر UART. (وهذا يعني MK + SIM900D = اتصال عادي) - والثالث هو وحدة تزويد الطاقة من 3 إلى 4.8 فولت. هوش AVR، هوش ARM. ذوق. حسنًا، ما يكفي من الكلمات، حان الوقت لبدء العمل.
هذه الوحدة تبدو هكذا.

فيما يتعلق بالتثبيت. كما ترون، تم تصميم الوحدة للتركيب على السطح. أبعاد وسادات التلامس كبيرة بما يكفي حتى بالنسبة لجداول البحث. وفيما يلي صورة لجهازي.

كما ترون، لا شيء معقد. الآن دعونا نتحدث عن مخطط الاتصال لهذه المعجزة. دعونا نلقي نظرة على الدليل. ونحن نرى pinout.

نعم، هناك الكثير من الأشياء، لكننا لن نستخدمها كلها. أول شيء يتعين علينا القيام به هو ربط جميع منافذ "GND" معًا. إذا نظرت إلى الزاوية اليمنى العليا، ستلاحظ ثلاثة دبابيس منفصلة. اثنان "GND" و"ANT". تقع هذه الاستنتاجات بهذه الطريقة لسبب ما. دعونا نلقي نظرة على الوثائق للحصول على صورة لاتصال الهوائي.

يجب أن تكون جهات الاتصال 59 و61 قريبة قدر الإمكان من طرف الهوائي. هناك حاجة إلى دوائر إضافية مظللة بالخطوط المنقطة لتوصيل الهوائيات بالكابل. لذلك، قمت بلحام موصل SMA في أقرب وقت ممكن إلى المسامير 59، 60، 61 ولم أزعج الدائرة المطابقة، بينما مع هوائي على كابل بطول 3 أمتار وفي مكان به استقبال سيئ للغاية، ضغطت 13 نقطة من أصل 31 من الوحدة، الموصل مرئي في الصورة أعلاه. بتعبير أدق، الأرجل منه)) الموصل نفسه على الجانب الآخر. في هذه الحالة، يبدو أن جهات الاتصال 59 و61 تعانق الهوائي. حسنا، شيء من هذا القبيل. بعد ذلك، دعونا نتحدث عن بطاقة SIM. لتثبيته، استخدمت هذا الموصل (SIM ICA-501-006-01-F7)

الشيء الأكثر إثارة للاهتمام هو أنني وجدت 3 خيارات لتثبيت بطاقات SIM. أي واحد يجب أن أستخدم؟ لن أعرض أي دسيسة، ولكن من أجل البساطة، سأقدم دبوسًا لهذا الموصل. وجهة نظر من فوق.

ولكن هذا ليس كل شيء. إذا نظرت في الدليل إلى مخطط الاتصال لبطاقة SIM، فيمكنك أن ترى هناك دائرة كهربائية صغيرة معينة تسمى SMF05C. تحتوي هذه الدائرة الدقيقة على ما يصل إلى 5 ثنائيات واقية. هناك حاجة لحماية جهات اتصال بطاقة SIM. بالطبع، ليس عليك تثبيته، ولكن كن حذرًا ولا تلمس نقاط الاتصال بأصابعك!!! كشخص خاطئ، لا أستطيع أن أضمن نفسي، لذلك قمت بلحام الميكروهو. وهنا الرسم البياني نفسه.

بالطبع، يتم تقديمه لبطاقة SIM ذات 8 سنون، ولكن بالنسبة لـ 6 سنون سيكون هو نفسه. هناك بالفعل مشكلتان في هذه الدائرة الدقيقة. الأول هو أين يمكنك العثور عليها بحق الجحيم. والشيء الثاني هو حجمه... ولما استلمت الطلب وأخرجته وضعته على الطاولة... باختصار في الصورة الثانية من فوق وهو ملحوم بين بطاقة SIM والبطارية. للمقارنة، المقاومات هي 0805. حسنًا، على اليمين يوجد ترانزستور في حزمة SOT-23. لذا، يبدو أننا قمنا بفرز بطاقة SIM، فلننتقل. ومن ثم تكنولوجيا الإضاءة. بشكل عام، هذا ليس للجميع. حيث يمكن إدخال كل هذه الإشارات مباشرة إلى عضو الكنيست والسماح لها بفرزها هناك بنفسها. لقد أخرجتهم جميعًا من إحساسهم بالجمال. لذا قرر بنفسك.
- الأولى هي الإشارة سواء تم تشغيل الوحدة أم لا (الحالة) سجل 1 - والثانية هي إشارة تسجيل الشبكة (NETLIGHT) سجل 1/0 (وامض) إذا ومضت بنفس التردد، فهذا يعني لم يتم تسجيله في الشبكة، إذا كانت هناك فجوة طويلة، فهذا يعني أن هناك اتصال بالشبكة. - والثالث هو سجل إشارة المكالمات/الرسائل القصيرة (RING) 0 يضيء في حالة وجود مكالمة واردة ويومض عند استلام رسالة SMS. يجب توصيل الإشارتين الأوليين عبر ترانزستور NPN في وضع التبديل.

ويجب توصيل الإشارة الثالثة (RING) عبر ترانزستور PNP. إشارة أخرى مهمة هي زر تشغيل الوحدة وإيقاف تشغيلها. (أين سنكون بدونها). وهذا ما يقدمه لنا الدليل.

أي أننا قمنا بتطبيق السجل 1 على قاعدة الترانزستور لمدة ثانية واحدة وتم تشغيل الوحدة.
الآن دعونا نتحدث عن التغذية. نعم، لا أمانع أن أحظى بطبق جيد من المصارعة الآن، أليس كذلك؟ حسنا، دعونا نمضي قدما. يتم تشغيل الوحدة بجهد يتراوح من 3 إلى 4.8 فولت. كل شيء يبدو بسيطا، لكنه ليس كذلك. عند إجراء مكالمة أو إرسال رسالة نصية قصيرة أو البحث عن شبكة، قد تتطلب الوحدة ما يصل إلى 2 أمبير. رائع. لذلك قد يصاب محبو LM7805 وKrenok بخيبة أمل. لحسن الحظ، يحتوي الدليل على دائرتين تعتمدان على الدوائر الدقيقة MIC29302 (لم أجدها للبيع مطلقًا) وLM2596 (يمكنك شراء هذه). لكنني كسول ولم أرغب ببساطة في تجميع البيت بهذا القدر من الربط. لقد بحثت في الإنترنت ووجدته. يوجد مثبت جيد لمعالجات مثل "Stump" و "AMD" عند 3.3 فولت وما يصل إلى 7.5 أمبير. حسنًا، أعتقد أن هذا هو ما تحتاجه ويمكنك تشغيل ARM والوحدة. هنا رسم تخطيطي لهذه المعجزة.

وهذا ما يبدو مجمعًا.

لقد قمت بتثبيت المبرد من الخوف، من حيث المبدأ، لا يتم تسخين الدائرة الدقيقة حتى أثناء المكالمة. وآخر شيء يجب أن تنتبه إليه هو البطارية. هناك حاجة للحفاظ على ساعة الوقت الحقيقي على قيد الحياة. الشيء الأكثر أهمية هو أنه لا يمكنك ترك هذا الاستنتاج في الهواء. أنا شخصياً وافقت على توصيل البطارية وهذا ما أتمناه لك. يمكنك بالطبع لصق اثنين من AA)) ولكنها كبيرة جدًا إلى حد ما، ولكن في شكل جهاز لوحي 2032 عند 3 فولت هو ما تحتاجه. لحسن الحظ، فهي ليست باهظة الثمن ويمكن لحام المقصورات مباشرة على اللوحة. في رأيي هذا هو الحل الأبسط. انت صاحب القرار. حسنا هذا كل شيء. هذا ما يبدو عليه كل هذا العار معًا وفي حالة صالحة للعمل.

سأخبرك في المقالة التالية كيف قمت بكسر هذه الوحدة ولكن برمجيًا من خلال الجهاز باستخدام أوامر AT.
أضع المخططات في PCAD-2006
أرشفة ملفات وحدة GSM.
الأرشفة مع ملفات كتلة التثبيت.
استمرار سلسلة المقالات حول وحدة GSM.
في الأوامر.
اتصال الوحدة مع ATmega8515.
مجلس التنمية على أساس SIM900D


فولي 14/03/13

أرغب في معرفة المزيد عن أوامر AT وUART والعمل مباشرة مع هذا في CodeVision

أليكسي 15/03/13

أنا أفهم أوامر AT. لا أريد نشر نصف العمل لأن لدي بعض الأسئلة. ولكن مع UART وCVAVR، كل شيء بسيط. بمجرد أن أكتشف أوامر AT، سأقوم على الفور بنشر الأوامر وكيفية إرسالها من CVAVR.

أناتوك 04.11.13

كل شيء جميل. ولكن إذا عمل المنبه على الأقل عند درجة حرارة 30 درجة تحت الصفر وتم شحنه بألواح شمسية مخفية، خاصة في فصل الشتاء، فسيكون هناك الكثير من الأشخاص الذين يرغبون في الحصول على مثل هذا الجهاز.

أليكسي 04.11.13

تستهلك وحدة GSM ما يصل إلى 2 أمبير عند التسجيل على الشبكة أو إجراء مكالمة أو الاتصال عبر خدمة GPRS. تتطلب هذه الموارد بطارية جيدة، وعند -30 لن تدوم البطارية لفترة طويلة. حتى في محطات الأرصاد الجوية الموجودة على أجهزة استشعار الشوارع، يوصى باستخدام بطاريات بسيطة.

الدب 11.11.13

إذا كان لا يزال ملائمًا ومثيرًا للاهتمام... فاطلع على EAT لـ SIM900. يوجد داخل ARM SDK يمكنك من خلاله تحميل التطبيقات إلى SIM900 والتي يمكنك من خلالها القيام بالكثير من الأشياء... على سبيل المثال، إرسال نفس أوامر AT... + لوحة المفاتيح + عرض SPI... + 2 ADC :) أتمنى لك أمسية ممتعة :)

الدب 11.11.13

ولكن لا يزال من الجيد جدًا توفير الطاقة لها على L5973D. نعم، لقد تم ذكر 2A في ورقة البيانات... ولكن في الواقع، هذه نبضات قصيرة المدى جدًا. إنه يعمل بشكل رائع بالنسبة لي، على سبيل المثال، مع Arduino Mega، الذي يتم تشغيله من خلال منفذ USB (الذي يبلغ تياره 0.5 أمبير)

أليكسي 11.11.13

هذه هي المشكلة. في البداية قمت أيضًا بتشغيله من 7805، وعمل كل شيء، ثم بام... وعند الاتصال بالشبكة، ينطفئ كل شيء، ثم يتم إعادة تشغيله. يبدو أن كلب الحراسة يستأنف نشاطه بعد هجوم التغذية. ومع L7953D سيكون جميلًا، ولكن أين يمكنني الحصول عليه وكم سيكلف :) لذلك قمت بالتحويل إلى IRU1075

أليكسي 11.11.13

أعتذر عن الأخطاء، إنه GOODROYD اللعين الذي ينحت المتذمرين من أجلي. يعتقد أنه أكثر ذكاءً. لن أقوم بالتعديل، دع جوجل تخجل من عملهم.

العم ميشا 24/12/13

عندما أقوم بالتسجيل في شبكة Atmega، يتم إعادة التشغيل. على الرغم من أنه يكلف نبض DCDC. 200 ميكروفاراد مكثفات. وأحيانًا يعمل بثبات. لقد استنفدت بالفعل.

أليكسي 25/12/13

مخطط للاستوديو. من الصعب جدًا فهم المشكلة من الكلمات.

العم ميشا 25/12/13
العم ميشا 25/12/13

http://ybex.com/d/tk7kgiefpklpeujb1zbl4lo5 mrkf7ayvci04ouq3.html يتم تشغيل MK بواسطة 2.8 (حتى أنني حاولت 3.7) فولت، حتى لا تتداخل مع محول المستوى.

أليكسي 25/12/13
سيرجي 19/07/14

مرحبا أليكسي! هل لديكم لوحات جاهزة ببطاقة sim900 هل أستطيع شرائها؟

أليكسي 19/07/14

جاهز بأي معنى؟ لقد تم بالفعل تجميع الوحدة نفسها وكل ما تبقى هو إنشاء لوحة تحتوي على المخرجات والمدخلات المطلوبة لجهاز معين. ما هو موجود في هذه المقالة هو مجرد لوحة تجريبية لبرامج تصحيح الأخطاء. يتطلب جهاز معين الأبعاد وموقع الموصلات ومخرجات سماعة الرأس والميكروفون. أين سيكون موصل الهوائي؟ تقديم معلومات أكثر تفصيلا حول ما تحتاجه.

أندريه 28.09.14

بقدر ما أفهم، هذا نموذج أولي للوشاح الذي لا أستطيع الانتظار لرؤيته. فقط في النسخة التجارية تم دمجه بمصدر طاقة وتم ترقيته بمخرجات الصوت. أن هناك ضجة كبيرة.

أليكسي 28/09/14

في الواقع هو كذلك. لقد قتلت للتو عدة عصافير بحجر واحد. تم حل المشكلة القديمة المتعلقة بإمدادات الطاقة ومطابقة المستوى على UART. ولإضفاء لمسة أنيقة على إدخال وإخراج الصوت. في الواقع هاتف محمول جاهز.

أندريه 28.09.14

أود أن أقدم مساهمة للمستقبل. في جوهره، هذا المجلس هو وحدة كاملة. ويمكن استخدامه عمليا في المنتج النهائي. ومع ذلك، هناك واحد ولكن. مع مظلة الميزون، من الأفضل وضعها في الأعلى (موصل الهوائي، الوصول إلى بطاقة SIM)، لذلك يُنصح تمامًا بترك فتحات موازية لجميع أطراف "الأجهزة الطرفية" لنفس الأطراف مع إمكانية لحامهم في الاتجاه "التنازلي". أولئك. كنت أرغب في توصيل هذا الجهاز بلوحة تحكم دقيقة، وتوجيهه إلى لوحتك، ولحام موصلات التزاوج فيه وتوصيله. أيضا مع

أندريه 28.09.14

لقد تناولت نصف الرسالة، لكن أتمنى أن تكون الفكرة واضحة-)

أليكسي 28/09/14
سيرجي 02/01/15

قل لي لماذا تسخن الوحدة ولا تتصل بالشبكة؟

أليكسي 02/01/15

هناك عدة أسباب لذلك. أولا، يتم تجاوز التغذية. ثانيا هل ذهبت الزائد إلى العام؟ أنت بحاجة إلى إلقاء نظرة فاحصة على أرجل القوة. ثالثًا، ما إذا كان بطن الوحدة يلامس خطوط الإمداد. هناك العديد من الاتصالات التكنولوجية الموجودة على البطن والتي يجب عزلها عن أي موصلات. رابعاً، هل تم قصر طرف الهوائي على الطرف المشترك؟ لكي تكون أكثر دقة، عليك أن تنظر إلى اللوحة. أرسل لي الرسوم عبر البريد الإلكتروني وسأرى ما إذا كان هناك خطأ ما.

سيرجي 02/01/15

لدي لوحات المصنع، MasterKit BM8039، وكلاهما يعانيان من نفس المشكلة... عندما تقوم بإدخال بطاقة SIM، تبدأ الوحدة في التسخين ولا توجد شبكة.

أليكسي 02/01/15

من الصعب جدًا قول ذلك. الدائرة هي المصنع، تحتاج إلى الصعود على متن الطائرة. يتضح من الوثائق أن اللوحة لا تحتوي على الثنائيات الواقية الموصى بها لبطاقة SIM. هل البطاقة نفسها والموصل لهما نفس المسامير؟ وحدة 300 قديمة وفي رأيي أنها تعمل فقط مع بطاقات SIM 5V، ولكنها الآن جميعها 3V. ولكنني يمكن أن تكون خاطئة. عليك أن تنظر إلى اللوحة نفسها، فمن الصعب جدًا قول أي شيء. إذا كانت الأعراض هي نفسها على كليهما، فسوف أقع في اتجاه الموصل والجهد لبطاقات SIM. مرة أخرى، بطاقات SIM الحديثة هي 3 فولت.

سيرجي 02/01/15

يكلف sim900D...لا يوجد صمامات ثنائية عندما أقوم بإدخال البطاقة، تظهر الطاقة على الوحدة وتبدأ في الإحماء، ولكن على سبيل المثال على بطاقة SIM. لا يعمل من ارتفاع 9 أقدام...

سيرجي 02/01/15

في البداية كانوا يعملون بشكل جيد... ثم حدث خطأ ما... لا أستطيع معرفة السبب..

سيرجي 02/01/15

هل هناك أي طريقة للتحقق من الوحدة دون فكها؟

أليكسي 02/01/15

ما الذي قصر بالضبط؟ إذا لم تكن هناك طاقة لبطاقة SIM، فأنا أخشى أن الخط الخاص ببطاقة SIM قد توقف. كم عدد أرجل سيمكا؟ 6 أو 8؟ للتحقق، يمكنك التواصل مع الوحدة عبر ناقل UART 3, 4 بدون إدخال بطاقة SIM. إذا رفض قبول أوامر AT، فأعتقد أنه يمكننا دفنه.

مجهول 02/01/15

لا أعرف بالضبط ما الذي قصرها.. 8 أرجل.. لكن كيف نتواصل؟

أليكسي 02/01/15

هل يوجد أيضًا 8 على الموصل؟ خذ شريحة FT232RL وقم بتجميع محول USB<->TTL، قم بلحام UART الخاص بالوحدة، وقم بتشغيل محطة طرفية، على سبيل المثال PuTTY، واكتب AT واضغط على Enter. إذا عادت الأمور على ما يرام، فلن نفقد كل شيء. إذا ساد الصمت... في سلة المهملات. ونعم، ما هو نوع المصابيح الموجودة على اللوحة؟ كيف يتم تحديد التسجيل على الشبكة؟

سيرجي 02.02.15 03:12

يوجد أيضًا 8 على الموصل...يوجد مؤشران LED على اللوحة، أخضر وأحمر، ويتم تحديد وجود الشبكة من خلال وميض الضوء الأخضر مرة واحدة كل ثلاث ثوانٍ...هل يمكنني بطريقة أو بأخرى إدراج صورة للوحة ؟

أليكسي 02.02.15 07:42

من الأسهل الذهاب إلى المنتدى.

سيرجي 02.02.15 14:02

إذا لم تقم بإدخال بطاقة SIM، فهل يعني ذلك أنك بحاجة إلى توفير الطاقة للوحدة؟

أليكسي 02.02.15 15:48

لا أستطيع أن أقول من خلال أوراق الشاي. أحتاج إما تخطيطي أو لوحة. وما علاقة مصدر الطاقة للوحدة وبطاقة SIM بها؟ على الأرجح أنه يتقاطع مع بعض وحدات التحكم الدقيقة الأخرى. يقوم بتزويد الطعام. بشكل عام، أنت بحاجة إلى رسم تخطيطي. وهو يشبه إجراء التشخيص عبر الهاتف.

سيرجي 02.02.15 15:56

أين يمكنني نشر الرسم التخطيطي في المنتدى؟

سيرجي 02.02.15 15:57

تصل الطاقة إلى الوحدة فقط عند إدخال بطاقة SIM

أليكسي 02.02.15 19:27

حسنًا، وحدة SIM900D لا تحتوي على ذلك. لتشغيل الوحدة، تحتاج إلى الاحتفاظ بالمستوى المنخفض في الساق 12 ثم رفعه. لا يمكن إدخال بطاقة SIM أو إزالتها على الإطلاق عند تشغيل الوحدة، فمن الممكن حرق المنفذ. إذا نظرت إلى الوثائق، فيمكنك العثور على توصيات لتثبيت الثنائيات الواقية على خط منفذ بطاقة SIM. في المنتدى . قم بإنشاء موضوع ونشر صورة.

يفغيني 08/09/15 12:04

عندما أقوم بتطبيق الجهد على الوحدة، يكون هناك جهد موجب في المحطة الثانية عشرة، وإمكانات موجبة في المحطة الخامسة (شريطة أن تكون هذه الأرجل معلقة في الهواء). من فضلك أخبرني، هل من المفترض أن يكون هناك صفر في المحطة الخامسة؟ إن لم يكن، يرجى تصحيح لي.

أليكسي 08/09/15 13:21

المحطة الثانية عشرة هي إدراج الوحدة. عند توصيل الطاقة، يتم تعليق 1. لتشغيل الوحدة، تحتاج إلى الضغط على الساق الثانية عشرة إلى السلك المشترك لبضع ثوان، أي تطبيق 0. عند توفير الطاقة للوحدة 5، يجب أن تكون الساق يتم سحبها إلى السلك المشترك بواسطة مقاومتين (يمكن ملاحظة ذلك من مخطط توصيل الترانزستور في وضع التبديل) ويجب أن تكون 0، حيث يجب سحب القاعدة إلى الصفر لإغلاق الترانزستور تمامًا. بعد الضغط على المحطة الثانية عشرة إلى الصفر، يجب أن يظهر الرقم 1 على المحطة الخامسة، وبعد فترة من الوقت يشير إلى حالة التوفر والاتصال بالشبكة.

mob_info