Електронна система обліку відвідувачів

Трохи про інтернет речей:

В останній час широку популярність набула така концепція, як інтернет речей. Найкоротше визначення інтернету речей: Це коли ваш холодильник просиджує весь інтернет трафік. Хоча ця концепція виглядає безглуздо, але насправді це не так, адже ви отримуєте в свої руки потужний інструмент, з яким можете зробити багато, наприклад, систему реєстрації погодних явищ, для складання статистики, але при цьому, на відміну від звичайних схем метеостанцій, пристрій є простим клієнтом (адже вся навантаження по обробці інформації лежить на сервері, завдання пристрою лише передати дані), це дозволяє знизити ціну на пристрій, підвищити його функціонал, а також встановити одразу кілька пристроїв на зекономлені гроші.

Концепція мого пристрою:

Я не залишився осторонь і вирішив розробити свій пристрій, яке буде корисним.

Ранок, ліцей-інтернат, скоро всі зберуться на сніданок, вихователь з зошитом у руках відзначає хлопчиків потайки.

Приблизно так починається кожен ранок у моєму ліцеї, вихователі ходять, рахує по головах кожного учня і записують у зошит. Згодні, що це дуже незручно, і що найголовніше - непрактично. Внаслідок деяких роздумів на цю тему, я вирішив зібрати пристрій, яке допоможе автоматизувати цей рутинний процес. Концепція пристрою отримала горде ім'я ЕСУП (Електронна система обліку відвідувачів). Було створено визначення цього виду пристроїв: Електронна система обліку відвідувачів - це сукупність програмно-апаратних технічних засобів, головною задачею яких є облік відвідувань підприємства/закладу/приміщення в електронному вигляді.

Розробка:

Набір модулів:

В якості "мозку" пристрою вибрав Arduino Uno (бо я не зміг осягнути роботу з мережею з звичайними мікроконтролерами). Дані від користувача ми будемо приймати через RFID мітки, за допомогою RFID модуля. Передавати дані ми будемо через Ethernet за допомогою модуля enc28j60. На цьому моменті думаю, варто детально зупинитися. Для ардуїно існує два основних модулі для роботи з мережею, перший W5100 (посилання на Ali) - офіційний модуль від Arduino, має потужну документацію, є чудова стаття на цьому сайті, але в зв'язку з цим модуль дорожчий (якщо у вас є зайві гроші, раджу брати саме його, у вас буде менше проблем з його роботою). Ну і другий enc28j60 - більш дешевий, доступний у продажу. Я взяв другий, бо в мене просто обмежені ресурси.

Теорія:

Пристрій у нашому випадку є клієнтом, який відсилає дані на сервер.

  • Пристрій очікує даних від користувача (піднесення rfid мітки)
  • Пристрій зчитує id карти і створює http запит
  • Пристрій відсилає запит
  • Сервер приймає запит
  • Сервер обробляє дані (шукає ідентифікатор у базі даних і присвоює йому ім'я)
  • Сервер дивиться поточний час
  • Всі дані заносяться в html таблицю
  • Готово!

Список використаних бібліотек:

  • Ethercard - необхідна для роботи з ethernet модулем enc28j60
  • LiquidCrystal-I2C - робота з дисплеєм по i2с
  • RFID Library - необхідна для роботи з RFID модулем

Збірка пристрою:

Збірка пристрою проста, так як це ардуїно і припаяти пару проводочків не складе труднощів. Думаю, що тут необхідно прокоментувати наступне:

  • Необхідність у паралельному приєднанні ethernet контролера з RFID модулем, так як контролери не захотіли працювати на роздільних шинах SPI.
  • Також прошу звернути увагу, що виходи 8 і 10 є керуючими. За допомогою них ми вибираємо пристрій, з яким будемо працювати по SPI. 10-тий пін відповідає за вибір RFID модуля, 8-ий за вибір ethernet модуля.
  • Дисплей у цій моделі пристрою працює по I2C, а не по SPI, це необхідно враховувати при покупці дисплея.

Вихідний код проекту: Посилання
В статті я описав розробку третьої версії пристрою, але в репозиторії є вихідні коди попередніх версій (також я веду активну розробку четвертої реалізації ЕСУП). Для нашої поточної задачі знадобиться папка v3. В ній ми побачимо директорії ESCV_Arduino та ESCV_PC. Перша папка містить у собі прошивку мікроконтролера, а саме скетч для ардуїно, у другій папці є необхідне ПО, написане на мові python, яке перетворить ваш комп'ютер на сервер, до якого буде звертатися пристрій.

Для того, щоб все це запрацювало, вам необхідно завантажити ці бібліотеки (і звичайно встановити), а також python інтерпретатор третьої версії.

Запуск пристрою:

Запуск пристрою простий і елементарний:

  • Перед прошивкою пристрою ми повинні запустити сервер, що знаходиться в папці ESCV_PC, виведеться привітальне повідомлення з IP адресою цього комп'ютера.
  • Вводимо отриману адресу в скетч пристрою (фото нижче).
  • Прошиваємо пристрій
  • Підключаємо до локальної мережі вашого комп'ютера. Готово!

 

Вигляд пристрою:

Запуск пристрою я також продемонстрував у відеоролику. Якщо є побажання, пропозиції та інше, пишіть, я відповім. Сильно не критикуйте, це моя перша стаття, в подальшому постараюся покращити якість.

Список радіоелементів

Позначення Тип Номінал Кількість Примітка
Плата Arduino
Arduino Uno
1
Ethernet модуль enc28j60 1
RFID Модуль RC522 1
LCD-дисплей LCD 16x2 (i2c) 1

Top