скетч Rfid 522 и Wemos d1 (retired)

Тема в разделе "Arduino & Shields", создана пользователем kt315where, 27 дек 2017.

  1. kt315where

    kt315where Гик

    Эти "азы" уже смотрю в интернете сейчас, уже понятнее. В любом случае спасибо еще раз за оперативность)
     
  2. kt315where

    kt315where Гик

    На всякий случай (скорее для нас - новичков) выкладываю свой готовый скетч который получился в итоге и выражаю благодарность всем кто помог выше.

    Это для работы модуля Rfid rc522 с мк Wemos d1 одновременно с Веб-интерфейсом, работает независимо от того есть wifi подключение или нет, например если вы хотите сделать замок с картой на мк wemos.

    Код (C++):
    //wemos и rc522
    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <MFRC522.h>                                  
    MFRC522 rfid(D4, D9); // пины SDA, RST    (указаны для платы wemos d1 (retired)                  
    unsigned long Key, KeyTemp;  // для храниения № ключа    

    const char* ssid = "test"; // Название точки доступа
    const char* password = "12345678"; // Пароль точки доступа

    WiFiServer server(80);

    void setup()
    {

    Serial.begin(9600);
    SPI.begin();  //  инициализация SPI
    rfid.PCD_Init();     // инициализация rfid модуля

      // Connect to WiFi network
      Serial.println();
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);
      WiFi.begin(ssid, password);
    // while (WiFi.status() != WL_CONNECTED) {
      //  delay(500);
      //  Serial.print(".");
    // }
      Serial.println("");
      Serial.println("WiFi connected");
      // Start the server
      server.begin();
      Serial.println("Server started");
    delay(7000);
      // Print the IP address
      Serial.print("Use this URL : ");
      Serial.print("http://");
      Serial.print(WiFi.localIP());
      Serial.println("/");
    }
    void loop() {




      // Check if a client has connected
      WiFiClient client = server.available();
      if (client) {
    //   return;
    // }
      // Read the first line of the request
      String request = client.readStringUntil('\r');
    // Serial.println(request);
      client.flush();
      // Match the request
      if (request.indexOf("/on") != -1){
        delay(10);
        Serial.println("on");
      delay(10);}
     
      if (request.indexOf("/off") != -1){
        delay(10);
         Serial.println("off");
      delay(10);
         
      }

      // Return the response
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html; charset=utf-8");
      client.println(""); //  do not forget this one
      client.println("<!DOCTYPE HTML>");
      client.println("<html>");
      client.println("<center>");
      client.println("<br><br>");
      client.println("<br><br>");
      client.println("<br><br>");
      client.println("<br><br>");
      client.println("<br><br>");
      client.print("<a href=\"/on\"><button><b>включить</b></button></a>");
      client.println();
      client.print("<a href=\"/off\"><button><b>выключить</b></button></a>");
      client.println("</html>");
      delay(1);}
    if ( ! rfid.PICC_IsNewCardPresent()) {return;}// Поиск нового ключа
      if ( ! rfid.PICC_ReadCardSerial()) {return;}// Выбор ключа
      Key = 0;
    for (byte i = 0; i < rfid.uid.size; i++){// Выдача серийного № ключа
    KeyTemp = rfid.uid.uidByte[i];
        Key = Key * 256 + KeyTemp;}
      Serial.print("Card №: ");
      Serial.println(Key); // Выводим № ключа в консоль
    if (Key == 688921751){ // № верного ключа
    Serial.println("Card ok"); // сообщение если карта верная

    }


    }