collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Módulo gsm  (Lida 29830 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #30 em: 05 de Março de 2016, 13:59 »
offtopic. comprei um modulo gsm ebay percisamente o gt06 que apesar de funcionar aquilo faz barulho iritante, parecido aquele quando se tem os telemoveis perto dass colunas, quando  recebe um sms ou chamada.
Até liguei na moto e o barulho é o mesmo.  Dá logo nas vistas.


Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Módulo gsm
« Responder #31 em: 05 de Março de 2016, 14:18 »
calhou, meter em hex.
O basico  é localizar a letra N e W, copiar para as variaveis latitute e longitude e meter um espaço.

Código: [Seleccione]
void coordendas_gps(void)
{
memcpy (data2-10 , buffer , 100);  //copia do buffer para data2 e apaga +GPSINF: (No data2 fica altitute latitude longitude velocidade,speed,...)
pch = strstr(data2,"N");  //Localiza a latitude até  letra N
for(char i=0;i<11;)
{
Latitude[10-i]= *(pch-i);  //Aqui o ciclo for copia  do N para trás ficando na variavel latitude assim 3051.8007,N .
i++;
}
Latitude[9] ='N';  // substitui a virgula por N
Latitude[10]= 0x00; //NULL   // apaga o N.
}
r

Vê isto:
http://arduiniana.org/libraries/tinygpsplus/

Funcional, testado, simples.
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #32 em: 16 de Março de 2016, 10:56 »
Bom dia,
o problema é que nao estou a usar nada de arduino  mas sim o avr studio. Por isso e que tenho tido  dificuldades pelo caminho, mas ja há luz ao fundo do tunel.

Consegui e ta a funcionar prefeitamente tanto se fizer uma chamada como enviar uma sms ele retorna um sms com as coordenadas onde está.  O código testado durante 2 dias nunca falhou. Agora fui acrescentar os restantes numeros de telefone e o programa deixa de funcionar.
Se tiver USART_putstring envia o sms se colocar o if ja nao envia sms. e queria saber o porque, porque a variavel "telefone" tem o meu numero telefone e so apaga no final do ciclo.

Código: [Seleccione]
if (ordem == 4) {
USART_putstring("AT+CGPSINF=32\r\n");  // le coordenadas
_delay_ms(200);
coordenadas();   // converte coordenadas lat e long           
_delay_ms(200);
if ( strcmp(telefone, "966*****") == 0){
USART_putstring( "AT+CMGS=\"+351966****\"\r");  //Assim nao envia nem chega a entrar dentro do if
lcd_msg("zzzzzzzzzzzzzzzz2");
_delay_ms(3000);
}
_delay_ms(100);
USART_putstring("A minha localizacao http://maps.google.com/?q=");
USART_putstring(Latitude);
_delay_ms(20);
USART_putstring(Longitude);
_delay_ms(20);
USART_send(0x1A);
lcd_clear();
lcd_gotoxy(0, 1);
lcd_msg("envio de mensagem ok");
_delay_ms(3000);
limpa();
lcd_clear();
lcd_msg("aguardar....");
memset(telefone, 0, 100);
ordem = 3;

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Módulo gsm
« Responder #33 em: 16 de Março de 2016, 22:30 »
Delays com fartura no meio do código.
Podes ás mesma olhar para a biblioteca e tirar ideias.
Que variavel é esse telefone?
É um array de chars?
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #34 em: 17 de Março de 2016, 13:53 »
Sim e telefone e um char arrays.

. Os delays e para dar tempo ao modulo responder, se calhar nem percisa de tantos.

Agoras as coordenadas o que menos preocupa.

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Módulo gsm
« Responder #35 em: 17 de Março de 2016, 14:28 »
Onde está a declaração dessa variável? Se não tiver um '\0' no final, duvido que isso funcione

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #36 em: 17 de Março de 2016, 14:46 »
Esta declarada no inicio do programa.Nao tem \0 no fim, assim como no if anterior com os 4 numeros e funciona.

Logo posso postar codigo todo.

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Módulo gsm
« Responder #37 em: 19 de Março de 2016, 13:01 »
Tem que ter o '\0', senão o strcmp não tem como saber onde termina a string.
Como tinhas dito que não estava a funcionar, pensei nessa possibilidade.
O mais provável é que o '\0' lá esteja, dependendo da forma como declaraste isso

Offline norbertomartins

  • Mini Robot
  • *
  • Mensagens: 1
Re: Módulo gsm
« Responder #38 em: 14 de Abril de 2016, 22:12 »
Também comprei um modulo com o sim808, mas estou com dificuldades e registar na rede. Só tentei na rede MEO.

Sabem se é necessário algum cartão sim em especial?

Testes que efetuei:

Após ligar o modulo o sinal é 0

AT+csq

+CSQ: 0,0

OK



Consigo apanhar sinal dos 3 operadores.

AT+COPS=?

Call Ready

SMS Ready

+COPS: (1,"TMN","TMN","26806"),(3,"vodafone","voda P","26801"),(3,"OPTIMUS","OPTIM","26803"),,(0-4),(0-2)


Registo manualmente

AT+COPS=2,0,"TMN"

OK

O sinal passa a ser 31


AT+CSQ

+CSQ: 31,0

OK





AT+COPS?

+COPS: 2


se verificar se está registado, responde que não

AT+CREG?

+CREG: 0,0

Se tentar ligar também não dá

ATD+35196xxxxxxx;

NO CARRIER


Em temos de rede acho que sim, pelos menos consigo ligar-me a rede meo sem antena ligada. O GPS +/- 20segundos e tenho coordenadas +/- diferença 5metros da casa.

RALAX: sim consegues usar no arduino sem problemas.

Agora isto aqui está mau,lcd e uart ok, mas agora  nao consigo imprimir buffer uart rx para o lcd, se for uma letra consegui agora frase OK nao estou a conseguir, já ando aqui a 1 dia e nao consegui. Alguma dica.


Citar
extern void lcd_cmd(char byte, unsigned char rs);
extern void lcd_msg(char *str);

main.c

volatile int i=0;
volatile uint8_t buffer[20];

int main(void)
{
   sei();
   DDRD = 0b11100000;
   USART_init();   
   lcd_begin();
   lcd_msg("test usuart avr ");

   while(1)
   {      
         lcd_gotoxy(0,1);
             while(buffer)
             lcd_cmd(buffer[i++], 1);
         lcd_msg("\r\n");
   }
}

ISR(USART_RX_vect)
{
    buffer=UDR0;       
    i++;
}

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #39 em: 15 de Abril de 2016, 20:29 »
No meu caso meti o cartao telemovel desliguei o pin desliguei o 3G ficando apenas o 2G,

Depois  meti o cartao  no modulo e ficou a funcionar.

Este site ajuda com os commandos :http://m2msupport.net/m2msupport/module-tester/

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #40 em: 16 de Abril de 2016, 17:38 »
Boa tarde,
Estou aqui a limar umas arestas, e queria apagar todas as mensagens que não  pertence a condição do if

if ( (strcmp(telefone, "96****") == 0) && strcmp(mensagem, "\0x0AFind me\0x0D") == 0) {
}
aqui envia a mensagem sem problemas, agora se acrescentar por baixo
else{
}
para apagar todas as restantes mensagens.
O problema é  que mesmo que envie sms certo ele vai para o else  e nao para o if.  Onde estou a falhar?
agradeço

Código: [Seleccione]
if (ordem == 5) { // if principal
memcpy (mensagem , data2 , 20);
memcpy (telefone - 26 , data1 , 100);
if ( (strcmp(telefone, "9******7") == 0) && strcmp(mensagem, "\0x0AFind me\0x0D") == 0) {
lcd_clear();
USART_putstring("AT+CMGDA=");
USART_putstring("\"DEL ALL\"\r\n");                     // apagar todas mensagem
_delay_ms(10);
memset(mensagem, 0, 100); // apaga variavel mensagem.
limpa(); // limpa as restantes variaveis.
_delay_ms(100);
ordem = 4; // encaminha para outro if e envia o sms. Até tudo ok.
}
else {
USART_putstring("AT+CMGDA=");
USART_putstring("\"DEL ALL\"\r\n");                     // apagar todas mensagem
limpa();
lcd_clear();
lcd_msg("msg desconhecida");
ordem = 3;
}
}

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #41 em: 24 de Abril de 2016, 23:36 »
resolvido primeiro comparo a mensagem e segundo vejo se a mensagem é igual com 2 if's.
O código parece estar finalizado, varias chamadas e mensagens e respondeu e o módulo respondeu sempre.
Fonte de alimentação 12v  para 3.9v testado e a funcionar.
Um pequeno curto circuito entre vbat e gnd  com um condensador e fritei o modulo. Agora fico em stand by $$.



 

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #42 em: 16 de Junho de 2016, 22:57 »
Boa noite estou aqui a começar a desenhar a pcb e precisava de uma opinião.
A fonte que vai converter dos 12v do carro para os 3.8v para alimentar o modulo e o atmega é o que está no manual.
A minha questão é se condensadores chegam ou acrescento um condensador maior a saída. Uma vez que o modulo pode  precisar 2A segundo o manual. 
fonte: http://cl.ly/2B0n1R0J2P0l

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: Módulo gsm
« Responder #43 em: 16 de Junho de 2016, 23:51 »
Boa noite estou aqui a começar a desenhar a pcb e precisava de uma opinião.
A fonte que vai converter dos 12v do carro para os 3.8v para alimentar o modulo e o atmega é o que está no manual.
A minha questão é se condensadores chegam ou acrescento um condensador maior a saída. Uma vez que o modulo pode  precisar 2A segundo o manual. 
fonte: http://cl.ly/2B0n1R0J2P0l



Para teres uma boa linha de alimentacao p o modem, aconselho a nao menos de 1000uF. Se tiveres espaco, poe ainda mais um de igual valor.

Alguns modems GSM sao mt esquisitos c a alimentacao e nao gostam de ver micro-sags na tensao. Outros sao mais robustos. Depende do fabricante pois cada um tem a sua implementacao.

Se a BOM estiver apertada, o q eu costumo fazer eh comecar com 470uF e ir subindo ateh a coisa comecar a trabalhar relaxada.
Se tiver BOM solta e espaco na PCB, entao ponho logo 2000uF.

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Módulo gsm
« Responder #44 em: 19 de Junho de 2016, 00:30 »
Estou aqui a desenhar a pcb mas acho que vou fazer asneira.
É uma placa de 1 so lado, e fiz tudo no lado button e virei o atmega para o lado button,  e agora estou com a impressão que quando for para soldar o atmega fica  ao contrario de patas para o ar certo?
O atmega fica no lado tem cobre e os restantes componentes no lado de cima.
link foto: http://cl.ly/282F2u0Q1K0f
« Última modificação: 19 de Junho de 2016, 00:43 por dio123 »