Когда вы с доктором Луми возвращаетесь домой с пляжа, вы устали.
Вы сидите вместе в гостиной и наслаждаетесь теплой, уютной атмосферой. Послевкусие морского бриза все еще пульсирует в вашем сердце, и ваши мысли начинают дрейфовать.
Вы молча смотрите на дверь дома Луми, ваши глаза полны размышлений и ожиданий. Вас осеняет новая идея, и вы медленно произносите: «Доктор Луми, я подумал, нельзя ли сделать так, чтобы ключ автоматически открывал дверь после идентификации карты».
Доктор Луми на мгновение задумалась, а затем тихо ответила: «Конечно, мы можем. Сначала нам нужно изменить структуру двери и написать программу, которая будет открывать ее автоматически».
Вы улыбаетесь, киваете и решаете вместе опробовать эту новую идею. Вы начинаете изменять структуру ворот Дома Луми, настраивая движение двери с помощью простой механической конструкции под названием «рейка и шестерня».
Доктор Луми сообщает вам, что на этот раз используется сервомодуль
SG90.
«Что это такое?» — спрашиваете вы, недоумевая.
Доктор Луми открыл голограмму и указал на изображение. «Вы можете обратиться к нему для ознакомления с сервомодулем SG90 модулем».
Серводвигатель SG90
Основная структура сервомотора показана на следующем рисунке. В основном он состоит из нескольких частей: корпуса, вариатора, двигателя, регулируемого потенциометра, платы управления и рулевого колеса.
Принцип работы заключается в том, что плата управления получает управляющий сигнал от источника сигнала и приводит двигатель во вращение; набор шестерен уменьшает скорость двигателя во много раз и увеличивает выходной крутящий момент двигателя в соответствующее время, а затем выводит; потенциометр и последняя ступень группы шестерен вращаются вместе, чтобы измерить угол поворота вала сервопривода; печатная плата обнаруживает и оценивает угол поворота рулевой передачи в соответствии с потенциометром, а затем управляет рулевой передачей, чтобы повернуть на заданный угол или остаться на заданном угле.
Процесс работы выглядит следующим образом: управляющий сигнал → плата управления → вращение двигателя → замедление вращения зубчатой передачи → вращение рулевого колеса → потенциометр обратной связи по положению → обратная связь с платой управления
«Обратите внимание, что перед использованием сервомодуль SG90 необходимо откалибровать, иначе можно легко повредить сервопривод», — говорит доктор Луми.
Вы спросите: «Как откалибровать сервомодуль?»
«Не волнуйтесь», — объясняет доктор Луми. «Я упростил процесс, и он будет автоматически откалиброван после загрузки программы».
Вы киваете головой в знак понимания, а затем спрашиваете: «Как запрограммировать карту на открытие двери?»
«Вы можете обратиться к этому коду, — терпеливо сказал доктор Луми.
#include <MFRC522_I2C.h> //вызов библиотеки RFID #include <ESP32Servo.h> //вызов библиотеки сервопривода MFRC522 mfrc522(0x28);
//конфигурируем адрес RFID
String rfid_str= «»; //определяем переменную типа string для чтения номера карты Servo servo_18; //конфигурируем контакты сервопривода
const int door_close = 5; //определите угол поворота сервопривода двери для закрытия двери, который может быть изменен в зависимости от реальной ситуации
const int door_open= 100; //определите угол наклона сервопривода двери для открытия двери, он может быть изменен в зависимости от реальной ситуации
void setup() {
Serial.begin(115200); //инициализируем последовательный порт, смотрим номер карты, используемой для Wire.begin(); //инициализируем последовательный порт i2c mfrc522.PCD_Init(); //инициализация RFID модуля
servo_18.attach(18, 500, 2500); //инициализация сервоприводов
servo_18.write(door_close); //дайте сервоприводу повернуться в исходное положение delay(500); //дождитесь окончания поворота сервопривода
}
void loop() {
if (!mfrc522.PICC_IsNewCardPresent()|| !mfrc522.PICC_ReadCardSerial()) {
//если новая карта не присутствует или если не удалось считать серийный номер карты delay(50);
return; //возвращаемся в основную программу и начинаем сначала
}
rfid_str= «»; //сначала очистите переменную номера считанной карты for (byte i = 0; i < mfrc522.uid.size; i++) {
rfid_str= rfid_str+ String(mfrc522.uid.uidByte[i], HEX);
} // сохраняем номер карты дословно в строковой переменной rfid_str Serial.print(«UID: «);
Serial.println(rfid_str); servo_18.write(door_open);
//открываем дверь delay(2000); //выжидаем две секунды, можно изменить
servo_18.write(door_close); //закрыть дверь
}
Вы можете нажать на гиперссылку, чтобы открыть программу: нажмите, чтобы получить программу открытия двери RFID.
После завершения загрузки программы сервопривод будет сначала откалиброван. После калибровки сервопривод будет находиться в статическом состоянии. В это время необходимо закрыть акриловую дверь, а затем вручную установить акриловую шестеренку на сервопривод.
Наконец, когда все готово, можно провести первый долгожданный тест. Вы берете ключ-карту и осторожно подносите к RFID-модулю на двери.
RFID-модуль сразу же почувствовал сигнал от карты-ключа, быстро запустил программу, и дверь открылась.
Вы и доктор Луми в восторге от этого момента.