Jakiej osłony użyć do GPRS?

9

Planuję zbudować urządzenie, które odczytuje niektóre dane z czujników i wysyła je przez GPRS, np. raz dziennie. (Nie tak oryginalne, tak.) Ale moim problemem jest wybór tarczy GSM / GPRS.

Oficjalna tarcza ma przyjemny interfejs do wykonywania HTTP POST / GET . OTOH, tarcza wydaje się wyprzedana (i tak byłaby dość droga).

Wydaje się, że dostępne są inne osłony, ale ich przykłady kodu wydają się dość hackerskie : urządzenie czeka na dowolny moment, a następnie ma nadzieję, że serwer jest gotowy. To IMO jest nieefektywne lub zawodne.

Moje pytanie: którą tarczę GSM / GPRS poleciłbyś, korzystając z tych funkcji:

  • rozsądna biblioteka z przykładami, taka jak oficjalna
  • antena zewnętrzna
  • bonus: konkurencyjna cena
  • kolejna zaleta: mam nadzieję, że jest to „prawdziwa” osłona, więc nie wymaga lutowania, a kilka czujników nadal łatwo można wykorzystać.
tuomassalo
źródło

Odpowiedzi:

3

Ta biblioteka powinna działać z praktycznie wszystkim, co zawiera moduł M10.

Mam tylko doświadczenie z modułami SIM900. Znaleziono najtańszy w serwisie eBay.

Choć łączenie się z tymi rzeczami może na początku stanowić wyzwanie, naprawdę wystarczy przeczytać instrukcję dla wszystkich poleceń AT i wykonać je. Napisałem kilka funkcji, które mogą pomóc:

Uwaga: można bezpiecznie zastąpić wszystkie wystąpienia DEBUG_PRINTi DEBUG_PRINTLNz Serial.printa Serial.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;
}
sachleen
źródło
3

Poleciłbym oficjalną tarczę Arduino GSM .

Manihatty
źródło
Który polecasz? Możesz rozwinąć temat?
Ricardo
1
Tarcza Arduino GSM . Używam tego, działa dobrze i jest to oficjalna tarcza Arduino.
Manihatty
Niestety oficjalna tarcza Arduino GSM została wycofana.
Hamish_Fernsby
2

W końcu zamówiłem płytkę Elechouse, która wykorzystuje układ M10. Znaleziono jeden na eBayu za 59 USD. Wygląda na to, że działa dobrze z oficjalną biblioteką.

Jak mówi instrukcja, należy ją zasilać z zewnątrz - kabel USB to za mało!

tuomassalo
źródło
czy uważasz, że tablica elektroniki jest niezawodna, czy wysyła / odbiera gprs w porządku?
Hamish_Fernsby
Czy 2G jest obsługiwane w twoim kraju? Przynajmniej w Europie planowane jest wyłączenie sieci 2G, a wybrany moduł nie obsługuje 3G
gabonator
0

LinkitOne - ok nie tarcza, ale kompatybilna płyta kontrolna Arduino z wbudowanym GSM / GPRS / GPS / Wi-Fi. Biblioteka komunikacyjna nie ma tylu metod diagnostycznych, jak np. Adafruit, ale była łatwa w konfiguracji i niezawodna. Główną wadą LinkitOne było to, że używa on innego procesora niż Arduinos, więc wiele bibliotek Arduino nie jest kompatybilnych np. Dla urządzeń I2C.

Wersja Adafruit Fona SIM808 2G Shield. układ tarczy, ale nagłówki, które można ustawiać jeden na drugim, należy kupować i lutować osobno. Domyślne pinouty działają z Uno, ale dla Mega wymagane są mody. Biblioteka ma wiele przydatnych metod diagnostycznych (napięcie akumulatora, siła sygnału itp.). współpracowałem z kartą SIM prepaid giffgaff, ale z jakiegoś powodu nie korzystałem z Vodafone. SMS działał poprawnie. Mogłem połączyć się z GPRS, ale pobieranie HTML ze strony nie działało.

DFRobot SIM808 GPS / GPRS / GSM Shield - fabrycznie okablowane złącza ekranowe do układania w stosy, instrukcje przesyłania kodu i uruchamiania urządzenia są zawiłe i niejasne. Nie byłem nawet w stanie uzyskać podstawowego połączenia z Arduino do pracy. Albo biblioteka jest bardzo wadliwa, albo moje urządzenie było wadliwe.

SEEEDStudio 113030009 Tarcza GPRS z anteną i zewnętrznym uchwytem SIM V3.0 Prawdopodobnie wyślę to później ..

Oficjalna tablica Arduino GSM WYCOFANA

Moduł GSM / GPRS Sparkfun - SM5100B PRZERWANY

Hamish_Fernsby
źródło