Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Умная дверь с распознаванием лица

Компоненты и расходные материалы

Bolt IoT Bolt WiFi Module
× 1
Arduino UNO
× 1
Зуммер
× 1
Беспаечный макет, полный размер
× 1
Кнопочный переключатель SparkFun, 12 мм
× 2
5 мм светодиод:красный
× 1
5 мм светодиод:зеленый
× 1
Резистор 10 кОм
× 2
Резистор 330 Ом
× 2
Перемычки (общие)
× 1

Необходимые инструменты и машины

Пистолет для горячего клея (общий)

Приложения и онлайн-сервисы

Bolt IoT Bolt Cloud
Microsoft Windows 10
Microsoft Visual Studio
IDE Arduino
Face ++

Об этом проекте

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

Вы когда-нибудь хотели добавить немного дополнительной безопасности вашей полке, ящикам, шкафам или дверям дома? Когда дело доходит до инноваций с использованием Интернета, среди тысяч доступных нам платформ и инструментов выделяется пара Arduino . и Bolt IoT . В этом проекте мы модифицируем стандартную полку, чтобы на ней была система безопасности, которая разблокируется с помощью проверки лица . Мы создадим приложение Windows Forms в C # которые могут хранить, проверять и разблокировать доверенные лица. Он использует FacePlusPlus API . для проверки лица и Bolt IoT Cloud API для связи с WiFi-модулем Bolt и Arduino. Мы подключим модуль Wi-Fi Bolt к Arduino Uno . , который будет управлять серводвигателем для блокировки / разблокировки двери.

Взволнованный? Приступим.

Фон

Я сделал этот проект в рамках программы Innovate Challenge и IoT Training, проводимой Internshala Trainings. Их обучение помогло понять основы работы со службами API, объектно-ориентированного программирования и, что наиболее важно, использования модуля Bolt WiFi. Краткий обзор Capstone Project, сделанный в рамках этого тренинга, можно найти здесь. Многие из этих концепций пригодились в ходе разработки этого проекта. Так что спасибо команде Интерншала за то, что это стало возможным.

Шаг 1. Сборка программного обеспечения

Мы создадим приложение Windows Forms с помощью Visual Studio. Это приложение работает на компьютере под управлением Windows и будет отвечать за управление авторизованными лицами, проверку лица с помощью FacePlusPlus API и взаимодействие с модулем Bolt WiFi. Мы будем использовать C # для кодирования.

Запустите Visual Studio и создайте новый проект приложения Windows Forms. Если вы новичок в Visual Studio, я рекомендую изучить основы разработки приложений Windows Forms с помощью Visual Studio. Это и это хорошие ресурсы для начала работы.

В этом руководстве я буду объяснять код только с помощью фрагментов из проекта, который выполняет основные и важные функции. Просматривать весь код будет утомительно и излишне, так как большая его часть не требует пояснений и хорошо документирована.

В нашем проекте Visual Studio используются 3 библиотеки для различных целей. Это:

  • AForge .NET :Популярная платформа .NET, используемая для обработки изображений в Windows. Мы используем его для захвата изображений с веб-камеры.
  • Bolt IoT API .NET :Неофициальная клиентская библиотека, которую я написал на C #, для взаимодействия с Bolt Cloud API.
  • Newtonsoft JSON :Популярный высокопроизводительный фреймворк JSON для .NET. Используется для анализа ответов API в нашем проекте.

ПРИМЕЧАНИЕ. Для ясности в использовании различных методов в вышеупомянутых API, пожалуйста, обратитесь к их соответствующей документации здесь, здесь и здесь.

Начало работы

Прежде чем приступить к программированию, нам нужно кое-что настроить.

1. Учетные данные Bolt Cloud API

Если вы еще этого не сделали, перейдите на сайт cloud.boltiot.com и создайте учетную запись. После входа в систему свяжите свой модуль Wi-Fi с Bolt Cloud. Для этого загрузите приложение Bolt IoT Setup на свой мобильный телефон. Следуйте инструкциям в приложении, чтобы связать свое устройство с учетной записью. Это включает в себя сопряжение Bolt с локальной сетью Wi-Fi. После успешной связи ваша панель управления отобразит ваше устройство. Теперь вы можете получить свой идентификатор устройства а также Ключ API из панели управления.

2. Учетные данные FacePlusPlus API

Еще одна служба API, на которую мы полагаемся в этом проекте, - это FacePlusPlus API . . Это бесплатная платформа, предлагающая различные виды услуг по распознаванию изображений. Мы используем его для идентификации по лицу. Создайте учетную запись и перейдите в консоль FacePlusPlus. Перейдите к API-ключ в разделе Приложения и нажмите + Получить ключ API . Запишите только что сгенерированный ключ API . и Секрет API .

Теперь у вас должно быть готово следующее:

  закрытая строка только для чтения BOLT_DEVICE_ID ="BOLTXXXXXX"; закрытая строка только для чтения BOLT_API_KEY ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; закрытая строка только для чтения FPP_API_KEY ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; закрытая строка только для чтения FPP_API_SECRET ="XXXXXXXXXXXXXXXXXXXXXXXXXXX; XX" 

Мы создаем новый глобальный экземпляр класса Bolt с именем myBolt , через который мы будем осуществлять всю дальнейшую связь с модулем WiFi:

  myBolt =новый болт (BOLT_API_KEY, BOLT_DEVICE_ID);  

Тем не менее, теперь давайте посмотрим, как наше приложение выполняет некоторые из основных функций.

1. Запереть / отпереть дверь

Мы разработали схему так, что когда цифровой вывод 0 имеет значение HIGH , дверь должна быть заблокирована, и когда цифровой контакт 3 имеет значение HIGH , дверь должна быть открыта. Это станет более ясным позже, когда мы обсудим принципиальные схемы.

Для блокировки мы используем DigitalMultiWrite метод из библиотеки для записи HIGH значение D0 и значение LOW до D3. Это подает сигнал Arduino заблокировать дверь. Аналогично для разблокировки напишем LOW значение D0 и HIGH значение D3. Это подает сигнал Arduino открыть дверь. Мы обсудим код и схему Arduino позже в этом руководстве.

Код, выполняющий блокировку:

  закрытая асинхронная задача LockDoor () {MultiPinConfig multiPinConfig =new MultiPinConfig (); MultiPinConfig.AddPinState (DigitalPins.D0, DigitalStates.High); // Сигнал блокировки multiPinConfig.AddPinState (DigitalPins.D3, DigitalStates.Low); // Сигнал разблокировки await myBolt.DigitalMultiWrite (multiPinConfig); multiPinConfig =новый MultiPinConfig (); multiPinConfig.AddPinState (DigitalPins.D0, DigitalStates.Low); // Сигнал блокировки multiPinConfig.AddPinState (DigitalPins.D3, DigitalStates.Low); // Сигнал разблокировки await myBolt.DigitalMultiWrite (multiPinConfig);}  

Код, выполняющий разблокировку:

  закрытая асинхронная задача UnlockDoor () {MultiPinConfig multiPinConfig =new MultiPinConfig (); multiPinConfig.AddPinState (DigitalPins.D0, DigitalStates.Low); // Сигнал блокировки multiPinConfig.AddPinState (DigitalPins.D3, DigitalStates.High); // Сигнал разблокировки await myBolt.DigitalMultiWrite (multiPinConfig); multiPinConfig =новый MultiPinConfig (); multiPinConfig.AddPinState (DigitalPins.D0, DigitalStates.Low); // Сигнал блокировки multiPinConfig.AddPinState (DigitalPins.D3, DigitalStates.Low); // Сигнал разблокировки await myBolt.DigitalMultiWrite (multiPinConfig);}  

2. Добавить / удалить доверенные лица

Данные изображения доверенного лица кодируются в строку Base64 и хранятся локально на машине. Также сохраняется список соответствующих имён для каждого лица. В нашей программе, чтобы добавить лицо, мы сначала проверяем, есть ли лицо в текущем кадре. Мы делаем это с помощью API обнаружения FacePlusPlus. Он возвращает ответ JSON, который будет содержать черты обнаруженного лица. Если лицо не обнаружено, ответ будет просто [] . . После обнаружения лица мы сохраняем строку изображения в кодировке base64 и соответствующее имя. Вот видео-демонстрация добавления доверенного лица.

Удалить лицо довольно просто. Нажатие кнопки удаления удалит данные изображения и имя из сохраненного списка.

Код, который добавляет и сохраняет информацию о лице:

  // Конвертируем изображение в строку base64 и добавляем его в список. ImageDataList.Add (ImageToBase64 ((Image) PreviewBox.Image.Clone ())); // Добавление имени лица в списокNameList.Add (FaceNameTextBox.Text.Trim ()); // Сохраняет данные изображения лица как строку с базовой кодировкой вместе с его именемProperties.Settings.Default.Base64ImageData =ImageDataList; Properties.Settings.Default.FaceNames =NameList; Properties.Settings.Default.Save ();  

Код, удаляющий информацию о лице:

  // Удаление информации о лице в указанной позиции в спискеNameList.RemoveAt (e.RowIndex); ImageDataList.RemoveAt (e.RowIndex); // Сохранение списка после удаления faceProperties.Settings.Default.FaceNames =NameList; Properties.Settings.Default.Base64ImageData =ImageDataList; Properties.Settings.Default.Save ();  

Ознакомьтесь с кодом в прилагаемом проекте, где процесс поясняется в виде комментариев в каждой строке, чтобы иметь четкое представление.

3. Подтверждение лица

Мы проверяем, можно ли доверять лицу, используя API сравнения в FacePlusPlus. Во время этого процесса мы линейно перебираем каждое лицо в сохраненном списке и сравниваем его с захваченным изображением. Если API вернет достоверность более 80%, мы откроем дверь.

Код, выполняющий это сравнение, выглядит примерно так:

  клиент WebClient =новый WebClient (); byte [] response =client.UploadValues ​​("https://api-us.faceplusplus.com/facepp/v3/compare", new NameValueCollection () {{"api_key", FPP_API_KEY}, {"api_secret", FPP_API_SECRET}, {"image_base64_1", face1Base64}, {"image_base64_2", face2Base64}});}); строка уверенности =JObject.Parse (System.Text.Encoding.UTF8.GetString (ответ)) ["уверенность"]. ToString ();  

WebClient.UploadValues ​​ отправляет запрос в FacePlusPlus API вместе с данными двух сравниваемых лиц в кодировке base64 и нашими учетными данными API. Ответ анализируется с использованием Newtonsoft JSON . библиотека и уверенность значение получается. Прочтите документацию API сравнения, чтобы четко понять аргументы.

4. Тема для прослушивания колокола

Мы планируем предоставить физическую кнопку, что-то вроде кнопки звонка, чтобы пользователь мог нажать, глядя в камеру, чтобы открыть дверь. Чтобы это стало возможным, нам нужно создать новый выделенный поток, который постоянно прослушивает событие нажатия кнопки звонка.

Позже в этом руководстве мы увидим, как используется кнопка и как она делает вывод D4 модуля Wi-Fi Bolt HIGH когда кнопка нажата. Пока мы просто предположим вышесказанное. Поэтому в этой беседе мы постоянно DigitalRead значение вывода D4. Если он ВЫСОКИЙ , мы примем это как событие звонка и сделаем снимок лица и проверку.

Вот код, который будет непрерывно выполняться в потоке прослушивания звонка:

  while (ListenForBell) {Ответ R =ожидание myBolt.DigitalRead (DigitalPins.D4); если (R.Value =="1") {RingBell_Click (ноль, ноль); Thread.Sleep (2000); } Thread.Sleep (2000);}  

Останавливаемся и ждем 2 секунды между каждой итерацией. В противном случае квота на использование Bolt Cloud API быстро исчерпается.

Шаг 2. Создание проекта Visual Studio

Загрузить весь проект здесь . Откройте Facebolt Doorlock.sln . файл в Visual Studio. После загрузки решения откройте Form1.cs . и обновите код, указав свои учетные данные API. Нажмите зеленую кнопку воспроизведения под названием «Пуск», чтобы собрать и запустить программу.

Программа позволяет выбирать из камер, подключенных к системе, и просматривать прямую трансляцию с камеры. Вы можете добавить / удалить доверенное лицо. Запустить мониторинг лиц. После того, как программа проверит возможность подключения вашего устройства Bolt, вы можете позвонить в звонок или заблокировать дверь прямо из программы.

Ничего страшного, если вы сейчас не понимаете, как в программе работает проверка лица, блокировка и разблокировка. Это станет более понятным, когда мы увидим принципиальную схему и код Arduino. В конце я также разберу поток событий каждой операции.

Шаг 3. Проектирование схемы и код Arduino

В нашей схеме мы намерены реализовать следующие функции:

  • Красный и зеленый светодиоды для состояний заблокированной и разблокированной двери соответственно.
  • Кнопка, действующая как переключатель звонка. При нажатии наше приложение WinForms должно проверить лицо и открыть дверь после успешной аутентификации по лицу.
  • Еще одна кнопка для запирания двери.
  • Зуммер, который подает звуковой сигнал в случае звонка в дверь или дверного замка.

Схема подключения нашего проекта показана ниже:

Если вы еще этого не сделали, загрузите Arduino IDE отсюда и подключите Arduino к системе. Перед загрузкой кода убедитесь, что вы установили правильную модель Arduino и порт в настройках IDE.

Код Arduino:

  #include  #define ServoPin 4 # define LockSignalPin 2 # define UnLockSignalPin 3 # define BellButtonPin 5 # define LockButtonPin 8 # define RingBellSignalPin 6 #define BuzzerPin 7 # define GreenLedPin 9 # 10 define RedLedPin myServo; void setup () {pinMode (LockSignalPin, ВХОД); pinMode (UnLockSignalPin, ВХОД); pinMode (BellButtonPin, ВХОД); pinMode (LockButtonPin, ВХОД); pinMode (BuzzerPin, ВЫХОД); pinMode (RedLedPin, ВЫХОД); pinMode (GreenLedPin, ВЫХОД); pinMode (RingBellSignalPin, ВЫХОД); digitalWrite (RedLedPin, LOW); digitalWrite (GreenLedPin, LOW); digitalWrite (RingBellSignalPin, LOW); myServo.attach (Сервопин); Serial.begin (9600);} void loop () {int lockButton, lock, unlock, bell; char snum [5]; блокировка =digitalRead (LockSignalPin); unlock =digitalRead (UnLockSignalPin); // Проверяем, является ли сигнал блокировки от Bolt ВЫСОКИМ if (lock ==HIGH) {// Повернуть двигатель в заблокированное положение myServo.write (120); // Устанавливаем индикацию светодиодов digitalWrite (GreenLedPin, LOW); digitalWrite (RedLedPin, HIGH); // Звук блокировки гудка digitalWrite (BuzzerPin, HIGH); задержка (1000); digitalWrite (BuzzerPin, LOW); задержка (1000); } // Проверяем, является ли сигнал разблокировки от Bolt ВЫСОКИМ else if (unlock ==HIGH) {// Повернем двигатель в разблокированное положение myServo.write (0); // Устанавливаем индикацию светодиодов digitalWrite (GreenLedPin, HIGH); digitalWrite (RedLedPin, LOW); задержка (2000); } звонок =digitalRead (BellButtonPin); if (bell ==HIGH) // Пользователь нажал кнопку звонка betton {// Сигнал, что кнопка звонка была нажата digitalWrite (RingBellSignalPin, HIGH); // Звуковой образец звонящего звонка! digitalWrite (BuzzerPin, HIGH); задержка (100); digitalWrite (BuzzerPin, LOW); задержка (20); digitalWrite (BuzzerPin, HIGH); задержка (200); digitalWrite (BuzzerPin, LOW); задержка (100); digitalWrite (BuzzerPin, HIGH); задержка (100); digitalWrite (BuzzerPin, LOW); задержка (20); digitalWrite (BuzzerPin, HIGH); задержка (200); digitalWrite (BuzzerPin, LOW); задержка (1500); // Отключаем сигнал digitalWrite (RingBellSignalPin, LOW); } lockButton =digitalRead (LockButtonPin); if (lockButton ==HIGH) // Пользователь нажал кнопку блокировки betton {// Повернуть двигатель в заблокированное положение myServo.write (120); // Устанавливаем индикацию светодиодов digitalWrite (GreenLedPin, LOW); digitalWrite (RedLedPin, HIGH); // Звук блокировки гудка digitalWrite (BuzzerPin, HIGH); задержка (1000); digitalWrite (BuzzerPin, LOW); }}  

Потоки событий

Теперь, когда у нас есть приложение WinForm и дизайн Arduino, давайте погрузимся в код и исследуем поток управления каждой операции.

1. Кольцо Нажатие кнопки

2. Заблокировать Нажатие кнопки

Обе указанные выше операции также могут быть выполнены непосредственно из приложения Windows Forms.

Здесь мы видим, что модуль Wi-Fi Bolt служит важным беспроводным интерфейсом между приложением Windows Forms и Arduino. Использование Bolt Cloud API позволяет нам расширять наш проект и создавать приложения на других платформах, таких как Android, и открывать двери с помощью наших телефонов! Такая гибкость - это сила Интернета вещей и платформы Bolt.

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

Шаг 4. Сборка оборудования

У меня есть полка для обуви, поэтому в этом проекте я собираюсь использовать ее для демонстрации замков. Вы можете использовать полку, дверь, шкаф или что-нибудь, что имеет взломанный запирающий механизм. Выбор действительно за вами.

Нам нужно построить соединительный механизм, который соединяет наш серводвигатель с замком. Для этого я использую отрезанное горлышко от бутылки и крышку от другой бутылки. Присоедините горлышко бутылки к серводвигателю, а крышку - к замку. Затем мы соединим их нейлоновой нитью. Это приведет к блокировке / разблокировке всякий раз, когда двигатель вращается.

Требуемое горлышко бутылки с просверленным отверстием на крышке выглядит примерно так, как показано ниже. Мы прикрепим его к фиксирующему валу полки для обуви.

Крышка еще одной бутылки должна быть прикреплена к серводвигателю. Мы используем медные провода для соединения колпачка с вращающимся валом двигателя.

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

После соединения они могут вызывать взаимное вращение:

Теперь, когда у нас есть поворотный механизм, пора взломать замок и закрепить в нем горлышко бутылки. Мы просверлили в нем отверстие, поэтому все, что нам нужно сделать, это отвинтить фиксирующий вал от стойки, поставить горлышко бутылки над ним и снова плотно завинтить фиксатор.

Теперь осталось только закрепить серводвигатель на стойке для обуви. Мы воспользуемся горячим клеевым пистолетом, чтобы прикрепить двигатель к стойке.

После регулировки длины нити и достаточной ее затяжки мы готовы к окончательной настройке. Как видно ниже, серводвигатель может правильно запирать и открывать дверь!

Необязательно использовать метод соединения «горлышко бутылки» с резьбой. Используйте тот метод, который наиболее подходит и удобен для вашей системы блокировки.

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

Теперь все готово. Все, что осталось сделать, это запустить схему, добавить надежное лицо в приложение WinForms и насладиться защитой блокировки лица на наших дверях. Вам нужно будет подключить как Arduino, так и модуль Bolt WiFi. Я использую блок питания на 10000 мАч, чтобы запитать их обоих. Я использую веб-камеру Microsoft LifeCam VX-800. Он старый, но все же лучше камеры ноутбука. Обязательно посмотрите демонстрационное видео. Он подробно показывает работу нашего проекта.

Видео-демонстрация

Посмотрите наш проект в действии (извинения за качество видео):

Заключение

Хафф .. это было довольно долго. Этот проект является результатом обучения Internshala IoT на базе Bolt IoT. Хотя этот проект довольно прост, он показывает нам потенциал Интернета вещей и то, как он может облегчить повседневную жизнь людей.

В любом случае .. Это был отличный познавательный опыт для меня. Я надеюсь, что вам понравится создавать это, и я очень рад видеть, какие новые инновации вы придумаете. В заключение я выражаю искреннюю благодарность команде обучения Internshala и Bolt IoT за то, что сделали это предприятие возможным.

Вот и все!

Код

  • BoltDoorLock.ino
  • Приложение WinForms - проект Visual Studio (Facebolt Doorlock) .zip
BoltDoorLock.ino C / C ++
Код Arduino.
 #include  #define ServoPin 4 # define LockSignalPin 2 # define UnLockSignalPin 3 # define BellButtonPin 5 # define LockButtonPin 8 # define RingBellSignalPin 6 # define BuzzerPin 7 #define GreenLedvoPin 9 #define RedLedPin 9 #define; void setup () {pinMode (LockSignalPin, INPUT); pinMode (UnLockSignalPin, ВХОД); pinMode (BellButtonPin, ВХОД); pinMode (LockButtonPin, ВХОД); pinMode (BuzzerPin, ВЫХОД); pinMode (RedLedPin, ВЫХОД); pinMode (GreenLedPin, ВЫХОД); pinMode (RingBellSignalPin, ВЫХОД); digitalWrite (RedLedPin, LOW); digitalWrite (GreenLedPin, LOW); digitalWrite (RingBellSignalPin, LOW); myServo.attach (Сервопин); Serial.begin (9600);} void loop () {int lockButton, lock, unlock, bell; char snum [5]; блокировка =digitalRead (LockSignalPin); unlock =digitalRead (UnLockSignalPin); // Проверяем, является ли сигнал блокировки от Bolt ВЫСОКИМ if (lock ==HIGH) {// Повернуть двигатель в заблокированное положение myServo.write (120); // Устанавливаем индикацию светодиодов digitalWrite (GreenLedPin, LOW); digitalWrite (RedLedPin, HIGH); // Звук блокировки гудка digitalWrite (BuzzerPin, HIGH); задержка (1000); digitalWrite (BuzzerPin, LOW); задержка (1000); } // Проверяем, является ли сигнал разблокировки от Bolt ВЫСОКИМ else if (unlock ==HIGH) {// Повернем двигатель в разблокированное положение myServo.write (0); // Устанавливаем индикацию светодиодов digitalWrite (GreenLedPin, HIGH); digitalWrite (RedLedPin, LOW); задержка (2000); } звонок =digitalRead (BellButtonPin); if (bell ==HIGH) // Пользователь нажал кнопку звонка betton {// Сигнал, что кнопка звонка была нажата digitalWrite (RingBellSignalPin, HIGH); // Звуковой образец звонящего звонка! digitalWrite (BuzzerPin, HIGH); задержка (100); digitalWrite (BuzzerPin, LOW); задержка (20); digitalWrite (BuzzerPin, HIGH); задержка (200); digitalWrite (BuzzerPin, LOW); задержка (100); digitalWrite (BuzzerPin, HIGH); задержка (100); digitalWrite (BuzzerPin, LOW); задержка (20); digitalWrite (BuzzerPin, HIGH); задержка (200); digitalWrite (BuzzerPin, LOW); задержка (1500); // Отключаем сигнал digitalWrite (RingBellSignalPin, LOW); } lockButton =digitalRead (LockButtonPin); if (lockButton ==HIGH) // Пользователь нажал кнопку блокировки betton {// Повернуть двигатель в заблокированное положение myServo.write (120); // Устанавливаем индикацию светодиодов digitalWrite (GreenLedPin, LOW); digitalWrite (RedLedPin, HIGH); // Звук блокировки гудка digitalWrite (BuzzerPin, HIGH); задержка (1000); digitalWrite (BuzzerPin, LOW); }} 
Приложение WinForms - Проект Visual Studio (Facebolt Doorlock) .zip C #
* Извлеките zip-файл и откройте файл .sln в Visual Studio.
* Измените код, указав свои учетные данные API.
* Запустить проект.
* Добавить доверенное лицо.
* Наконец, запустите мониторинг лиц.
 Предварительный просмотр отсутствует (только загрузка). 
Bolt IoT Cloud API - клиентская библиотека
Это неофициальная клиентская библиотека, которую я написал для связи с Bolt Cloud API. Эта библиотека используется в нашем приложении WinForms для связи с WiFi-модулем Bolt. Https://github.com/diozz/Bolt-IoT-API-.NET

Схема

Схема цепи Fritzing facebolt_doorlock_2RfOtkPW2i.fzz

Производственный процесс

  1. Контроллер умного дома 433 МГц с Sensorflare и RaspberryPi
  2. Создание двери офиса с автоматическим запиранием с помощью датчика приближения смартфона
  3. Отслеживание лица при панорамировании / наклоне с помощью raspberry pi
  4. Умный бармен
  5. Затяжка соединений динамометрическим инструментом
  6. Рационально расходуйте свой доллар Интернета вещей
  7. Безопасность с помощью смарт-устройств и Интернета вещей
  8. Умные закупки уравновешивают ИИ с высоким интеллектом
  9. Умный дверной замок с использованием страницы входа в WiFi от Arduino и ESP8266
  10. GE Digital:трансформация производства с помощью Smart MES