J'ai un Arduino Uno et un serveur écrit en C ++. J'ai connecté l'ESP8266 à mon routeur avec succès en utilisant le code suivant:
#include <SoftwareSerial.h>
SoftwareSerial esp8266(3, 2);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Started");
// set the data rate for the SoftwareSerial port
esp8266.begin(115200);
esp8266.write("ATrn");
}
void loop() {
if (esp8266.available()) {
Serial.write(esp8266.read());
}
if (Serial.available()) {
esp8266.write(Serial.read());
}
}
Maintenant, je veux que l'ESP8266 se connecte à mon serveur en tant que client du même réseau local (j'ai l'adresse IP du serveur). Comment puis-je le faire avec SoftwareSerial? Y a-t-il une autre façon de le faire?
Réponses:
2 pour la réponse № 1Vous devez lui envoyer des commandes AT pour créer une requête HTTP. Cela permettrait de se connecter à un serveur à l'adresse 192.168.88.35 sur le port 80.
// Connect to the server
esp8266.write("AT+CIPSTART="TCP","192.168.88.35",80rn"); //make this command: AT+CPISTART="TCP","192.168.88.35",80
//wait a little while for "Linked"
delay(300);
//This is our HTTP GET Request change to the page and server you want to load.
String cmd = "GET /status.html HTTP/1.0rn";
cmd += "Host: 192.168.88.35rnrn";
//The ESP8266 needs to know the size of the GET request
esp8266.write("AT+CIPSEND=");
esp8266.write(cmd.length());
esp8266.write("rn");
esp8266.write(cmd);
esp8266.write("AT+CIPCLOSErn");
Ce lien devrait vous aider si vous avez besoin de plus de détails: http://blog.huntgang.com/2015/01/20/arduino-esp8266-tutorial-web-server-monitor-example/