Какой шилд использовать для GPRS?

Я планирую создать устройство, которое будет считывать некоторые данные с датчиков и отправлять их через GPRS, например, раз в день. (Не так уж и оригинально, да.) Но моя проблема заключается в выборе GSM/GPRS-шилда.

Официальный шилд имеет хороший интерфейс для выполнения HTTP POST/GET. С другой стороны, шилд, похоже, распродан (и в любом случае будет довольно дорогим).

Кажется, есть и другие доступные щиты, но их примеры кода выглядят <b>довольно хакерски</b>: устройство ждет произвольный момент, а затем надеется, что сервер закончит работу. По моему мнению, это и неэффективно, и ненадежно.

Мой вопрос: какой GSM/GPRS-шилд вы бы порекомендовали со следующими характеристиками:

  • нормальная библиотека с примерами, такими как официальная
  • внешняя антенна
  • бонус: конкурентоспособная цена
  • еще один бонус: надеюсь, «настоящий» щит, поэтому пайка не потребуется, а несколько контактов все еще можно будет легко использовать для датчиков.

, 👍10


4 ответа


Лучший ответ:

2

В итоге я заказал плату Elechouse, которая использует чип M10. Нашел одну на eBay за 59 долларов США. Похоже, она отлично работает с официальной библиотекой.

Как сказано в инструкции, необходимо внешнее питание — кабеля USB недостаточно!

,

3

Эта библиотека должна работать практически со всем, на чем есть модуль M10.

У меня есть опыт только с модулями SIM900. Самый дешевый нашел на EBay.

Хотя взаимодействие с этими вещами может быть поначалу сложной задачей, вам действительно нужно просто прочитать руководство по всем AT-командам и выполнить их. Я написал пару функций, которые могут помочь:

Примечание: вы можете безопасно заменить все экземпляры DEBUG_PRINT и DEBUG_PRINTLN на Serial.print и Serial.println.

SoftwareSerial SIM900(7, 8);

/*
Отправляет AT-команды на модуль SIM900.

Описание параметра
строка команды, содержащая AT-команду для отправки модулю
тайм-аут Тайм-аут в миллисекундах для ожидания ответа.

Возвращает строку, содержащую ответ. Возвращает NULL по тайм-ауту.

*/
String SIMCommunication::sendCommand(String command, int timeout) {
    SIM900.listen();
    // Очистить буфер чтения перед отправкой новой команды
    while(SIM900.available()) { SIM900.read(); }

    SIM900.println(command);

    if (responseTimedOut(timeout)) {
        DEBUG_PRINT(F("sendCommand Timed Out: "));DEBUG_PRINTLN(command);
        return NULL;
    }

    String response = "";

    while(SIM900.available()) {
        response.concat((char)SIM900.read());
        delayMicroseconds(500);
    }

    return response;
}

/*
    Waits for a response from SIM900 for <ms> milliseconds

    Returns true if timed out without response. False otherwise.
*/
bool SIMCommunication::responseTimedOut(int ms) {
    SIM900.listen();

    int counter = 0;
    while(!SIM900.available() && counter < ms) {
        counter++;
        delay(1);
    }

    // Время истекло, возвращаем ноль
    if (counter >= ms) {
        return true;
    }
    counter = 0;
    return false;
}
,

3

Я бы порекомендовал официальный Arduino GSM shield.

,

0

LinkitOne - ладно, не шилд, а скорее совместимая плата контроллера Arduino со встроенным GSM/GPRS/GPS/Wifi. Библиотека comms не имеет столько методов диагностики, как, например, Adafruit, но она проста в настройке и надежна. Главным недостатком LinkitOne было то, что она использует другой процессор, чем Arduino, поэтому многие библиотеки Arduino несовместимы, например, для устройств I2C.

Версия Adafruit Fona SIM808 2G Shield. Схема щита, но стекируемые заголовки нужно покупать и паять отдельно. Распиновка по умолчанию работает с Uno, но для Mega требуются модификации. Библиотека содержит множество удобных методов диагностики (напряжение батареи, уровень сигнала и т. д.). Работает с предоплаченной SIM-картой giffgaff, но почему-то не с vodafone. SMS работают нормально. Я могу подключиться к GPRS, но получение html с веб-сайта не работает.

DFRobot SIM808 GPS/GPRS/GSM Shield — предварительно смонтированный со стекируемыми разъемами shield, инструкции по загрузке кода и запуску устройства запутанные и неопределенные. Я даже не смог получить базовое подключение к Arduino для работы. Либо библиотека очень глючная, либо мое устройство было неисправно.

SEEEDStudio 113030009 GPRS Shield с антенной и внешним держателем SIM-карты V3.0 Я, вероятно, протестирую это в следующий раз..

Официальная плата Arduino GSM СНЯТА С ПРОИЗВОДСТВА

Модуль Sparkfun GSM/GPRS - SM5100B СНЯТ С ПРОИЗВОДСТВА

,