Содержимое курса
Заключение
Заключение
0/1
УМНЫЙ ДОМ на Марсе \ МАРС-1

🚪 Задание 12: Автоматический шлюз базы

Интеграция NFC с сервоприводом для герметичных дверей

После долгой исследовательской миссии в марсианских каньонах вы с доктором Мариусом возвращаетесь в базу МАРС-1, уставшие, но полные новых открытий.

Вы сидите в командном центре базы, наслаждаясь теплом и безопасностью герметичных модулей. Воспоминания о красных скалах и бескрайних равнинах Марса всё ещё свежи в памяти…

Вы задумчиво смотрите на входной шлюз базы, и вас осеняет новая идея.

💬 Вы: «Доктор Мариус, а что если сделать так, чтобы шлюз автоматически открывался после идентификации карты? Колонистам в громоздких скафандрах будет сложно вручную управлять дверями!»

💬 Доктор Мариус: «Блестящая идея! Мы модифицируем шлюзовую систему и добавим автоматический механизм открытия. Это критически важно для безопасности — шлюз должен быстро открываться и герметично закрываться!»

⚙️ Механизм герметичного шлюза

Вы вместе начинаете модифицировать конструкцию шлюза базы МАРС-1, используя механизм «рейка и шестерня» для точного управления герметичной дверью:

Механизм шлюза

⚠️ ВАЖНО: НЕ устанавливайте шестерню на сервопривод до загрузки программы! Сначала нужно откалибровать сервопривод.

⚙️ Преимущества для Марса: Механизм «рейка-шестерня» обеспечивает плавное движение и плотное закрытие шлюза, что критично для сохранения герметичности базы!

💬 Доктор Мариус: «Для управления механизмом используем сервопривод SG90 — надёжный и точный!»

📚 База знаний: Сервопривод SG90

💬 Вы: «Что такое сервопривод и почему он подходит для марсианского шлюза?»

🔧 Серводвигатель SG90

Сервопривод — это точный исполнительный механизм, способный поворачиваться на заданный угол и удерживать позицию. Идеален для управления шлюзами марсианской базы.

Структура сервопривода

📋 Компоненты:
  • Двигатель постоянного тока
  • Редуктор (увеличивает силу)
  • Потенциометр (датчик положения)
  • Плата управления
  • Выходной вал с рычагом

🔄 Принцип работы:
Сигнал → Плата управления → Двигатель → Редуктор → Поворот вала → Обратная связь от потенциометра → Точное позиционирование

⚠️ Важно: Перед использованием сервопривод нужно откалибровать, иначе механизм шлюза может повредиться!

⚠️ ПЕРЕД ЗАГРУЗКОЙ ПРОГРАММЫ:

  1. НЕ устанавливайте шестерню на сервопривод!
  2. Вставьте свои UID данные карт в программу (замените «ВСТАВЬ СВОЙ UID»)
  3. Используйте UID из предыдущего урока или считайте новые карты

👨‍💻 Программа автоматического шлюза

💬 Вы: «Как запрограммировать автоматическое открытие шлюза по карте?»

// Система идентификации и управления шлюзом МАРС-1
#include <Wire.h>
#include <Adafruit_PN532.h>
#include <ESP32Servo.h>

// Настройка пинов подключения
#define SDA_PIN 21
#define SCL_PIN 22
Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);

// Сервопривод шлюза
Servo servo_18;

// База данных карт доступа
// ⚠️ ЗАМЕНИ НА СВОИ ДАННЫЕ!
String commander_uid = "ВСТАВЬ СВОЙ UID"; // UID карты командира
String engineer_uid = "ВСТАВЬ СВОЙ UID";  // UID карты инженера

String nfc_str = ""; // Текущая считанная карта

// Углы шлюза
const int door_close = 5;   // Закрыто (герметично)
const int door_open = 100;  // Открыто (проход)

void setup() {
  Serial.begin(115200);
  Serial.println("Инициализация системы МАРС-1...");
  
  // Запуск NFC модуля
  nfc.begin();
  uint32_t version = nfc.getFirmwareVersion();
  if (!version) {
    Serial.println("NFC модуль не найден");
    while (1);
  }
  nfc.SAMConfig();
  
  // Калибровка сервопривода
  servo_18.attach(18, 500, 2500);
  servo_18.write(door_close); // Начальная позиция
  
  pinMode(23, OUTPUT); // Зуммер
  
  delay(500);
  Serial.println("Шлюз МАРС-1 готов к работе!");
}

void loop() {
  uint8_t uid[7];
  uint8_t uidLength;

  // Проверка новой карты
  if (!nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength)) {
    delay(50);
    return;
  }

  // Чтение UID
  nfc_str = "";
  for (uint8_t i = 0; i < uidLength; i++) {
    if (uid[i] < 16) nfc_str += "0";
    nfc_str += String(uid[i], HEX);
  }

  // Журнал доступа
  Serial.print("Карта обнаружена: ");
  Serial.println(nfc_str);

  // Проверка доступа
  if (nfc_str == commander_uid) {
    Serial.println("КОМАНДИР - Доступ разрешен!");
    openDoor();
  } else if (nfc_str == engineer_uid) {
    Serial.println("ИНЖЕНЕР - Доступ разрешен!");
    openDoor();
  } else {
    Serial.println("НЕИЗВЕСТНЫЙ - Доступ запрещен!");
    accessDenied();
  }
  
  delay(500);
}

// Функция открытия шлюза
void openDoor() {
  // Звук успеха
  tone(23, 2000);
  delay(100);
  noTone(23);
  delay(50);
  tone(23, 2000);
  delay(100);
  noTone(23);
  
  Serial.println("Открытие шлюза...");
  servo_18.write(door_open);
  delay(3000); // Время для прохода
  
  Serial.println("Закрытие шлюза...");
  // Предупреждающий сигнал
  tone(23, 1500);
  delay(200);
  noTone(23);
  delay(200);
  tone(23, 1500);
  delay(200);
  noTone(23);
  
  servo_18.write(door_close);
  delay(1000);
  Serial.println("Шлюз герметизирован!");
}

// Функция отказа в доступе
void accessDenied() {
  tone(23, 500);
  delay(1000);
  noTone(23);
  Serial.println("Шлюз остается закрытым");
}

function copyCode() { const codeText = document.getElementById(‘codeBlock’).textContent; navigator.clipboard.writeText(codeText).then(() => { alert(‘Код скопирован в буфер обмена!’); }); }

🔄 Алгоритм работы:

  1. Сканирование NFC-карт
  2. Идентификация колониста по UID
  3. Проверка прав доступа
  4. Открытие шлюза на 100° (если доступ разрешен)
  5. Звуковые сигналы для обратной связи
  6. Пауза 3 секунды для прохода
  7. Предупреждение о закрытии
  8. Автоматическое закрытие (герметизация)

🔧 Монтаж механизма шлюза

📍 После загрузки программы: Сервопривод автоматически повернется в положение 5° (закрыто). Теперь можно установить механизм!

Установка механизма

📋 Последовательность монтажа:

  1. ✅ Дождитесь, пока сервопривод повернется в начальное положение (5°)
  2. Вручную закройте дверь шлюза до конца вправо (чтобы дверной проход полностью исчез)
  3. Теперь установите шестерню на вал сервопривода
  4. ✅ Проверьте правильное зацепление шестерни с рейкой двери
  5. ✅ Убедитесь, что дверь полностью закрыта и герметична

💡 Совет: Не пытайтесь крутить механизм сервопривода руками — это приведет к его поломке

✨ Первое испытание шлюза!

Всё готово для первого теста! Вы берёте карту-ключ колониста и подносите к NFC-считывателю…

🔐 Карта распознана!
⚙️ Механизм активирован!
🚪 Шлюз открывается!

Шлюз открыт

NFC-модуль мгновенно распознаёт сигнал карты, запускает программу, и герметичная дверь плавно открывается!

🎯 Преимущества автоматического шлюза:

🚀 Эффективность

  • Быстрый проход
  • Звуковая индикация
  • Экономия времени

🛡️ Безопасность

  • Герметичное закрытие
  • Контроль доступа по UID
  • Защита от разгерметизации

👨‍🚀 Удобство

  • Работает в скафандре
  • Hands-free доступ
  • Прост-size: 1.1em;»>💬 Вы и доктор Мариус (в восторге): «Работает! Автоматический шлюз функционирует идеально!»

💬 Доктор Мариус: «Превосходная работа! Теперь колонисты смогут быстро и безопасно входить и выходить из базы. Автоматический шлюз с NFC-контролем — это критически важная система для марсианской колонии. В экстренной ситуации каждая секунда на счету!»

Глядя на плавно работающий механизм шлюза, вы понимаете — база МАРС-1 стала ещё на шаг ближе к полной автоматизации. Теперь колонисты смогут свободно передвигаться между модулями базы и выходить на поверхность Марса, не беспокоясь о герметизации!

🏆 Достижение разблокировано:
«Мастер шлюзов» — создана автоматическая NFC-система входа/выхода!

🚀 База готова к интенсивной эксплуатации!

Файлы упражнений
12_NFC_Door.zip
Размер: 1,67 КБ