ESP8266 Daten übertragen

Mehr
29 Nov 2018 16:14 #523 von Matze8266
Matze8266 erstellte das Thema ESP8266 Daten übertragen
Hallo Zusammen,

Ich möchte gerne zwei ESP8266 miteinander reden lassen. Im folgenden Programm habe ich einen Server ESP8266 und einen Client ESP8266.

Miteinander verbinden geht alles soweit nur bekomme ich es mit der Übertragung von Daten (also z.B. einem Byte) nicht gebacken.

Aktuell hat der eine ESP8266(Client) einen Taster und ich gucke mir alles im Serial Monitor an.

1. Ich weiß nicht wie ich die Variable deklarieren soll die ich übergeben will.

2. Ich weiß nicht welchen Befehl ich jetzt nehmen soll für das senden an den Server.
client.write // client.print??

3. Das gleich dann auch beim empfangen. Welchen Befehl muss ich auf der Gegenseite verwenden?

Ich versuche ja jetzt erst einmal einen Tastendruck zu übermitteln. Auf lange Sicht soll es dann ein Byte sein.


Über eure Hilfe würde ich mich sehr freuen. :)

Accesspoint (Server)
//WEMOS Accesspoint mit LED


#include <ESP8266WiFi.h>

WiFiServer server(80);
IPAddress IP(192,168,4,15);
IPAddress mask = (255, 255, 255, 0);

byte ledPin = 2;

void setup() {
  Serial.begin(9600);
  WiFi.mode(WIFI_AP);
  WiFi.softAP("Wemos_AP", "Wemos_comm");
  WiFi.softAPConfig(IP, IP, mask);
  server.begin();
  pinMode(ledPin, OUTPUT);
  Serial.println();
  Serial.println("accesspoint_bare_01.ino");
  Serial.println("Server started.");
  Serial.print("IP: ");     Serial.println(WiFi.softAPIP());
  Serial.print("MAC:");     Serial.println(WiFi.softAPmacAddress());
}

void loop() {
  WiFiClient client = server.available();
  if (!client) {return;}
  byte request = client.read();
  Serial.println("********************************");
  Serial.print("From the station: ");
  Serial.println(request);
  client.flush();
  
}




Station (Client)
//WEMOS Client mit Taster 

#include <ESP8266WiFi.h>


//Variablen deklarieren
//######################################
byte ledPin = 2;                    // Interne LED vom ESP 8266 Modul
byte Taster = 4;                    // GPIO 4 wird mit einem Taster beschaltet
byte temp, memo = 0;                // Merker für Tasterstatus & Hilfsmerker
char ssid[] = "Wemos_AP";           // SSID of your AP
char pass[] = "Wemos_comm";         // password of your AP

IPAddress server(192,168,4,15);     // IP address of the AP
WiFiClient client;


//Setup
//######################################
void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  pinMode(Taster, INPUT_PULLUP);

  //Inizialisiere WIFI
  //######################################
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);           // connects to the WiFi AP
  Serial.println();
  Serial.println("Connection to the AP");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.println("Connected");
  Serial.println("station_bare_01.ino");
  Serial.print("LocalIP:"); Serial.println(WiFi.localIP());
  Serial.println("MAC:" + WiFi.macAddress());
  Serial.print("Gateway:"); Serial.println(WiFi.gatewayIP());
  Serial.print("AP MAC:"); Serial.println(WiFi.BSSIDstr());
}


//Daten an AP senden
//######################################
void data_to_AP (byte temp){
  client.connect(server, 80);
  digitalWrite(ledPin, LOW);
  Serial.println("********************************");
  Serial.print("Byte sent to the AP: ");
  Serial.println(temp);
  Serial.println(client.write(temp));
  client.flush();
  digitalWrite(ledPin, HIGH);
  client.stop();
}


//HAUPTPROGRAMM
//######################################
void loop() {
  temp = digitalRead(Taster);


  if (temp == LOW & memo == LOW){
    Serial.print("TASTER: LOW   ");
    Serial.println(temp);
    memo = HIGH;
    data_to_AP(temp);
    Serial.println("********************************");
    Serial.println("********************************");
    Serial.println("");

    
  }else if(temp == HIGH & memo == HIGH){
    Serial.print("TASTER: HIGH   ");
    Serial.println(temp);
    memo = LOW;
    data_to_AP(temp);
    Serial.println("********************************");
    Serial.println("********************************");
    Serial.println("");

  }  
delay(500);
}

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Powered by Kunena Forum