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
29.03.2020, 12:30
Beitrag #105
RE: NODEMCU - SQL-Datenbank
Hallo ihr zwei.

Also war bis heute früh bis 5:30 dran. Also läuft alles perfekt mit den SQL-Abfragen und bleibt nicht mehr hängen. Was ich festgestellt habe, das beim alten code der Loop nicht beendet wird und der code somit in der do-schleife hängen bleibt. So nun werde ich mich an das Thema mit UDP begeben, komme da gerne nochmals auf Euch zurück. Das mit den TABS war eine sehr gute Idee.

Gruß Andy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.03.2020, 12:40
Beitrag #106
RE: NODEMCU - SQL-Datenbank
Wofür brauchst Du do und/oder sonstige Schleifen? Du hast doch loop.

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
29.03.2020, 12:52
Beitrag #107
RE: NODEMCU - SQL-Datenbank
Hier mal der aktuelle Code....

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>

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

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

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);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    lcd.print(".");
  }
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  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("     Haustuere");
  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);
  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);

      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

Sieht der nun besser aus?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.03.2020, 12:56
Beitrag #108
RE: NODEMCU - SQL-Datenbank
Nein.

Zitat: Connect();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Connecting to: ");
lcd.setCursor(0, 1);
lcd.print(ssid);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
lcd.print(".");
}
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}

Du hast es immer noch nicht richtig umgesetzt.


Gruß Fips

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.03.2020, 14:08
Beitrag #109
RE: NODEMCU - SQL-Datenbank
(29.03.2020 12:56)Fips schrieb:  Nein.

Zitat: Connect();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Connecting to: ");
lcd.setCursor(0, 1);
lcd.print(ssid);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
lcd.print(".");
}
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}

Du hast es immer noch nicht richtig umgesetzt.


Gruß Fips
Stimmt, mag der Uhrzeit gestern geschuldet sein, ist korrigiert!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.03.2020, 17:58
Beitrag #110
RE: NODEMCU - SQL-Datenbank
So bin wieder etwas fit. Ist gerade etwas mühsam für mich.

Ich habe in der Zwischenzeit mein d1 mit den Relays zum laufen bekommen.
Mit dem Programm "PacketSender" (danke an Tommy) konnte ich es testen und die Relays schalten wie sie es sollen.

So nun mein Problem, dass das senden von der nodemcu nicht funktioniert.

Hier ist der Code von RFIUDP.h
Code:
#include <WiFiUdp.h>


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

//UDP

void opendoor()
{
  //UDP
  WiFiUDP Udp;
  Udp.begin(remotePort);
  befehl = 1;
  Serial.print("Inhalt befehl: "); Serial.println(befehl);
  Udp.beginPacket(remoteIP, remotePort);
  Serial.println(remoteIP);
  Udp.write(befehl);
  Udp.endPacket();
  //UDP
}

Hier von meinem Hauptprogramm...

#include <ESP8266WiFi.h> //Include Esp library
#include "WiFi.h" //Settings für WiFi
#include "RFIDSQL.h"; //Settings für SQL
#include "RFIUDP.h";
#include <SPI.h>
#include <MFRC522.h> //include RFID library
#include <LiquidCrystal_I2C.h>

und dann der Aufruf in der void Loop:

if (UHET == 1)
opendoor();

Der Aufruf funktioniert, aber es wird nichts gesendet!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.03.2020, 18:10
Beitrag #111
RE: NODEMCU - SQL-Datenbank
Du wirfst hier etwas durcheinander.

UDP.begin ist für den Server, der auf eingehende Sendungen wartet.

Ansonsten hatte ich ja schon gesagt: Nimm das funktionierende Beispiel als Ausgangsbasis und baue es schrittweise um. Dann merkst Du, bei welcher Änderung es nicht mehr geht.
Ich kann Dir da aus der Ferne nicht mehr helfen, bei mir ging es.

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, 18:18
Beitrag #112
RE: NODEMCU - SQL-Datenbank
(30.03.2020 18:10)Tommy56 schrieb:  Du wirfst hier etwas durcheinander.

UDP.begin ist für den Server, der auf eingehende Sendungen wartet.

Ansonsten hatte ich ja schon gesagt: Nimm das funktionierende Beispiel als Ausgangsbasis und baue es schrittweise um. Dann merkst Du, bei welcher Änderung es nicht mehr geht.
Ich kann Dir da aus der Ferne nicht mehr helfen, bei mir ging es.

Gruß Tommy

Tommy, es läuft ja soweit alles. Die Abfragen funktionieren super und bleibt nichts mehr hänger, SQL auch gut. D1 mit den Relays funktioniert auch.

Es geht nun echt nur drum dass UPD gesendet wird
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.557 24.02.2021 17:06
Letzter Beitrag: matty67
  GPS-Synchronisierung mit NodeMCU-ESP8266 Floke4 3 153 22.02.2021 19:33
Letzter Beitrag: rev.antun
  NodeMCU: zyklisch WDT reset miq19 1 107 21.02.2021 16:30
Letzter Beitrag: miq19
  NodeMCU-ESP8266 Floke4 13 740 25.01.2021 18:17
Letzter Beitrag: hotsystems
  Mit NodeMCU-V3 L9110S Schrittmotor steuern ICookie 14 816 19.01.2021 12:05
Letzter Beitrag: ICookie
  NodeMCU GPIO15 Transistor Ansteuern rev.antun 14 1.106 06.01.2021 20:42
Letzter Beitrag: rev.antun
  Variablen NodeMCU ESP8266-E Speicher Sparen rev.antun 47 2.778 17.12.2020 00:58
Letzter Beitrag: rev.antun
  NodeMCU ESP8266 - IDE Verbindungsprobleme bei D0-Reset Verbindung ayykaramba 8 1.001 14.12.2020 12:09
Letzter Beitrag: N1d45
  Welche Einstellungen in Arduino IDE für NodeMCU frankmehlhop 20 1.655 20.11.2020 08:06
Letzter Beitrag: Beinhardt
  NodeMCU ESP12-E und Nextion - ein anderer Weg rev.antun 1 431 14.11.2020 17:55
Letzter Beitrag: miq19

Gehe zu:


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