สารบัญ:

Skate-o-Meter: 7 ขั้นตอน (พร้อมรูปภาพ)
Skate-o-Meter: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Skate-o-Meter: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Skate-o-Meter: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: THE AMAZING DIGITAL CIRCUS: PILOT [พากย์ไทย] 2024, กรกฎาคม
Anonim
สเก็ตโอเมตร
สเก็ตโอเมตร

ฉันเป็นนักเรียนที่ Howest Kortrijk เพื่อแสดงทักษะของเราต่อผู้บรรยายที่เราจำเป็นต้องสร้างโครงการ ฉันเลือกที่จะสร้างมาตรระยะทางและมาตรวัดความเร็วสำหรับสเก็ตบอร์ดของฉันด้วยเครื่องสแกน RFID ในคำแนะนำนี้ ฉันกำลังจะบอกว่าฉันทำโปรเจ็กต์นี้ได้อย่างไร

ฉันคิดเรื่องนี้ขึ้นมาเพราะฉันชอบเล่นสเก็ตและล่องเรือไปรอบๆ ในขณะที่ฉันกำลังล่องเรือ การดูระยะทางที่ฉันเดินทางและความเร็วของฉันจะเป็นประโยชน์

โปรดจำไว้ว่านี่คือต้นแบบ

ขั้นตอนที่ 1: ส่วนประกอบ

ส่วนประกอบ

ฉันใช้ส่วนประกอบต่อไปนี้เพื่อสร้างโครงการนี้:

  • สเก็ตบอร์ด
  • โพเทนชิออมิเตอร์
  • LCD
  • เซ็นเซอร์เอฟเฟกต์ฮอลล์
  • ตัวต้านทาน 10k โอห์ม
  • ราสเบอร์รี่ปี่
  • Arduino นาโน
  • สายจัมเปอร์ (หญิงกับชาย)
  • สายจัมเปอร์ (Raspberry Pi)
  • สายจัมเปอร์ (ชายกับชาย)
  • PCB
  • เครื่องสแกน RFID
  • ป้าย RFID
  • พาวเวอร์แบงค์

ดู BillOfMaterials สำหรับลิงก์และราคา

ขั้นตอนที่ 2: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ

ห้องโถงมี 3 พิน: VCC, GND และเอาต์พุต พื้นดินไปที่ GND VCC ถึง 3.3V และเอาต์พุตในตัวอย่างนี้ไปที่ GPIO 26 ตัวต้านทาน 10K Ohm จะดึงเอาต์พุตสูง

ฉันใช้การสื่อสารแบบอนุกรมผ่าน 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 GND3.3V 3.3V

ขั้นตอนที่ 3: โครงการฐานข้อมูล

โครงการฐานข้อมูล
โครงการฐานข้อมูล

ฐานข้อมูลของฉันมี 3 ตาราง:

  • ผู้ใช้
  • การประชุม
  • ข้อมูล

ผู้ใช้ทุกคนสามารถติดตามข้อมูลแยกกันได้ เซสชั่นมีข้อมูลเพื่อให้คุณรู้ว่าคุณไปเร็วแค่ไหนในขณะที่เซสชั่นดำเนินไป

ขั้นตอนที่ 4: กำหนดค่า Arduino Nano

กำหนดค่า Arduino Nano
กำหนดค่า Arduino Nano
กำหนดค่า Arduino Nano
กำหนดค่า Arduino Nano
กำหนดค่า Arduino Nano
กำหนดค่า 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. สร้างผู้ใช้:

สร้างตัวแปร

pieter@rpipieter:~ $ user=me

ทำให้ผู้ใช้ sudo และเพิ่มไปยังทุกกลุ่ม

กลุ่ม=$(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

รหัสผ่าน: me@my-rpi:~$

2. เชื่อมต่อกับ WiFi

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 ทันสมัยและติดตั้งแพ็คเกจที่จำเป็น

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 gitme@my-surdo:~ รีบูต -h ตอนนี้

4. โคลนที่เก็บ github ของฉัน

me@rpipieter:~ $ git clone

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 ติดตั้ง 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

pieter@rpipieter:~ $ sudo mysql

แล้วก๊อปมาวาง

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'som-data'@'localhost';SET PASSWORD FOR '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 ON skateometerdb.* เป็น 'som-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* เป็น 'som-sensor'@'localhost'; สิทธิพิเศษในการล้าง;

ต่อไปเราจะเพิ่มรูปแบบฐานข้อมูลที่มีอยู่ด้วยความสัมพันธ์

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/systemme@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl daemon-reload

ตอนนี้เรากำลังจะเปิดใช้งานบริการต่างๆ เพื่อให้ทุกครั้งที่เราเริ่ม raspberry pi สิ่งเหล่านี้จะเริ่มทำงานโดยอัตโนมัติ

me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl เปิดใช้งาน som-flask.service

สร้าง 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 สร้าง symlink /etc/systemd/system/multi-user.target.wants/som-data.service → /etc/systemd/ ระบบ/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 restart nginx.service

ขั้นตอนที่ 6: ที่อยู่อาศัย + Hall

ที่อยู่อาศัย + ห้องโถง
ที่อยู่อาศัย + ห้องโถง

ที่อยู่อาศัย

อันดับแรก ฉันทำรูบนสเก็ตบอร์ดของฉันสำหรับ LCD, โพเทนชิออมิเตอร์ และออด หลังจากนั้นฉันก็ประสาน LCD, โพเทนชิออมิเตอร์และออดบน PCB จากนั้นฉันก็ใช้จัมเปอร์ไวร์สำหรับ RPI อันที่มี 40 พิน ฉันใส่ราสเบอร์รี่ pi ด้านหนึ่งและอีกครึ่งหนึ่งที่ฉันตัด ด้านนี้เราจะใช้บัดกรี ในไฟล์ 'rpi-cable' คุณสามารถดูตำแหน่งที่คุณต้องการประสานสายใด

สำหรับเคส ฉันใช้กล่องดัดโค้งแบบเก่า ฉันเจาะรูไว้สำหรับสายเคเบิลอีเธอร์เน็ตและสำหรับจัมเปอร์ไวร์ที่จะมาในกล่อง

ฉันเก็บกล่องไว้ใต้สเกตบอร์ดด้วยสกรู ข้างในกล่องฉันจัดเรียงทุกอย่างเพื่อให้พอดีและยังใช้สกรูและยางเพื่อเก็บทุกอย่างเข้าที่ ทำให้หยิบของออกมาได้ง่ายขึ้น

RFID ติดตั้งอยู่ที่จุดไฟของกล่องและยึดด้วยยางซิป ปัญหาหนึ่งที่ฉันพบคือบางครั้งมันไม่สแกน แต่ด้วยการเปลี่ยนแปลงบางอย่าง ฉันทำให้มันใช้งานได้

เซ็นเซอร์เอฟเฟกต์ฮอลล์

ก่อนอื่นฉันเจาะรูบนล้อของฉันแล้วใส่แม่เหล็กเข้าไป

สำหรับห้องโถงใช้สายจัมเปอร์ 3 เส้น (ชายกับชาย) ฉันบัดกรีมันบน PCB ของฉันด้วยบนห้องโถงด้วย ฉันติดตั้งเซ็นเซอร์ฮอลล์บนรถบรรทุกของฉันพร้อมยางซิปบางตัว ตรวจสอบให้แน่ใจว่าแม่เหล็กและเซ็นเซอร์อยู่ในแนวเดียวกัน มิฉะนั้น มันจะไม่บันทึกชีพจรเสมอ

ขั้นตอนที่ 7: การเริ่มแอป

ขั้นตอนที่ 1:

เสียบราสเบอร์รี่และพาวเวอร์แบงค์เข้าไป

ขั้นตอนที่ 2:

รอจนกระทั่งโปรแกรมเริ่มทำงาน คุณสามารถทำตามนี้บนจอ LCD คุณจะเห็นที่อยู่ IP ไปที่ที่อยู่ IP นี้

ขั้นตอนที่ 3:

สร้างผู้ใช้ คุณสามารถทำได้โดยการลงทะเบียน คุณต้องสแกนตราสัญลักษณ์เพื่อดู UID ของตราบนจอ LCD

ขั้นตอนที่ 4:

หากคุณสร้างผู้ใช้ คุณสามารถสแกนป้ายและเซสชันจะเริ่มขึ้น

ขั้นตอนที่ 5:

ล่องเรือไปรอบๆ

ขั้นตอนที่ 6:

สแกนป้ายอีกครั้งเพื่อหยุดเซสชั่น

ขั้นตอนที่ 7:

เข้าสู่ระบบเพื่อดูเซสชั่นและข้อมูลโดยละเอียดจากเซสชั่น

แนะนำ: