Я устанавливаю связь TCP / IP между приложением для Android и модулем ESP8266, подключенным к Arduino uno.Я использую AT-команды для настройки сервера следующим образом:
AT + CWMODE = 1
AT + CIPMUX = 1
AT + CIPSERVER = 1,80
Я получаю ОК длякаждый.
Я хочу отправить int в приложение: 0 или 1, приложение считывает int, а затем отправляет текст, напечатанный в editText, на ESP8266
Теперь вот мой код приложения:
public class MainActivity extends AppCompatActivity {
TextView tv;
EditText txt;
EditText txt2;
Button b;
string response;
private static Socket s ;
private static PrintWriter printWriter;
String message="";
private static String ip="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b = (Button) findViewById(R.id.button);
txt = (EditText) findViewById(R.id.editText);
tv = (TextView) findViewById(R.id.textView) ;
txt2=(EditText)findViewById(R.id.editText2);
}
class myTask extends AsyncTask<Void,Void,Void>{
@Override
protected Void doInBackground(Void... params)
{
try
{ s= new Socket(ip,80);
//READING THE INPUT
BufferedReader in = new BufferedReader(new
InputStreamReader(s.getInputStream()));
while(in!=null) {
response = in.readLine();
}
//SENDING THE MESSAGE
printWriter= new PrintWriter(s.getOutputStream());
printWriter.write(message);
printWriter.flush();
post_send();
// closing all connections
// printWriter.close();
// in.close();
// s.close();
}catch(IOException e)
{e.printStackTrace();}
return null;
}
}
public void send_text(View v)
{
message= txt.getText().toString();
ip=txt2.getText().toString();
myTask mt = new myTask();
mt.execute();
Toast.makeText(getApplicationContext(),"MT
LAUNCHED",Toast.LENGTH_LONG).show();
}
public void post_send(){
Toast.makeText(getApplicationContext(),response
,Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),"Data
sent",Toast.LENGTH_LONG).show();
}
}
У меня есть 1 кнопка, чтобы создать сокет и получить любые данные, а затем отправить текст.
Когда я нажимаю на кнопку, на последовательном мониторе появляется следующее сообщение:
0, connected
поэтому я набираю:
AT+CIPSEND=0,4
Я получаю:
SEND OK
но ни один из тостов не показывает мне помощь?Что я делаю не так?