🚪 Задание 12: Автоматический шлюз базы
Интеграция NFC с сервоприводом для герметичных дверей
После долгой исследовательской миссии в марсианских каньонах вы с доктором Мариусом возвращаетесь в базу МАРС-1, уставшие, но полные новых открытий.
Вы сидите в командном центре базы, наслаждаясь теплом и безопасностью герметичных модулей. Воспоминания о красных скалах и бескрайних равнинах Марса всё ещё свежи в памяти…
Вы задумчиво смотрите на входной шлюз базы, и вас осеняет новая идея.
💬 Вы: «Доктор Мариус, а что если сделать так, чтобы шлюз автоматически открывался после идентификации карты? Колонистам в громоздких скафандрах будет сложно вручную управлять дверями!»
💬 Доктор Мариус: «Блестящая идея! Мы модифицируем шлюзовую систему и добавим автоматический механизм открытия. Это критически важно для безопасности — шлюз должен быстро открываться и герметично закрываться!»
⚙️ Механизм герметичного шлюза
Вы вместе начинаете модифицировать конструкцию шлюза базы МАРС-1, используя механизм «рейка и шестерня» для точного управления герметичной дверью:

⚠️ ВАЖНО: НЕ устанавливайте шестерню на сервопривод до загрузки программы! Сначала нужно откалибровать сервопривод.
⚙️ Преимущества для Марса: Механизм «рейка-шестерня» обеспечивает плавное движение и плотное закрытие шлюза, что критично для сохранения герметичности базы!
💬 Доктор Мариус: «Для управления механизмом используем сервопривод SG90 — надёжный и точный!»
📚 База знаний: Сервопривод SG90
💬 Вы: «Что такое сервопривод и почему он подходит для марсианского шлюза?»
🔧 Серводвигатель SG90
Сервопривод — это точный исполнительный механизм, способный поворачиваться на заданный угол и удерживать позицию. Идеален для управления шлюзами марсианской базы.
📋 Компоненты:
- Двигатель постоянного тока
- Редуктор (увеличивает силу)
- Потенциометр (датчик положения)
- Плата управления
- Выходной вал с рычагом
🔄 Принцип работы:
Сигнал → Плата управления → Двигатель → Редуктор → Поворот вала → Обратная связь от потенциометра → Точное позиционирование
⚠️ Важно: Перед использованием сервопривод нужно откалибровать, иначе механизм шлюза может повредиться!
⚠️ ПЕРЕД ЗАГРУЗКОЙ ПРОГРАММЫ:
- НЕ устанавливайте шестерню на сервопривод!
- Вставьте свои UID данные карт в программу (замените «ВСТАВЬ СВОЙ UID»)
- Используйте 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(‘Код скопирован в буфер обмена!’); }); }
🔄 Алгоритм работы:
- Сканирование NFC-карт
- Идентификация колониста по UID
- Проверка прав доступа
- Открытие шлюза на 100° (если доступ разрешен)
- Звуковые сигналы для обратной связи
- Пауза 3 секунды для прохода
- Предупреждение о закрытии
- Автоматическое закрытие (герметизация)
🔧 Монтаж механизма шлюза
📍 После загрузки программы: Сервопривод автоматически повернется в положение 5° (закрыто). Теперь можно установить механизм!

📋 Последовательность монтажа:
- ✅ Дождитесь, пока сервопривод повернется в начальное положение (5°)
- ✅ Вручную закройте дверь шлюза до конца вправо (чтобы дверной проход полностью исчез)
- ✅ Теперь установите шестерню на вал сервопривода
- ✅ Проверьте правильное зацепление шестерни с рейкой двери
- ✅ Убедитесь, что дверь полностью закрыта и герметична
💡 Совет: Не пытайтесь крутить механизм сервопривода руками — это приведет к его поломке
✨ Первое испытание шлюза!
Всё готово для первого теста! Вы берёте карту-ключ колониста и подносите к NFC-считывателю…
🔐 Карта распознана!
⚙️ Механизм активирован!
🚪 Шлюз открывается!

NFC-модуль мгновенно распознаёт сигнал карты, запускает программу, и герметичная дверь плавно открывается!
🎯 Преимущества автоматического шлюза:
🚀 Эффективность
- Быстрый проход
- Звуковая индикация
- Экономия времени
🛡️ Безопасность
- Герметичное закрытие
- Контроль доступа по UID
- Защита от разгерметизации
👨🚀 Удобство
- Работает в скафандре
- Hands-free доступ
- Прост-size: 1.1em;»>💬 Вы и доктор Мариус (в восторге): «Работает! Автоматический шлюз функционирует идеально!»
💬 Доктор Мариус: «Превосходная работа! Теперь колонисты смогут быстро и безопасно входить и выходить из базы. Автоматический шлюз с NFC-контролем — это критически важная система для марсианской колонии. В экстренной ситуации каждая секунда на счету!»
Глядя на плавно работающий механизм шлюза, вы понимаете — база МАРС-1 стала ещё на шаг ближе к полной автоматизации. Теперь колонисты смогут свободно передвигаться между модулями базы и выходить на поверхность Марса, не беспокоясь о герметизации!
🏆 Достижение разблокировано:
«Мастер шлюзов» — создана автоматическая NFC-система входа/выхода!

