สารบัญ:

TripComputer - GPS Trip Computer & Weather Module สำหรับยานพาหนะของคุณ: 11 ขั้นตอน (พร้อมรูปภาพ)
TripComputer - GPS Trip Computer & Weather Module สำหรับยานพาหนะของคุณ: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: TripComputer - GPS Trip Computer & Weather Module สำหรับยานพาหนะของคุณ: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: TripComputer - GPS Trip Computer & Weather Module สำหรับยานพาหนะของคุณ: 11 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Garmin Monterra: Using the Trip Computer with GPS City 2024, กรกฎาคม
Anonim
TripComputer - GPS Trip Computer & โมดูลสภาพอากาศสำหรับยานพาหนะของคุณ
TripComputer - GPS Trip Computer & โมดูลสภาพอากาศสำหรับยานพาหนะของคุณ
TripComputer - GPS Trip Computer & โมดูลสภาพอากาศสำหรับยานพาหนะของคุณ
TripComputer - GPS Trip Computer & โมดูลสภาพอากาศสำหรับยานพาหนะของคุณ
TripComputer - GPS Trip Computer & โมดูลสภาพอากาศสำหรับยานพาหนะของคุณ
TripComputer - GPS Trip Computer & โมดูลสภาพอากาศสำหรับยานพาหนะของคุณ

โปรเจ็กต์ Raspberry Pi สุดเจ๋งที่ใช้โมดูลแยกสัญญาณ GPS และ Digole ขนาดเล็ก 2 จอแสดงคอมพิวเตอร์นำทางบนหน้าปัดของคุณ

ขั้นตอนที่ 1: แฟลช RaspberriPi Hard Disk / ติดตั้งซอฟต์แวร์ที่จำเป็น (โดยใช้ Ubuntu Linux)

ดาวน์โหลด "RASPBIAN JESSIE LITE VERSION"

สร้างฮาร์ดดิสก์ใหม่ของคุณสำหรับ DashboardPI

ใส่ microSD เข้ากับคอมพิวเตอร์ของคุณผ่านอะแดปเตอร์ USB และสร้างภาพดิสก์โดยใช้คำสั่ง dd

ค้นหาการ์ด microSD ที่ใส่ของคุณโดยใช้คำสั่ง df -h ยกเลิกการต่อเชื่อมและสร้างภาพดิสก์ด้วยคำสั่งคัดลอกดิสก์ dd

$ df -h /dev/sdb1 7.4G 32K 7.4G 1% /สื่อ/XXX/1234-5678

$ umount /dev/sdb1

ข้อควรระวัง: ตรวจสอบให้แน่ใจว่าคำสั่งนั้นถูกต้องอย่างสมบูรณ์ คุณสามารถทำให้ดิสก์อื่นเสียหายได้ด้วยคำสั่งนี้

if=ตำแหน่งของไฟล์รูปภาพ RASPBIAN JESSIE FULL VERSION ของ=ตำแหน่งของการ์ด microSD ของคุณ

$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (หมายเหตุ: ในกรณีนี้ คือ /dev/sdb, /dev/sdb1 เป็นพาร์ติชั่นโรงงานที่มีอยู่บน ไมโครเอสดี)

การตั้งค่า RaspberriPi. ของคุณ

ใส่การ์ด microSD ใหม่ของคุณเข้ากับ raspberrypi และเปิดเครื่องด้วยจอภาพที่เชื่อมต่อกับพอร์ต HDMI

เข้าสู่ระบบ

ผู้ใช้: pi pass: raspberry

เปลี่ยนรหัสผ่านบัญชีของคุณเพื่อความปลอดภัย (จากเทอร์มินัล)

sudo passwd pi

เปิดใช้งานตัวเลือกขั้นสูง RaspberriPi (จากเทอร์มินัล)

sudo raspi-config

เลือก: 1 ขยายระบบไฟล์

9 ตัวเลือกขั้นสูง

ชื่อโฮสต์ A2 เปลี่ยนเป็น "TripComputer"

A4 SSH เปิดใช้งานเซิร์ฟเวอร์ SSH

A7 I2C เปิดใช้งานอินเทอร์เฟซ i2c

เปิดใช้งานแป้นพิมพ์ภาษาอังกฤษ/สหรัฐอเมริกา

sudo nano /etc/default/keyboard

เปลี่ยนบรรทัดต่อไปนี้: XKBLAYOUT="us"

รีบูต PI สำหรับการเปลี่ยนแปลงรูปแบบแป้นพิมพ์ / การปรับขนาดระบบไฟล์เพื่อให้มีผล

$ sudo shutdown -r ตอนนี้

เชื่อมต่ออัตโนมัติกับ WiFi ของคุณ

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

เพิ่มบรรทัดต่อไปนี้เพื่อให้ raspberrypi ของคุณเชื่อมต่อกับ WiFi ที่บ้านของคุณโดยอัตโนมัติ (หากเครือข่ายไร้สายของคุณชื่อ "linksys" ในตัวอย่างต่อไปนี้)

network={ ssid="linksys" psk="WIRELESS PASSWORD HERE" } รีบูต PI เพื่อเชื่อมต่อกับเครือข่าย WiFi

$ sudo shutdown -r ตอนนี้

ตอนนี้ PI ของคุณอยู่ในเครือข่ายท้องถิ่นแล้ว คุณสามารถเข้าสู่ระบบจากระยะไกลผ่าน SSH ได้ แต่ก่อนอื่นคุณต้องได้รับที่อยู่ IP ที่มีอยู่ในปัจจุบัน

$ ifconfig ค้นหา "inet addr: 192.168. XXX. XXX" ในผลลัพธ์ของคำสั่งต่อไปนี้สำหรับที่อยู่ IP ของ PI ของคุณ

ไปที่เครื่องอื่นและลงชื่อเข้าใช้ raspberrypi ของคุณผ่าน ssh

$ ssh [email protected]. XXX. XXX

เริ่มการติดตั้งแพ็คเกจที่จำเป็น

$ sudo apt-get update && sudo apt-get upgrade

$ sudo apt-get ติดตั้ง build-essential git gpsd gpsd-clients i2c-tools libi2c-dev python3 python3-pip python-dev python-gps python-imaging python-pip python-smbus rpi.gponio vim

$ sudo pip ติดตั้ง RPi. GPIO

อัปเดตการตั้งค่าเขตเวลาท้องถิ่น

$ sudo dpkg-reconfigure tzdata

เลือกเขตเวลาของคุณโดยใช้อินเทอร์เฟซ

ตั้งค่าคำสั่ง l ไดเร็กทอรีอย่างง่าย [ตัวเลือก]

vi ~/.bashrc

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

นามแฝง l='ls -lh'

ที่มา ~/.bashrc

แก้ไขการเน้นไวยากรณ์เริ่มต้นของ VIM [ตัวเลือก]

sudo vi /etc/vim/vimrc

uncomment บรรทัดต่อไปนี้:

ไวยากรณ์บน

ขั้นตอนที่ 2: จำเป็นต้องจัดหา

สิ่งที่จำเป็น
สิ่งที่จำเป็น
สิ่งที่จำเป็น
สิ่งที่จำเป็น
สิ่งที่จำเป็น
สิ่งที่จำเป็น

2 320x240 TFT LCD Digole แสดงผล (x2)

DHT11 เครื่องทำความชื้น

RaspberriPi Zero

Adafruit GPS Breakout

เกจ 2 นิ้ว 52 มม. - ใช้สำหรับกระจก / และขอบหน้าจอ

2 เกจเมาท์คอนเทนเนอร์

ขั้นตอนที่ 3: พิมพ์สิ่งที่ส่งมาด้วย

ในโฟลเดอร์ "3DPrint/" ของโปรเจ็กต์นี้ ให้พิมพ์ไฟล์ gauges-final.stl ซึ่งจะสร้างหน้าจอ Digole ที่จำเป็นในการติดตั้งหน้าจอ 2 จอภายในคอนเทนเนอร์เมาท์เกจ

ขั้นตอนที่ 4: สร้างคอมพิวเตอร์การเดินทาง

การสร้างคอมพิวเตอร์การเดินทาง
การสร้างคอมพิวเตอร์การเดินทาง

เชื่อมต่ออุปกรณ์ต่อไปนี้พินบน Pi Zero

Digole (แต่ละอัน): 3v / GND / SDA / SCL

DHT11: 5v / GPIO 16 (36) / GND

เชื่อมต่อโมดูล GPS USB กับ RaspberriPi ผ่านการเชื่อมต่อ HW UART การใช้ HW UART สำหรับโมดูล GPS ต้องการสิ่งต่อไปนี้เพื่อเพิ่มการเชื่อมต่อ UART บน Pi ของคุณ

"ข้าม"-เชื่อมต่อหมุด TX และ RX จากโมดูล GPS กับ RPi TX (GPIO 14/8 พิน) และ RX (GPIO 15/10 พิน) -- [TX ไปที่ RX บนอุปกรณ์และในทางกลับกัน] เชื่อมต่อ RPi 5V กับพิน VIN และขา GND ของโมดูล GPS กับพิน RPi GND ที่มีอยู่

ขั้นตอนที่ 5: การประกอบขั้นสุดท้าย

การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย

ตัดท่อนไม้สำหรับด้านล่างเพื่อยึดส่วนประกอบภายในเกจเกจ

นำเกจ 2 นิ้วขนาด 2 นิ้ว 2 นิ้วออกแล้วตัดส่วนยอดออก เราแค่ใช้กระจกและเซอร์ราวด์เพื่อยึดจอแสดงผลของเราเอง นั่นคือจอแสดงผล Digole กาวเข้าที่ด้วยกาวร้อน

ขั้นตอนที่ 6: การประกอบขั้นสุดท้าย (ต่อ…)

การประกอบขั้นสุดท้าย (ต่อ…)
การประกอบขั้นสุดท้าย (ต่อ…)
การประกอบขั้นสุดท้าย (ต่อ…)
การประกอบขั้นสุดท้าย (ต่อ…)

ใช้แผนผังด้านบนเชื่อมส่วนประกอบโดยใช้บัดกรีเพื่อให้ทุกอย่างแข็งแรงและถาวร

ติดตั้งส่วนประกอบต่างๆ ภายในปลอกหุ้มแบบคู่ ใช้การพิมพ์แบบ 3 มิติที่ล้อมรอบเพื่อให้จอแสดงผล Digole รูปทรงสี่เหลี่ยมพอดีกับหน้าต่างมาตรวัดแบบวงกลม

ขั้นตอนที่ 7: การกำหนดค่าซอฟต์แวร์ / การติดตั้ง

กำหนดค่า Pi ของคุณเพื่อใช้โมดูล GPS บน UART

sudo vi /boot/cmdline.txt

เปลี่ยน:

dwc_otg.lpm_enable=0 console=ttyAMA0, 115200 kgdboc=ttyAMA0, 115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=กำหนดเวลา rootwait

ถึง:

dwc_otg.lpm_enable=0 คอนโซล=tty1 รูท=/dev/mmcblk0p2 rootfstype=ext4 ลิฟต์=รอการสิ้นสุดของรูท

(เช่น ลบ console=ttyAMA0, 115200 และถ้ามี kgdboc=ttyAMA0, 115200)

หมายเหตุ คุณอาจเห็น console=serial0, 115200 หรือ console=ttyS0, 115200 และควรลบส่วนเหล่านั้นของบรรทัด หากมี

รันคำสั่งต่อไปนี้:

sudo systemctl หยุด [email protected]

sudo systemctl ปิดการใช้งาน [email protected]

ติดตั้งโมดูล GPS สำหรับการทดสอบบังคับให้อุปกรณ์ USB ของคุณเชื่อมต่อกับ gpsd

sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock

sudo systemctl หยุด gpsd.socket

sudo killall gpsd

sudo dpkg-reconfigure gpsd

sudo vi /etc/default/gpsd

# การตั้งค่าเริ่มต้นสำหรับ gpsd START_DAEMON="true" GPSD_OPTIONS="-n" DEVICES="/dev/ttyS0" USBAUTO="false" GPSD_SOCKET="/var/run/gpsd.sock"

ตรวจสอบให้แน่ใจว่าคำสั่งทำงาน

cgps -s

DHT11 ติดตั้งซีดี ~

โคลน git

cd Adafruit_Python_DHT/

sudo python setup.py ติดตั้ง

sudo python ez_setup.py

ตัวอย่างซีดี/

vi simpletest.py

เปลี่ยนบรรทัดต่อไปนี้:

เซ็นเซอร์ = Adafruit_DHT. DHT11

แสดงความคิดเห็นบรรทัดออก

พิน = 'P8_11'

ยกเลิกหมายเหตุบรรทัดและเปลี่ยนหมายเลขพินเป็น16

พิน = 16

เรียกใช้การทดสอบ

หลาม simpletest.py

คุณควรเห็นการอ่านค่าเมตริกของอุณหภูมิและความชื้นที่แสดงบนบรรทัดคำสั่ง

ตั้งค่าและเรียกใช้สคริปต์ cd ~

โคลน git

ขั้นตอนที่ 8: ติดตั้งเครื่องมือตรวจสอบการขับขี่และการบันทึกฐานข้อมูล

sudo apt-get ติดตั้ง ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2

sudo vi /etc/postgresql/9.4/main/pg_hba.conf

เพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์:

รหัสผ่าน pi ทั้งหมดในพื้นที่

sudo -i -u postgres

psql

สร้างรหัสผ่าน pi บทบาท 'รหัสผ่านที่นี่';

เปลี่ยนบทบาท pi เข้าสู่ระบบ;

เปลี่ยนบทบาท pi superuser;

du

(คุณควรเห็นผู้ใช้ PI ของคุณด้วยสิทธิ์ที่ได้รับ)

สร้างฐานข้อมูล driving_statistics;

NS

ทางออก

psql -d driving_statistics

เรียกใช้แบบสอบถามต่อไปนี้:

CREATE TABLE driving_stats (id serial, การประทับเวลาโดยไม่มีเขตเวลา NOT NULL, new_trip_start timestamp โดยไม่มีเขตเวลา NULL, gps_latitude ความแม่นยำสองเท่า, gps_longitude ความแม่นยำสองเท่า, gps_altitude จริง, gps_speed จริง, gps_climb จริง, gps_track จริง, ข้อความ locale_address, ข้อความ locale_county, ข้อความ locale_country, ข้อความ locale_zipcode, inside_temp จริง, inside_hmidty จริง, weather_time timestamp, weather_summary text, weather_icon text, weather_apparentTemperature จริง, weather_humidity จริง, weather_precipIntensity จริง, weather_precipProbability จริง, weather_windSpeed จริง);

สร้าง UNIQUE INDEX time_idx บน driving_stats (เวลา);

ต้องแฮ็กเพื่อให้ GPSD ทำงานกับการเชื่อมต่อ UART ในการรีบูต sudo su

crontab -e

@reboot /bin/sleep 5; killall gpsd

@reboot /bin/sleep 10; /usr/sbin/gpsd /dev/ttyS0 -F /var/run/gpsd.sock

สร้างโฟลเดอร์บันทึกสำหรับข้อมูลที่จะบันทึก mkdir /home/pi/TripComputer/computer/logs

ขั้นตอนที่ 9: สคริปต์ Crontab เริ่มต้น - Pi & Root

ตั้งค่าสคริปต์ให้ทำงานเมื่อบูต

crontab -e

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

@reboot /bin/sleep 15; nohup python /home/pi/TripComputer/computer/mtk3339.py > /home/pi/TripComputer/computer/mtk3339.log 2>&1

@reboot /bin/sleep 18; nohup python /home/pi/TripComputer/computer/driving.py > /home/pi/TripComputer/computer/driving.log 2>&1

@reboot /bin/sleep 19; nohup python /home/pi/TripComputer/computer/address.py > /home/pi/TripComputer/computer/address.log 2>&1

@reboot /bin/sleep 30; nohup python /home/pi/TripComputer/computer/gauges.py > /home/pi/TripComputer/computer/gauges.log 2>&1

@reboot /bin/sleep 21; nohup python /home/pi/TripComputer/computer/locale.py > /home/pi/TripComputer/computer/locale.log 2>&1

@reboot /bin/sleep 22; nohup python /home/pi/TripComputer/computer/notification.py > /home/pi/TripComputer/computer/notification.log 2>&1

@reboot /bin/sleep 24; nohup python /home/pi/TripComputer/computer/temperature.py > /home/pi/TripComputer/computer/temperature.log 2>&1 หลาม

@reboot /bin/sleep 25; nohup python /home/pi/TripComputer/computer/upload.py > /home/pi/TripComputer/computer/upload.log 2>&1

@reboot /bin/sleep 26; nohup python /home/pi/TripComputer/computer/weather.py > /home/pi/TripComputer/computer/weather.log 2>&1

@reboot /bin/sleep 30; nohup python /home/pi/TripComputer/computer/stats.py > /home/pi/TripComputer/computer/stats.log 2>&1

ตั้งค่า crontab ผู้ใช้รูทเพื่อให้แน่ใจว่าโมดูล GPS เชื่อมต่ออย่างถูกต้อง

ซูโด ซู

crontab -e

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

@reboot /bin/sleep 5; systemctl หยุด gpsd.socket

@reboot /bin/sleep 8; killall gpsd

@reboot /bin/sleep 12; /usr/sbin/gpsd /dev/ttyS0 -F /var/run/gpsd.sock

ขั้นตอนที่ 10: กำหนดค่าให้เชื่อมต่อกับสภาพอากาศและแดชบอร์ด (ไม่บังคับ)

ในที่สุดก็สร้างการตั้งค่าท้องถิ่นที่จำเป็นในการเรียกใช้คอมพิวเตอร์การเดินทาง

ค้นหาไฟล์ /computer/includes/settings.shadow.py

สร้างไฟล์การตั้งค่าเวอร์ชันของคุณเองที่ชื่อว่า settings.py

คีย์ API ของพยากรณ์.io สำหรับข้อมูลสภาพอากาศในท้องถิ่น weatherAPIURL = 'https://api.forecast.io/forecast/'

weatherAPIKey = 'คีย์ API ที่นี่'

หากคุณมีโครงการฮับอุปกรณ์ทำงานอยู่ (https://github.com/khinds10/DeviceHub) devicesServer = 'https://my.server.com'

หากคุณมีโครงการโทรศัพท์แดชบอร์ดที่ทำงานอยู่ (https://github.com/khinds10/RetroDashboard) dashboardServer = 'https://my.server.com'

ขั้นตอนที่ 11: ติดตั้งบน Dash / Mount Humidistat และเสร็จสิ้น

ติดตั้งบน Dash / Mount Humidistat แล้วเสร็จ!
ติดตั้งบน Dash / Mount Humidistat แล้วเสร็จ!
ติดตั้งบน Dash / Mount Humidistat แล้วเสร็จ!
ติดตั้งบน Dash / Mount Humidistat แล้วเสร็จ!

ติดบน Dash

Mount Humidistat ห่างจากดวงอาทิตย์โดยตรง

รีบูต RPi ของคุณและคุณก็พร้อมที่จะไป!

แนะนำ: