Умный доступ по лицу: Arduino + Bolt IoT + Face++
Компоненты
| Bolt WiFi Module | 1 шт. |
| Arduino UNO | 1 шт. |
| Сервопривод (замочная механика) | 1 шт. |
| Зуммер, красный/зелёный LED | 1+1+1 шт. |
| 2 кнопки (звонок, запирание) | 2 шт. |
| Резисторы 10 кОм, 330 Ом | 2+2 шт. |
| Макетная плата, перемычки, клей-пистолет | — |
Программное обеспечение
- Windows 10, Visual Studio (C# WinForms)
- Arduino IDE
- Bolt Cloud, Face++ API
- Библиотеки: AForge.NET (веб-камера), Bolt IoT API .NET, Newtonsoft JSON
Архитектура
WinForms-приложение на ПК управляет доступом: веб-камера → Face++ (верификация) → Bolt Cloud → Bolt WiFi → Arduino (серво, LED, зуммер). Bolt выступает беспроводным мостом.
Основные функции ПК-приложения
- Добавление/удаление доверенных лиц (Base64 в настройках)
- Верификация лица (Compare API, порог 80% confidence)
- Поток «колокольчик»: опрос пина D4 Bolt каждые 2 сек, при HIGH — захват и проверка лица
- Ручное управление: Lock/Unlock кнопки в UI
Arduino логика
- Пины: LockSignal(D2), UnlockSignal(D3), BellBtn(D5), LockBtn(D8), RingSignal(D6), Buzzer(D7), GreenLED(D9), RedLED(D10), Servo(D4)
- Lock: серво 120°, красный LED, зуммер 1с
- Unlock: серво 0°, зелёный LED 2с
- Bell: сигнал на D6 Bolt, мелодия зуммера
- LockBtn: локальное запирание
Механика замка
Серво + нилоновая нить + бутылочные шейки/крышки как муфта. Шейка на валу сервы, вторая — на засовке двери/полки. Нить передаёт вращение. Крепление серво клей-пистолетом.
Код Arduino (BoltDoorLock.ino)
#include <Servo.h>
#define ServoPin 4
#define LockSignalPin 2
#define UnLockSignalPin 3
#define BellButtonPin 5
#define LockButtonPin 8
#define RingBellSignalPin 6
#define BuzzerPin 7
#define GreenLedPin 9
#define RedLedPin 10
Servo myServo;
void setup() {
pinMode(LockSignalPin, INPUT);
pinMode(UnLockSignalPin, INPUT);
pinMode(BellButtonPin, INPUT);
pinMode(LockButtonPin, INPUT);
pinMode(BuzzerPin, OUTPUT);
pinMode(RedLedPin, OUTPUT);
pinMode(GreenLedPin, OUTPUT);
pinMode(RingBellSignalPin, OUTPUT);
digitalWrite(RedLedPin, LOW);
digitalWrite(GreenLedPin, LOW);
digitalWrite(RingBellSignalPin, LOW);
myServo.attach(ServoPin);
Serial.begin(9600);
}
void loop() {
int lock = digitalRead(LockSignalPin);
int unlock = digitalRead(UnLockSignalPin);
if (lock == HIGH) { myServo.write(120); digitalWrite(GreenLedPin, LOW); digitalWrite(RedLedPin, HIGH); buzz(1000); }
else if (unlock == HIGH) { myServo.write(0); digitalWrite(GreenLedPin, HIGH); digitalWrite(RedLedPin, LOW); delay(2000); }
if (digitalRead(BellButtonPin) == HIGH) { ringBell(); }
if (digitalRead(LockButtonPin) == HIGH) { myServo.write(120); digitalWrite(GreenLedPin, LOW); digitalWrite(RedLedPin, HIGH); buzz(1000); }
}
WinForms проект (C#)
Скачайте архив, откройте .sln в Visual Studio, вставьте API ключи (Bolt Device ID, Bolt API Key, Face++ Key/Secret), соберите и запустите. Добавьте доверенные лица, нажмите «Start Face Monitoring».
Схема (Fritzing)
facebolt_doorlock_2RfOtkPW2i.fzzБиблиотека Bolt IoT API .NET
https://github.com/diozz/Bolt-IoT-API-.NET
Производственный процесс
- Создание умного домашнего контроллера 433 МГц с Sensorflare и Raspberry Pi
- Создание умного автозамка двери с использованием Bluetooth-близости смартфона
- Практическое руководство: real-time панорамирование/наклон для отслеживания лиц на Raspberry Pi
- Умный бармен: создайте свою Raspberry Pi-станцию для коктейлей
- Оптимизация затяжки болтов динамометрическими инструментами — проверенные стратегии надежного преднатяжен…
- Максимизация ROI от IoT-инвестиций: практическое руководство
- Защитите свои умные устройства: лучшие практики безопасности IoT
- Умные закупки: слияние ИИ с человеческим инсайтом
- WiFi-умный замок на Arduino и ESP8266 — открывание с телефона
- GE Digital трансформирует производство с помощью умных MES