问题描述
我最近为两个esp8266模块建立了c ++代码以相互通信。我已经尝试了所有可以想到的方法,但仍然无法正常工作。代码应该做到这一点,当一个esp8266模块的管脚导通时,它使另一管导通,反之亦然。这是我连接到led的esp的代码。
连接到led的esp8266的代码:
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#define led0
const char *ssid = "train";
const char *pass = "password";
unsigned int localPort = 2000; // local port to listen for UDP packets
IPAddress ServerIP(192,168,4,1);
IPAddress ClientIP(192,2);
// A UDP instance to let us send and receive packets over UDP
WiFiUDP udp;
char packetBuffer[9]; //Where we get the UDP data
int sensorValue0 = 0;
//=======================================================================
// Setup
//=======================================================================
void setup()
{
Serial.begin(9600);
Serial.println();
WiFi.softAP(ssid,pass); //Create Access point
//Start UDP
Serial.println("Starting UDP");
udp.begin(localPort);
Serial.print("Local port: ");
Serial.println(udp.localPort());
pinMode(0,OUTPUT);
}
//======================================================================
// MAIN LOOP
//======================================================================
void loop()
{
int cb = udp.parsePacket();
udp.read(packetBuffer,1);
if (cb)
{
if (packetBuffer[0]==LOW)
{
digitalWrite(led0,HIGH)
delay(20);
}
else
{
digitalWrite(led0,LOW);
delay(20);
}
}
}
连接到按钮的esp8266的代码:
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
//#define btn0
int inPin = 0;
const char *ssid = "train";
const char *pass = "password";
unsigned int localPort = 2000; // local port to listen for UDP packets
IPAddress ServerIP(192,2);
// A UDP instance to let us send and receive packets over UDP
WiFiUDP udp;
char packetBuffer[9]; //Where we get the UDP data
//======================================================================
// Setup
//======================================================================
void setup()
{
pinMode(inPin,INPUT);
Serial.begin(9600);
Serial.println();
WiFi.begin(ssid,pass); //Connect to access point
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
//Start UDP
Serial.println("Starting UDP");
udp.begin(localPort);
Serial.print("Local port: ");
Serial.println(udp.localPort());
pinMode(0,INPUT);
}
//======================================================================
// MAIN LOOP
//======================================================================
void loop()
{
int cb = udp.parsePacket();
//If serial data is recived send it to UDP
if(digitalRead(inPin)==HIGH)
{
udp.beginPacket(ServerIP,20); //Send Data to Master unit
//Send UDP requests are to port 2000
char a[1];
a[0]=HIGH; //Serial Byte Read
udp.write(a,1); //Send one byte to ESP8266
udp.endPacket();
}
else
{
udp.beginPacket(ServerIP,20); //Send Data to Master unit
//Send UDP requests are to port 2000
char a[1];
a[0]=LOW; //Serial Byte Read
udp.write(a,1); //Send one byte to ESP8266
udp.endPacket();
}
//else {
// We've received a UDP packet,send it to serial
//udp.read(packetBuffer,1); // read the packet into the buffer,we are reading only one byte
//Serial.print(packetBuffer);
//delay(20);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)