如何为滑板制作一个里程表

电子说

1.2w人已加入

描述

步骤1:组件

组件

我使用以下组件来创建此项目:

滑板

电位计

LCD

霍尔效应传感器

10k欧姆电阻器

Raspberry pi

Arduino Nano

跳线(母对母)

跳线(Raspberry Pi)

跳线(公对公)

PCB

RFID扫描仪

RFID徽章

Powerbank

请参阅BillOfMaterials 获取链接和价格

步骤2:接线

里程表

大厅有3个引脚:一个VCC,一个GND和输出。

接地连接到GND。 VCC到3.3V,本例中的输出转到GPIO 26.一个10K欧姆的电阻将输出拉高。

我使用覆盆子pi和arduino nano之间的USB串行通信来读取徽章。

D9 - 》 RST(复位)

D10 - 》 SDA(SS)(SPI SS)

D11 - 》 MOSI(SPI MOSI)

D12 - 》 MISO(SPI MISO)

D13 - 》 SCK(SPI SCK)

GND - 》 GND

3.3V - 》 3.3V

步骤3:数据库方案

里程表

我的数据库有3个表:

用户

会话

数据

每个用户都可以分别跟踪数据。会话有数据,因此您可以知道会话进行时某些点的速度。

步骤4:配置Arduino Nano

里程表

里程表

里程表

首先通过USB电缆将arduino nano放入电脑。选择要上传的正确的arduino和正确的USB端口。

接下来我们需要添加用于阅读RFID徽章的库。下载‘rfid-master’并转到草图,包含库,然后添加.ZIP库。转到刚刚下载的zip并使用这个,它会自动安装。下载后我编辑的‘RFID_Read.ino’按ctrl + O添加相同的时间并转到此文件并打开它。

如果您执行了上述所有这些步骤,则可以验证该文件。如果第一次出现问题,请再试一次。如果成功,您可以将其上传到您的arduino。通过使用快捷键ctrl + shift + m,您可以打开串行监视器。您可以在此处测试该文件。如果测试成功,你可以拔掉arduino并将其插入覆盆子pi的usb端口

步骤5:配置Raspberry Pi

In这些步骤我们将把raspberry pi设置为数据库和网络服务器。

在这个例子中我使用用户‘我’如果你使用另一个用户你需要改变配置文件,保持这种想法!

1。创建用户:

创建变量

pieter@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 ${user}

登录帐户

pieter@rpipieter:~ $ su - me

Password:

me@my-rpi:~$

2。连接WiFi

me@rpipieter:~ $ sudo -i

root@rpipieter:~# echo ‘Password’ | wpa_passphrase ‘Networkname’ 》》 /etc/wpa_supplicant/wpa_supplicant.conf

root@rpipieter:~# wpa_cli -i wlan0 reconfigure

root@rpipieter:~# logout

检查互联网是否正常工作

root@rpipieter:~# wget google.com

第3。使raspberry pi更新并安装所需的软件包

me@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 git

me@my-rpi:~$ sudo reboot -h now

的4。克隆我的github存储库

me@rpipieter:~ $ git clone https://github.com/PieterThomas/skate-o-meter

me@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-connector-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

pieter@rpipieter:~ $ sudo mysql

然后复制,粘贴这个

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO ‘som-data’@‘localhost’;

SET PASSWORD FOR ‘som-data’@‘localhost’ = PASSWORD(‘sensor9810’);

select * from mysql.user;

CREATE USER ‘som-admin’@‘localhost’ IDENTIFIED BY ‘admin9810’;

CREATE USER ‘som-web’@‘localhost’ IDENTIFIED BY ‘web9810’;

CREATE USER ‘som-sensor’@‘localhost’ IDENTIFIED BY ‘sensor9810’;

CREATE DATABASE skateometerdb;

GRANT ALL PRIVILEGES ON skateometerdb.* to ‘som-admin’@‘localhost’ WITH GRANT OPTION;

GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO ‘som-web’@‘localhost’;

GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO ‘som-sensor’@‘localhost’;

FLUSH PRIVILEGES;

接下来,我们将添加具有关系的现有数据库方案。

me@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/system

me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl daemon-reload

现在我们要去启用服务,这样每次我们启动树莓派时,它们都会自动启动它。

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

Created symlink /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

Created symlink /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/skateometer

me@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/skateometer

me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl restart nginx.service

第6步:住房+大厅

里程表

住房

首先,我在我的滑板上为LCD,电位器和蜂鸣器打了一个洞。之后我将LCD,电位器和蜂鸣器焊接在PCB上。然后我用RPI的一个跳线,一个40针的跳线。我把一面放在树莓派中,另一半放在我切口,这一面我们将用来焊接。在‘rpi-cable’文件中,你可以看到你需要焊接哪根电线。

对于外壳,我使用了一个旧的曲线盒,我在其中放了一些孔,用于以太网电缆和跳线到进入盒子里。

我用一些螺丝把盒子放在滑板下面。在盒子里面,我安排了一切,所以它适合并且还使用螺丝和一些橡胶来保持一切就位。这样可以更轻松地取出东西。

RFID安装在盒子的灯光上,并用拉链固定,我遇到的一个问题是,有时它没有扫描,但有一些变化我霍尔效应传感器

首先,我在我的车轮上钻了一个洞,并在其中放入一块磁铁。

对于大厅使用3个跳线(男性对男性)我把它们焊接在我的PCB上以及大厅本身。我将霍尔传感器安装在我的卡车上,带有一些拉链。确保磁铁和传感器对齐良好,否则不会始终记录脉冲。

步骤7:启动应用程序

步骤1:

将树莓和移动电源插入。

第2步:

等到程序启动,您可以在液晶显示屏上关注此功能。您将看到IP地址,转到此IP地址。

步骤3:

创建用户,您可以通过注册来完成。您需要扫描徽章以在液晶显示屏上查看徽章的UID。

第4步:

如果您创建了用户,则可以扫描徽章和会话将开始。

第5步:

巡航

第6步:

再次扫描徽章以停止会话

步骤7:

登录以查看您的会话和详细数据来自会话

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分