Բովանդակություն:

Raspberry Pi մոտոցիկլետի վահանակ. 9 քայլ (նկարներով)
Raspberry Pi մոտոցիկլետի վահանակ. 9 քայլ (նկարներով)

Video: Raspberry Pi մոտոցիկլետի վահանակ. 9 քայլ (նկարներով)

Video: Raspberry Pi մոտոցիկլետի վահանակ. 9 քայլ (նկարներով)
Video: Scooter Pi’s 2024, Հուլիսի
Anonim
Raspberry Pi մոտոցիկլետի վահանակ
Raspberry Pi մոտոցիկլետի վահանակ

Որպես ուսանող ՝ Մուլտիմեդիա և հաղորդակցման տեխնոլոգիա Howest Kortrijk- ում, ես ստիպված էի կատարել իմ սեփական IoT նախագիծը: Սա կհամատեղի առաջին տարում հետևած բոլոր մոդուլները մեկ մեծ նախագծի մեջ: Քանի որ ազատ ժամանակ շատ եմ վարում մոտոցիկլետով, ես որոշեցի օգտագործել իմ ձեռք բերած հմտությունները MCT- ում `իմ մոտոցիկլետի համար ինչ -որ բան կառուցելու համար. Խելացի վահանակ:

MotoDash- ը Raspberry Pi- ով աշխատող վահանակ է, որը նախատեսված է ֆանատիկ մոտոցիկլիստների համար և հեծյալին հնարավորություն է տալիս հետևել նրանց կատարողականին:

Որո՞նք են այս վահանակի առանձնահատկությունները:

  • Դիտման ընթացիկ թեքության անկյունը
  • Ընթացիկ արագացման դիտում
  • Յուղի ջերմաստիճանը վերահսկելու ունակություն
  • Մթության մեջ վարելիս ավտոմատ անցեք մուգ թեմայի
  • Գրանցեք ձեր զբոսանքների տվյալները և դիտեք ձեր սեփական վիճակագրությունը

Պարագաներ

Հիմնական հաշվիչ միավոր.

Raspberry Pi Սա համակարգի հիմնական վերահսկիչն է

Էլեկտրոնիկա:

  • Մոտոցիկլետի USB լիցքավորիչ 12V-5V Հիմնական սնուցման աղբյուր RPi- ի համար
  • 4 Pin Fused Relay 12V Անջատիչ ՝ միացնելու/անջատելու համար RPi հոսանքի սխեման
  • Հացաթուղթ jumper լարերով (ըստ ցանկության) Փորձարկման և նախատիպերի պատրաստման համար
  • Դիմադրիչների հավաքածու

    Տարբեր գույների 0.2 մմ մետաղալար

  • Breakout Pi plus Սա նախատիպային տախտակ է, որտեղ կարող եք զոդել ձեր բոլոր բաղադրիչները: Այն պատրաստված է այնպես, որ այն տեղավորվի անմիջապես Raspberry Pi- ի գագաթին, այնպես որ նախագծի չափերը մնում են նվազագույնի:

Սենսորներ և մոդուլներ.

  • Անջրանցիկ DS18B20 1-մետաղալար ջերմաստիճանի տվիչ Յուղի ջերմաստիճանի տվիչ
  • 3 Axes Gyro Accelerometer MPU6050Tilt/accel sensor
  • Լույսի կախված դիմադրություն (LDR)
  • MCP3008-8-ալիքային 10-բիթանոց ADC ՝ SPI ինտերֆեյսով

    TFT SPI էկրան (կամ ցանկացած այլ LCD էկրան, որը համապատասխանում է ձեր կարիքներին)

    RGB LED

Պատյան:

  • Պլաստիկ տուփ
  • Raspberry pi Case

Գործիքներ:

  • Oldոդման երկաթ և զոդ
  • 2,5 մմ պտուտակներ և անջատիչներ
  • Անջրանցիկ մալուխային միակցիչներ
  • Սուպեր սոսինձ

Քայլ 1: Նախատիպերի ստեղծում

Նախատիպերի ստեղծում
Նախատիպերի ստեղծում
Նախատիպերի ստեղծում
Նախատիպերի ստեղծում

Նախքան ամեն ինչ մշտական դարձնելը, մենք նախագիծը կհավաքենք հացահատիկի վրա: Այս քայլը կարող է բաց թողնվել, եթե համոզված եք, որ սխալներ չեք գործի: Էլեկտրական/գրատախտակի սխեման կարելի է գտնել ստորև բերված PDF- ում: Շղթան միացրեք ճիշտ այնպես, ինչպես նկարագրված է: Համոզվեք, որ RPi- ում օգտագործեք միայն 3.3V կապը և ոչ թե 5V կապը: Նաև ազնվամորու Pi- ն միացնելուց առաջ կրկնակի ստուգեք ձեր սխեման: Համոզվեք, որ շորտեր չկան:

Քայլ 2: Պատրաստում ազնվամորի պի

Raspberry Pi- ի պատրաստում
Raspberry Pi- ի պատրաստում

Առաջին հերթին, մենք պատրաստվում ենք ստեղծել Raspberry Pi- ն: Raspberry Pi- ն մինի համակարգիչ է, որն ունակ է աշխատելու սեփական օպերացիոն համակարգով: Այս նախագծի համար այն պատասխանատու է sensordata- ի մշակման, վեբ կայքի տեղադրման, հետևի և տվյալների բազայի գործարկման համար,…

1. Տեղադրեք հատուկ Raspbian Image- ը

Տրամադրված պատկերն արդեն պարունակում է ծրագրային փաթեթներ, որոնք անհրաժեշտ են այս նախագիծը վերսկսելու համար.

  • Apache կայքի առջևի համար
  • MariaDB տվյալների բազայի համար
  • PhpMyAdmin ՝ տվյալների բազան շահարկելու համար
  • Խնդիրներից խուսափելու համար անհատական թույլտվություններ

Պատվերով պատկերը կարելի է ներբեռնել այստեղից:

Պատկերների տեղադրման ձեռնարկը կարելի է գտնել այստեղ.

Պատկերը տեղադրվելուց հետո միացրեք Raspberry Pi- ն ձեր համակարգչին ethernet մալուխով: Այժմ դուք կարող եք օգտագործել SSH հաճախորդ ՝ դրան 169.254.10.1 IP հասցեով միանալու համար

Լավ պրակտիկա է անմիջապես գաղտնաբառ սահմանել ՝ օգտագործելով passwd հրամանը

2. Անլար AP- ի կարգավորում

Երբ նախագիծն ավարտվի, մենք ցանկանում ենք, որ կարողանանք միանալ RPi- ին wifi- ով, այնպես որ թույլ տվեք այն վերածել անլար AP- ի: Դրա համար ձեռնարկ կարելի է գտնել այստեղ:

Դուք միայն պետք է հետևեք այս ձեռնարկին մինչև 7 -րդ քայլը: Քայլ 8 -ը պարտադիր չէ, քանի որ մենք կարիք չունենք ինտերնետ կապը կամրջելու, այլ ստեղծելու անկախ ցանց:

3. Միացնելով ինտերֆեյսերը

Գնացեք դեպի raspi-config

sudo raspi-config

Գնացեք միջերեսային տարբերակներ և միացրեք 1-մետաղալար, SPI և I2C և վերագործարկեք Pi- ը

3. Էկրանի համար վարորդների տեղադրում

Theուցադրման սկզբնականացում

Խմբագրել ֆայլը /etc /modules

sudo nano /etc /մոդուլներ

Ավելացնել հետևյալ 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 կառուցել

cd կառուցում/

սմեկ..

կատարել

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

ցուցադրման_շրջադարձ = 0

hdmi_group = 2

hdmi_mode = 87

Վերագործարկեք RPi- ն և փորձարկեք fbcp ծառայությունը `մուտքագրելով fbcp վահանակում: Այժմ դուք պետք է տեսնեք էկրանի բովանդակությունը LCD- ում:

Գործարկման ժամանակ fbcp- ի գործարկում

Խմբագրել /etc/rc.local և ավելացնել հետևյալ տողը IP հասցեի և ելքի գծի միջև

fbcp &

Այժմ ցուցադրումը պետք է միացվի ամեն անգամ, երբ RPi- ն բարձրանա

Քայլ 3: Տվյալների բազա

Տվյալների շտեմարան
Տվյալների շտեմարան

Sensordata- ն մուտքագրելու և պահելու համար ես նախագծել եմ իմ սեփական տվյալների բազան, որը պարունակում է 4 աղյուսակ: EER- ի դիագրամը ներկայացված է վերևի նկարում:

1. Սարքեր

Այս աղյուսակը պարունակում է յուրաքանչյուր սենսոր: Այն նկարագրում է սենսորի անունը, նկարագրությունը և չափման միավորը: Այս աղյուսակը մեկ-մեկ հարաբերություն ունի սեղանի գործողությունների հետ, քանի որ իմ դեպքում աքսելերո սենսորը կարող է կատարել տարբեր առաջադրանքներ:

2. Գործողություններ

Այս աղյուսակը պահում է տարբեր սենսորների գործողությունները: Մի գործողություն միշտ կապված է որոշակի սենսորի հետ: Օրինակ ՝ «TEMP» գործողությունը կապված է ջերմաստիճանը չափող սարքի հետ: Սա կլինի 1-լարային ջերմաստիճանի տվիչ:

3. Պատմություն

Այս աղյուսակը պարունակում է սենսորների բոլոր տեղեկամատյանները: Յուրաքանչյուր մատյան ունի գործողության ID, արժեք, ժամանակային նշան և ուղեցույց

4. idesբոսանքներ

Այս սեղանը պահում է տարբեր զբոսանքներ: Ամեն անգամ, երբ օգտագործողը սկսում է նոր զբոսանք, այս աղյուսակում կատարվում է նոր մուտք

Ձեր Raspberry Pi- ի այս տվյալների բազան ստանալու համար անցեք իմ GitHub և կլոնավորեք/ներբեռնեք պահեստը: Տվյալների բազայի տակ կգտնեք 2.sql ֆայլ: Գործարկեք դրանք PhpMyAdmin կամ MySQL աշխատատեղում: Այժմ տվյալների բազան պետք է լինի ձեր RPi- ում:

Քայլ 4: Հետնապահ

Եթե դեռ չեք հասցրել, անցեք դեպի իմ GitHub- ը և կլոնավորեք/ներբեռնեք պահեստը: Backend թղթապանակի ներքո դուք կգտնեք նախագծի ամբողջական հետնապահը:

Թղթապանակը պարունակում է դասընթացներ /օգնականների տակ սենսորներ կարդալու համար, ֆայլեր /պահեստների տակ տվյալների բազայի հետ հաղորդակցվելու համար, իսկ հիմնական հավելվածը գտնվում է արմատում ՝ app.py անվան տակ:

Python փաթեթների տեղադրում

Նախքան ինչ -որ բան գործարկելը, մենք պետք է նախ տեղադրենք որոշ փաթեթներ python- ի համար: Գնացեք ձեր RPi տերմինալ և մուտքագրեք հետևյալ հրամանները.

pip3 տեղադրել mysql-connector-python

pip3 տեղադրել flask-socketio

pip3 տեղադրել flask-cors

pip3 տեղադրել gevent

pip3 տեղադրել gevent-websocket

ԿԱՐԵՎՈՐ Ո NOTՇԱԴՐՈԹՅՈՆ. Եթե դուք փոխել եք ձեր 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: Frontend

Դիմային մաս
Դիմային մաս
Դիմային մաս
Դիմային մաս

Գնացեք դեպի GitHub Repo: Պատճենեք Frontend գրացուցակի բովանդակությունը/var/www/html- ում:

Սա այն ամենն է, ինչ դուք պետք է անեք, որպեսզի ֆրոնտենտը աշխատի: Այս թղթապանակը պարունակում է վեբ ինտերֆեյսի բոլոր վեբ էջերը, ոճավորումը և սցենարները: Այն նաև շփվում է հետնապահի հետ: Ստուգելու համար, թե արդյոք ամեն ինչ աշխատում է այնպես, ինչպես պետք է, համոզվեք, որ միացված եք ձեր RPi- ին և մուտքագրեք RPi- ի IP հասցեն դիտարկիչում: Դուք պետք է տեսնեք վեբ ինտերֆեյսի գլխավոր էջը:

Նշում. Կայքը պատասխանատու է, այնպես որ կարող եք այն օգտագործել ինչպես բջջային, այնպես էլ աշխատասեղանի վրա

Քայլ 6: Dashուցադրման վահանակի ցուցադրում էկրանին

Dashուցադրման վահանակը ցուցադրման վրա
Dashուցադրման վահանակը ցուցադրման վրա

Ֆրոնտենդը ունի իր թաքնված վեբ էջը, որն օգտագործվում է միայն փոքր էկրանների համար: Մենք Pi- ի բեռնախցիկն ինքնաբերաբար կդարձնենք այս կայք ՝ ամբողջ էկրանով ռեժիմով:

Համոզված եղեք, որ RPi- ն raspi-config- ում տեղադրված է աշխատասեղանի ինքնորոշման ռեժիմ `բեռնման ընտրանքների ներքո

sudo raspi-config

Այժմ մտեք թաքնված կազմաձևման թղթապանակ և այնտեղ ստեղծեք նոր ֆայլ

cd.կարգավորել

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Այս ֆայլում ավելացրեք հետևյալ տողերը և պահեք

@xscreensaver -no -splash

@xset s անջատված է

@xset -dpms

@xset s noblank

@chromium-browser-ոչ սխալներ-disable-session-crashed-bubble-disisable-infobars --kiosk --incognito

Այժմ Pi- ն ամեն անգամ պետք է բեռնվի այս վեբ էջի վրա:

Քայլ 7: Էլեկտրոնիկայի զոդում

Էլեկտրոնիկայի զոդում
Էլեկտրոնիկայի զոդում
Էլեկտրոնիկայի զոդում
Էլեկտրոնիկայի զոդում
Էլեկտրոնիկայի զոդում
Էլեկտրոնիկայի զոդում
Էլեկտրոնիկայի զոդում
Էլեկտրոնիկայի զոդում

Վերցրեք ջարդման տախտակը և կառուցվածքային ձևով դրեք ձեր բաղադրիչները դրա վրա: Ես չեմ քննարկի այն դասավորությունը, թե ինչպես եմ միացրել բաղադրիչները դրա վրա, քանի որ դրա վրա բավականին վատ աշխատանք եմ կատարել: Տախտակի վրա ես օգտագործել եմ առանձին կապի վերնագրեր, այնպես որ ինձ անհրաժեշտ էր միայն սենսորներն ու մոդուլները միացնել աջ քորոցին: Համոզվեք, որ գիտեք, թե որ քորոցն ինչի համար է:

Tipsոդման ընթացքում մի քանի խորհուրդ

  • Ավելի մեծ տարածություններ հատելիս օգտագործեք մեկուսացված լարեր: Վերջին բանը, որ ցանկանում եք, կարճ շորտեր են ձեր շրջանում
  • Բաղադրիչը կամ մետաղալարերը զոդելուց հետո ստուգեք դրա շարունակականությունը բազմիմետրով: Նաև պարբերաբար ստուգեք կարճ միացումների առկայությունը:
  • Մի օգտագործեք շատ կամ շատ քիչ զոդում:
  • Եթե դուք չգիտեք, թե ինչպես պետք է զոդել, այն նախ կիրառեք մեկ այլ նախատիպի տախտակի վրա: Soldոդման վերաբերյալ ձեռնարկը կարելի է գտնել այստեղ:

Այժմ միացրեք լարերը սենսորների վրա և մի փոքր փաթաթեք դրանք, որպեսզի համոզվեք, որ ամեն ինչ կարճ և մաքուր չէ:

Ավարտելուց հետո կրկնակի ստուգեք շորտերի կամ վատ միացումների առկայությունը և էլեկտրական սխեմայով յուրաքանչյուր միացում ստուգեք, եթե դա ճիշտ կապ է: Երբ համոզված կլինեք, որ ամեն ինչ ճիշտ է արված, շարունակեք և տեղադրեք ճեղքման տախտակը RPi- ի վրա, վերջը ամրացրեք այն 2,5 մմ պտուտակներով և փակագծերով: Կցեք տվիչները աջ կապում և փորձեք դրանք բոլորը ՝ օգտագործելով կայքը:

Քայլ 8: Էներգամատակարարում

Raspberry Pi- ին սնուցելու համար մենք պատրաստվում ենք օգտագործել 12V-5V USB ադապտեր: Այս ադապտորը միացված կլինի մոտոցիկլետի մարտկոցին: Որպեսզի համոզվեք, որ RPi- ն միանում է, երբ բռնկման անջատիչը միացված է, մենք պատրաստվում ենք օգտագործել ռելե: Ռելեը կփակի RPi հոսանքի շղթան, երբ հետևից լուսարձակը հայտնաբերում է լարումը (բռնկումը միացնելիս հետևի լույսը միշտ միանում է):

Այս մասին ավելի մանրամասն ձեռնարկի համար այցելեք այս էջը ՝ https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -վերահսկիչներ. 16921/

Քայլ 9: Բնակարանային ապահովում

Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն

Displayուցադրել բնակարան

Theուցադրման համար վերցրեք ձեզ պլաստմասե տուփ `ցուցադրման չափից: Կտրեք դրա մեջ քառակուսի անցք այնքան մեծ, որքան էկրանը, և համապատասխան անցքեր `էկրանը պտուտակելու համար: Առջևում դուք պետք է բացեք ևս 2 անցք RGB LED- ի և LDR- ի համար:

Ես այս տուփը տեղադրեցի սմարթֆոնի ամրակի վերևում ՝ օգտագործելով պտուտակ:

Երմաստիճանի ցուցիչ

Housingերմաստիճանի տվիչը տեղավորելու համար ես 3D տպեցի նավթի չափիչ, որը համապատասխանում է իմ մոտոցիկլետին:

Ազնվամորի Պի

Տեղադրեք ազնվամորի Pi- ն ինքնին ապահով տեղ մոտոցիկլետի ներսում, ես այն տեղադրեցի պտուտակներից մեկի տակ ՝ օգտագործելով որոշ թավշյա ամրակներ: Եվ պաշտպանեց այն տարրերից `օգտագործելով պատյան և որոշ պլաստմասսա:

Արագացուցիչ

Տեղադրեք արագացուցիչը ապահով վայրում, ցանկալի է հենց մոտոցիկլետի շրջանակի վրա:

Նշում:

Ձեզ հարկավոր չէ ունենալ նույն բնակարանն, ինչ ես ունեի, դուք ազատ եք ավարտել այն, ինչպես ցանկանում եք: Պարզապես համոզվեք, որ էլեկտրոնային բաղադրիչները պաշտպանված են անձրևից և փոշուց:

Խորհուրդ ենք տալիս: