Tutorial For ESP8266 Serial WiFi Module
Tutorial For ESP8266 Serial WiFi Module
Material list:
Note We used a software serial to print some debugging information as theres only one hardware serial on seeeduino
board. But the limitation of software serial is that it cant communicate in a higher baud rate than 19200. So part of the
output from ESP module will be dropped because the baud rate 57600 of ESP module is higher than that of the software
serial. If you have a board with more than one hardware serial (e.g. Arduino Mega 2560), the case will be easier.
Step-By-Step
Step 1: connect module as the following picture
1. #include <SoftwareSerial.h>
2.
3. #define SSID "xxxxxxxx"
4. #define PASS "xxxxxxxx"
5. #define DST_IP "220.181.111.85" //baidu.com
6.
7. SoftwareSerial dbgSerial(10, 11); // RX, TX
8.
9. void setup()
10. {
11. // Open serial communications and wait for port to open:
12. Serial.begin(57600);
13. Serial.setTimeout(5000);
14.
15. dbgSerial.begin(9600); //can't be faster than 19200 for softserial
16. dbgSerial.println("ESP8266 Demo");
17.
18. //test if the module is ready
19. Serial.println("AT+RST");
20. delay(1000);
21. if(Serial.find("ready"))
22. {
23. dbgSerial.println("Module is ready");
24. }
25. else
26. {
27. dbgSerial.println("Module have no response.");
28. while(1);
29. }
30. delay(1000);
31.
32. //connect to the wifi
33. boolean connected=false;
34. for(int i=0;i<5;i++)
35. {
36. if(connectWiFi())
37. {
38. connected = true;
39. break;
40. }
41. }
42. if (!connected){while(1);}
43. delay(5000);
44.
45. //print the ip addr
46. /*Serial.println("AT+CIFSR");
47. dbgSerial.println("ip address:");
48. while (Serial.available())
49. dbgSerial.write(Serial.read());*/
50.
51. //set the single connection mode
52. Serial.println("AT+CIPMUX=0");
53. }
54.
55. void loop()
56. {
57. String cmd = "AT+CIPSTART=\"TCP\",\"";
58. cmd += DST_IP;
59. cmd += "\",80";
60. Serial.println(cmd);
61. dbgSerial.println(cmd);
62.
63. if(Serial.find("Error")) return;
64.
65. cmd = "GET / HTTP/1.0\r\n\r\n";
66.
67. Serial.print("AT+CIPSEND=");
68. Serial.println(cmd.length());
69. if(Serial.find(">"))
70. {
71. dbgSerial.print(">");
72. }else
73. {
74. Serial.println("AT+CIPCLOSE");
75. dbgSerial.println("connect timeout");
76. delay(1000);
77. return;
78. }
79. Serial.print(cmd);
80.
81. delay(2000);
82. //Serial.find("+IPD");
83. while (Serial.available())
84. {
85. char c = Serial.read();
86. dbgSerial.write(c);
87. if(c=='\r') dbgSerial.print('\n');
88. }
89.
90. dbgSerial.println("====");
91.
92. delay(1000);
93. }
94.
95. boolean connectWiFi()
96. {
97. Serial.println("AT+CWMODE=1");
98.
99. String cmd="AT+CWJAP=\"";
100. cmd+=SSID;
101. cmd+="\",\"";
102. cmd+=PASS;
103. cmd+="\"";
104.
105. dbgSerial.println(cmd);
106. Serial.println(cmd);
107. delay(2000);
108.
109. if(Serial.find("OK"))
110. {
111. dbgSerial.println("OK, Connected to WiFi.");
112. return true;
113. }else
114. {
115. dbgSerial.println("Can not connect to the WiFi.");
116. return false;
117. }
118. }
Step 3: Open Serial Monitor and press the reset button of seeeduino board, youll see the output.
.
kfihihc *
, )
- *
+