Оглавление:

Скейт-о-метр: 7 шагов (с изображениями)
Скейт-о-метр: 7 шагов (с изображениями)

Видео: Скейт-о-метр: 7 шагов (с изображениями)

Видео: Скейт-о-метр: 7 шагов (с изображениями)
Видео: ПОСТРОИЛИ ГИГАНТСКИЙ СКЕЙТБОРД!..**РЕКОРД ГИННЕССА** 2024, Ноябрь
Anonim
Скейт-о-метр
Скейт-о-метр

Я учусь в Howest Kortrijk. Чтобы продемонстрировать свои навыки лекторам, которые нам понадобились для создания проекта, я решил создать одометр и спидометр для моего скейтборда с помощью RFID-сканера. В этой инструкции я хочу рассказать, как я сделал этот проект.

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

Имейте в виду, что это прототип.

Шаг 1: Компоненты

Компоненты

Для создания этого проекта я использовал следующие компоненты:

  • Скейтборд
  • Потенциометр
  • ЖК-дисплей
  • Датчик холла
  • Резистор 10 кОм
  • Raspberry Pi
  • Ардуино Нано
  • Перемычка (мама-папа)
  • Перемычка (Raspberry Pi)
  • Перемычка (папа-папа)
  • Печатная плата
  • RFID сканер
  • Значок RFID
  • Внешний аккумулятор

Ссылки и цену см. В BillOfMaterials

Шаг 2: Подключение

Проводка
Проводка

В холле есть 3 контакта: VCC, GND и выход. Земля идет на GND. Напряжение VCC равно 3,3 В, а выход в этом примере идет на GPIO 26. Резистор 10 кОм подтягивает выход к высокому уровню.

Я использую последовательную связь через USB между raspberry pi и arduino nano для чтения значков. Этого нет на картинке, но это необходимо!

D9 RST (сброс) D10 SDA (SS) (SPI SS) D11 MOSI (SPI MOSI) D12 MISO (SPI MISO) D13 SCK (SPI SCK) GND GND 3,3 В 3,3 В

Шаг 3: Схема базы данных

Схема базы данных
Схема базы данных

В моей базе данных 3 таблицы:

  • Пользователи
  • Сессия
  • Данные

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

Шаг 4: Настройте Arduino Nano

Настроить Arduino Nano
Настроить Arduino Nano
Настроить Arduino Nano
Настроить Arduino Nano
Настроить Arduino Nano
Настроить Arduino Nano

Сначала подключите Arduino nano к компьютеру через USB-кабель. Выберите правильный arduino и правильный usb-порт для загрузки.

Затем нам нужно добавить библиотеку, которую я использую для чтения значка RFID. Загрузите 'rfid-master' и перейдите к эскизу, включите библиотеку, а затем добавьте библиотеку. ZIP. Перейдите в только что загруженный zip-архив и используйте его, он установится автоматически. После этого загрузите мой отредактированный RFID_Read.ino, нажмите ctrl + O, добавьте то же время, перейдите к этому файлу и откройте его.

Если вы выполнили все эти шаги, описанные выше, вы можете проверить файл. Если он выдает ошибку в первый раз, просто попробуйте еще раз. Если это удастся, вы можете загрузить его на свой Arduino. Используя сочетание клавиш ctrl + shift + m, вы можете открыть последовательный монитор. Вы можете протестировать файл здесь. Если тест прошел успешно, вы можете отключить arduino и подключить его к usb-порту raspberry pi.

Шаг 5: Настройте Raspberry Pi

На этих шагах мы настроим raspberry pi как базу данных и веб-сервер.

В ЭТОМ ПРИМЕРЕ Я ИСПОЛЬЗУЮ ПОЛЬЗОВАТЕЛЯ «я» ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ ДРУГОГО ПОЛЬЗОВАТЕЛЯ, НЕОБХОДИМОЕ ИЗМЕНИТЬ ФАЙЛЫ КОНФИГУРАЦИИ, ИМЕЙТЕ ЭТО В УМЕНИИ!

1. Создайте пользователя:

Создать переменную

питер @ rpipieter: ~ $ user = me

Делаем пользователя sudo и добавляем во все группы

groups = $ (id pi -Gn | sed 's / ^ pi // g' | sed 's / /, / g') sudo useradd $ {user} -s / bin / bash -m -G $ {groups} sudo sed "s / ^ pi / $ {user} /" /etc/sudoers.d/010_pi-nopasswd | sudo tee "/etc/sudoers.d/011_${user}-nopasswd" sudo passwd $ {пользователь}

Войти в аккаунт

pieter @ rpipieter: ~ $ su - я

Пароль: me @ my-rpi: ~ $

2. Подключитесь к Wi-Fi

me @ rpipieter: ~ $ sudo -iroot @ rpipieter: ~ # echo 'Пароль' | wpa_passphrase 'Имя сети' >> /etc/wpa_supplicant/wpa_supplicant.conf root @ rpipieter: ~ # wpa_cli -i wlan0 перенастроить root @ rpipieter: ~ # выйти из системы

Проверить, работает ли интернет

root @ rpipieter: ~ # wget google.com

3. Обновление raspberry pi и установка необходимых пакетов.

мне @ my-rpi: ~ $ sudo apt update

me @ my-rpi: ~ $ sudo apt upgrade me @ rpipieter: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3 gitme @ my-rpi: ~ $ sudo перезагрузить -h сейчас

4. Клонировать мой репозиторий на github

мне @ rpipieter: ~ $ git clone

я @ rpipieter: ~ $ cd skate-o-meter / skateometer /

5. Создание виртуальной среды

Во время выполнения этих команд будет установлено множество пакетов, что может занять некоторое время.

me @ rpipieter: ~ / skate-o-meter / skateometer $ python3 -m pip install --upgrade pip setuptools wheel virtualenv

me @ rpipieter: ~ / skate-o-meter / skateometer $ python3 -m venv --system-site-packages env (env) me @ rpipieter: ~ / skate-o-meter / skateometer $ python -m pip install mysql- коннектор-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib pyserial pyjwt RPi. GPIO

6. Создание базы данных и пользователей

Мы используем базу данных mysql

pieter @ rpipieter: ~ / skate-o-meter / skateometer $ cd

Питер @ rpipieter: ~ $ sudo mysql

Затем скопируйте, вставьте это

GRANT SELECT, INSERT, UPDATE, DELETE ON *. * TO 'som-data' @ 'localhost'; УСТАНОВИТЬ ПАРОЛЬ ДЛЯ 'som-data' @ 'localhost' = PASSWORD ('sensor9810'); выберите * из mysql.user; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'som-admin' @ 'localhost', ОПРЕДЕЛЕННЫЙ 'admin9810'; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'som-web' @ 'localhost', ОПРЕДЕЛЕННЫЙ 'web9810'; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'som-sensor' @ 'localhost', ОПРЕДЕЛЕННЫЙ 'sensor9810'; СОЗДАТЬ БАЗУ ДАННЫХ skateometerdb; ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА skateometerdb. * 'Som-admin' @ 'localhost' С ОПЦИЕЙ GRANT; GRANT SELECT, INSERT, UPDATE, DELETE НА skateometerdb. * TO 'som-web' @ 'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb. * TO 'som-sensor' @ 'localhost'; ПРИВИЛЕГИИ ПРОМЫВКИ;

Далее мы собираемся добавить существующую схему базы данных с отношениями.

мне @ rpipieter: ~ / skate-o-meter / skateometer $ sudo mysql <sql / skateometerdb_dump-withoutdata.sql

7. Услуги

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

me @ rpipieter: ~ / skate-o-meter / skateometer $ sudo cp conf / som - *. service / etc / systemd / systemme @ rpipieter: ~ / skate-o-meter / skateometer $ sudo systemctl daemon-reload

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

me @ rpipieter: ~ / skate-o-meter / skateometer $ sudo systemctl enable som-flask.service

Создана символическая ссылка /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service. me @ rpipieter: ~ / skate-o-meter / skateometer $ sudo systemctl enable som-data.service Создана символическая ссылка /etc/systemd/system/multi-user.target.wants/som-data.service → / etc / systemd / system / som-data.service. me @ rpipieter: ~ / skate-o-meter / skateometer $ sudo systemctl start som-data.service me @ rpipieter: ~ / skate-o-meter / skateometer $ sudo systemctl start som-flask.service

8. NGINX

me @ rpipieter: ~ / skate-o-meter / skateometer $ sudo cp conf / nginx / etc / nginx / sites-available / skateometerme @ rpipieter: ~ / skate-o-meter / skateometer $ sudo rm / etc / nginx / sites -enabled / default me @ rpipieter: ~ / skate-o-meter / skateometer $ sudo ln -s / etc / nginx / sites-available / skateometer / etc / nginx / sites-enabled / skateometerme @ rpipieter: ~ / skate-o -meter / skateometer $ sudo systemctl перезапустить nginx.service

Шаг 6: Жилье + Холл

Жилье + Холл
Жилье + Холл

Корпус

Сначала я проделал отверстие в скейтборде для ЖК-дисплея, потенциометра и зуммера. После этого я спаял ЖК-дисплей, потенциометр и зуммер на печатной плате. Затем я использовал перемычку для RPI с 40 контактами. Я вставил одну сторону в Raspberry Pi, а вторую половину я отрезал, эту сторону мы собираемся использовать для пайки. В файле «rpi-cable» вы можете увидеть, где какой провод нужно припаять.

Для корпуса я использовал старую коробку Curver, я проделал в ней несколько отверстий для кабеля Ethernet и для перемычки, которая должна входить в коробку.

Я держу коробку под скейтбордом каким-то винтом. Внутри коробки я разложил все так, чтобы все подходило, а также использовал винты и резину, чтобы все было на месте. Это упрощает извлечение вещей.

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

Датчик холла

Сначала я просверлил отверстие в колесе и вставил в него магнит.

Для холла используются 3 перемычки (папа-папа), которую я припаял к своей печатной плате, а также к самому холлу. Я установил датчик холла на свой грузовик с помощью застежек-молний. Убедитесь, что магнит и датчик хорошо выровнены, иначе он не всегда будет регистрировать импульс.

Шаг 7: Запуск приложения

Шаг 1:

Подключите малину и пауэрбанк.

Шаг 2:

Подождите, пока программа не запустится, вы можете следить за этим на ЖК-дисплее. Вы увидите IP-адрес, перейдите по этому IP-адресу.

Шаг 3:

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

Шаг 4:

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

Шаг 5:

Круиз вокруг

Шаг 6:

Отсканируйте значок еще раз, чтобы остановить сеанс

Шаг 7:

Войдите, чтобы увидеть свою сессию и подробные данные из сессии

Рекомендуемые: