步驟1:組件
組件
我使用以下組件來創(chuàng)建此項(xiàng)目:
滑板
電位計(jì)
LCD
霍爾效應(yīng)傳感器
10k歐姆電阻器
Raspberry pi
Arduino Nano
跳線(母對母)
跳線(Raspberry Pi)
跳線(公對公)
RFID掃描儀
RFID徽章
Powerbank
請參閱BillOfMaterials 獲取鏈接和價(jià)格
步驟2:接線
大廳有3個(gè)引腳:一個(gè)VCC,一個(gè)GND和輸出。
接地連接到GND。 VCC到3.3V,本例中的輸出轉(zhuǎn)到GPIO 26.一個(gè)10K歐姆的電阻將輸出拉高。
我使用覆盆子pi和arduino nano之間的USB串行通信來讀取徽章。
D9 - 》 RST(復(fù)位)
D10 - 》 SDA(SS)(SPI SS)
D11 - 》 MOSI(SPI MOSI)
D12 - 》 MISO(SPI MISO)
D13 - 》 SCK(SPI SCK)
GND - 》 GND
3.3V - 》 3.3V
步驟3:數(shù)據(jù)庫方案
我的數(shù)據(jù)庫有3個(gè)表:
用戶
會(huì)話
數(shù)據(jù)
每個(gè)用戶都可以分別跟蹤數(shù)據(jù)。會(huì)話有數(shù)據(jù),因此您可以知道會(huì)話進(jìn)行時(shí)某些點(diǎn)的速度。
步驟4:配置Arduino Nano
首先通過USB電纜將arduino nano放入電腦。選擇要上傳的正確的arduino和正確的USB端口。
接下來我們需要添加用于閱讀RFID徽章的庫。下載‘rfid-master’并轉(zhuǎn)到草圖,包含庫,然后添加.ZIP庫。轉(zhuǎn)到剛剛下載的zip并使用這個(gè),它會(huì)自動(dòng)安裝。下載后我編輯的‘RFID_Read.ino’按ctrl + O添加相同的時(shí)間并轉(zhuǎn)到此文件并打開它。
如果您執(zhí)行了上述所有這些步驟,則可以驗(yàn)證該文件。如果第一次出現(xiàn)問題,請?jiān)僭囈淮?。如果成功,您可以將其上傳到您的arduino。通過使用快捷鍵ctrl + shift + m,您可以打開串行監(jiān)視器。您可以在此處測試該文件。如果測試成功,你可以拔掉arduino并將其插入覆盆子pi的usb端口
步驟5:配置Raspberry Pi
In這些步驟我們將把raspberry pi設(shè)置為數(shù)據(jù)庫和網(wǎng)絡(luò)服務(wù)器。
在這個(gè)例子中我使用用戶‘我’如果你使用另一個(gè)用戶你需要改變配置文件,保持這種想法!
1。創(chuàng)建用戶:
創(chuàng)建變量
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
檢查互聯(lián)網(wǎng)是否正常工作
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??寺∥业膅ithub存儲(chǔ)庫
me@rpipieter:~ $ git clone https://github.com/PieterThomas/skate-o-meter
me@rpipieter:~ $ cd skate-o-meter/skateometer/
5。制作虛擬環(huán)境
雖然執(zhí)行這些命令會(huì)安裝很多軟件包,但這可能需要一些時(shí)間。
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。創(chuàng)建數(shù)據(jù)庫和用戶
我們正在使用mysql數(shù)據(jù)庫
pieter@rpipieter:~/skate-o-meter/skateometer $ cd
pieter@rpipieter:~ $ sudo mysql
然后復(fù)制,粘貼這個(gè)
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 ‘a(chǎn)dmin9810’;
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;
接下來,我們將添加具有關(guān)系的現(xiàn)有數(shù)據(jù)庫方案。
me@rpipieter:~/skate-o-meter/skateometer $ sudo mysql 《 sql/skateometerdb_dump-withoutdata.sql
7。服務(wù)
這里我們復(fù)制我們的配置文件并重新加載文件夾,以便我們可以啟用服務(wù)
me@rpipieter:~/skate-o-meter/skateometer $ sudo cp conf/som-*.service /etc/systemd/system
me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl daemon-reload
現(xiàn)在我們要去啟用服務(wù),這樣每次我們啟動(dòng)樹莓派時(shí),它們都會(huì)自動(dòng)啟動(dòng)它。
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,電位器和蜂鳴器打了一個(gè)洞。之后我將LCD,電位器和蜂鳴器焊接在PCB上。然后我用RPI的一個(gè)跳線,一個(gè)40針的跳線。我把一面放在樹莓派中,另一半放在我切口,這一面我們將用來焊接。在‘rpi-cable’文件中,你可以看到你需要焊接哪根電線。
對于外殼,我使用了一個(gè)舊的曲線盒,我在其中放了一些孔,用于以太網(wǎng)電纜和跳線到進(jìn)入盒子里。
我用一些螺絲把盒子放在滑板下面。在盒子里面,我安排了一切,所以它適合并且還使用螺絲和一些橡膠來保持一切就位。這樣可以更輕松地取出東西。
RFID安裝在盒子的燈光上,并用拉鏈固定,我遇到的一個(gè)問題是,有時(shí)它沒有掃描,但有一些變化我霍爾效應(yīng)傳感器
首先,我在我的車輪上鉆了一個(gè)洞,并在其中放入一塊磁鐵。
對于大廳使用3個(gè)跳線(男性對男性)我把它們焊接在我的PCB上以及大廳本身。我將霍爾傳感器安裝在我的卡車上,帶有一些拉鏈。確保磁鐵和傳感器對齊良好,否則不會(huì)始終記錄脈沖。
步驟7:啟動(dòng)應(yīng)用程序
步驟1:
將樹莓和移動(dòng)電源插入。
第2步:
等到程序啟動(dòng),您可以在液晶顯示屏上關(guān)注此功能。您將看到IP地址,轉(zhuǎn)到此IP地址。
步驟3:
創(chuàng)建用戶,您可以通過注冊來完成。您需要掃描徽章以在液晶顯示屏上查看徽章的UID。
第4步:
如果您創(chuàng)建了用戶,則可以掃描徽章和會(huì)話將開始。
第5步:
巡航
第6步:
再次掃描徽章以停止會(huì)話
步驟7:
登錄以查看您的會(huì)話和詳細(xì)數(shù)據(jù)來自會(huì)話
-
里程表
+關(guān)注
關(guān)注
1文章
15瀏覽量
9853
發(fā)布評論請先 登錄
相關(guān)推薦
評論