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

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
  ESP8266 NodeMCU mir LCD AnFi 8 242 06.04.2020 13:14
Letzter Beitrag: Tommy56
  NodeMCU V3 + rhGeiger ak68 12 414 02.04.2020 18:53
Letzter Beitrag: amithlon
  ESP32 NodeMCU von AZ Delivery georg1010 5 640 21.02.2020 10:08
Letzter Beitrag: biologist
  NodeMCU ArtNetNode_V2 Leonard 13 1.439 12.12.2019 22:52
Letzter Beitrag: Tommy56
  NodeMCU Schalter an D0 steffus 6 802 30.11.2019 19:56
Letzter Beitrag: Bernd666
  ESP32s NodeMCU mit MOD-ENC28J60 (Ehternet) verbinden Plammi 13 1.662 11.11.2019 18:36
Letzter Beitrag: hotsystems
  NodeMCU und Nano über I2C verbinden Werte sind falsch Franzel007 6 2.841 21.09.2019 17:09
Letzter Beitrag: Franzel007
  Fehler beim Kompilieren für das Board NodeMCU 1.0 magnum1795 14 2.542 21.09.2019 10:44
Letzter Beitrag: magnum1795
  Interrupt am NODEMCU uk1408 21 3.662 09.09.2019 22:01
Letzter Beitrag: Tommy56
Sad Nodemcu wie benutzen? Harry Hirsch 46 30.704 20.06.2019 20:21
Letzter Beitrag: Tommy56

Gehe zu:


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