جدول المحتويات:
- الخطوة 1: تفليش القرص الصلب RaspberriPi / تثبيت البرنامج المطلوب (باستخدام Ubuntu Linux)
- الخطوة 2: الموردة المطلوبة
- الخطوة 3: اطبع الضميمة
- الخطوة 4: بناء كمبيوتر الرحلة
- الخطوة 5: التجميع النهائي
- الخطوة 6: التجميع النهائي (تابع …)
- الخطوة 7: تكوين / تثبيت البرنامج
- الخطوة 8: تثبيت أدوات مراقبة القيادة وتسجيل قاعدة البيانات
- الخطوة 9: بدء تشغيل البرامج النصية Crontab - Pi & Root
- الخطوة 10: التهيئة للاتصال بالطقس ولوحة المعلومات (اختياري)
- الخطوة 11: قم بالتركيب على داش / جبل الرطوبة والانتهاء
فيديو: TripComputer - كمبيوتر رحلة GPS ووحدة الطقس لسيارتك: 11 خطوة (بالصور)
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
مشروع raspberry pi الرائع الذي يستخدم وحدة الاختراق GPS وشاشتي Digole الصغيرتين للحصول على كمبيوتر ملاحة على لوحة القيادة الخاصة بك.
الخطوة 1: تفليش القرص الصلب RaspberriPi / تثبيت البرنامج المطلوب (باستخدام Ubuntu Linux)
قم بتنزيل "نسخة RASPBIAN JESSIE LITE"
قم بإنشاء القرص الثابت الجديد الخاص بك لـ DashboardPI
أدخل microSD في جهاز الكمبيوتر الخاص بك عبر محول USB وقم بإنشاء صورة القرص باستخدام الأمر dd
حدد موقع بطاقة microSD التي تم إدخالها عبر الأمر df -h ، وقم بإلغاء تحميلها وإنشاء صورة القرص باستخدام الأمر disk copy dd
$ df -h / dev / sdb1 7.4G 32K 7.4G 1٪ / media / XXX / 1234-5678
umount / dev / sdb1
تحذير: تأكد من أن الأمر دقيق تمامًا ، يمكنك إتلاف الأقراص الأخرى باستخدام هذا الأمر
if = موقع ملف صورة RASPBIAN JESSIE FULL VERSION = موقع بطاقة microSD الخاصة بك
$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img من = / dev / sdb (ملاحظة: في هذه الحالة ، يكون / dev / sdb ، / dev / sdb1 قسمًا مصنعًا موجودًا على microSD)
إعداد RaspberriPi الخاص بك
أدخل بطاقة microSD الجديدة في raspberrypi وقم بتشغيلها باستخدام شاشة متصلة بمنفذ HDMI
تسجيل الدخول
المستخدم: pi pass: Raspberry
تغيير كلمة مرور حسابك للأمان (من المحطة)
sudo passwd بي
تمكين خيارات RaspberriPi المتقدمة (من المحطة)
sudo raspi-config
اختر: 1 قم بتوسيع نظام الملفات
9 خيارات متقدمة
قام اسم مضيف A2 بتغييره إلى "TripComputer"
A4 SSH قم بتمكين خادم SSH
A7 I2C تمكين واجهة i2c
قم بتمكين لوحة المفاتيح الإنجليزية / الأمريكية
sudo نانو / الخ / الافتراضي / لوحة المفاتيح
قم بتغيير السطر التالي: XKBLAYOUT = "لنا"
إعادة تشغيل 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 install build-basic git gpsd gpsd-clients i2c-tools libi2c-dev python3 python3-pip python-dev python-gps python-imaging python-pip python-smbus rpi.gpio vim python-psutil
sudo pip $ قم بتثبيت RPi. GPIO
قم بتحديث إعدادات المنطقة الزمنية المحلية
sudo dpkg-إعادة تكوين tzdata
حدد منطقتك الزمنية باستخدام الواجهة
قم بإعداد أمر الدليل البسيط l [اختياري]
vi ~ /.bashrc
أضف السطر التالي:
الاسم المستعار l = 'ls -lh'
المصدر ~ /
إصلاح تمييز البنية الافتراضية لـ VIM [اختياري]
sudo vi / etc / vim / vimrc
uncomment السطر التالي:
بناء الجملة على
الخطوة 2: الموردة المطلوبة
شاشة 2 320x240 TFT LCD Digole (x2)
DHT11 رطوبة
RaspberriPi Zero
Adafruit GPS Breakout
مقاييس 52 مم 2 بوصة - تستخدم للزجاج / ومحيط الشاشة
2 حاوية قياس جبل
الخطوة 3: اطبع الضميمة
في مجلد "3DPrint /" لهذا المشروع ، اطبع ملف gauges-final.stl الذي سينتج محيط شاشة Digole اللازمة لتركيب الشاشتين داخل حاوية تركيب جهاز القياس.
الخطوة 4: بناء كمبيوتر الرحلة
قم بتوصيل الأجهزة التالية بالدبابيس الموجودة على Pi Zero
Digole (كل منهما): 3v / GND / SDA / SCL
DHT11: 5 فولت / GPIO 16 (36) / GND
قم بتوصيل وحدة GPS USB بوحدة RaspberriPi عبر اتصالات HW UART يتطلب استخدام HW UART لوحدة GPS ما يلي لتحرير اتصال UART على Pi الخاص بك.
"Cross" - قم بتوصيل دبابيس TX و RX من وحدة GPS إلى RPi TX (GPIO 14/8 pin) و RX (GPIO 15/10 pin) - [ينتقل TX إلى RX على الجهاز والعكس بالعكس]. RPi 5V إلى دبوس VIN ودبوس GND لوحدة GPS إلى دبوس RPi GND متاح.
الخطوة 5: التجميع النهائي
قطع قطعة من الخشب للأسفل لعقد المكونات داخل غلاف المقياس.
خذ مقاييس 2 52mm 2in وقم بقطع الأسطح ، نحن فقط نستخدم الزجاج والإحاطة لتركيب شاشاتنا الخاصة ، شاشات Digole. صقها في مكانها بالغراء الساخن.
الخطوة 6: التجميع النهائي (تابع …)
باستخدام السلك التخطيطي أعلاه معًا المكونات باستخدام اللحام لجعل كل شيء قويًا ودائمًا.
قم بتركيب المكونات داخل غلاف المقياس المزدوج ، واستخدم المحيطات المطبوعة ثلاثية الأبعاد لجعل شاشات Digole ذات الشكل المربع تتناسب مع نوافذ المقاييس الدائرية.
الخطوة 7: تكوين / تثبيت البرنامج
تكوين Pi الخاص بك لاستخدام وحدة GPS على UART
sudo vi /boot/cmdline.txt
يتغيرون:
dwc_otg.lpm_enable = 0 وحدة تحكم = ttyAMA0، 115200 kgdboc = ttyAMA0، 115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 Elevator = الموعد النهائي rootwait
إلى:
dwc_otg.lpm_enable = 0 وحدة تحكم = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 elevator = جذر الموعد النهائي
(على سبيل المثال ، إزالة وحدة التحكم = ttyAMA0، 115200 وإذا كان هناك ، kgdboc = ttyAMA0، 115200)
لاحظ أنك قد ترى وحدة التحكم = serial0 ، 115200 أو وحدة التحكم = ttyS0 ، 115200 ويجب إزالة تلك الأجزاء من الخط إذا كانت موجودة.
قم بتشغيل الأوامر التالية:
sudo systemctl stop [email protected]. نظام sudo
sudo systemctl تعطيل [email protected]
تثبيت وحدة GPS للاختبار ، قم بإجبار جهاز USB الخاص بك على الاتصال بـ GPSd
sudo gpsd / dev / ttyS0 -F /var/run/gpsd.sock
sudo systemctl stop gpsd.socket
sudo killall gpsd
sudo dpkg-إعادة تكوين نظام تحديد المواقع العالمي (GPSd)
sudo vi / etc / default / gpsd
# الإعدادات الافتراضية لنظام تحديد المواقع العالمي. START_DAEMON = "true" GPSD_OPTIONS = "- n" DEVICES = "/ dev / ttyS0" USBAUTO = "false" GPSD_SOCKET = "/ var / run / gpsd.sock"
تأكد من أن الأمر يعمل
cgps -s
DHT11 قم بتثبيت القرص المضغوط ~
استنساخ بوابة
قرص مضغوط Adafruit_Python_DHT /
sudo python setup.py install
sudo python ez_setup.py
أمثلة على القرص المضغوط /
vi أبسط
قم بتغيير السطر التالي:
جهاز استشعار = Adafruit_DHT. DHT11
التعليق على السطر
دبوس = 'P8_11'
قم بفك تعليق الخط وتغيير الرقم السري إلى 16
دبوس = 16
قم بإجراء الاختبار
بيثون أبسط
يجب أن تشاهد قراءة مترية لدرجة الحرارة والرطوبة معروضة في سطر الأوامر.
قم بإعداد وتشغيل البرامج النصية cd ~
استنساخ بوابة
الخطوة 8: تثبيت أدوات مراقبة القيادة وتسجيل قاعدة البيانات
sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2
sudo vi /etc/postgresql/9.4/main/pg_hba.conf
أضف السطر التالي إلى نهاية الملف:
المحلية كل كلمة مرور بي
sudo -i -u postgres
بسكل
إنشاء كلمة مرور للدور "كلمة المرور هنا" ؛
تغيير دور pi تسجيل الدخول ؛
تغيير دور المستخدم الخارق ؛
du
(يجب أن ترى مستخدم PI الخاص بك مع الأذونات الممنوحة)
إنشاء قاعدة بيانات driving_statistics ؛
ف
خروج
psql -d driving_statistics
قم بتشغيل الاستعلامات التالية:
CREATE TABLE driving_stats (معرف تسلسلي ، طابع زمني بدون منطقة زمنية NOT NULL ، new_trip_start timestamp بدون منطقة زمنية NULL ، دقة مزدوجة GPS_latitude ، دقة مزدوجة GPS_longitude ، gps_altitude real ، gps_speed real ، gps_climb real ، gps_track real ، locale_address text ، locale_area text ، locale_climb text ، locale_area text ، locale_climb text ، locale_county text ، locale_country text ، locale_zipcode text ، inside_temp real ، inside_hmidty real ، weather_time timestamp ، weather_summary text ، weather_icon text ، weather_apparentTemperature real ، weather_humidity real ، weather_precipIntensity real ، weather_precipProbability real ، weather)
إنشاء UNIQUE INDEX time_idx ON driving_stats (الوقت) ؛
مطلوب اختراق للحصول على GPSD يعمل مع اتصال UART عند إعادة تشغيل sudo su
كرونتاب -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
قم بإعداد البرامج النصية للتشغيل عند التمهيد
كرونتاب -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 / النوم 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 بشكل صحيح
sudo su
كرونتاب -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
مفتاح واجهة برمجة التطبيقات لـ Forecast.io لمعلومات الطقس المحلية WeatherAPIURL = 'https://api.forecast.io/forecast/'
WeatherAPIKey = 'API KEY هنا'
إذا كان لديك مشروع محور الجهاز قيد التشغيل (https://github.com/khinds10/DeviceHub) devicesServer = 'https://my.server.com'
إذا كان لديك مشروع هاتف لوحة القيادة قيد التشغيل (https://github.com/khinds10/RetroDashboard) dashboardServer = 'https://my.server.com'
الخطوة 11: قم بالتركيب على داش / جبل الرطوبة والانتهاء
جبل على داش
جبل الرطوبة بعيداً عن الشمس المباشرة
أعد تشغيل RPi وستكون جاهزًا للانطلاق!