Ver mensagens sem resposta | Ver tópicos ativos Hoje é 22 Mai 2013, 08:03



Responder Tópico  [ 8 Mensagens ] 
 Comunic. Socket entre Android e Arduino(bib. Ethernetshield) 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 18 Jun 2012, 10:58
Mensagens: 1
Mensagem Comunic. Socket entre Android e Arduino(bib. Ethernetshield)
Olá a todos. Estou fazendo meu TCC sobre Automação Residencial,
Eu tenho um Arduino com um Wishield(Shield Wireless) que utiliza a mesma biblioteca do Ethernetshield que será o servidor do projeto, e do outro lado um aplicativo Android que será o cliente do projeto, quem fará as requisiçoes. Quem fará o meio do caminho será um roteador wireless. A comunicação dos dois será feita atraves de Socket.

O objetivo é que pelo aplicativo em um celular seje possivel ligar uma lampada, um eletrodomestico,etc na residencia.

O cliente será o android e o arduino o servidor. Ja estou conseguindo ligar um led no arduino atraves de uma requisição do aplicativo android.

POREM QNDO TENTO RECEBER UMA MSG DO ARDUINO PARA O ANDROID NAO DA CERTO. ESTOU UTILIZANDO UM TUTORIAL NO TURIN_THIAGO.

GOSTARIA DE ALGUMA AJUDA OU IDEIA.


ANDROID - CLIENTE

package com.clienteandroid;

import java.io.DataOutputStream;
import java.io.DataInputStream;
import java.io.IOException;

//import com.clienteandroid.MensagemAndroid;
import android.os.Handler;
import android.os.Message;

/**
 * Classe resposável por enviar mensagens ao Servidor
 *
 * @author turim_thiago@hotmail.com
 *
 */

class Sender implements Runnable {

    private DataOutputStream out;
    private DataInputStream in;
    private boolean running = true;
    private Handler handler;
    private Message msg;
    private String sendMessage;
    private String rec1;
   

   
    public Sender(DataOutputStream out, DataInputStream in, Handler handler) {
        this.out = out;
        this.in = in;
        this.handler = handler;
    }
   
   
    @Override
    public void run() {
        while (running) {// Enquanto estiver executando

                   
           
            try {
               
           
               
                if (sendMessage != null) { // Se existir uma mensagem para
                                            // enviar
                                       
                    msg = new Message();
                    msg.arg1 = ConnectionSocket.SENDING_MESSAGE;
                    handler.sendMessage(msg); // Notifica Handler
                    out.flush();

                ****    rec1.getBytes();  // recebe informações do arduino  //Recebe msg do Arduino (NAO ESTA FUNCIONANDO)
                ****rec1 = in.WriteInt; // recebe informações do arduino  //Recebe msg do Arduino (NAO ESTA FUNCIONANDO)
                                                  //JA TENTEI USAR ESSES 2 JEITOS ACIMA PARA RECEBER E NADA

                                  *** out.writeUTF(sendMessage); // Escreve mensagem e envia para o arduino( FUNCIONANDO)
                    out.flush();
               
                    sendMessage = null; // Seta nulo na mensagem
                   
                }
               
               
               
               

            } catch (IOException e) {
                e.printStackTrace();
                msg = new Message();
                msg.arg1 = ConnectionSocket.ERROR;
                msg.obj = e.getMessage();
                handler.sendMessage(msg);
                running = false;
            }

        }
        try {
            out.close();
            in.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }



    public boolean isRunning() {
        return running;
    }

    public void setRunning(boolean running) {
        this.running = running;
    }

    public void stop() {
        running = false;
    }

    public void setMessage(String message) {
        this.sendMessage = message;

    }

    public void disconnect() throws Exception {
        msg = new Message();
        msg.arg1 = ConnectionSocket.DISCONNECTED;
        handler.sendMessage(msg); // Notifica Handler
        running = false;
        out.close();
        in.close();
    }

}

_______________________________________________________

ARDUINO - SERVIDOR


#include <WiShield.h>    // MESMA BIBLIOTECA DO EHERNETSHIELD.H


#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

// Wireless configuration parameters ----------------------------------------
byte local_ip[]    = {192,168,1,22};    // IP address of WiShield
byte gateway_ip[]  = {192,168,1,1}// router or gateway IP address
byte subnet_mask[] = {255,255,255,0};   // subnet mask for the local network
prog_char ssid[] PROGMEM    = {"ramalho"};      // max 32 bytes
unsigned char security_type = 2;    // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

// WPA/WPA2 passphrase
const prog_char security_passphrase[] PROGMEM = {"v0str03300"}// max 64 characters

// WEP 128-bit keys
// sample HEX keys
prog_uchar wep_keys[] PROGMEM = {   
  0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   0x00,   // Key 1
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   0x00,   // Key 2
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   0x00    // Key 3
};

// setup the wireless mode
// infrastructure - connect to AP
// adhoc - connect to another WiFi device
unsigned char wireless_mode = WIRELESS_MODE_INFRA;

unsigned char ssid_len;
unsigned char security_passphrase_len;
//---------------------------------------------------------------------------


Server server(9000);
Client client_a;


char i;

void setup()
{
  pinMode(7,OUTPUT);
  digitalWrite(7,LOW);
 
  Serial.begin(9600);

  Serial.println("Starting Wifi ...");
  WiFi.begin(local_ip, gateway_ip, subnet_mask);
  Serial.println("Wifi started.");

  server.begin();
  Serial.println("server ready.");
}


void loop()
{
  if(!client_a.connected()) {
     server.available(&client_a);
     Serial.println("Connected to a client.");
     client_a.println("Hello from Arduino client A!");
     
      i = '7';        
      client_a.println(i);   // ***ENVIA MSG PARA O ANDROID  (NAO ESTA FUNCIONANDO)
      Serial.println(i);
             
     
     
     
  } else {
    while(client_a.available()) {
       char c = (char) client_a.read();   // ***RECEBE MSG DO ANDROID (ESTA FUNCIONANDO)
 
       Serial.println(c);
   
    //   Serial.println(d);
       
        //    if(c == '1')
       //  {
        //   digitalWrite(7, HIGH);
        //  }
   
       //    if(c == '0')
         //{
         //digitalWrite(7, LOW);
         // }
         
               
  }  

 
  }  

}


Você não tem permissões suficientes para ver os arquivos anexados nesta mensagem.


01 Jul 2012, 16:00
Perfil
Android application
Android application

Data de registro: 01 Nov 2010, 17:29
Mensagens: 93
Mensagem Re: Comunic. Socket entre Android e Arduino(bib. Ethernetshi
Cara, não sei se tem muita gente aqui para te ajudar nesse quesito, não. Acho que a galera daqui sabe apenas Android.

Coloca no setor de Android com Arduino pra ver se tem alguém que te ajude.

Do contrário, tentar achar no http://stackoverflow.com/

_________________
Não existem problemas e sim soluções!


02 Jul 2012, 20:25
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 31 Mai 2009, 11:37
Mensagens: 259
Mensagem Re: Comunic. Socket entre Android e Arduino(bib. Ethernetshi
Fabiano, blz ?

Você alterou a forma do Android "ler" os dados. Substituindo o método readUTF para read ?

_________________
http://www.turim.wordpress.com/

@turim_thiago


04 Jul 2012, 11:11
Perfil WWW
What is Android?
What is Android?

Data de registro: 23 Jul 2012, 12:18
Mensagens: 1
Mensagem Re: Comunic. Socket entre Android e Arduino(bib. Ethernetshi
Então Fabio bom dia , esse progama qual esta no portal, testou e funcionou , pois estou fazendo a mesma ideia de TCC , para a faculdade e prescizo pouco de ajuda sobre esses temas Shield , pois queria que Shield Ethernet se conecte com roteador wi-fi , isso seria possivel. Abrços :)


23 Jul 2012, 12:24
Perfil
What is Android?
What is Android?

Data de registro: 26 Jul 2012, 10:35
Mensagens: 1
Mensagem Re: Comunic. Socket entre Android e Arduino(bib. Ethernetshi
Tente DataInputStream in para receber os dados ao inves do String rec1 que vc esta usando.


26 Jul 2012, 10:42
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 25 Nov 2011, 15:17
Mensagens: 158
Localização: Florianópolis
Mensagem Re: Comunic. Socket entre Android e Arduino(bib. Ethernetshi
Meu futuro TCC!

Automação residencial Android + Arduino

Sucesso ai para vocês

_________________
--
Att,
Leandro


21 Set 2012, 11:30
Perfil
What is Android?
What is Android?

Data de registro: 05 Dez 2012, 22:46
Mensagens: 1
Mensagem Re: Comunic. Socket entre Android e Arduino(bib. Ethernetshi
você conseguiu solucionar o problema? gostaria da sua ajuda tbm. eu estudo engenharia da computação (UFPA) e desenvolvo projetos arduino por conta própria e eu tenho uma imensa curiosidade pelo desenvolvimento deste projeto. Gostaria de aprender a comunicação android/arduino.

abraços.


05 Dez 2012, 22:50
Perfil
What is Android?
What is Android?

Data de registro: 09 Set 2011, 19:46
Mensagens: 1
Mensagem Re: Comunic. Socket entre Android e Arduino(bib. Ethernetshi
Boa tarde... utilizando comunicação e interação via socket não torna sua aplicação um pouco mais lenta (com um certo delay)? Eu fiz meu TCC todo com solicitações via URL do "cliente" Android. A comunicação se fez de forma simples e sem delay algum. Muito mais prático e funcional além, é claro, de poder controlar dispositivos de qualquer lugar do mundo que possua acesso à internet.


19 Dez 2012, 14:23
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 8 Mensagens ] 

Quem está online

Usuários vendo este fórum: ac0502, ademir.carvalhojr, alex, alexandrefett, alexsander.miranda, alexvbh, alylson, Anderson MarkZ, andre.hebeler, Aniquiler, austonrd, Bass, bbourbon, Biggs Darklighter, blurkness, BornSlip, C0GuM3I0, camilodev, Captain Typho, careisjr, Carlos Almeida, carlos.macleod, Carmizini, Clauber, cleiton_maciel, dallari, Damiani Oliveira, danielbfranco, danilosv, darllan.marinho, DAVINCE, deborazb, dkclan, Dookan, Douglas Siviotti, dramos, dreyer, e-azuos, edson dias de gusmao, eduardo.ali, eloilton, epsilva, erikopa, EvertonLB, ferrodecaju, flashking, flaviolemos, Flávio Robertgo, francismarconcini, gapler, geco, gedoor, genildof, gfgodoy, Gnomo, guilhermepilotti, HAMSES, HanNiBaLSeTDf, jackdaniel, jacquesbica, JairoCN, jcorreajr, JMurray, jonasminas, jorgeFernandes, Josinhaz, João Miguel Aguiar, Julio Assis, Juliobcosta, JuniorE, jzaires, Ki-Adi-Mundi, konos, kusanaguy, lalaine, leo, lfalcao, lfirpo, LForce, lhdiassilva, Lincoln, lisbao, Liviosousa, lucasB, Lucious, luizneto79, Luke Skywalker, Luna, m4v0, Mace Windu, mapis, marcelochiquinho, MarceloLuz, marcelosv, marinho5, masf_33, MauNunes, mauriciobreide, mirelli, nandopierre, nfaria, nglaubervasc, nocivus, onaiggac, otpor, paint-horse, pamonteiro, paulokiller, peixe, pemam.com.br, phobos, phpower1, PicsearchDroid, Qui-Gon Jinn, Rainha Amidala/Padmé, ramonrabello, reginaldofdias, renan.fernandes, renata, retardad0, Ricardo Chikasawa, ricardo_listadelphi, Roberto, rocha, rodrigosalfer, romuloff, scattonevi, sergio, SERGIO RODRIGUES, Silvio Vaz, sjta, slackware, Snappy [Bot], srmoreira, talves, teamamus, thiagotomais, tiago, Tiago Sousa Roch, tiasousa, Toks, ubiratan, vieira, weber, wesley.messias, wingdoido, Wookiees, wylken, zeantonio e 1 visitante


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2013 Portal Android - Comunidade de Desenvolvedores da Plataforma Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi