功能
通过ardunio向esp8266模块发送at指令,连接上wifi,然后向服务器发送tcp连接请求,之后是与服务器进行sockt通信,实现通过web服务器,更改设备的led开关。
实物连接
连接方式
esp8266连接,ardunio使用软串口RX=2,TX=3,
RX—–ardunio的TX
TX—–ardunio的RX
IO15–GND
CHP_EK—3.3V
RST—-3.3V
IO0—3.3V
IO2 —3.3V
硬件代码
#include <SoftwareSerial.h>
#include <ArduinoJson.h>
SoftwareSerial mySerial(2, 3); // RX, TX
//发送的数据
String json="";
//发送数据长度
int sendlength;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
}
Serial.println("Goodnight moon!");
mySerial.begin(115200);
delay(2000);
mySerial.print("AT+RST\r\n");
delay(8000);
clearCash();
Serial.println("rst finish");
mySerial.print("AT+CWMODE=3\r\n");
delay(5000);
clearCash();
Serial.println("mode finish");
mySerial.print("AT+CWJAP=\"wifiname\",\"wifipassword\"\r\n");
delay(8000);
clearCash();
Serial.println("CWJAP finish");
mySerial.print("AT+CIPSTART=\"TCP\",\"192.168.1.144 \",8888\r\n" );
delay(8000);
clearCash();
json ="{\"id\":1,\"name\":\"szh\"}";
delay(300);
String text1 ="AT+CIPSEND=";
sendlength =json.length()+2;
text1.concat(String(sendlength));
Serial.println(text1);
delay(300);
mySerial.println(text1);
delay(1000);
clearCash();
Serial.print("Send String:");
Serial.println(json);
mySerial.println(json);
delay