GPRS에 어떤 방패를 사용해야합니까?


9

예를 들어 일부 센서 데이터를 읽고 GPRS를 통해 전송하는 장치를 만들 계획입니다. 하루에 한 번. (원래가 아닙니다.) 그러나 내 문제는 GSM / GPRS 쉴드를 선택하는 것입니다.

공식 쉴드는 HTTP POST / GET 수행을위한 훌륭한 인터페이스를 가지고 있습니다. OTOH, 방패는 매진 된 것 같습니다 (어쨌든 꽤 비쌉니다).

사용 가능한 다른 쉴드가있는 것 같지만 코드 예제는 매우 해킹적인 것처럼 보입니다 . 장치는 임의의 순간을 기다린 다음 서버가 완료되기를 희망합니다. 그것은 비효율적이거나 신뢰할 수없는 IMO입니다.

내 질문 : 다음 기능을 갖춘 GSM / GPRS 쉴드를 권장합니다.

  • 공식 라이브러리와 같은 예제가있는 제정 된 라이브러리
  • 외부 안테나
  • 보너스 : 경쟁력있는 가격
  • 또 다른 보너스 : "실제"쉴드가 필요하므로 납땜이 필요하지 않으며 센서에 여전히 몇 개의 핀을 쉽게 사용할 수 있습니다.

답변:


3

이 라이브러리는 M10 모듈이있는 거의 모든 것과 작동해야합니다.

SIM900 모듈에 대한 경험이 있습니다. EBay에서 가장 저렴한 것을 발견했습니다.

이러한 것들과의 인터페이스는 처음에는 어려울 수 있지만 실제로 모든 AT 명령에 대한 매뉴얼을 읽고 실행하면됩니다. 도움이 될 수있는 몇 가지 기능을 작성했습니다.

참고 : 안전의 모든 인스턴스를 대체 할 수 DEBUG_PRINTDEBUG_PRINTLNSerial.printSerial.println.

SoftwareSerial SIM900(7, 8);

/*
    Sends AT commands to SIM900 module.

    Parameter   Description
    command     String containing the AT command to send to the module
    timeout     A timeout, in milliseconds, to wait for the response

    Returns a string containing the response. Returns NULL on timeout.

*/
String SIMCommunication::sendCommand(String command, int timeout) {
    SIM900.listen();
    // Clear read buffer before sending new command
    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);
    }

    // Timed out, return null
    if (counter >= ms) {
        return true;
    }
    counter = 0;
    return false;
}


2

결국 M10 칩을 사용 하는 Elechouse 보드 를 주문했습니다 . eBay에서 59 USD에 1 개를 찾았습니다. 공식 도서관에서 잘 작동하는 것 같습니다.

설명서에 나와 있듯이 외부 전원이 공급되어야합니다. USB 케이블로는 충분하지 않습니다!


elechouse 보드가 신뢰할 만하다고 생각하십니까, 괜찮습니까?
Hamish_Fernsby

귀하의 국가에서 2G가 지원됩니까? 적어도 유럽에서는 2G 네트워크를 끌 계획이 있으며 선택한 모듈이 3G를 지원하지 않습니다
gabonator

0

LinkitOne-차폐가 아니라 내장 GSM / GPRS / GPS / Wifi가있는 호환 가능한 Arduino 컨트롤러 보드입니다. comms 라이브러리에는 Adafruit와 같은 진단 방법이 많지 않지만 설정이 쉽고 신뢰할 수 있습니다. LinkitOne의 주요 단점은 Arduino와 다른 프로세서를 사용하므로 많은 Arduino 라이브러리가 I2C 장치와 호환되지 않는다는 것입니다.

Adafruit Fona SIM808 2G 쉴드 버전. 실드 레이아웃이지만 스택 형 헤더는 별도로 구입하여 납땜해야합니다. 기본 핀아웃은 Uno에서 작동하지만 Mega에는 모드가 필요합니다. 라이브러리에는 편리한 진단 방법 (배터리 전압, 신호 강도 등)이 많이 있습니다. giffgaff 선불 SIM과 협력했지만 어떤 이유로 든 vodafone은 아닙니다. SMS는 잘 작동했습니다. GPRS에 연결할 수는 있지만 웹 사이트에서 html을 가져 오는 것은 효과가 없었습니다.

DFRobot SIM808 GPS / GPRS / GSM 쉴드-사전 배선 된 스택 형 쉴드 커넥터, 코드 업로드 및 장치 실행 지침이 복잡하고 모호합니다. Arduino와 기본 연결을 할 수 없었습니다. 라이브러리가 매우 버그가 있거나 장치에 결함이 있습니다.

SEEEDStudio 113030009 안테나 및 외부 SIM 홀더 V3.0이 장착 된 GPRS 쉴드 다음에이를 설명하겠습니다.

공식 Arduino GSM 보드 중단

Sparkfun GSM / GPRS 모듈-SM5100B 중지

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.