سلام . میخوام دوتا esp8266 رو با هم شبکه کنم . اما میخوام که این اتصال برای یکی از esp ها بدون میکرو باشه .
کد های زیر رو ببینید :
کد فرستنده :
کد گیرنده :
میشه بگید مشکل این کد نویسی کجاست ؟ و چرا کد قسمت گیرنده داخل esp8266 پروگرم نمیشه ؟ آیا مشکل از SoftwareSerial mySerial(8, 7); هست که بنده استفاده کردم ؟
ممنون میشم راهنمایی کنید . و کدی که در فرستنده و گیرنده صحیح است رو برام قرار بدید
کد های زیر رو ببینید :
کد فرستنده :
کد PHP:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 7); // RX, TX
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
mySerial.setTimeout(10) ;
//************************************ ESP8266 AT **************
mySerial.print("AT+CWSAP=\"SMART1\",\"\",5,0\r\n");
delay(100);
mySerial.print("AT+CWMODE=2\r\n");
delay(100);
mySerial.print("AT+CIPMUX=1\r\n");
delay(100);
mySerial.print("AT+CIPAP=\"192.168.4.1\r\n"); // IP = 192.168.4.1
delay(100);
mySerial.print("AT+CIPSERVER=1,4444\r\n"); // port = 4444
delay(100);
}
void loop() {
mySerial.print("AT+CIPSENDEX=0,1\r\n");
delay(100);
mySerial.print("A");
delay(5000);
mySerial.print("AT+CIPSENDEX=0,1\r\n");
delay(100);
mySerial.print("B");
delay(5000);}
کد PHP:
#include <SoftwareSerial.h>
//SoftwareSerial mySerial(8, 7); // RX, TX
void setup() {
pinMode(2,OUTPUT);delay(20);
Serial.begin(9600);
// mySerial.begin(9600);
Serial.setTimeout(10) ;
//************************************
Serial.print("AT+RST\r\n");
delay(2000);
Serial.print("AT+CWMODE=1\r\n");
delay(200);
Serial.print("AT+CWJAP=\"SMART1\",\"\"\r\n"); // IP = 192.168.4.1
delay(4000);
Serial.print("AT+CIPSTART=\"TCP\",\"192.168.4.1\",4444\r\n"); // port = 4444
delay(200);
}
void loop() {
if (Serial.available()) {
int st= Serial.read() ;
// String LED = st.substring(0) ;
Serial.println(st);
if (st==49){digitalWrite(2,HIGH);}
else if (st==50){digitalWrite(2,LOW);}
}}
ممنون میشم راهنمایی کنید . و کدی که در فرستنده و گیرنده صحیح است رو برام قرار بدید
دیدگاه