Оглавление:
- Шаг 1: Компоненты
- Шаг 2: Подключение
- Шаг 3: Схема базы данных
- Шаг 4: Настройте Arduino Nano
- Шаг 5: Настройте Raspberry Pi
- Шаг 6: Жилье + Холл
- Корпус
- Датчик холла
- Шаг 7: Запуск приложения
Видео: Скейт-о-метр: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Я учусь в 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 к компьютеру через 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:
Войдите, чтобы увидеть свою сессию и подробные данные из сессии
Рекомендуемые:
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)
Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Как разобрать компьютер с помощью простых шагов и изображений: 13 шагов (с изображениями)
Как разобрать компьютер с помощью простых шагов и изображений: это инструкция о том, как разобрать компьютер. Большинство основных компонентов имеют модульную конструкцию и легко снимаются. Однако важно, чтобы вы были организованы по этому поводу. Это поможет уберечь вас от потери деталей, а также при повторной сборке
Проектирование печатной платы с помощью простых и легких шагов: 30 шагов (с изображениями)
Проектирование печатных плат с помощью простых и легких шагов: ПРИВЕТ, ДРУЗЬЯ Это очень полезное и легкое руководство для тех, кто хочет изучить дизайн печатных плат. Давайте начнем