Olá, estou fazendo uma Aplicação Android juntamente com Arduino, e como sou iniciante nas duas areas possuo um codigo um tanto quanto cru ainda, mas a minha real duvida é : no meu codigo utilizei o AsyncTask para enviar dados do android para o arduino , mas gostaria de receber dados do arduino para o android, ou seja gostaria de ter um FeedBack dos meus comandos.
Ambos estao comunicando perfeitamente, porem nescessito dessa resposta do arduino.
aki estao os codigos do meu app e do arduino.
Arduino:
include <SPI.h>
include <Ethernet.h>
// A linha abaixo permite que voce defina o endereço
// fisico (MAC ADDRESS) da placa de rede
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// Os valores abaixo definem o endereço IP, gateway e máscara.
// Configure de acordo com a sua rede.
IPAddress ip(192,168,3,100); //Define o endereço IP
IPAddress gateway(192,168,3,1); //Define o gateway
IPAddress subnet(255, 255, 255, 0); //Define a máscara de rede
int led_port = 5;
EthernetServer server(80);
void setup()
{
Ethernet.begin(mac, ip, gateway, subnet); //Inicializa o Ethernet Shield
Serial.begin(9600);
Serial.println(“Servidor on_line”);
Serial.println(Ethernet.localIP());
pinMode(led_port, OUTPUT);
}
void loop() {
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.print("Command: ");
Serial.println©;
if (c == ‘1’) {
digitalWrite(led_port, HIGH);
Serial.println(“Led status: 1 (ON)”);
client.println(“Led status: 1 (ON)”); //aqui envia do arduino para o android
}
if (c == ‘0’) {
digitalWrite(led_port, LOW);
Serial.println(“Led status: 0 (OFF)”);
client.println(“Led status: 0 (OFF)”); //aqui envia do arduino para o android
}
if (!client.connected()) {
client.stop();
}
}
}
delay(1000);
client.stop();
}
}
Android :
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
public class MainActivity extends AppCompatActivity {
private static Socket socket;
private static PrintWriter printWriter;
String message ="";
private static String ip = "192.168.3.100";
int port = 80;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void send_text(View v){
message = "1";
myTask mt = new myTask();
mt.execute();
}
public void send_text2(View v){
message = "0";
myTask mt = new myTask();
mt.execute();
}
class myTask extends AsyncTask<Void,Void,String>{
@Override
protected String doInBackground(Void[] params)
{
try {
socket = new Socket(ip,port);
printWriter = new PrintWriter(socket.getOutputStream());
printWriter.write(message);
printWriter.flush();
printWriter.close();
socket.close();
}catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
}