สารบัญ:
- ขั้นตอนที่ 1: แฟลช RaspberriPi Hard Disk / ติดตั้งซอฟต์แวร์ที่จำเป็น (โดยใช้ Ubuntu Linux)
- ขั้นตอนที่ 2: จำเป็นต้องจัดหา
- ขั้นตอนที่ 3: พิมพ์สิ่งที่ส่งมาด้วย
- ขั้นตอนที่ 4: สร้างคอมพิวเตอร์การเดินทาง
- ขั้นตอนที่ 5: การประกอบขั้นสุดท้าย
- ขั้นตอนที่ 6: การประกอบขั้นสุดท้าย (ต่อ…)
- ขั้นตอนที่ 7: การกำหนดค่าซอฟต์แวร์ / การติดตั้ง
- ขั้นตอนที่ 8: ติดตั้งเครื่องมือตรวจสอบการขับขี่และการบันทึกฐานข้อมูล
- ขั้นตอนที่ 9: สคริปต์ Crontab เริ่มต้น - Pi & Root
- ขั้นตอนที่ 10: กำหนดค่าให้เชื่อมต่อกับสภาพอากาศและแดชบอร์ด (ไม่บังคับ)
- ขั้นตอนที่ 11: ติดตั้งบน Dash / Mount Humidistat และเสร็จสิ้น
วีดีโอ: TripComputer - GPS Trip Computer & Weather Module สำหรับยานพาหนะของคุณ: 11 ขั้นตอน (พร้อมรูปภาพ)
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โปรเจ็กต์ 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 ห่างจากดวงอาทิตย์โดยตรง
รีบูต RPi ของคุณและคุณก็พร้อมที่จะไป!