Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

28/10/2011 #21


Tiene que ser lo mismo amigo xq sigue siendo basic el lenguaje, con todo si tu amigo te llega a dar el programa si quieres me lo puedes mandar para yo reisarle y verle que se le puede sacar para que funcione
28/10/2011 #22

Avatar de MAXTORCAMPOS

Darkbytes: saludos, estuve viendo tu blog y te felicito hermano eres un verdugo mucho exito y gracias por los aportes.

PD: en Venezuela verdugo = que dominas muy bien lo tuyo

Pull1988; lo que pasa es que él y yo tenemos un acuerdo el me ayuda con el codigo y yo le compro los modulos a él, pero como no se MICKROBASIC, no quiero ser desleal al acuerdo osea que el me de el codigo y despues yo valla a usar otro, eso no lo quiero hacer, por eso estoy tratando de resolverlo en PBP, si no, no me queda mas remedio que fajarme aprender MICROBASIC, se que si le digo que me envie el codigo el lo hara pero no quiero comprometerme aun
28/10/2011 #23


Te entiendo amigo no hay ningun problema, la lealtad ante todo
28/10/2011 #24

Avatar de MAXTORCAMPOS

Por cierto me acaba de decir como te dije anteriormente que ya lo termino y que le funciona perfectaemente, que impotencia siento con el PBP, que es el que medio domino!!!!
28/10/2011 #25


No tranquilo ya solo falta una cosita no mas de parametrizar, yo estoy jugando con esto ya mismo tiene que salir
28/10/2011 #26


lo que pasa es que él y yo tenemos un acuerdo el me ayuda con el codigo y yo le compro los modulos a él, pero como no se MICKROBASIC,
Ostia...

Haberlo dicho antes.... pues no dicen....

ahi tengo un codigo que me quedo bestial para la comunicacion serial bidireccional....
como dicen que mandan los modulos
28/10/2011 #27

Avatar de MAXTORCAMPOS

pues como dicen en Mexico, te deseo un CHORRO de suerte jejejje, saludos

Lubeck si eso fue un chiste, lamento no haberlo entendido de todas formas es bueno tener sentido del humor, si fue una burla (que no creo que lo sea) ten cuidado que no te vallan a tildar el mensaje de inapropiado, saludos
28/10/2011 #28


Fue entre chiste y en serio

si tengo el codigo, de echo si van a unas cuantas o muchas paginas para atras(no se con exactitud), recuerdo haber puesto parte del codigo....

la parte de chiste fue lo de mandar los modulos (saldria mas caro el caldo que la albondigas, como se dice)

yo tambien te o les deseo un chorro de suerte! eso tambien es en serio...

y no entiendo que de inapropiado tiene el mensaje...
lo que entendi es que el te hace el codigo y tu le compras (y supongo que le mandas los modulos GSM) como pago. aunque suena tambien a que el vende y te manda los modulos ,pero bueno en realidad no importa... eso era chiste...

Saludos...
28/10/2011 #29


Amigo DarkBytes acabo de revisar tus aportes y me parece genial ese programita para generar hexadecimales, ahoara mi pregunta es la siguiente: yo quiero recibir un sms proveniente de un modulo al pic puedo utilizar el comando serin y poner la cadena de hexadecimal?
28/10/2011 #30

Avatar de MAXTORCAMPOS

(Lubeck ) Amigo mio te haria un dibujo a ver si asi logras entender

pero tratare otra vez, el vende los modulos y el negocio fue, si me ayuda con el codigo debo comprarle todos los demas modulos que necesite a el, cosa que me parece justa,

por otro lado te invito a que compartas el codigo bestial que tienes con nosotros, ya que nos ves que estamos desesperado y apreciariamos mucho tu ayuda

gracias de antemano
28/10/2011 #31


(Lubeck ) Amigo mio te haria un dibujo a ver si asi logras entender
pero tratare otra vez, el vende los modulos y el negocio fue, si me ayuda con el codigo debo comprarle todos los demas modulos que necesite a el, cosa que me parece justa,

Ok... te creo amigo en realidad no preste mucha atencion, y fue un chiste... ahi que quede...

por otro lado te invito a que compartas el codigo bestial que tienes con nosotros, ya que nos ves que estamos desesperado y apreciariamos mucho tu ayuda
lo haria.... pero.... como tu dices el pero....lo hice hace ya rato y suena a lo que tu digiste, pero es verdad,no tengo la menor idea de donde quedo te invito a que veas la fecha en la que estuve comentando cosas del puerto serial en este tema y por esa fecha lo termine....

en realidad por lo que digo "bestial" es porque fueron un par de subrutinas de no mas de 10 lineas y se comunicaba bidireccionalmente con PC o con otro pic... no porque tuviera algo que no este explicado en este tema....

si lo encuentro les prometo que lo subo... en realidad he subido otros con mas grado de dificultad, me explico....

intentenlo las cosas que les han o hemos dicho van por el camino que buscan...

Saludos
28/10/2011 #32


Sabes amigo lubeck estoy todavia intentanlo y logré ver que talves pueda hacerlo utilizando interrupciones, pero la verdad y siendo sincero no he manejado aun interrupciones y la verdad q no entiendo esa parte si puedes darme un mano con eso te agradeceria o talves alguna idea
29/10/2011 #33
Moderador

Avatar de D@rkbytes

Pull1988 dijo: Ver Mensaje
Hola amigo Darkbytes, muchas gracias por tu valioso aporte en mi caso me es de gran ayuda, no se si sea mucha molestia me puedas ayudar a interpretarlo un poco mejor en el lenguaje pbp, xq segun veo y no se si estoy bien esq con el programa que adjuntas tu puedes mandar un sms a esos numero que citas ahi, de ser asi el problema continua xq lo que quiero es receptar un sms en el modulo gsm y este le mande al pic para que el pic active un led, el proglema esq la operadora movil manda un encabezado mas o menos asi: +CMGR: "el numero del q envia","REC UNREAD","FECHA Y HORA DE LA LLEGADA DEL SMS" y despues de todo eso el cuerpo del mensaje com tal, por lo tanto el pic no interpreta ese encabezado ya que en mi programacion m faltan algunas cosas com mencionan otros panelistas de este foro, si sabes de alguna solucion te agradecere me la hagas conocer gracias
Saludos Pull1988
Pues lo que hace el programa que puse aquí convierte los caracteres a hex por que hay comandos AT
que tienen caracteres reservados para PBP (como las comillas y las comas etc.)
Y este programa al generar todos los caracteres en hex es mas fácil el envio con SEROUT
Y bien, como lo que tu quieres es mas que nada omitir la cabecera del SMS y extraer solo el mensaje
te recomiendo que le des un vistazo a la función HSERIN esta tiene varios modificadores,
entre uno de ellos esta uno que es SKIP n donde n son los caracteres que quieres saltar.
"Skip n received characters" No he usado ese modificador pero puedes probar y nos cuentas que tal te fue.


MAXTORCAMPOS dijo: Ver Mensaje
Darkbytes: saludos, estuve viendo tu blog y te felicito hermano eres un verdugo mucho exito y gracias por los aportes.

PD: en Venezuela verdugo = que dominas muy bien lo tuyo
Gracias. No habia escuchado eso del verdugo.
Siempre se aprende algo nuevo.
Y Gracias por tus palabras que Igualmente son reciprocas de mi parte.


Pull1988 dijo: Ver Mensaje
Amigo DarkBytes acabo de revisar tus aportes y me parece genial ese programita para generar hexadecimales, ahoara mi pregunta es la siguiente: yo quiero recibir un sms proveniente de un modulo al pic puedo utilizar el comando serin y poner la cadena de hexadecimal?
Me supongo que si recibes la cadena en bytes lo puedes hacer con la función HEX
Te sugiero que subas algo de lo que estas haciendo para poder ayudarte mejor.
;************************************************* ******************
Y bueno por otro lado creo que estamos ocupando un tema acerca de programar en PBP
por mecatrodatos y aunque se trate de resolver el asunto de los SMS en PBP
creo que se deberia de abrir un tema en particular sobre esto para dejar libre este thread.
Creo que debe estar en Tecnologías móviles
;************************************************* ******************
BYE4NOW
29/10/2011 #34

Avatar de MAXTORCAMPOS

"PULL41998 TENEMOS ESPERANZA ESTO LO DICE EN LA AYUDA DEL PBP" debemos enfocarnos en la parte que resalte de futcia,


HSERIN {ParityLabel,}{Timeout,Label,}[Item{,...}]
Receive one or more items from the hardware serial port on devices that support asynchronous serial communications in hardware.
HSERIN is one of several built-in asynchronous serial functions. It can only be used with devices that have a hardware USART. See the device data sheet for information on the serial input pin and other parameters. The serial parameters and baud rate are specified using DEFINEs:

' Set receive register to receiver enabled
DEFINE HSER_RCSTA 90h

' Set transmit register to transmitter enabled
DEFINE HSER_TXSTA 20h

' Set baud rate
DEFINE HSER_BAUD 2400

' Set SPBRG directly (normally set by HSER_BAUD)
DEFINE HSER_SPBRG 25

HSERIN assumes a 4MHz oscillator when calculating the baud rate. To maintain the proper baud rate timing with other oscillator values, be sure to DEFINE the OSC setting to the new oscillator value. An optional Timeout and Label may be included to allow the program to continue if a character is not received within a certain amount of time. Timeout is specified in 1 millisecond units.
The serial data format defaults to 8N1, 8 data bits, no parity bit and 1 stop bit. 7E1 (7 data bits, even parity, 1 stop bit) or 7O1 (7data bits, odd parity, 1 stop bit) can be enabled using one of the following DEFINEs:

' Use only if even parity desired
DEFINE HSER_EVEN 1

' Use only if odd parity desired
DEFINE HSER_ODD 1

The parity setting, along with all of the other HSER DEFINEs, affect both HERIN and HSEROUT. An optional ParityLabel may be included in the statement. The program will continue at this location if a character with a parity error is received. It should only be used if parity is enabled using one of the preceding DEFINEs. Since the serial reception is done in hardware, it is not possible to set the levels to an inverted state to eliminate an RS-232 driver. Therefore a suitable driver should be used with HSERIN. HSERIN supports the same data modifiers that SERIN2 does.
Modifier
Operation
BIN{1..16}
Receive binary digits
DEC{1..5}
Receive decimal digits
HEX{1..4}
Receive hexadecimal digits
SKIP n
Skip n received characters
STR ArrayVar\n{\c}
Receive string of n characters optionally ended in character c
WAIT ( )
Wait for sequence of characters
WAITSTR ArrayVar{\n}
Wait for character string
On 17Cxxx devices with 2 serial ports, HSERIN will only access the first port. The second port should be set up and read by accessing the registers directly.
See Also
SERIN
SERIN2
SEROUT
SEROUT2
HSEROUT

Copyright © 1999 microEngineering Labs, Inc.
All rights reserved.

<B>
</B>
29/10/2011 #35

Avatar de mecatrodatos

Para la selección del dispositivo es importante considerar: la interfaz de comunicación, los protocolos de comunicación, el modo de manejo de datos y la disponibilidad en el mercado, es importante tomar consideración que solo ciertas marcas de telefonía celular ofrecen un puerto de comunicación que permita interactuar con un microcontrolador, ente los que conozco son Nokia y Sony.
De acuerdo a los diferentes tipos de teléfono se desarrollo el protocolo de comandos AT, estas son instrucciones que conforman un lenguaje entre el hombre y un terminal MODEM, que son cadenas de caracteres ASCII que comienzan con AT y terminan con un retorno de carro (ASCII13) .Cada vez que el MODEM recibe un comando este lo procesa y emite su respuesta dependiendo como se lo haya configurado al MODEM.
Comando de configuración:

AT, es un comando cuya función es monitorear si existe una buena conexión en el canal de comunicación.
AT +CMGT= “A”, permite elegir el modo de interpretación de los datos por parte del teléfono, si la equivalencia de A = 1 los datos son interpretados como texto, es decir la secuencia de caracteres que se envían al teléfono son ASCII normales. Si A = 0 los datos son interpretados en modo PDU, por lo tanto los datos son interpretados en HEX.
Comandos para envió de SMS
AT+CMGW =”# Telefónico”, permite cargar en el teléfono la información del SMS.
AT+CMPS=”LOCALIDAD MEM”, permite enviar el SMS cargado en el teléfono.
Hay otros tantos que no me acuerdo pero que son aplicados a NOKIA, en la parte de recepción, en la eliminación de mensaje ubicados en la memoria de teléfono o en el BUZON de mensajes del mismo.
Para comunicación con pic - ( NOKIA) y el PBP los comandos son:
HSEROUT, con este comando se envía uno o más caracteres al puerto serial de hardware en dispositivos que soportan comunicación serial asincrónica.
HSERIN que tiene unas particularidades para su utilización. El tema se ve bueno y estare atento en ayudar en lo que pueda.
29/10/2011 #36

Avatar de MAXTORCAMPOS

Saludos y mil gracias mecatrodatos:

nuestro amigo Pull1998 y yo no tenemos problemas en lo de los comandos AT, pues de tanto buscar la solución a esta necesidad hemos aprendido bastante de dichos comandos, en mi caso he hecho varios programitas en Visual Basic, con el cual puedo administrar muy bien la recepción y envío de mensajes de texto y poder gobernar cosas desde el móvil con solo un mensaje, de hecho ya termine una aplicación que es para toda la casa el cual envío un mensaje al MODEM este al PC y PC a través del com2 se lo envía a un PIC por conexión Max232, hasta allí todo va muy bien, el problema radica en que quiero en vez de usar la PC de intermediario poner el MODEM directamente al PIC y poder discriminar los mensajes como lo hago con la PC, ya que con la PC le envío por ejemplo "MENSAJE ENVIADO DESDE EL NUMERO 0414158965 APAGAR BOMBA DE AGUA" y de allí solo extraigo el numero del celular y las palabra apagar bomba, y desde el PC al PIC le envío "A" al PIC ya que solo se leer un caracter, como veras lo único que nos falta es poder leer cadenas de caracteres desde el PIC, pues enviarla ya sabemos, si tienes alguna solución te estaremos agradecidísimos o alguna luz, lo que nos recomendó el amigo darkbytes es lo mas cerca de la solución que tenemos ahora estoy en eso. Un saludo y mil gracias
29/10/2011 #37

Avatar de mecatrodatos

MAXTORCAMPOS prueba este codigo y me comentas como te fue

Código:
DEFINE OSC 4                    
'DEFINE OSC 8                 
DEFINE HSER_TXSTA 20h   
DEFINE HSER_RCSTA 90h   
DEFINE HSER_BAUD 2400   
'DEFINE HSER_BAUD 4800  
'DEFINE HSER_BAUD 9600  
DEFINE HSER_SPBRG 25            
DEFINE HSER_CLROERR 1   
 
i var byte
TRISB=%00000000
PORTB=%00000000
TRISD=%00001111
PORTD=%00000000
 
FIRSTCHECK:
    HIGH PORTB.7
    PAUSE 500
    HIGH PORTB.6
    PAUSE 500
    HIGH PORTB.5
    PAUSE 500
    HIGH PORTB.4
    PAUSE 500
    PORTB=%00000000
GSM_CHECK:
HSEROUT ["AT",13]          'Enviar AT al módem seguido por un retorno de carro
HSERIN 5000, GSM_CHECK, [WAIT("OK")]'Comprobar respuesta OK, espere 5 segundos max.
HIGH PORTB.7
PAUSE 1000
HSEROUT ["AT+GMM",13]                           'Pregunte el nombre del modelo
HSERIN 5000, GSM_CHECK, [WAIT("T610 series")]   'Comprobar nombre del modelo
HIGH PORTB.6
PAUSE 1000
HSEROUT ["AT+IPR=2400",13]      'Establece la velocidad de transferencia
HSERIN 5000, GSM_CHECK, [WAIT("OK")]'Comprobar respuesta OK, espere 5 segundos max
HIGH PORTB.5
PAUSE 1000
HSEROUT ["AT+CMGF=1",13]            ''envía AT al módem seguido por un retorno de carro y salto de línea
HSERIN 5000, GSM_CHECK, [WAIT("OK")]''Comprobar respuesta OK, espere 5 segundos max.
HIGH PORTB.4
PAUSE 1000
PORTB=%00000000
BEGIN:
IF PORTB.5=1 THEN ERROR_CALL
IF PORTB.6=1 THEN ERROR_SMS
HIGH PORTB.7
pause 1000
LOW PORTB.7
if PORTD.2 = 0 then SEND_SMS
IF PORTD.3 = 0 THEN CALL_PHONE
PAUSE 1000
GOTO BEGIN
SEND_SMS:
HIGH PORTB.6
HSEROUT ["at+cmgs=",34,"xxxxxxxxx",34,13]
PAUSE 1000
HSEROUT ["este es un mensaje de prueba",26]    'ENVIAR MENSAJE
HSERIN 10000, BEGIN, [WAIT("OK")]''Comprobar respuesta OK, espere 5 segundos max.
LOW PORTB.6
GOTO BEGIN
CALL_PHONE:
HIGH PORTB.5
HSEROUT ["atd[0xxxxxxxxx];",13]
HSERIN 5000, BEGIN, [WAIT("OK")]'Comprobar respuesta OK, espere 5 segundos max.
PAUSE 2000
LOW PORTB.5
GOTO BEGIN
ERROR_CALL:
FOR i = 1 to 5
HIGH PORTB.4
PAUSE 500
LOW PORTB.4
PAUSE 500
next i
PORTB=%00000000
GOTO BEGIN
 
ERROR_SMS:
FOR i = 1 to 5
HIGH PORTB.4
PAUSE 500
LOW PORTB.4
PAUSE 500
next i
PORTB=%00000000
GOTO BEGIN
 
End
29/10/2011 #38

Avatar de MAXTORCAMPOS

Saludos Mecatrodatos,

lamentablemente estoy fuera de casa, y no traje mis juguetes para probar el código que me diste, sin embargo leyéndolo creo que su función es activar algunas funciones del MODEM y luego enviar un mensaje y esperar la palabra OK en cada devolución que reciba, ahora bien supongamos que este código nos funcione perfectamente; como haría yo para condicionar la palabra que llega desde el MODEM o sea "OK" con una variable que se llame recepción "por ejemplo" ? como seria la línea si quisiera decir por ejemplo (If OK = recepción then portb = %11111111)? eso es lo que me falta como comparar la cadena que llega desde el MODEM para hacer una determinada función, yo he escrito varios códigos para enviar y recibir desde el PIC y lo hace bien pero no se como condicionar esa cadena que viene del moden en este caso no se si al "OK" hay que meterlo en paréntesis o en corchetes o en comillas? espero me halla explicado, saludos y gracias
29/10/2011 #39


Disculpen que me meta....
es la ultima vez...

lamentablemente estoy fuera de casa,
osea que para cuando llegues a tu casa ya debe de estar el codigo???
no amigo, prueba el codigo, y ojala cuando vuelvas a postear un... "Gracias amigo Mecatrodatos con tu ayuda y con el esfuerzo que yo hice ya logre el algoritmo que necesitaba..."

o un "mira modifique el codigo y asi pienso que deberia de ser en que me equivoco..." y anexas un intento de programa aunque este mal....

y si gustan tilden mi mensaje de inapropiado... por mi no hay ningun problema...

SAludos y suerte....
29/10/2011 #40

Avatar de MAXTORCAMPOS

Pero de que estas hablando lubeck,?

escuchate a ti mismo amigo!!! te estas consumiendo en tu propia hiel, eres una persona mal intencionada, te lo dije antes y te lo repito no quiero que me hagan el trabajo no estoy acostumbrado a eso, yo se cual es tu dolor pero eso solo te puede ayudar un profesional, aunque no deberia explicar cual es la situacion lo hare para que tu mala intencion no influya a los demas, los fines de semana me voy a mi finca a descansar y eso es lo que pretendo hacer, pero eso no me priva de leer el foro y preguntar, quiero que sepas algo para mi es mucho mas gratificante decir "Gracias amigo Mecatrodatos con tu ayuda y con el esfuerzo que yo hice ya logre el algoritmo que necesitaba" a decir gracia por haberme hecho el trabajo, por ultimo debo decirte que yo soy un viejo quizas mucho mas que tu y por eso te pido que respetes, te repito yo se cual es tu dolor pero alli no te puedo ayudar yo, no voy a marcar tu mensaje como inapropiado pues no voy a caer en tu juego, y si respondi a esto fue para que los demas compañeros del foro sepan cual es la situacion, buenas noches
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.