最近搞了两个项目。一个对接wifi模块的智能床垫,一个对接串口的开柜功能。分享一下,感觉对初学者有帮助。
有开发需求或者解决不了单片机通讯的可以联系我。乐意解答。vx:13335208818
对接wifi模块流程:
1.硬件方面设置好wifi模块的热点名称
2.android连接这个热点
3.用户选择家庭常用wifi热点以及密码
4.连接并将热点名称以及密码发给单片机
5.解决。
其实可以直接连接后通讯,就可以省下发送wifi热点密码的环节,但是弊端较大,用户手机必须连接我们的wifi热点,这样影响他的其他功能,还是走这个环节比较好。
通讯代码:
String dataToServer = "SETAP:\"ADAD\",\"1226545D\"";
static PrintWriter mPrintWriterClient = null;
TextView zz;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
zz = (TextView) findViewById(R.id.zzz);
new Thread1().start();
Toast.makeText(MainActivity.this, "绑定成功", Toast.LENGTH_LONG).show();
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);
}
class Thread1 extends Thread {
@Override
public void run() {
try {
Socket socket = new Socket("192.168.4.1", 5060);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
mPrintWriterClient = new PrintWriter(socket.getOutputStream(), true);
String line = mPrintWriterClient.toString();
String z = line;
zz.setText("Message from server " + line);
sendMsg();
br.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void sendMsg() {
String info = dataToServer;
Log.i("ContentOfEditText", info);
try {
Socket socket = new Socket("192.168.4.1", 5060);
OutputStream out = socket.getOutputStream();
out.write(info.getBytes("UTF-8"));
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
1649

被折叠的 条评论
为什么被折叠?



