Quel bouclier utiliser pour GPRS?

9

Je prévois de construire un appareil qui lirait certaines données de capteur et les enverrait via GPRS, par exemple. une fois par jour. (Pas si original, oui.) Mais mon problème est de choisir un bouclier GSM / GPRS.

Le bouclier officiel a une belle interface pour faire un HTTP POST / GET . OTOH, le bouclier semble être épuisé (et serait assez cher de toute façon).

Il semble y avoir d'autres boucliers disponibles, mais leurs exemples de code ont tendance à sembler assez hacky : l'appareil attend un moment arbitraire, puis espère que le serveur est terminé. C'est l'OMI à la fois inefficace ou peu fiable.

Ma question: quel blindage GSM / GPRS recommanderiez-vous, avec ces fonctionnalités:

  • une bibliothèque saine avec des exemples, comme celle officielle
  • une antenne externe
  • bonus: un prix compétitif
  • un autre bonus: j'espère un "vrai" bouclier, donc aucune soudure requise et quelques broches encore facilement utilisables pour les capteurs.
tuomassalo
la source

Réponses:

3

Cette bibliothèque devrait fonctionner avec à peu près tout ce qui contient le module M10.

Je n'ai d'expérience qu'avec les modules SIM900. J'ai trouvé le moins cher sur EBay.

Bien qu'interfacer avec ces choses puisse être un défi au début, il vous suffit de lire le manuel de toutes les commandes AT et de les exécuter. J'ai écrit quelques fonctions qui peuvent aider:

Remarque: vous pouvez remplacer en toute sécurité toutes les instances de DEBUG_PRINTet DEBUG_PRINTLNpar Serial.printet 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
la source
3

Je recommanderais le bouclier officiel Arduino GSM .

Manihatty
la source
Lequel recommandez-vous? Envie d'élaborer?
Ricardo
1
Bouclier Arduino GSM . J'utilise ceci, son bon fonctionnement et son bouclier Arduino officiel.
Manihatty
Malheureusement, le bouclier officiel Arduino GSM est désormais abandonné.
Hamish_Fernsby
2

J'ai fini par commander une carte Elechouse qui utilise la puce M10. On en a trouvé un sur eBay pour 59 USD. Cela semble bien fonctionner avec la bibliothèque officielle.

Comme le dit le manuel, il faut lui donner une alimentation externe - le câble USB ne suffit pas!

tuomassalo
la source
avez-vous trouvé la carte elechouse fiable, est-ce qu'elle envoie / reçoit des gprs ok?
Hamish_Fernsby
La 2G est-elle prise en charge dans votre pays? Au moins en Europe, il est prévu de désactiver le réseau 2G et le module que vous avez choisi ne prend pas en charge la 3G
gabonator
0

LinkitOne - ok pas un bouclier mais plutôt une carte contrôleur Arduino compatible avec GSM / GPRS / GPS / Wifi intégré. La bibliothèque comms n'a pas autant de méthodes de diagnostic que par exemple celle d'Adafruit, mais elle était facile à configurer et fiable. Le principal inconvénient du LinkitOne était qu'il utilise un processeur différent d'Arduinos, de sorte que de nombreuses bibliothèques Arduino ne sont pas compatibles, par exemple pour les appareils I2C.

Version Adafruit Fona SIM808 2G Shield. disposition du blindage mais les en-têtes empilables doivent être achetés et soudés séparément. Les brochages par défaut fonctionnent avec Uno, mais les mods sont requis pour Mega. La bibliothèque propose de nombreuses méthodes de diagnostic pratiques (tension de la batterie, puissance du signal, etc.). travaillé avec giffgaff SIM prépayée mais pas vodafone pour une raison quelconque. SMS a bien fonctionné. Je pouvais me connecter à GPRS mais obtenir du HTML à partir d'un site Web ne fonctionnait pas.

DFRobot SIM808 GPS / GPRS / GSM Shield - Connecteurs de blindage empilables pré-câblés, les instructions pour télécharger le code et exécuter l'appareil sont compliquées et vagues. Je n'ai même pas pu obtenir une connexion de base à l'Arduino pour travailler. Soit la bibliothèque est très boguée, soit mon appareil était défectueux.

SEEEDStudio 113030009 Bouclier GPRS avec antenne et support de carte SIM externe V3.0 Je vais probablement essayer ceci la prochaine fois.

Carte GSM Arduino officielle SUPPRIMÉE

Module GSM / GPRS Sparkfun - SM5100B DISCONTINUÉ

Hamish_Fernsby
la source