Бувають миті в житті розробника, коли нас виводить із себе така штуковина як GSM модуль до любительської плати контролера. І в такі моменти не розумієш або в тебе програма крива, або монтаж хріновий або сам модем дохлий з самого початку.
Я раджу в такий момент, а ще краще одразу після придбання, просто узяти та перевірити надійним способом раз і назавжди, дохлий він чи ні.
Для перевірки знадобиться перехідник перетворювач з USB комп'ютера на UART (RS232). Вони коштують не дорого і в домашньому господарстві Ардуїнщика часто бувають корисними.
Також знадобиться встановлена програма Arduino IDE, яка теж в господарстві Ардуїнщика не завадить (тут можна посміхнутись).
Як приклад візьму китайський модуль на основі M590E. Вони звичайно ідуть різного виконання, але цей є одним з простіших та він один з небагатьох, в котрого присутнє зручне для читання маркування гребінки, що для нас зараз буде дуже важливо. Так як бувають такі модулі, в гребінках яких дуже просто можна заплутатись - вони не підписані та мають багато незадіяних контактів.
Отже візьмемо та з'єднаємо перетворювач з USB в TTL UART та наш модуль за допомогою спеціальних з'єднувальних дротів мама-мама.
Такі модулі стандартно підключаються наступним макаром:
USB -> UART | GSM модуль |
5V | U пит (5V) |
GND | GND |
TXD | RXD |
RXD | TXD |
Якщо є вивід BOOT в модуля GSM, як в моєму випадку, то необхідно з'єднати його із загальним дротом GND. Цей вивід для переводу модема в сплячий режим та назад.
Тепер запускаємо Arduino IDE та перевіримо нарешті наш багатостраждальний GSM-модуль.
Підключаємо перетворювач UART до USB порту комп'ютера. На самому перетворювачі повинний горіти світлодіод. На перевіряємому модулі світлодіод періодично загоряється та гасне.
Якщо у вашого модуля є світлодіод живлення, то він буде горіти постійно. Якщо не горить, то у вас проблеми з живленням або коротке замикання в модулі.
Якщо світлодіод зайнятості модема не миготить, то це нас насторожує, але не зупиняє - можливо просто згорів світлодіод або його погано припаяно.
Після виникнення нового COM-порта в меню Инструменты -> Порт программы Ардуино, вибираємо цей порт та запускаємо Монітор порта.
Налаштування самого монітора порта бачимо на наступній картинці: CR (Возврат каретки); 9600 бод.
Пишемо в текстовому полі англійськими літерами AT та натискаємо Enter або клацаємо мишкою по кнопці Отправить. При цьому якщо комунікації з модемом робочі, то побачимо відповідь OK. Якщо відповідь не надійшла або отримали кракозяблі, то пробуємо змінити швидкість обміну. Зазвичай GSM-модеми налаштовані на одну з трьох швидкостей:
9600
19200
115200
Просто перебираємо швидкості в налаштуваннях Монітора порта Arduino IDE та пробуємо вводити команду AT. Якщо нічого не вийшло, то можна за швидкості 9600 монітора порта спробувати задати швидкість модему такою командою AT+IPR=9600. Якщо після цього ви не добились відповіді OK від нього, то проблеми з комунікацією.
Далі якщо комунікація проходить, щоб перевірити сам радіомодуль на коректну роботу з СІМ-картою, необхідно вставити останню в слот модуля при вимкненому живленні. Потім вмикаємо в USB, перезапускаємо (обов'язково) монітор порта, пишемо AT, отримуємо OK. Чекаємо з десяток секунд поки не з'явиться повідомлення GSM-модуля: +PBREADY. Це значить, що мережа мобільного оператора спіймана та модуль готовий для мобільного зв'язку.
Тепер робимо завершальний штрих: дзвонимо на номер сім-карти, що вставлена в досліджуваний пристрій.
В динаміку телефона чуємо гудки виклику, а в моніторі порта бачимо повідомлення GSM-модема RING. Підняти трубку ви при цьому не зможете та у кінці виклику M590 пише NO CARRIER.
В результаті можна зробити впевнений висновок щодо функціонування піддослідного GSM пристрою. Або працює або в ремонт або в топку.
Дякую за увагу! Усім вдалих реалізацій!