
Оглавление:
- Запасы
- Шаг 1: сделайте схему
- Шаг 2: установите Python
- Шаг 3. Прочтите данные
- Шаг 4: База данных (mySQL)
- Шаг 5. Свяжите свой Python с базой данных
- Шаг 6: отправьте данные в базу данных
- Шаг 7. Используйте данные
- Шаг 8: Корпус: снизу
- Шаг 9: Корпус: маленькие стороны
- Шаг 10: Корпус: большие стороны
- Шаг 11: Добавление отверстия для ЖК-дисплея и LDR
- Шаг 12: прикрепите сканер Arduino и RFID сбоку
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05


Когда я использую свой велосипед, я обычно забываю включить свет, когда стемнеет. Кроме того, на моем байке у меня нет возможности узнать, насколько быстро я еду.
Поэтому я решил создать смарт-байк, который будет отслеживать:
- Скорость
- Место нахождения
- Как долго ты ездишь на велосипеде
Он также автоматически включает и выключает свет. Я использовал сканер RFID, чтобы кто-то другой мог использовать велосипед, не изменяя мои данные.
Ссылка на мой гитхаб.
Запасы
- Raspberry Pi 3 (32, 49 евро)
- SD-карта (для RPi) (13, 99 евро)
- GPS NEO 6M (для определения скорости и местоположения) (15, 99 евро)
- Anker PowerCore 10400 мАч (29, 99 евро)
- RFID RC522 (5, 49 евро)
- ЖК-дисплей 16x2 (€ 9, 99)
- Доска Elegoo Uno R3 (9, 34 евро)
- LDR (1, 50 евро)
- MCP3008 (ADC) (5, 98 евро)
- Переработанный свет
- Древесина для дома (~ 15,00 €)
- Кабели (~ 6,00 €)
Общий ценник: 145,76 €
Шаг 1: сделайте схему


Сначала вам нужно собрать все воедино. Я включил схему фритзинга.
Примечание. Некоторые компоненты, такие как сканер RFID, необходимо припаять.
Шаг 2: установите Python

Для этого проекта я буду использовать python 3 и запускать код на сервере python. Свяжу свой гитхаб со своим кодом.
Сначала вам нужно установить соединение с Raspberry Pi через Настройки> Сборка, Выполнение, Развертывание> Развертывание. Затем вам нужно сделать интерпретатор со всеми необходимыми пакетами. На моем Raspberry Pi я использую python 3.5.
Когда вы создали интерпретатор, вы можете создать новый проект и выбрать интерпретатор, который вы только что создали для этого проекта. Затем вам нужно будет выбрать, где сохранить файлы на вашем ПК и RPi.
Шаг 3. Прочтите данные

После того, как вы сделали схему и все компоненты заработали, вам нужно прочитать данные с датчиков. Мой проект был сделан с использованием Python 3. В python я считываю большую часть данных с датчиков с помощью классов.
- Сканер RFID используется с Arduino (больше информации о том, как его использовать здесь). Я считываю данные со сканера с помощью Arduino и отправляю их в RPi с помощью последовательного USB.
- Модуль GPS также использует последовательную связь. Данные, которые GPS отправляет на RPi, не так хорошо отформатированы. Я использовал библиотеку, чтобы проанализировать данные и упростить их использование. (Дополнительная информация о данных GPS).
- Аналоговые значения из LDR преобразуются с помощью mcp3008 (ADC), затем я преобразую значение в процент.
Примечание. Если вы хотите использовать циклы while в Python для постоянного получения данных во время работы сервера Python. Вам понадобится использовать потоки (подробнее о потоках). Threading прост в использовании.
Шаг 4: База данных (mySQL)

Теперь, когда у вас есть данные с датчиков, вам нужно место для хранения данных. Мы будем хранить данные в реляционной базе данных в mySQL.
Я запускаю базу данных на моем RPi, чтобы это работало, мне нужно установить mariaDB на моем RPi. После того, как вы установили mariaDB и настроили его, вы можете использовать рабочую среду mySQL на своем ПК для подключения к своей базе данных на RPi.
Вам нужно будет сделать ERD на ПК; предварительно спроектировать ERD и экспортировать базу данных. Затем вы можете импортировать дамп (не забудьте создать схему) на RPi через рабочую среду mySQL.
Примечание. Таблица Bike_has_User не требуется и будет использоваться только в том случае, если вы планируете использовать несколько велосипедов. Вы можете удалить таблицу Bike_has_User и связать таблицу User с Datahistory.
Шаг 5. Свяжите свой Python с базой данных

Теперь, когда у вас установлена база данных, вы можете связать свой питон с базой данных. Щелкните базу данных (справа от экрана) и добавьте новый источник данных.
База данных и скрипт python работают на RPi, поэтому используйте IP-адрес localhost. Используйте пользователя, которого вы создали ранее, при настройке mariaDB.
Шаг 6: отправьте данные в базу данных

Когда у вас все настроено, вы можете начать отправлять данные в базу данных. Я использовал для этого класс helpers. Database на Python (см. Мой github).
На фото показан пример кода.
Шаг 7. Используйте данные

С помощью класса helpers. Database вы можете вставлять данные в базу данных или получать данные из базы данных.
Теперь, когда все работает, вы можете использовать данные из базы данных, чтобы отображать их на веб-сайте или где угодно.
Шаг 8: Корпус: снизу

О жилье
Наконец, корпус для этого проекта сделан из дерева (310x130x110 мм). Большинство компонентов прикручены к дереву, за исключением павербанка и макета.
Можно сделать корпус меньше, если припаять компоненты. Я не включил способ надежного крепления корпуса к велосипеду, но есть много вариантов.
Изготовление корпуса
Начать придется с изготовления нижней части корпуса. Выпилите кусок дерева (130х310 мм). Затем прикрепите RPi винтом и приклейте макет к нижней части.
Примечание: Вы можете сделать идентичную деталь для верхней части корпуса.
Шаг 9: Корпус: маленькие стороны

Когда вы закончили нижнюю часть. Можно приступать к распиливанию боковых деталей. Начните с меньших сторон.
Сначала вам нужно будет прикрепить меньшие стороны. Я использовал дополнительный кусок дерева, чтобы соединить все части вместе, этот дополнительный кусок облегчает задачу.
Шаг 10: Корпус: большие стороны

Теперь вам нужно сделать большие стороны. Еще раз распилите бока и прикрепите их к нижней части с помощью дополнительной доски.
Шаг 11: Добавление отверстия для ЖК-дисплея и LDR

Вам также необходимо проделать отверстие для ЖК-дисплея, чтобы вы могли видеть IP-адрес и отображать, сканирует ли пользователь или нет.
Используйте измерения на ЖК-дисплее, чтобы решить, какого размера будет отверстие.
После того, как вы вставили ЖК-дисплей, убедитесь, что LDR находится вне корпуса. Я использовал крошечное отверстие, чтобы LDR мог видеть дневной свет.
Шаг 12: прикрепите сканер Arduino и RFID сбоку

После того, как корпус будет готов, вам все равно нужно прикрепить сканер Arduino и RFID. Вы можете прикрепить их везде, где есть место. Но я рекомендую прикрепить сканер RFID под ЖК-дисплеем, чтобы пользователь мог видеть, отсканировал он или нет.
Рекомендуемые:
Сделай сам -- Как сделать робота-паука, которым можно управлять с помощью смартфона с помощью Arduino Uno: 6 шагов

Сделай сам || Как сделать робота-паука, которым можно управлять с помощью смартфона с помощью Arduino Uno: Создавая робота-паука, можно многое узнать о робототехнике. Например, создание роботов - это не только увлекательно, но и сложно. В этом видео мы покажем вам, как сделать робота-паука, которым мы можем управлять с помощью нашего смартфона (Androi
АВТОМАТИЧЕСКИЙ МУСОР МОЖНО ИЛИ БУКСИРОВАТЬ. СПАСИТЕ ПЛАНЕТУ: 19 шагов (с изображениями)

АВТОМАТИЧЕСКИЙ МУСОР МОЖНО ИЛИ БУКСИРОВАТЬ. ДЛЯ СПАСЕНИЯ ПЛАНЕТЫ: Прежде чем мы начнем, я рекомендую вам посмотреть первое видео, прежде чем читать это, так как оно очень полезно. Привет, меня зовут Джейкоб, и я живу в Великобритании. Переработка отходов - большая проблема. Там, где я живу, я вижу много мусора на полях, и это может быть вредно. Ч
Как поделиться своим проектом с помощью инструкций: 10 шагов

Как поделиться своим проектом с помощью Instructables: Прежде чем создавать свой собственный проект, немного изучите сайт, чтобы понять, как они работают - взгляните на несколько проектов (но не пугайтесь, даже простые проекты имеют смысл!). Что можешь показать в своем проекте? Как сделать что-нибудь
Решение для медиацентра, которым воспользуется даже жена и дети: 9 шагов

Решение для медиацентра, которое будет использовать даже жена и дети. Это руководство представляет собой краткое изложение моего опыта работы с большим разнообразием приложений медиацентра, операционных систем, оборудования и форматов файлов. Это не PVR, как делать и не позволяет вам записывать или приостанавливать прямую трансляцию, хотя я предлагаю хорошую альтернативу
Как поделиться своими фотографиями с Mac Mini в Интернете: 6 шагов

Как поделиться своими фотографиями с Mac Mini в Интернете: " Picasa - ограничение 1 ГБ " Flickr - 100 МБ " Photobucket - 1 ГБ " Mac mini - без ограничений !!! *** " Все остальные общие сайты для обмена фотографиями там, какое-то тупое ограничение на размер файла, ограниченное пространство и другие бессмысленные ограничения. Ждать