Mundarija:

Raspberry Pi mototsikllar paneli: 9 qadam (rasmlar bilan)
Raspberry Pi mototsikllar paneli: 9 qadam (rasmlar bilan)

Video: Raspberry Pi mototsikllar paneli: 9 qadam (rasmlar bilan)

Video: Raspberry Pi mototsikllar paneli: 9 qadam (rasmlar bilan)
Video: ПОЧЕМУ Я ЖДУ L4D3 2024, Noyabr
Anonim
Raspberry Pi mototsikllar paneli
Raspberry Pi mototsikllar paneli

Howest Kortrijkdagi multimediya va aloqa texnologiyasi talabasi sifatida men o'zimning IoT loyihamni yaratishga majbur bo'ldim. Bu birinchi yilda kuzatilgan barcha modullarni bitta katta loyihaga birlashtiradi. Men bo'sh vaqtimda mototsiklni ko'p haydaganim uchun, men MCT tu -da olgan bilimlarimdan foydalanib, mototsiklim uchun biror narsa yasashga qaror qildim: aqlli boshqaruv paneli.

MotoDash - fanatik mototsiklchilar uchun mo'ljallangan, Raspberry Pi bilan ishlaydigan boshqaruv paneli, bu chavandozga o'z ishini kuzatish imkoniyatini beradi.

Ushbu boshqaruv paneli qanday xususiyatlarga ega?

  • Hozirgi burilish burchagini ko'rish
  • Joriy tezlashtirishni ko'rish
  • Yog 'haroratini kuzatish qobiliyati
  • Qorong'ida yurganingizda avtomatik ravishda qorong'i mavzuga o'ting
  • Safaringiz haqidagi ma'lumotlarni yozib oling va o'z statistikangizni ko'ring

Ta'minotlar

Asosiy hisoblash birligi:

Raspberry Pi - bu tizimning asosiy boshqaruvchisi

Elektronika:

  • 12V-5V mototsikl uchun USB zaryadlovchi RPi uchun asosiy quvvat manbai
  • 4 pinli biriktirilgan o'rni 12V RPi quvvat sxemasini yoqish/o'chirish uchun almashtiring
  • O'tish simlari bo'lgan non paneli (ixtiyoriy) Sinov va prototip yaratish uchun
  • Rezistorlar to'plami

    0,2 mm simning turli xil ranglari

  • Breakout Pi plus - bu sizning barcha komponentlaringizni lehimlashi mumkin bo'lgan prototip taxtasi. U to'g'ridan -to'g'ri Raspberry Pi -ning yuqori qismiga o'rnatiladi, shuning uchun loyihaning o'lchamlari minimal bo'ladi.

Sensorlar va modullar:

  • Suv o'tkazmaydigan DS18B20 1-simli harorat sensoriYog 'harorati sensori
  • 3 o'qli Gyro akselerometr MPU6050Tilt/aksel sensori
  • Yorug'likka bog'liq qarshilik (LDR)
  • MCP3008-SPI interfeysi bilan 8 kanalli 10 bitli ADC

    TFT SPI displeyi (yoki sizning ehtiyojlaringizga mos keladigan boshqa LCD displey)

    RGB LED

Koson:

  • Plastik quti
  • Raspberry pi qutisi

Asboblar:

  • Lehimlash temir va lehim
  • 2,5 mm vintlardek va ajratgichlar
  • Suv o'tkazmaydigan kabel ulagichlari
  • Super yopishtiruvchi

1 -qadam: prototip yaratish

Prototip yaratish
Prototip yaratish
Prototip yaratish
Prototip yaratish

Hamma narsani doimiy qilishdan oldin, biz loyihani non taxtasida yig'amiz. Agar siz xato qilmasligingizga amin bo'lsangiz, bu qadamni o'tkazib yuborish mumkin. Elektr/non paneli sxemasini quyidagi PDF -da topish mumkin. Tarmoqni aniq ta'riflanganidek birlashtiring. RPi -dagi 5V -pinni emas, balki faqat 3.3V -ni ishlating. Bundan tashqari, malina Pi ni yoqishdan oldin, elektronni ikki marta tekshiring. Qisqa kiyimlar yo'qligiga ishonch hosil qiling!

2 -qadam: Raspberry Pi tayyorlash

Raspberry Pi tayyorlash
Raspberry Pi tayyorlash

Birinchidan, biz Raspberry Pi -ni o'rnatmoqchimiz. Raspberry Pi - bu o'z operatsion tizimini ishga tushirishga qodir mini kompyuter. Ushbu loyiha uchun u sensordata ma'lumotlarini qayta ishlash, veb -saytni joylashtirish, orqa va ma'lumotlar bazasini ishga tushirish uchun javobgardir …

1. Maxsus Raspbian tasvirini o'rnating

Taqdim etilgan rasmda ushbu loyihani boshlash uchun zarur bo'lgan dasturiy paketlar mavjud:

  • Veb -sayt frontend uchun apache
  • Ma'lumotlar bazasi uchun MariaDB
  • Ma'lumotlar bazasini boshqarish uchun PhpMyAdmin
  • Muammolarni oldini olish uchun maxsus ruxsatnomalar

Maxsus rasmni bu erdan yuklab olish mumkin.

Rasmlarni o'rnatish bo'yicha qo'llanmani bu erda topishingiz mumkin:

Rasm o'rnatilgandan so'ng, Raspberry Pi -ni kompyuteringizga chekilgan kabel orqali ulang. Endi siz 169.254.10.1 IP -manziliga ulanish uchun SSH mijozidan foydalanishingiz mumkin

Passwd buyrug'i yordamida darhol yangi parol o'rnatish yaxshi amaliyotdir

2. Simsiz APni sozlash

Loyiha tugagach, biz Wi -Fi orqali RPi -ga ulanishni xohlaymiz, shuning uchun uni simsiz AP -ga aylantiramiz. Buning uchun qo'llanmani bu erda topishingiz mumkin.

Siz bu darslikni 7 -bosqichgacha bajarishingiz kerak. 8 -qadam talab qilinmaydi, chunki biz Internetga ulanishni talab qilmaymiz, lekin mustaqil tarmoq yaratamiz.

3. Interfeyslarni yoqish

Raspi-config-ga o'ting

sudo raspi-config

Interfeys variantlariga o'ting va 1-simli, SPI va I2C-ni yoqing va Pi-ni qayta ishga tushiring

3. Displey uchun drayverlarni sozlash

Displeyni ishga tushirish

/Etc /modules faylini tahrirlang

sudo nano /etc /modullari

Quyidagi 2 qatorni qo'shing

spi-bcm2835fbtft_device

Endi tahrir qiling /etc/modprobe.d/fbtft.conf

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

Quyidagi qatorni qo'shing

variantlar fbtft_device name = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 aylantirish = 90 tezlik = 80000000 fps = 60

Pi -ni qayta ishga tushiring. Agar siz displeyning orqa nuri yonayotganini ko'rsangiz, hammasi yaxshi ketmoqda. Bu har safar Pi ochilganda displeyni ishga tushiradi, lekin hozir u faqat qora ekranni ko'rsatadi. Pi tarkibini displeyda ko'rish uchun biz asosiy ekran tarkibini kichik LCD displeyga nusxalashimiz kerak. Buning uchun biz "fbcp" xizmatidan foydalanamiz.

Fbcp xizmatini o'rnatish

sudo apt-get install cmake

git klon

CD rpi-fbcp

mkdir qurish

CD yaratish/

smake..

qilmoq

sudo fbcp/usr/local/bin/fbcp ni o'rnating

Endi biz xizmatni o'rnatdik. Biroq, biz Pi -ni boshsiz ishlatganimiz uchun, tarkibni nusxalash uchun ekran yo'q. Pi -ni ekran mazmunini chiqarishga majbur qilish uchun /boot/config.txt -ni tahrir qiling

sudo nano /boot/config.txt

Bu faylga quyidagi qatorlarni toping va izohlamang yoki qo'shing:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

RPi -ni qayta ishga tushiring va konsolda fbcp yozib fbcp xizmatini sinab ko'ring. Endi siz displey tarkibini LCD displeyda ko'rishingiz kerak.

Ishga tushganda fbcp ishga tushadi

/Etc/rc.local -ni tahrirlang va quyidagi manzilni IP -manzil va chiqish chizig'i orasiga qo'shing

fbcp &

Endi displey har safar RPi ochilganda yoqilishi kerak

3 -qadam: ma'lumotlar bazasi

Ma'lumotlar bazasi
Ma'lumotlar bazasi

Sensordata -ni saqlash va saqlash uchun men 4 ta jadvaldan iborat o'z ma'lumotlar bazasini yaratdim. EER diagrammasi yuqoridagi rasmda ko'rsatilgan.

1. Qurilmalar

Jadvalda har bir sensor mavjud. Sensor nomi, tavsifi va o'lchov birligi tasvirlangan. Bu jadvalda stol harakatlari bilan birma-bir bog'liqlik bor, mening holatimda akselero sensori har xil vazifalarni bajarishi mumkin.

2. Harakatlar

Bu jadvalda har xil sensorlar uchun amallar saqlanadi. Bir harakat har doim ma'lum bir sensor bilan bog'liq. Masalan: "TEMP" harakati haroratni o'lchaydigan qurilmaga bog'langan. Bu 1 simli harorat sensori bo'ladi.

3. Tarix

Bu jadvalda barcha sensorli jurnallar mavjud. Har bir jurnalda harakat identifikatori, qiymat, vaqt tamg'asi va minish belgisi mavjud

4. Mashinalar

Bu jadvalda turli xil sayohatlar saqlanadi. Har safar foydalanuvchi yangi sayohatni boshlaganida, bu jadvalga yangi yozuv kiritiladi

Ushbu ma'lumotlar bazasini Raspberry Pi -da olish uchun mening GitHub -ga o'ting va omborni klonlang/yuklab oling. Ma'lumotlar bazasi ostida siz 2.sql faylini topasiz. Ularni PhpMyAdmin yoki MySQL ish stolida ishga tushiring. Endi ma'lumotlar bazasi sizning RPi -da bo'lishi kerak.

4 -qadam: orqa qism

Agar siz hali qilmagan bo'lsangiz, mening GitHub -ga o'ting va omborni klonlang/yuklab oling. "Backend" papkasida siz loyihaning to'liq orqa qismini topasiz.

Jildda /yordamchilar ostidagi sensorlarni o'qish uchun sinflar, ma'lumotlar bazasi bilan /omborlar bilan bog'lanish uchun fayllar mavjud va asosiy dastur app.py nomi ostida joylashgan.

Python paketlarini o'rnatish

Biror narsani ishga solishdan oldin, avval python uchun ba'zi paketlarni o'rnatishimiz kerak. RPi terminaliga kiring va quyidagi buyruqlarni kiriting:

pip3 mysql-connector-python-ni o'rnating

pip3 flask-socketio-ni o'rnating

pip3 flakon-korslarni o'rnating

pip3 gevent -ni o'rnating

pip3 gevent-websocket-ni o'rnating

MUHIM DIQQAT: agar siz Mariadb/Mysql parolingizni o'zgartirgan bo'lsangiz, config.py -da parolni o'zgartiring!

Orqa fonni sinab ko'ring

Python3 tarjimoni (/usr/bin/python3) yordamida app.py -ni ishga tushiring. Hech qanday xato yo'qligiga ishonch hosil qiling.

Yuklash paytida orqa tomonni ishga tushirish

MotoDash_backend.service -ni tahrirlang va YOURFILEPATH -ni ombor saqlanadigan yo'lga o'zgartiring.

Endi bu faylni/etc/systemd/system/ga nusxalash.

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

Endi orqa panel har safar RPi ishga tushganda avtomatik ravishda ishga tushadi.

5 -qadam: Frontend

Foydalanuvchi interfeysi
Foydalanuvchi interfeysi
Foydalanuvchi interfeysi
Foydalanuvchi interfeysi

GitHub Repo -ga kiring. Frontend katalogining tarkibini/var/www/html -ga nusxalash.

Bu frontendning ishlashi uchun qilishingiz kerak bo'lgan narsa. Bu papkada barcha veb -sahifalar, uslublar va veb -interfeys uchun skriptlar mavjud. Shuningdek, u orqa taraf bilan aloqa qiladi. Hamma narsa kerakli darajada ishlashini tekshirish uchun, RPi -ga ulanganligingizga ishonch hosil qiling va brauzerda IP -manzilini kiriting. Siz veb -interfeysning bosh sahifasini ko'rishingiz kerak.

Eslatma: Veb -sayt javob beradi, shuning uchun siz uni ish stolida bo'lgani kabi mobil qurilmalarda ham ishlatishingiz mumkin

6 -qadam: asboblar panelini displeyda ko'rsatish

Boshqaruv panelini displeyda ko'rsatish
Boshqaruv panelini displeyda ko'rsatish

Old panelda faqat kichik displey uchun ishlatiladigan o'zining yashirin veb -sahifasi mavjud. Biz Pi -ni yuklashni avtomatik ravishda ushbu veb -saytga to'liq ekran rejimida o'tkazamiz.

RPi yuklash parametrlari ostida raspi-config ish stoli autologiniga o'rnatilganligiga ishonch hosil qiling

sudo raspi-config

Endi yashirin konfiguratsiya papkasiga o'ting va u erda yangi fayl yarating

cd.config

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Ushbu faylga quyidagi qatorlarni qo'shing va saqlang

@xscreensaver -yo'q

@xset o'chirilgan

@xset -dpms

@xset s noblank

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

Endi Pi har safar ushbu veb -sahifaga yuklanishi kerak

7 -qadam: Elektronni lehimlash

Elektronni lehimlash
Elektronni lehimlash
Elektronni lehimlash
Elektronni lehimlash
Elektronni lehimlash
Elektronni lehimlash
Elektronni lehimlash
Elektronni lehimlash

Kengash taxtasini oling va uning tarkibiy qismlarini tizimli ravishda joylashtiring. Men uning tarkibiy qismlarini qanday lehimlaganimni muhokama qilmayman, chunki men juda yomon ish qildim. Men bortda alohida pin sarlavhalarini ishlatardim, shunda men sensorlar va modullarni o'ng pinga ulashim kerak edi. Qaysi pin nima uchun kerakligini bilganingizga ishonch hosil qiling!

Lehimlashda ba'zi maslahatlar:

  • Katta masofalarni kesib o'tishda izolyatsiyalangan simlardan foydalaning. Siz xohlagan oxirgi narsa - bu sizning davrangizdagi shortilar
  • Komponent yoki simni lehimlagandan so'ng, uning uzluksizligini multimetr bilan tekshiring. Shuningdek, qisqa tutashuvlarning mavjudligini muntazam tekshirib turing.
  • Juda ko'p yoki juda kam lehim ishlatmang!
  • Agar siz qanday qilib lehim qilishni bilmasangiz, avval uni boshqa prototip taxtasida mashq qiling. Lehimlash bo'yicha qo'llanmani bu erda topishingiz mumkin.

Endilikda simlarni payvandlagichlarga ulang va hamma narsa qisqa va toza emasligiga ishonch hosil qilish uchun o'rab qo'ying.

Tugatganingizdan so'ng, qisqa tutashuvlar yoki noto'g'ri ulanishlarni ikki marta tekshiring va to'g'ri ulanish bo'lsa, har bir ulanishni elektr sxemasi bilan tekshiring. Hamma narsa to'g'ri bajarilganiga amin bo'lganingizdan so'ng, oldinga siljiting va RPi panelini qo'ying, uni 2,5 mm vintlar bilan mahkamlang.

8 -qadam: Elektr ta'minoti

Raspberry Pi-ni quvvatlantirish uchun biz 12V-5V usb adapteridan foydalanamiz. Ushbu adapter mototsikl batareyasiga ulanadi. Kontaktni yoqish paytida RPi kuchga kirishiga ishonch hosil qilish uchun biz o'z o'rni bilan foydalanamiz. Röle, orqa chiroqdan kuchlanishni aniqlagandan so'ng, RPi quvvat davrini yopadi (kontaktni yoqishda orqa chiroq har doim yonadi).

Bu haqda batafsil ko'rsatma olish uchun ushbu sahifaga qarang: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -nazoratchilar.16921/

9 -qadam: uy -joy

Uy -joy
Uy -joy
Uy -joy
Uy -joy
Uy -joy
Uy -joy

Ko'rgazma uyi

Displey uchun o'zingizga displey o'lchamidagi qattiq plastik qutini oling. Ekranning kattaligidagi to'rtburchaklar teshikni kesib oling va ekranni burab qo'yish uchun mos keladigan teshiklarni kesib oling. Old tomondan siz RGB LED va LDR uchun yana 2 teshik ochishingiz kerak.

Men bu qutini murvat yordamida smartfon ushlagichining tepasiga o'rnatdim.

Harorat sensori

Harorat sensori joylashtirilishi uchun men mototsiklimga mos keladigan 3D o'lchagichni bosdim.

Raspberry Pi

Malinali Pi -ni mototsikl ichidagi xavfsiz joyga o'rnating, men uni velkro tasmalar yordamida qanotlardan birining ostiga qo'ydim. Va uni korpus va plastmassadan foydalanib, elementlardan himoya qildi.

Akselerometr

Akselerometrni xavfsiz joyga, yaxshisi mototsikl ramkasiga o'rnating.

Eslatma:

Menga o'xshagan uy -joy bo'lishi shart emas, xohlaganingizcha tugatishingiz mumkin. Faqat elektron komponentlar yomg'ir va changdan himoyalanganligiga ishonch hosil qiling.

Tavsiya: