สารบัญ:

Raspberry Pi Motorcycle Dashboard: 9 ขั้นตอน (พร้อมรูปภาพ)
Raspberry Pi Motorcycle Dashboard: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi Motorcycle Dashboard: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi Motorcycle Dashboard: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: การทำ Auto Start Up บราวเซอร์แบบเต็มจอ (Kiosk) บน Raspberry Pi 4 2024, กรกฎาคม
Anonim
Raspberry Pi Motorcycle Dashboard
Raspberry Pi Motorcycle Dashboard

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

MotoDash คือแดชบอร์ดที่ขับเคลื่อนด้วย Raspberry Pi ที่ออกแบบมาสำหรับนักขี่มอเตอร์ไซค์ผู้คลั่งไคล้ที่ช่วยให้ผู้ขับขี่สามารถติดตามประสิทธิภาพได้

คุณสมบัติของแดชบอร์ดนี้คืออะไร?

  • กำลังดูมุมเอียงปัจจุบัน
  • กำลังดูอัตราเร่งปัจจุบัน
  • ความสามารถในการตรวจสอบอุณหภูมิน้ำมัน
  • เปลี่ยนเป็นธีมมืดโดยอัตโนมัติเมื่อขี่ในความมืด
  • บันทึกข้อมูลการขี่ของคุณ และดูสถิติของคุณเอง

เสบียง

หน่วยคำนวณหลัก:

Raspberry Pi นี่คือตัวควบคุมหลักของระบบ

อิเล็กทรอนิกส์:

  • ที่ชาร์จ USB สำหรับรถจักรยานยนต์ 12V-5V แหล่งจ่ายไฟหลักสำหรับ RPi
  • 4 Pin Fused Relay 12VSwitch เพื่อเปิด/ปิดวงจรไฟฟ้าของ RPi
  • เขียงหั่นขนมพร้อมสายจัมเปอร์ (อุปกรณ์เสริม)สำหรับการทดสอบและสร้างต้นแบบ
  • ชุดตัวต้านทาน

    ลวด 0.2 มม. หลากสี

  • Breakout Pi plusนี่คือบอร์ดต้นแบบที่คุณสามารถประสานส่วนประกอบทั้งหมดของคุณได้ มันถูกสร้างขึ้นมาเพื่อให้พอดีกับด้านบนของ Raspberry Pi ดังนั้นขนาดของโครงการจึงเหลือน้อยที่สุด

เซนเซอร์และโมดูล:

  • กันน้ำ DS18B20 1-Wire Temperature sensorOil temperature sensor
  • 3 แกน Gyro Accelerometer MPU6050Tilt/accel sensor
  • ตัวต้านทานขึ้นอยู่กับแสง (LDR)
  • MCP3008 - ADC 10 บิต 8 ช่องสัญญาณพร้อมอินเทอร์เฟซ SPI

    จอแสดงผล TFT SPI (หรือจอ LCD อื่น ๆ ที่เหมาะกับความต้องการของคุณ)

    RGB LED

ปลอก:

  • กล่องพลาสติก
  • เคสราสเบอร์รี่ pi

เครื่องมือ:

  • หัวแร้งและหัวแร้ง
  • สกรูและตัวเว้นระยะ 2.5 มม.
  • ขั้วต่อสายกันน้ำ
  • ซุปเปอร์กลู

ขั้นตอนที่ 1: การสร้างต้นแบบ

การสร้างต้นแบบ
การสร้างต้นแบบ
การสร้างต้นแบบ
การสร้างต้นแบบ

ก่อนที่เราจะทำทุกอย่างอย่างถาวร เราจะรวบรวมโปรเจ็กต์ไว้บนเขียงหั่นขนม คุณสามารถข้ามขั้นตอนนี้ได้หากคุณมั่นใจว่าจะไม่ทำผิดพลาดอย่างแน่นอน แบบแผนไฟฟ้า/เขียงหั่นขนมสามารถพบได้ใน PDF ด้านล่าง ประกอบวงจรตามที่อธิบายไว้ ตรวจสอบให้แน่ใจว่าใช้เฉพาะพิน 3.3V ไม่ใช่พิน 5V บน RPi ก่อนที่คุณจะเปิดเครื่อง Raspberry Pi ให้ตรวจสอบวงจรของคุณอีกครั้ง ตรวจสอบให้แน่ใจว่าไม่มีกางเกงขาสั้น!

ขั้นตอนที่ 2: เตรียม Raspberry Pi

การเตรียม Raspberry Pi
การเตรียม Raspberry Pi

ก่อนอื่น เราจะมาตั้งค่า Raspberry Pi Raspberry Pi เป็นคอมพิวเตอร์ขนาดเล็กที่สามารถใช้ระบบปฏิบัติการของตัวเองได้ สำหรับโครงการนี้ มีหน้าที่ในการประมวลผลข้อมูลเซ็นเซอร์ โฮสต์เว็บไซต์ เรียกใช้แบ็กเอนด์และฐานข้อมูล …

1. ติดตั้ง Raspbian Image. แบบกำหนดเอง

อิมเมจที่ให้มามีแพ็คเกจซอฟต์แวร์ที่จำเป็นในการเริ่มต้นโปรเจ็กต์นี้:

  • Apache สำหรับส่วนหน้าของเว็บไซต์
  • MariaDB สำหรับฐานข้อมูล
  • PhpMyAdmin เพื่อจัดการฐานข้อมูล
  • สิทธิ์ที่กำหนดเองเพื่อหลีกเลี่ยงปัญหา

สามารถดาวน์โหลดภาพที่กำหนดเองได้จากที่นี่

คุณสามารถดูบทช่วยสอนสำหรับการติดตั้งรูปภาพได้ที่นี่:

เมื่อติดตั้งอิมเมจแล้ว ให้เชื่อมต่อ Raspberry Pi กับพีซีของคุณด้วยสายอีเธอร์เน็ต ตอนนี้คุณสามารถใช้ไคลเอ็นต์ SSH เพื่อเชื่อมต่อกับที่อยู่ IP 169.254.10.1

เป็นการดีที่จะตั้งรหัสผ่านใหม่ทันทีโดยใช้คำสั่ง passwd

2. การกำหนดค่าAP.ไร้สาย

เมื่อโครงการเสร็จสิ้น เราต้องการสามารถเชื่อมต่อกับ RPi ผ่าน wifi ได้ ดังนั้นเรามาเปลี่ยนเป็น AP ไร้สายกันเถอะ กวดวิชานี้สามารถพบได้ที่นี่

คุณต้องทำตามบทช่วยสอนนี้จนถึงขั้นตอนที่ 7 เท่านั้น ขั้นตอนที่ 8 ไม่จำเป็น เนื่องจากเราไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต แต่สร้างเครือข่ายแบบสแตนด์อโลน

3. การเปิดใช้งานอินเทอร์เฟซ

ไปที่ raspi-config

sudo raspi-config

ไปที่ตัวเลือกการเชื่อมต่อและเปิดใช้งาน 1-wire, SPI และ I2C แล้วรีบูต Pi

3. การตั้งค่าไดรเวอร์สำหรับจอแสดงผล

กำลังเริ่มต้นการแสดงผล

แก้ไขไฟล์ /etc/modules

sudo nano /etc/modules

เพิ่ม 2 บรรทัดต่อไปนี้

spi-bcm2835fbtft_device

ตอนนี้แก้ไข /etc/modprobe.d/fbtft.conf

sudo nano /etc/modprobe.d/fbtft.conf

เพิ่มบรรทัดต่อไปนี้

ตัวเลือก fbtft_device name=tm022hdh26 gpios=รีเซ็ต:25, dc:24, led:18 หมุน=90 ความเร็ว=80000000 fps=60

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

การติดตั้งบริการ fbcp

sudo apt-get install cmake

โคลน git

cd rpi-fbcp

mkdir build

ซีดีบิลด์/

ซีเมค..

ทำ

sudo ติดตั้ง fbcp /usr/local/bin/fbcp

ตอนนี้เราได้ติดตั้งบริการแล้ว อย่างไรก็ตาม เนื่องจากเราใช้ Pi หัวขาด จึงไม่มีหน้าจอให้คัดลอกเนื้อหาได้ หากต้องการบังคับให้ Pi แสดงเนื้อหาบนหน้าจอ ให้แก้ไข /boot/config.txt

sudo nano /boot/config.txt

ค้นหาและยกเลิกความคิดเห็นหรือเพิ่มบรรทัดต่อไปนี้ในไฟล์นี้:

hdmi_force_hotplug=1

hdmi_cvt=640 480 60 0 0 0 0

display_rotate=0

hdmi_group=2

hdmi_mode=87

รีบูต RPi และทดสอบบริการ fbcp โดยพิมพ์ fbcp ในคอนโซล ตอนนี้คุณควรเห็นเนื้อหาของหน้าจอบน LCD

เรียกใช้ fbcp เมื่อเริ่มต้น

แก้ไข /etc/rc.local และเพิ่มบรรทัดต่อไปนี้ระหว่างที่อยู่ IP และบรรทัดออก

fbcp&

ตอนนี้จอแสดงผลควรเปิดทุกครั้งที่ RPi บูทขึ้น

ขั้นตอนที่ 3: ฐานข้อมูล

ฐานข้อมูล
ฐานข้อมูล

ในการบันทึกและจัดเก็บข้อมูลเซ็นเซอร์ ฉันได้ออกแบบฐานข้อมูลของตัวเองซึ่งมี 4 ตาราง แผนภาพ EER แสดงในภาพด้านบน

1. อุปกรณ์

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

2. การกระทำ

ตารางนี้จัดเก็บการดำเนินการสำหรับเซ็นเซอร์ต่างๆ การกระทำหนึ่งจะเชื่อมโยงกับเซ็นเซอร์ตัวใดตัวหนึ่งเสมอ ตัวอย่างเช่น การกระทำ 'TEMP' เชื่อมโยงกับอุปกรณ์ที่ใช้วัดอุณหภูมิ นี่จะเป็นเซ็นเซอร์อุณหภูมิ 1 สาย

3. ประวัติศาสตร์

ตารางนี้มีบันทึกเซ็นเซอร์ทั้งหมด บันทึกแต่ละรายการมี ID การดำเนินการ ค่า การประทับเวลา และรหัสขี่

4. ขี่

ตารางนี้เก็บการขี่ที่แตกต่างกัน ทุกครั้งที่ผู้ใช้เริ่มนั่งรถใหม่ จะมีการสร้างรายการใหม่ในตารางนี้

ในการรับฐานข้อมูลนี้บน Raspberry Pi ของคุณ ตรงไปที่ GitHub ของฉันแล้วโคลน/ดาวน์โหลดที่เก็บ ภายใต้ฐานข้อมูล คุณจะพบไฟล์.sql 2 ไฟล์ เรียกใช้สิ่งเหล่านี้ใน PhpMyAdmin หรือ MySQL workbench ตอนนี้ฐานข้อมูลควรอยู่ใน RPi ของคุณ

ขั้นตอนที่ 4: แบ็กเอนด์

หากคุณยังไม่ได้ทำ ตรงไปที่ GitHub ของฉันแล้วโคลน/ดาวน์โหลดที่เก็บ ภายใต้โฟลเดอร์ แบ็กเอนด์ คุณจะพบแบ็กเอนด์แบบเต็มสำหรับโปรเจ็กต์

โฟลเดอร์ประกอบด้วยคลาสสำหรับการอ่านเซ็นเซอร์ภายใต้ /helpers ไฟล์เพื่อสื่อสารกับฐานข้อมูลภายใต้ /repositories และแอปพลิเคชันหลักจะอยู่ในรูทภายใต้ชื่อ app.py

การติดตั้งแพ็คเกจ Python

ก่อนที่เราจะลองรันอะไรก็ตาม เราต้องติดตั้งแพ็คเกจสำหรับ python ก่อน ไปที่เทอร์มินัลของ RPi ของคุณและพิมพ์คำสั่งต่อไปนี้:

pip3 ติดตั้ง mysql-connector-python

pip3 ติดตั้ง flask-socketio

pip3 ติดตั้ง flask-cors

pip3 ติดตั้ง gevent

pip3 ติดตั้ง gevent-websocket

หมายเหตุสำคัญ: หากคุณเปลี่ยนรหัสผ่าน Mariadb/Mysql ให้เปลี่ยนรหัสผ่านใน config.py!

ทดสอบแบ็กเอนด์

เรียกใช้ app.py โดยใช้ล่าม python3 (/usr/bin/python3) ตรวจสอบให้แน่ใจว่าไม่มีข้อผิดพลาด

เรียกใช้แบ็กเอนด์ในการบูต

แก้ไข motoDash_backend.service และเปลี่ยน YOURFILEPATH เป็นพาธที่บันทึกที่เก็บ

ตอนนี้คัดลอกไฟล์นี้ไปที่ /etc/systemd/system/

sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.

ตอนนี้แบ็กเอนด์จะเริ่มทำงานโดยอัตโนมัติทุกครั้งที่ RPi บู๊ต

ขั้นตอนที่ 5: ส่วนหน้า

ส่วนหน้า
ส่วนหน้า
ส่วนหน้า
ส่วนหน้า

ไปที่ GitHub Repo คัดลอกเนื้อหาของไดเร็กทอรี Frontend ลงใน /var/www/html

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

หมายเหตุ: เว็บไซต์มีการตอบสนอง คุณจึงสามารถใช้งานได้ทั้งบนมือถือและเดสก์ท็อป

ขั้นตอนที่ 6: การแสดงแดชบอร์ดบนจอแสดงผล

การแสดงแดชบอร์ดบนจอแสดงผล
การแสดงแดชบอร์ดบนจอแสดงผล

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

ตรวจสอบให้แน่ใจว่า RPi ถูกตั้งค่าเป็น autologin ของเดสก์ท็อปใน raspi-config ภายใต้ตัวเลือกการบูต

sudo raspi-config

ตอนนี้ไปที่โฟลเดอร์กำหนดค่าที่ซ่อนอยู่และสร้างไฟล์ใหม่ในนั้น

cd.config

sudo mkdir -p lxsession/LXDE-pi

sudo nano lxsession/LXDE-pi/autostart

เพิ่มบรรทัดต่อไปนี้ในไฟล์นี้และบันทึก

@xscreensaver -no-splash

@xset s off

@xset -dpms

@xset s noblank

@chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito

ตอนนี้ Pi ควรบูตไปที่หน้าเว็บนี้ทุกครั้ง

ขั้นตอนที่ 7: บัดกรีอุปกรณ์อิเล็กทรอนิกส์

บัดกรีอุปกรณ์อิเล็กทรอนิกส์
บัดกรีอุปกรณ์อิเล็กทรอนิกส์
บัดกรีอุปกรณ์อิเล็กทรอนิกส์
บัดกรีอุปกรณ์อิเล็กทรอนิกส์
บัดกรีอุปกรณ์อิเล็กทรอนิกส์
บัดกรีอุปกรณ์อิเล็กทรอนิกส์
บัดกรีอุปกรณ์อิเล็กทรอนิกส์
บัดกรีอุปกรณ์อิเล็กทรอนิกส์

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

เคล็ดลับบางประการขณะบัดกรี:

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

ตอนนี้บัดกรีสายไฟให้ยาวพอกับเซ็นเซอร์ แล้วพันฟิล์มหดรอบๆ เพื่อให้แน่ใจว่าทุกอย่างไม่สั้นและสะอาด

เมื่อคุณทำเสร็จแล้ว ให้ตรวจสอบอีกครั้งว่ามีชอร์ตหรือการเชื่อมต่อที่ไม่ดี และตรวจสอบทุกการเชื่อมต่อด้วยวงจรไฟฟ้าว่ามีการต่อที่ถูกต้องหรือไม่ เมื่อคุณแน่ใจว่าทุกอย่างถูกต้องแล้ว ให้วางบอร์ดฝ่าวงล้อมบน RPi แล้วขันให้แน่นด้วยสกรูขนาด 2.5 มม. และข้อขัดแย้ง ต่อเซ็นเซอร์เข้ากับหมุดที่ถูกต้องแล้วทดสอบทั้งหมดโดยใช้เว็บไซต์

ขั้นตอนที่ 8: พาวเวอร์ซัพพลาย

ในการจ่ายไฟให้กับ Raspberry Pi เราจะใช้อะแดปเตอร์ usb 12V-5V อะแดปเตอร์นี้จะเชื่อมต่อกับแบตเตอรี่รถจักรยานยนต์ เพื่อให้แน่ใจว่า RPi จะเปิดขึ้นเมื่อเปิดสวิตช์กุญแจ เราจะใช้รีเลย์ รีเลย์จะปิดวงจรไฟฟ้า RPi เมื่อตรวจพบแรงดันไฟฟ้าจากไฟท้าย (ไฟท้ายจะเปิดเสมอเมื่อเปิดสวิตช์กุญแจ)

สำหรับรายละเอียดการสอนเพิ่มเติมเกี่ยวกับเรื่องนี้ โปรดดูหน้านี้: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -ตัวควบคุม.16921/

ขั้นตอนที่ 9: ที่อยู่อาศัย

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

ที่อยู่อาศัยจอแสดงผล

สำหรับจอแสดงผล ให้หยิบกล่องพลาสติกแข็งที่มีขนาดใกล้เคียงกับจอแสดงผล ตัดรูสี่เหลี่ยมในรูให้ใหญ่เท่ากับจอแสดงผล และจับคู่รูเพื่อขันสกรูจอแสดงผล ที่ด้านหน้า คุณต้องเจาะรูเพิ่มอีก 2 รูสำหรับ RGB LED และ LDR

ฉันติดตั้งกล่องนี้ไว้บนที่วางสมาร์ทโฟนโดยใช้สลักเกลียว

เซ็นเซอร์อุณหภูมิ

สำหรับใส่เซ็นเซอร์อุณหภูมิ I 3D Printed มาตรวัดน้ำมันที่เหมาะกับรถจักรยานยนต์ของฉัน

ราสเบอร์รี่ปี่

ติดตั้ง Raspberry Pi ในตำแหน่งที่ปลอดภัยภายในมอเตอร์ไซค์ ฉันวางไว้ใต้บังโคลนอันใดอันหนึ่งโดยใช้สายรัดเวลโคร และป้องกันจากองค์ประกอบโดยใช้ตัวเรือนและพลาสติกบางส่วน

มาตรความเร่ง

ติดตั้งมาตรความเร่งในที่ที่ปลอดภัย โดยเฉพาะกับตัวเฟรมของมอเตอร์ไซค์

บันทึก:

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

แนะนำ: