สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบ
- ขั้นตอนที่ 2: การเดินสายไฟ
- ขั้นตอนที่ 3: โครงการฐานข้อมูล
- ขั้นตอนที่ 4: กำหนดค่า Arduino Nano
- ขั้นตอนที่ 5: กำหนดค่า Raspberry Pi
- ขั้นตอนที่ 6: ที่อยู่อาศัย + Hall
- ที่อยู่อาศัย
- เซ็นเซอร์เอฟเฟกต์ฮอลล์
- ขั้นตอนที่ 7: การเริ่มแอป
วีดีโอ: Skate-o-Meter: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ฉันเป็นนักเรียนที่ 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 ของคุณในพีซีผ่านสาย 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:
เข้าสู่ระบบเพื่อดูเซสชั่นและข้อมูลโดยละเอียดจากเซสชั่น
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
วิธีทำ LED ICE SKATE: 6 ขั้นตอน (พร้อมรูปภาพ)
วิธีทำ LED ICE SKATE: ฉันใส่ไฟ LED แบบนีโอพิกเซลบนไอซ์สเก็ตของฉัน ทุกครั้งที่ไมโครโฟนซึ่งเชื่อมต่อกับบอร์ด Arduino จะได้ยินเสียงดัง มันส่งสัญญาณต่าง ๆ ไปยัง LED ทำได้ง่ายแม้สำหรับผู้เริ่มต้น ฉันแบ่งปันรหัสและคำแนะนำ มาลองกัน
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-