Проблема с подключением Arduino Mega 2560 и GSM shield (официальный M10)

Так как я не хочу накладывать шилд на плату mega 2560, я пытаюсь подключить только те контакты, которые используются для связи GSM. Вот мое подключение:

Контакт 3 на Mega <==> Контакт GSM Rx на Shield

Контакт 10 на Mega <==> Контакт GSM Tx на Shield

Вывод 4 на Mega <==> Вывод 4 на Shield

Контакт 5V на Mega <==> Контакт Vin на Shield

Закрепить GRD на Mega <==> Закрепить GRD на Shield

Я использовал код из библиотеки примеров GsmScanNetworks:

#include <GSM.h>

// Номер ПИН-кода
#define PINNUMBER "8888"

// инициализируем экземпляр библиотеки
GSM gsmAccess;     // включите параметр «true» для включения отладки
GSMScanner scannerNetworks;
GSMModem modemTest;

// Сохранение переменных данных
String IMEI = "";

// сообщения о результатах последовательного монитора
String errortext = "ERROR";

void setup()
{
  // инициализируем последовательную связь и ждем открытия порта:
  Serial.begin(9600);
  while (!Serial) {
    ; // ждем подключения последовательного порта. Требуется только для Leonardo
  }

  Serial.println("GSM networks scanner");
  scannerNetworks.begin();

  // состояние соединения
  boolean notConnected = true;

  // Запустить GSM-щит
  // Если на вашей SIM-карте есть PIN-код, передайте его как параметр begin() в кавычках
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  // получить параметры модема
  // IMEI, уникальный идентификатор модема
  Serial.print("Modem IMEI: ");
  IMEI = modemTest.getIMEI();
  IMEI.replace("\n","");
  if(IMEI != NULL)
    Serial.println(IMEI);
}

void loop()
{
  // сканирует существующие сети, отображает список сетей
  Serial.println("Scanning available networks. May take some seconds.");
  Serial.println(scannerNetworks.readNetworks());

    // в данный момент подключенный оператор
  Serial.print("Current carrier: ");
  Serial.println(scannerNetworks.getCurrentCarrier());

  // возвращает силу и ber
  // уровень сигнала по шкале от 0 до 31. 31 означает мощность > 51 дБм
  // BER — это частота ошибок по битам. Шкала от 0 до 7. 99=не обнаруживается
  Serial.print("Signal Strength: ");
  Serial.print(scannerNetworks.getSignalStrength());
  Serial.println(" [0-31]");

}

Вопросы:

  1. После открытия последовательного порта считывается только строка "GSM network scanner". Похоже, программа застряла на gsmAccess.begin(PINNUMBER), как это исправить?
  2. Обязательно ли подавать питание 5 В 2 А на щит отдельно, чтобы он работал? (при указанном выше подключении светодиод ON на щите загорается оранжевым светом)
  3. Для PINNUMBER, определенного в программе, моя SIM-карта имеет PIN-код по умолчанию 8888. Я проверил с помощью мобильного телефона, что SIM-карта работает. Но мой телефон показывает, что SIM-карта не заблокирована PIN-кодом. Так мне определить PIN-код как 8888 для ''?

РЕДАКТИРОВАТЬ:

Ссылка на GSM-шилд

Примечание по использованию GSM Shield с Mega

* И да! Щит работал, когда был сложен! (Изначально я не хотел сгибать штифт 2... но... эээ... сложение и выгибание штифта 2 сработало)

* Пробовал примеры "GSMScanNetwork" и "SendSMS", работает отлично. Но для "GsmWebServer" IP-адрес отображается, но когда я ввожу IP-адрес в браузере, Chrome/IE говорит, что не может найти IP-адрес.....Есть какие-нибудь подсказки?

* А светодиод состояния на плате GSM имеет какое-то отношение к питанию? Он то загорается, то гаснет, то загорается, то гаснет.....

* Для вопросов 1 и 3, PINNUMBER установлен на ''. Работает нормально.

, 👍6


2 ответа


1

Я сделал это и добился (некоторого ограниченного) успеха.

Некоторые из ваших связей неверны; Подключите оба контакта 7s на шилде и MEGA, а не контакт 4s. Контакт 7 — это контакт сброса — я думаю, что GSM.begin сбрасывает шилд перед тем, как что-либо делать. Это может помочь с Q1.

Убедитесь, что вы используете регулируемый выход 5 В на MEGA, а не Vin для питания вашего шилда. Vin — это любое напряжение, подключенное к разъему питания MEGA, и оно может повредить ваш шилд. Я лично не заметил никакой разницы при питании MEGA+Shield от USB или внешнего источника 12 В.

У меня были проблемы с помехами, когда я использовал провода для подключения экрана к MEGA. Стекирование, похоже, уменьшило эту проблему, но не устранило ее никоим образом...

Веб-сервер GSM вряд ли будет работать, за исключением, может быть, сети вашего провайдера SIM. Некоторые ограничения упомянуты здесь; https://www.arduino.cc/en/Tutorial/GSMToolsTestWebServer

,

-3

Подайте питание на gsm shield с помощью адаптера 9 В. Это может сработать. Я тоже использовал питание на gsm module от arduino, но там нет соединения. После того, как я использовал адаптер 9 В, все заработало.

,