电子说
步骤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:
登录以查看您的会话和详细数据来自会话
全部0条评论
快来发表一下你的评论吧 !