Электронный замок на wifi(troyka), nfc/rfid(troyka) и arduinouno

Тема в разделе "ESP8266, ESP32", создана пользователем flaer, 12 мар 2022.

  1. flaer

    flaer Нуб

    Возникла проблема, я без понятия как реализовать передачу данных с NFC на ESP и с ESP на сервер(Raspberry Pi4). ESP8266 работает на AT прошивке. Вот код для nfc модуля:
    Код (C++):

    #include <Wire.h>
    #include <SPI.h>
    #include <Servo.h>

    #include <Adafruit_PN532.h>
    Servo servo;  // Создаем объектServo servo;

    // пин прерывания
    #define PN532_IRQ   9
    #define RED 11  // присваиваем имя RED для пина 11
    #define GRN 12 // присваиваем имя GRN для пина 12
    #define BLU 13

    Adafruit_PN532 nfc(PN532_IRQ, 100);

    void setup(void)
    {
      pinMode(RED, OUTPUT);  // используем Pin11 для вывода
      pinMode(GRN, OUTPUT); // используем Pin12 для вывода
      pinMode(BLU, OUTPUT);  // используем Pin13 для выводаpinMode(RED, OUTPUT);  // используем Pin11 для вывода
      servo.attach(8);   // Указываем объекту класса Servo, что серво присоединен к пину 8
      servo.write(0);
      Serial.begin(9600);
      // инициализация RFID/NFC сканера
      nfc.begin();
      int versiondata = nfc.getFirmwareVersion();
      if (!versiondata) {
        Serial.print("Didn't find RFID/NFC reader");
        delay(1000);
        while (1) {
        }
      }

      Serial.println("Found RFID/NFC reader");
      // настраиваем модуль
      nfc.SAMConfig();
      Serial.println("Waiting for a card ...");
    }

    void loop(void)
    {
      uint8_t success;
      // буфер для хранения ID карты
      uint8_t uid[8];
      // размер буфера карты
      uint8_t uidLength;
      // слушаем новые метки
      success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
      // если найдена карта
      if (success) {
        digitalWrite(RED, LOW);
        digitalWrite(GRN, HIGH); // включаем зеленый свет
        digitalWrite(BLU, LOW);
        delay(1000);
        // выводим в консоль полученные данные
        Serial.println("Found a card");
        Serial.print("ID Length: ");
        Serial.print(uidLength, DEC);
        Serial.println(" bytes");
        Serial.print("ID Value: ");
        nfc.PrintHex(uid, uidLength);
        Serial.println("");

        digitalWrite(RED, LOW);
        digitalWrite(GRN, LOW); // включаем зеленый свет
        digitalWrite(BLU, HIGH);
        servo.write(90); // Поворачиваем серво на 90 градусов
        delay(1000);
        servo.write(180);
        delay(100);
        servo.write(360);
        delay(1000);
        servo.write(-180);
        delay(1000);
         servo.write(90);
        delay(9000);
        digitalWrite(RED, LOW);
        digitalWrite(GRN, HIGH); // включаем зеленый свет
        digitalWrite(BLU, LOW);
        delay(1000);

      }
    }
    Возможно ли это сделать используя только ArduinoUno ?