INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NODEMCU - SQL-Datenbank
30.03.2020, 19:12
Beitrag #121
RE: NODEMCU - SQL-Datenbank
Also Tommy, node redet nun mit D1.

nodemcu
Code:
// NodeMCU ohne alles
// Master in einem bestehenden WLAN
// Steuert an einen anderen NodeMCU eine LED

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

// <= 31 Zeichen
char *ssid = "ABK14-24";
// >= 8 oder <= 63 Zeichen oder NULL
char *password = "abernauer271269#%";

// hier die Adresse vom Slave eintragen
IPAddress remoteIP(192,168,9,101);
unsigned int remotePort = 4210;  // remote port to listen on
char befehl[10];

WiFiUDP Udp;
uint32_t aktMillis;
uint32_t prevMillis;

boolean ledStatus = false;

void setup()
{
  Serial.begin(115200);
  Serial.println();
  Serial.println("Start");
  Serial.print("Connecting to "); Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.print("\n connected.");
  Serial.println(WiFi.localIP());
}

void loop() {
  aktMillis = millis();
  if (aktMillis - prevMillis >= 5000) {
    prevMillis = aktMillis;
    Serial.print("LED schalten auf ");
    if (ledStatus) {
      Serial.println("An");
      befehl[0] = 2;
    }
    else {
      Serial.println("Aus");
      befehl[0] = 3;
    }
    Udp.beginPacket(remoteIP, remotePort);
    Udp.write(befehl, 1);
    Udp.endPacket();
    ledStatus = !ledStatus;
  }
}

ich würde gerne hier 2 oder 3 senden!

hier der code vom empfänger:
D1
Code:
// NodeMCU mit Relay an D1
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <SPI.h>

#define relay1 D1 //Haustüre
#define relay2 D5 //Wohnung1
#define relay3 D6 //Wohnung2



unsigned int localUdpPort = 4210;  // local port to listen on
char befehl[10];  // buffer for incoming packets
boolean udpConnected = false;
const int NTP_PACKET_SIZE = 48;
char packetBuffer[NTP_PACKET_SIZE]; //buffer to hold incoming packet,
//char ReplyBuffer[] = “acknowledged”; // a string to send back
int r1Status[5];
// <= 31 Zeichen
char *ssid = "ABK14-24";
// >= 8 oder <= 63 Zeichen oder NULL
char *password = "abernauer271269#%";
unsigned int localPort = 4210;

WiFiUDP Udp;

void setup() {
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();
  Serial.println();
  Serial.println();
  Serial.println("Start");
  pinMode(relay1, OUTPUT);
  digitalWrite(relay1, LOW);
  pinMode(relay2, OUTPUT);
  digitalWrite(relay2, LOW);
  pinMode(relay3, OUTPUT);
  digitalWrite(relay3, LOW);


  Serial.print("Connecting to "); Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Udp.begin(localUdpPort);
  Serial.print("\n connected UDP-Server bereit an IP: ");
  Serial.print(WiFi.localIP());
  Serial.print("UDP-Server bereit.");

  Serial.println("\nStarting connection to server...");
  Udp.begin(localPort);
}

void loop() {
  int packetSize, len;
  // UDP
  packetSize = Udp.parsePacket();
  // Packet ist da!
  if (packetSize) {
    Serial.println("Packete: ");
    Serial.print(packetSize);
    Serial.print("Packet-Size: "); Serial.println(packetSize);
    Serial.print("Empfangen "); Serial.print(packetSize);
    Serial.print(" von IP "); Serial.print(Udp.remoteIP());
    Serial.print(" Port "); Serial.println(Udp.remotePort());
    len = Udp.read(befehl, 10);
    Serial.print("LEN: "); Serial.println(len);
    //    r1Status = befehl[0];
    Serial.print("Befehl-Status: "); Serial.println(befehl[0]);
    if (len == 1) {
//      digitalWrite(relay1, HIGH);
      Serial.println("Relay (Haustüre) wird geschaltet");
      delay(2500);
//      digitalWrite(relay1, LOW);
    }
    if (len == 2) {
//      digitalWrite(relay2, HIGH);
      Serial.println("Relay (Wohnungstüre) wird geschaltet");
      delay(2500);
//      digitalWrite(relay2, LOW);
    }
    if (len == 3) {
//      digitalWrite(relay3, HIGH);
      Serial.println("Relay (Ferienwohnung) wird geschaltet");
      delay(2500);
//      digitalWrite(relay3, LOW);
    }
  }
}

hab keine Ahnung wie ich nun 2 oder 3 hier nun auslesen kann!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.03.2020, 19:22
Beitrag #122
RE: NODEMCU - SQL-Datenbank
(30.03.2020 19:12)abernauer schrieb:  hab keine Ahnung wie ich nun 2 oder 3 hier nun auslesen kann!
Du hast nicht nur davon keine Ahnung, Du kannst Dir auch nicht merken, was Dir bereits gesagt wurde.
Ich bin mittlerweile der Meinung, dass das Vorhaben Deinen Kenntnisstand um Lichtjahre übersteigt. Sorry, wenn ich das mal so hart sagen muss, aber langsam macht das keinen Spaß mehr mit Dir.

Gehe nochmal im Thread zurück und suche, was in len steht (man könnte es auch aus dem Namen assoziieren). Ich hatte Dir auch schon gesagt, wo der Inhalt steht.

Nochmal bete ich es Dir nicht vor.

Warum machst Du 2 udp.begin()?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.03.2020, 19:24 (Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2020 19:39 von Fips.)
Beitrag #123
RE: NODEMCU - SQL-Datenbank
(30.03.2020 19:12)abernauer schrieb:  ich würde gerne hier 2 oder 3 senden!

int var {2};
Udp.print(var);

ungetestet!


Gruß Fips

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.03.2020, 19:26
Beitrag #124
RE: NODEMCU - SQL-Datenbank
Tommy,

ich hab Dir dazu eine PM geschickt, was den Grund erklärt!

Gruß Andy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.03.2020, 19:29
Beitrag #125
RE: NODEMCU - SQL-Datenbank
Fips, bring jetzt nicht wieder int rein, nachdem wir gerade wieder glücklich bei Byte gelandet waren. Wink

Es ist so schon schwierig genug.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.03.2020, 22:29 (Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2020 22:30 von abernauer.)
Beitrag #126
RE: NODEMCU - SQL-Datenbank
So lieber Tommy und lieber Fips,

habs soweit geschafft hier mal die Codes

Nodemcu+RFID+Display
Code:
#include <ESP8266WiFi.h>     //Include Esp library
#include "WiFi.h"           //Settings für WiFi
#include "RFIDSQL.h";       //Settings für SQL
#include <SPI.h>
#include <MFRC522.h>        //include RFID library
#include <LiquidCrystal_I2C.h>
#include <WiFiUdp.h>


//#define DEBUG_ON
#define SS_PIN D8 //RX slave select
#define RST_PIN D3

IPAddress remoteIP(192, 168, 9, 101);
unsigned int remotePort = 4210;  // remote port to listen on
int var;
WiFiUDP Udp;


MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
LiquidCrystal_I2C lcd(0x27, 20, 4);

boolean state = false;
String Uname = "1";
int UHET = 0;
int UDGT = 0;
int UEGT = 0;
int check = 0;


void setup() {
  delay(500);
  Serial.begin(115200);
  SPI.begin();  // Init SPI bus
  mfrc522.PCD_Init(); // Init MFRC522 card
  lcd.init();
  Connect();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Connecting to: ");
  lcd.setCursor(0, 1);
  lcd.print(ssid);
  Serial.println("");
  Serial.println("Connected");
  lcd.setCursor(0, 2);
  lcd.print("Connected to:");
  lcd.setCursor(0, 3);
  lcd.print("IP: ");
  lcd.print(WiFi.localIP());
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());  //IP address assigned to your ESP
  dbconnect();
}

void dump_byte_array(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], HEX);
  }
}

bool try_key(MFRC522::MIFARE_Key *key)
{
  bool result = false;
  byte buffer[18];
  byte block = 0;
  MFRC522::StatusCode status;

  // Serial.println(F("Authenticating using key A..."));
  status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, key, &(mfrc522.uid));
  if (status != MFRC522::STATUS_OK)
  {
    return false;
  }
  byte byteCount = sizeof(buffer);
  status = mfrc522.MIFARE_Read(block, buffer, &byteCount);
  if (status != MFRC522::STATUS_OK) {
  }
  else
  {
    // Successful read
    result = true;
    Serial.print(F("Success with key:"));
    dump_byte_array((*key).keyByte, MFRC522::MF_KEY_SIZE);
    Serial.println();
    // Dump block data
    Serial.print(F("Block ")); Serial.print(block); Serial.print(F(":"));
    dump_byte_array(buffer, 16);
    Serial.println();
  }

  Serial.println();

  mfrc522.PICC_HaltA();       // Halt PICC
  mfrc522.PCD_StopCrypto1();  // Stop encryption on PCD
  return result;
}

void loop() {
  row_values *row = NULL;
  if (WiFi.status() != WL_CONNECTED) {
    Serial.print("Reconnecting to ");
    Serial.println(ssid);
    Connect();
  }
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("    WELCOME/HALLO     ");
  lcd.setCursor(0, 1);
  lcd.setCursor(0, 2);
  lcd.print("     EG-Wohnung");
  delay(1000);
  //look for new card
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;//got to start of loop if there is no card present
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;//if read card serial(0) returns 1, the uid struct contians the ID of the read card.
  }
  long code = 0;
  long code1 = 0;
  long code2 = 0;
  long code3 = 0;
  long code4 = 0;
  long code5 = 0;
  long code6 = 0;
  code = ((code + (mfrc522.uid.uidByte[0] * 10000)));
  code1 = ((code1 + (mfrc522.uid.uidByte[1]) * 10));
  code2 = ((code + code1) * 1000);
  code3 = ((code3 + (mfrc522.uid.uidByte[2])));
  code4 = ((code2 + code3));
  code5 = ((code5 + (mfrc522.uid.uidByte[3])));
  code6 = ((code4 + code5));
  lcd.clear();
  Serial.print("Karte: ");
  Serial.println(code6);
  lcd.setCursor(0, 0);
  lcd.print("Karte: ");
  lcd.print(code6);
  lcd.setCursor(0, 1);
  lcd.print("Bitte warten");
  lcd.setCursor(0, 2);
  lcd.print("Datenpruefung!!!");
  delay(2000);
  int soil_hum = 1024;
  sprintf(query1, INSERT_SQL, code6);
  sprintf(query, SELECT, code6);
  Serial.println(query1);
  Serial.println(query);
  MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
  cur_mem->execute(query1);
  cur_mem->execute(query);
  column_names *columns = cur_mem->get_columns();
  do
  {
    row = cur_mem->get_next_row();
    if (row != NULL)
    {
      Serial.print("lfd_nr: ");
      Serial.println(row->values[0]);  // <--- der Name als Zeichenkette
      Serial.print("UID: ");
      Serial.println(row->values[1]);  // <--- der Name als Zeichenkette
      Serial.print("Name: ");
      Serial.println(row->values[2]);  // <--- der Name als Zeichenkette
      Uname = (row->values[2]);
      UHET = atof((row->values[6])); // Zutritt Haus
      UEGT = atof((row->values[8])); // Zutritt Erdgeschoss
      UDGT = atof((row->values[7])); // Zutritt Dachgeschoss

      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Hallo: ");
      lcd.print(Uname);

      lcd.setCursor(0, 1);
      lcd.print("Haustuere: ");
      if (UHET == 0)
        lcd.print("NEIN");
      else
        lcd.print("JA");

      lcd.setCursor(0, 2);
      lcd.print("Erdgeschoss: ");
      if (UEGT == 0)
        lcd.print("NEIN");
      else
        lcd.print("JA");

      lcd.setCursor(0, 3);
      lcd.print("Dachgeschoss: ");
      if (UDGT == 0)
        lcd.print("NEIN");
      else
        lcd.print("JA");
      delay(2500);

      if (UEGT == 1)
      {
        var = 2;
        Udp.beginPacket(remoteIP, remotePort);
        Serial.println(var);
        Udp.print(var);
        Udp.endPacket();
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Hallo ");
        lcd.print(Uname);
        lcd.setCursor(0, 2);
        lcd.print("Tuere wird geoeffnet");
        lcd.print("");
        delay(2000);
      }

      check = 1;
    } //if ende
  } // do ende
  while (row != NULL );
  {
    if (check == 0)
    {
      lcd.clear();
      lcd.setCursor(0, 1);
      lcd.print("Karte nicht gefunden");
      lcd.setCursor(0, 3);
      lcd.print("Zutritt verweigert!");
      delay(3000);
    }
  }
  check = 0;
} //loop ende

und dann noch der code für den d1 mit 3 Relays
Code:
// NodeMCU mit Relay an D1
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <SPI.h>

#define relay1 D1 //Haustüre
#define relay2 D5 //Wohnung1
#define relay3 D6 //Wohnung2



unsigned int localUdpPort = 4210;  // local port to listen on
int befehl;  // buffer for incoming packets
const int NTP_PACKET_SIZE = 48;
char packetBuffer[NTP_PACKET_SIZE]; //buffer to hold incoming packet,
char *ssid = "SSID";
char *password = "PWD";
unsigned int localPort = 4210;

WiFiUDP Udp;

void setup() {
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();
  Serial.println();
  Serial.println();
  Serial.println("Start");
  pinMode(relay1, OUTPUT);
  digitalWrite(relay1, LOW);
  pinMode(relay2, OUTPUT);
  digitalWrite(relay2, LOW);
  pinMode(relay3, OUTPUT);
  digitalWrite(relay3, LOW);


  Serial.print("Connecting to "); Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Udp.begin(localUdpPort);
  Serial.print("\n connected UDP-Server bereit an IP: ");
  Serial.print(WiFi.localIP());
  Serial.print("UDP-Server bereit.");

  Serial.println("\nStarting connection to server...");
  Udp.begin(localPort);
}

void loop() {
  int packetSize, len;
   packetSize = Udp.parsePacket();
   if (packetSize) {
    Serial.println("Packete: ");
    Serial.print(packetSize);
    Serial.print("Packet-Size: "); Serial.println(packetSize);
    Serial.print("Empfangen "); Serial.print(packetSize);
    Serial.print(" von IP "); Serial.print(Udp.remoteIP());
    Serial.print(" Port "); Serial.println(Udp.remotePort());
    len = Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
    Serial.print("LEN: "); Serial.println(len);
    befehl = atof(packetBuffer);
    Serial.print("Befehl-Status: "); Serial.println(befehl);
    if (befehl == 1) {
      digitalWrite(relay1, HIGH);
      Serial.println("Relay (Haustüre) wird geschaltet");
      delay(2500);
      digitalWrite(relay1, LOW);
    }
    if (befehl == 2) {
      digitalWrite(relay2, HIGH);
      Serial.println("Relay (Wohnungstüre) wird geschaltet");
      delay(2500);
      digitalWrite(relay2, LOW);
    }
    if (befehl == 3) {
      digitalWrite(relay3, HIGH);
      Serial.println("Relay (Ferienwohnung) wird geschaltet");
      delay(2500);
      digitalWrite(relay3, LOW);
    }
  }
}

Danke vorab Euch beiden und Eure Geduld mit mir!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.03.2020, 22:40
Beitrag #127
RE: NODEMCU - SQL-Datenbank
Schön, wenn es funktioniert und danke für die Rückmeldung.

Es war zwischendrin mal etwaas sehr zäh.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  NodeMCU -KNX ak68 16 2.515 Gestern 17:06
Letzter Beitrag: matty67
  GPS-Synchronisierung mit NodeMCU-ESP8266 Floke4 3 139 22.02.2021 19:33
Letzter Beitrag: rev.antun
  NodeMCU: zyklisch WDT reset miq19 1 99 21.02.2021 16:30
Letzter Beitrag: miq19
  NodeMCU-ESP8266 Floke4 13 731 25.01.2021 18:17
Letzter Beitrag: hotsystems
  Mit NodeMCU-V3 L9110S Schrittmotor steuern ICookie 14 810 19.01.2021 12:05
Letzter Beitrag: ICookie
  NodeMCU GPIO15 Transistor Ansteuern rev.antun 14 1.103 06.01.2021 20:42
Letzter Beitrag: rev.antun
  Variablen NodeMCU ESP8266-E Speicher Sparen rev.antun 47 2.757 17.12.2020 00:58
Letzter Beitrag: rev.antun
  NodeMCU ESP8266 - IDE Verbindungsprobleme bei D0-Reset Verbindung ayykaramba 8 996 14.12.2020 12:09
Letzter Beitrag: N1d45
  Welche Einstellungen in Arduino IDE für NodeMCU frankmehlhop 20 1.644 20.11.2020 08:06
Letzter Beitrag: Beinhardt
  NodeMCU ESP12-E und Nextion - ein anderer Weg rev.antun 1 430 14.11.2020 17:55
Letzter Beitrag: miq19

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste