2011-08-25

Usando a placa SIM900

Placa de Desenvolvimento SIM900.


Aqui um pequeno levantamento que fiz, para um trabalho da faculdade:

Comandos AT:
OBS: Utilize o comando AT+CLAC, para listar todos os comandos AT
Manual de comandos AT do SIM900: SIM900_ATC_V1_00.pdf
Comando
O que faz?
Observações
Disca para um número
Chamada de voz
Tem que ter um ponto e virgula no final.
ATH0
Encerra ligação
Desliga a chamada de voz
ATH3
Encerra GPRS
ATLx
Volume x é um número de 0 a 9
AT+CLIP=1
Ativa o identificador de chamadas do SIM900
AT+CRC=1
Ativa o identificador de tipo de chamada
Voz, dados, ...
AT&W
Grava configurações
Nãograva APN e outras configurações de rede.
Comandos relacionados ao GPRS
AT+CIPMUX=1
Ativa multiplas conexões por GPRS
Segue o padrão TCP/IP e permite usar várias portas TCP, sem isso não podemos usar muito bem protocolos HTTP e FTP
AT+CSTT=”apn”,”user”,”pass”
Configura APN
Sem isso o GPRS não funciona!
Exemplo operadora Oi:
AT+CSTT=”gprs.oi.com.br”,”oi”,”oi”
AT+CIICR
Conecta à rede GPRS
Precisa conectar para requisições TCP/UDP
AT+CIFSR
Exibe o endereço IP, atribuído à placa
Bom para sabermos se estamos conectados ou não.
AT+CIPSTATUS
Estado das conexões TCP/IP
AT+CDNSCFG=”8.8.8.8”,”8.8.4.4”
Configura DNS
8.8.8.8 e 8.8.4.4 são DNSs válidos da Google!
Após configurar os DNSs, o IP pode ser usado o nome do servidor nos comandos com o AT+CIPSTART
AT+CIPSTART=x,”TCP”,”IP”,”PORTA”
Conecta a um servidor
(1) x é o número da conexão se estiver usando CIPMUX=1 caso esteja com CIPMUX=0 não é necessário este parâmetro.
AT+CIPCLOSE=x
Fecha a conexão x
(1)
AT+CDNSGIP=”fazzi.eng.br
Resolve o IP de um hostname válido
AT+CIPSEND=x
Envia um comando de protocolo para a conexão x
(1)
AT+CIPSHUT
Desconecta tudo
Envio de SMS
AT+CMGF=1
Inicia modo SMS
AT+CMGS=”+55xxx”
Número de celular de destino
xxx é o número do celular, deve-se incluir o DDD, DDI e operadora são opcionais.
> msg CTRL+Z
msg é o texto da mensagem a ser enviada.
Usando o terminal deve-se usar um CTRL+Z para terminar e enviar a msg,
Usa-se ASCII 26 (hexa 0x1A)
Sequência acesso à FTP
AT+CIPMUX=1
Multiplexado
AT+CSTT="gprs.oi.com.br","oi","oi"
APN
AT+CIICR
Conexão
AT+CIFSR
Exibe IP da conexão
AT+CIPSTART=0,"TCP","70.84.174.162",21
Conecta ao servidor FTP à conexão 0
AT+CIPSEND=0
Envia comandos à conexão 0
Sempre deve-se aguardar a conexão “OK”
>user anunakin CTRL+J CTRL+Z
user login
CTRL+J é o ASCII 10
AT+CIPSEND=0
>pass ssseeennnhhhaa CTRL+J CTRL+Z
pass senha
AT+CIPSEND=0
cwd www CTRL+J CTRL+Z
muda de diretório
Exemplo via terminal Linux minicom: comando no shell do Linux:                
 minicom -D /dev/ttyUSB2 -b 19200
RDY
+CFUN: 1
+CPIN: READY
+CREG: 0
+CREG: 2
+CREG: 1,"3016","4E71"
Call Ready                        Neste ponto a placa SIM900 já está ligada e conectada à rede GSM
AT+CIPMUX=1
OK
AT+CSTT="gprs.oi.com.br","oi","oi"                                                                    
OK                                                                                                    
AT+CIICR                                                                                              
OK                                                                                                                                                                    
AT+CIFSR                                                                                              
187.124.14.63                       Placa conectada via GPRS                                                                 
AT+CIPSTART=0,"TCP","70.84.174.162",21                                                                
OK                                                                                                
0, CONNECT OK                                                                                        
+RECEIVE,0,74:                                                                                        
220-FTP server ready.                                                                                
220 This is a private system - No anonymous login
AT+CIPSEND=0                                                                                          
> user anunakin                                                                                      
                                                                                                     
0, SEND OK                                                                                            
                                                                                                     
+RECEIVE,0,41:                                                                                        
331 User anunakin OK. Password required                                                              
AT+CIPSEND=0n                                                                                        
> pass xxxxSenhaDoFTPxxxx                                                                                                      
0, SEND OK                                                                                            
                                                                                                     
+RECEIVE,0,93:                                                                                        
230-User anunakin has group access to:  anunakin                                            
230 OK. Current restricted directory is /                                                            
AT+CIPSEND=0                                                                                        
> cwd www                                                                            
0, SEND OK                                                                                            
                                                                                                     
+RECEIVE,0,35:                                                                                        
250 OK. Current directory is /www
Transferência de dados por FTP
Copiaremos o arquivo TESTE.TXT presente na pasta www
Este arquivo contém o seguinte texto:
“TESTE DE ARQUIVO NO SERVIDOR!”
AT+CIPSEND=0
>pwd CTRL+J CTRL+Z
lista o diretório atual
AT+CIPSEND=0
>pasv CTRL+J CTRL+Z
O comando PASV, diz ao servidor que usaremos o modo passivo, o servidor responde com a seguinte sequência:
227 Entering Passive Mode (70,84,174,162,79,144)
Os primeiros 4 números são o IP do servidor e os dois últimos a porta aonde conectaremos para esperar os arquivos, e listagens (comando LIST)
79 é o hexa 4F
144 é o hexa 90
4F90 é a porta que em decimal é 20368
Essa dos hexas é o pulo do gato sem isso nada de copiar um arquivo...
AT+CIPSTART=1,"TCP","70.84.174.162",20368
Abrimos outra conexão ao servidor na porta 20368, essa é a conexão 1
AT+CIPSEND=0
Todos os comandos continuam na conexão 0
>retr TESTE.TXT CTRL+J CTRL+Z
Solicitamos o arquivo TESTE.TXT
Após isso o arquivos será enviado pela conexão 1, e ao termino esta conexão será fechada pelo servidor.
LOG no minicom:
AT+CIPSEND=0                                                                                          
> pwd                                                                                                
                                                                                                     
0, SEND OK                                                                                            
                                                                                                     
+RECEIVE,0,37:                                                                                        
257 "/www" is your current location                                                                  
AT+CIPSEND=0                                                                                          
> pasv                                                                                                
                                                                                                     
0, SEND OK                                                                                            
                                                                                                     
+RECEIVE,0,50:
227 Entering Passive Mode (70,84,174,162,79,144)                                                      
                                                                                               
AT+CIPSTART=1,"TCP","70.84.174.162",20368                                                            
OK                                                                                                    
                                                                                                     
1, CONNECT OK                                                                                        
AT+CIPSEND=0                                                                                          
> retr TESTE.TXT                                                                                              
                                                                                                     
0, SEND OK                                                                                            
                                                                                                     
+RECEIVE,0,30:                                                                                        
150 Accepted data connection                                                                          
                                                                                                     
+RECEIVE,1,33:                                                                                        
TESTE DE ARQUIVO NO SERVIDOR!
                                     
+RECEIVE,0,94:                                                                                        
226-File successfully transferred                                                                    
226 0.008 seconds (measured here), 3.89 Kbytes per second                                            
                                                                                                     
1, CLOSED

Espero que ajude a galera!

2011-05-26

Android and Motorola ATRIX, Pinguino 8 bits say Hello!

I made a small test with Android, USB OTG cable, a modded USB hub and Pinguino 8bits board.

It uses a small .pde sample:


#define PIC18F4550

int counter = 0;
void setup(){
    Serial.begin(9600);
    Serial.print("Hello Android!");
}

void loop(){
char str[50];
char numstr[10];

str[0]=0;
delay(500);

strcat(str,"From Pinguino: Hello Android: c=");

counter++;
uitoa(counter,numstr,10);
strcat(str, numstr);
strcat(str,"\r\n");

CDC.print(str,strlen(str));

if(counter>10000)
 counter = 0;

}


The Pinguino 8bits board:


Atrix detects Pinguino and loads CDC driver, that phone already have CDC driver... I think it is because Google wants use ADK project too, but yes We did it before! :P


Now I want to see that working...

Man! this works! nice not? 




2011-05-25

Usando a rede do PC Linux via USB no Android (ATRIX)

Bom vamos lá então... rede do cel para o PC por USB ...

Como Eu falei na lista Android-Brasil, para fazer o inverso do tether, e acessar a internet via USB/PC e que o tether deveria funcionar em mão dupla aqui vai um guia rápido, para celulares rootados, testei no meu ATRIX:

Após conectar o celular pela USB, deixe o modo de conexão da USB em nenhum!

1- Baixe e instale o programa http://code.google.com/p/android-wired-tether/ (versão mais nova que tiver lá!)

2- Instale o programa Android Terminal Emulator e o Busybox pelo Market

3- Desligue o WIFI e a Conexão de dados do Celular, assim não vai tentar gastar seu pacote 3G, nem usar o wifi ...

4- No PC! Habilite o roteamento de pacotes no PC (Ubuntu LINUX), precisa de acesso root no PC também (pode usar sudo, os comando abaixo estão sem o sudo, suponho ainda que a rede de saída para internet em seu PC é eth0):

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

5 - Abra o programa WIRED-TETHER

6 - No programa wired-tether ative o tether via USB.... ainda não vai funcionar

7- No PC, aguarde uns segundos até que o PC (Ubuntu LINUX) conecte e digite o comando:

ifconfig usb0

Anote o endereço IP da rede em USB0 aqui é: 172.20.23.253

Se a rede em usb0 não estiver com endereço IP ative-a com (use sudo, se não estiver como root):
dhclient usb0

rode o ifconfig usb0, novamente e anote o IP

7 - Abra o Android Terminal Emulator, (pode ser feito pelo adb shell)
su -
ifconfig usb0

Verifique se há IP e se está na mesma faixa do IP anotado no PC

No celular adicione o PC como roteador para seu celular:

route add default gw IP_ANOTADO

Aqui ficou assim:
route add default gw 172.20.23.253

8- Ainda no celular, é só configurar um DNS ou não encontra os servidores e não navega ...
setprop net.dns1 8.8.8.8
echo "nameserver 8.8.8.8" > /etc/resolv.conf

Testei aqui e funcionou, isso ai é mais ou menos o mesmo que Eu fazia no PalmOS lá no Palm m130... 
Me bati no pondo do DNS pois nem sabia desse comando setprop do Android... 

P.S. Meu ATRIX só tá rootado e esta com ROM retail, não tem mais nada de especial e não instalei nenhum modulo no kernel nem nada... 

Cabo USB OTG (host mode) para ATRIX, Fácil? - DIY!

Aqui vamos, na verdade quem tem um ATRIX já deve possuir uma base que faz isso, mas o legal é fazer na unha (DIY).

Diferente do Xoom o ATRIX precisa de energia no pino 1 do cabo USB OTG, reparem no fio branco ele fornece energia da fonte para o pino 1 da USB.


ALERTA:  Verifique se a fonte do seu USB hub é regulada, ou irá queimar o seu aparelho!


OBS: Para verificar isso use um multimetro, se a medição for por volta de 5V pode usar, se for 7V ou mais é fria, compre outra fonte, ou localize o regulador de tensão para 5V na PCB do USB hub.



Adaptador fêmea-fêmea, mesma coisa, como ainda não chegou meu cabo microUSB para USB A fêmea... preciso deste adaptador. :-P

Pen Kingston 16GB detectado!

Resultado dos comandos "lsusb" e "uname -a", precisa do Busybox, (É isso mesmo BASH no ATRIX e com Advanced Shell do Gentoo/Linux!)

Bagulheira ligada ao USB hub, modificado, reparem nos leds do hub, significa dispositivos detectados.

A bagulheira ai funciona nos mesmo moldes das bases do Atrix, o USB hub modificado continua a funcionar no Xoom, mesmo porque há hubs que fornecem energia sem precisar da ponte lá...

Pronto, agora o próximo passo é ligar uma placa PIC32 (Pinguino32X) ao ATRIX e XOOM! ;-)

2011-05-24

Cabo USB OTG (host mode) para Xoom, Fácil! - DIY!

Eis um passo a passo de como construir um cabos USB OTG (host mode).
OBS: Requer Android 3.1 HoneyComb!
1- Desmonte um cabo micro USB, usei um da Nokia que tinha aqui... usei um estilete para remover a borracha do cabo e abrir a proteção metálica.


 2- Solde os pinos 4 e 5, conforme pinagem na figura 3, mais a frente... pouco espaço? é difícil mesmo... tem de ser só um pingo de solda, clique na foto para um visão melhorada.

 3- Pinos USB os cabo micro USB que têm por ai e vêm com os celulares (by wikipedia)
 4- Depois use um adaptador USB fêmea/fêmea, com ele você conecta um HUB USB e pluga um monte de trecos...


 5- Só plugar no Motorola Xoom....


6- Detecta na hora, como um USB hub! (é isso mesmo instalei o bash no xoom e com os recursos do Gentoo/Linux!)
O cabo sem mais nada é detectado como um USB hub!

7- Só plugar um pendriver e pronto...

8- Como meu pen, é formatado em ext3, montei na unha:
mount -t ext3 -o rw /dev/block/sda1 /mnt/usbOTG

9- HUB USB com fonte externa, Teclado USB e Mouse wireless

10- Temos até um cursor do mouse, e o conjunto funciona em alguns jogos...

2011-05-04

Pinguino32X by OLIMEX.com

Just received my new 2 develop sample Pinguino32X boards, that boards uses a PIC32MX440.
80MHz, 256K of Flash.