esp8266
ESP8266 简介(无线通信模块WIFI模块)
ESP8266 系列模组是安信可(Ai-thinker)公司采用乐鑫ESP8266芯片开发的一系列wifi 模组模块。
ESP8266连接方法
ESP8266有一个CH_PD引脚,该脚如果是低电平,那么ESP8266就不工作,如果CH_PD是高电平,ESP8266才能工作,具体连接图如下
一、ESP8266相关功能
1.将客户端发来的数据转发到串口;
2.串口数据转发给所有客户端
3.可连接4个客户端
4.可设置静态IP地址
5.指示灯闪烁表示无客户端连接,灯亮代表有客户端连接
二、模式类型
1:STA 模式:ESP8266模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。
2:AP 模式:ESP8266模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。
3:STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。
AP模式指令
1、设置wifi模式:AT+CWMODE=2
2、重启生效:AT+RST
3、启动多连接:AT+CIPMUX=1
4、建立server:AT+CIPSERVER=1
APP和ESP8266直连通讯的实现
通过串口发送指令开启ESP8266的WiFi:
发送完这四个指令之后,打开手机就可以看到相应的WiFi开启了(这个WiFi名给我改过):
好了,硬件准备完毕,接下来我们准备APP软件,针对Android端的。新建一个Android项目,项目结构:
添加一个异步处理类:
1. /**
2. * Created by Layne_Yao on 2017/5/12.
3. * CSDN:http://blog.csdn.net/Jsagacity
4. */
5.
6. public class SendAsyncTask extends AsyncTask<String, Void, Void> {
7.
8. //这里是连接ESP8266的IP和端口号,IP是通过指令在单片机开发板查询到,而端口号可以自行设置,也可以使用默认的,333就是默认的
9. private static final String IP = "192.168.4.1";
10. private static final int PORT = 333;
11.
12.
13.
14. private Socket client = null;
15. private PrintStream out = null;
16.
17.
18. @Override
19. protected Void doInBackground(String... params) {
20. String str = params[0];
21. try {
22. client = new Socket(IP, PORT);
23. client.setSoTimeout(5000);
24. // 获取Socket的输出流,用来发送数据到服务端
25. out = new PrintStream(client.getOutputStream());
26. out.print(str);
27. out.flush();
28.
29. if (client == null) {
30. return null;
31. } else {
32. out.close();
33. client.close();
34. }
35.
36. } catch (IOException e) {
37. e.printStackTrace();
38. }
39.
40. return null;