Pregunta:
SerialGSM para escudo GSM sin software
user1584421
2014-06-23 14:40:03 UTC
view on stackexchange narkive permalink

SerialGSM es una biblioteca para simplificar los escudos GSM.

Este es un código de muestra para enviar SMS:

  #include <SerialGSM.h> # include <SoftwareSerial.h>SerialGSM cell (2 , 3); void setup () {Serial.begin (9600); cell.begin (9600); cell.Verbose (verdadero); cell.Boot (); cell.FwdSMS2Serial (); cell.Rcpt ("+ 972123456789"); cell.Message ("hola mundo"); cell.SendSMS ();} void loop () {if (cell.ReceiveSMS ()) {Serial.println (cell.Message ()); cell.DeleteAllSMS (); }}  

Como puede ver, usa software serial.

Tengo la intención de usar esto para mi tesis escolar, pero estoy usando un escudo, así que gané No usaré Software Serial.

Lo que me molesta es esta línea

  SerialGSM cell (2,3);  

En mi caso, ¿lo declaro así ?:

  SerialGSM cell (0,1); 

¿O habrá conflictos con el serial?

EDITAR: En otras palabras, ¿cómo declaro el objeto SeralGSM usando una serie de hardware y no una serie de software?

Dos respuestas:
#1
+5
Peter Bloomfield
2014-06-23 20:41:07 UTC
view on stackexchange narkive permalink

SerialGSM está diseñado para trabajar con software serial, como puede ver en la declaración de clase en el encabezado SerialGSM.h :

  class SerialGSM: public SoftwareSerial {...};  

Desafortunadamente, cambiarlo para usar hardware serial es más complicado de lo que parece. Hay dos formas posibles de hacerlo:

  1. Derivar de HardwareSerial en lugar de SoftwareSerial . Esto le daría flexibilidad, pero tendría que encargarse de pasar todos los datos correctos al constructor HardwareSerial , que es bastante complicado.

  2. No derive de nada. Utilice el objeto global Serial y reemplace manualmente todas las llamadas a funciones en serie con sus equivalentes Serial.xxx () . Esto probablemente sea más fácil, pero lo restringe a un puerto serie específico.

Ambos enfoques involucran bastante codificación, por lo que no son tareas triviales. También es importante tener en cuenta que SerialGSM utiliza actualmente el objeto global Serial para generar información de depuración. Tendría que eliminarlo o modificarlo antes de convertirlo a serie de hardware, o de lo contrario podría interferir.

¡Muchas gracias! Ok, si ese es el caso, puedo usarlo en modo de serie de software. Ahora, tengo una unidad gps que también quiero usar. Eso significa, conecte el escudo y use la biblioteca SerailGSM, y también conecte el gps en los puertos 0 (y 1 si quiero que el gps reciba datos), y use Serial.begin (4800); para iniciar la recepción en serie?
Eso debería funcionar, aunque tenga en cuenta que `SerialGSM` envía información de depuración al serial del hardware. Eso significa que si conecta el hardware TX a su GPS, probablemente saldrá mal.
OK, otro enfoque sería usar arduinos como ejemplo de envío de sms. la cosa es que tengo este escudo https://www.sparkfun.com/products/9607, con el chipset SM5100B. ¿Sabes si el ejemplo de arduino de envío de SMS funcionará con este escudo?
Nunca he usado ese escudo, así que me temo que no lo sé. Sin embargo, parece que SparkFun tiene su propio código de muestra: https://github.com/sparkfun/SM5100B_Cellular_Shield/blob/master/Firmware/Cellular_Shield_Passthrough_b/Cellular_Shield_Passthrough/Cellular_Shield_Passthrough.pde
#2
+2
user1584421
2014-06-24 20:41:16 UTC
view on stackexchange narkive permalink

No importa, fui con el ejemplo de SMS GSM de arduino 1.0.5 (no sé la versión de arduino IDE que incluye esto) y funciona bien.

Si está considerando usar SerialGSM biblioteca no es necesario!

PRECAUCIÓN: En la biblioteca de Arduino, cuando declara el número de teléfono, debe usar el formato internacional

(Gracias bloomfield por la información que proporcionó en la respuesta anterior)



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...