ESP8266 C ++直接通讯不起作用

问题描述

我最近为两个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 (将#修改为@)