Мазмуну:

Raspberry Pi мотоциклинин тактасы: 9 кадам (сүрөттөр менен)
Raspberry Pi мотоциклинин тактасы: 9 кадам (сүрөттөр менен)

Video: Raspberry Pi мотоциклинин тактасы: 9 кадам (сүрөттөр менен)

Video: Raspberry Pi мотоциклинин тактасы: 9 кадам (сүрөттөр менен)
Video: Raspberry Pi Explained in 100 Seconds 2024, Июль
Anonim
Raspberry Pi мотоциклинин тактасы
Raspberry Pi мотоциклинин тактасы

Howest Kortrijkте студенттик мультимедия жана коммуникация технологиясы катары мен өзүмдүн IoT долбоорумду жасоого туура келди. Бул биринчи жылы ээрчиген модулдардын бардыгын бир чоң долбоорго бириктирет. Мен бош убактымда мотоциклимди көп айдачумун, ошондуктан мен MCT tu боюнча алган жөндөмүмдү мотоциклиме бир нерсе жасоону чечтим: Акылдуу тактасы.

MotoDash - фанатикалык мотоциклисттер үчүн иштелип чыккан Raspberry Pi менен иштөөчү такта, ал чабандестин ишин көзөмөлдөөгө мүмкүнчүлүк берет.

Бул тактанын өзгөчөлүктөрү кайсылар?

  • Учурдагы ийилүү бурчун көрүү
  • Учурдагы ылдамдатууну көрүү
  • Майдын температурасын көзөмөлдөө мүмкүнчүлүгү
  • Караңгыда жүргөндө автоматтык түрдө караңгы темага өтүү
  • Жүрүүңүздүн маалыматын жазыңыз жана өзүңүздүн статистикаңызды көрүңүз

Жабдуулар

Негизги эсептөө бирдиги:

Raspberry Pi Бул системанын негизги контроллери

Электроника:

  • 12V-5V мотоцикл үчүн USB кубаттагычы RPi үчүн негизги кубаттуулук
  • 4 Pin Fused Relay 12VSpitch, RPiнин электр схемасын күйгүзүү/өчүрүү
  • Өткөргүч зымдары бар нан тактасы (милдеттүү эмес) Сыноо жана прототиптөө үчүн
  • Резисторлордун топтому

    0,2 мм зымдын ар кандай түстөрү

  • Breakout Pi plus Бул - бардык компоненттериңизди ширете турган прототиптөөчү такта. Бул түздөн -түз Raspberry Pi үстүнө туура келүү үчүн жасалган, андыктан долбоордун өлчөмдөрү минималдуу бойдон калууда.

Сенсорлор жана модулдар:

  • Суу өткөрбөйт DS18B20 1-зымдуу температура сенсоруМайдын температурасы сенсору
  • 3 октор Gyro акселерометр MPU6050Tilt/accel сенсор
  • Жарыкка көз каранды каршылык (LDR)
  • MCP3008-SPI интерфейси менен 8 каналдуу 10 биттик ADC

    TFT SPI дисплейи (же сиздин муктаждыктарыңызга туура келген башка LCD дисплей)

    RGB LED

Корпус:

  • Желим куту
  • Raspberry pi Case

Куралдар:

  • Лампочка жана ширетүүчү
  • 2,5 мм бурамалар жана аралыктар
  • Суу өткөрбөгөн кабелдик туташтыргычтар
  • Супер клей

1 -кадам: Прототиптөө

Прототиптөө
Прототиптөө
Прототиптөө
Прототиптөө

Бардыгын түбөлүктүү кылардан мурун, биз долбоорду нан тактасына чогултабыз. Эгер сиз ката кетирбей турганыңызга толук ишенсеңиз, бул кадамды өткөрүп жиберсе болот. Электр/нан тактасын төмөнкү PDFтен тапса болот. Тизмени сүрөттөлгөндөй бириктирип коюңуз. RPiдеги 5V пинди эмес, 3.3V пинди гана колдонуңуз. Ошондой эле, Raspberry Pi иштетүүдөн мурун, сиздин схемаңызды эки жолу текшериңиз. Шорты жок экенин тактаңыз!

2 -кадам: Raspberry Pi даярдоо

Raspberry Pi даярдоо
Raspberry Pi даярдоо

Биринчиден, биз Raspberry Pi орнотобуз. Raspberry Pi - бул өзүнүн операциялык тутумун иштете алган мини компьютер. Бул долбоор үчүн ал сенсорлорду иштетүүгө, веб -сайтты жайгаштырууга, арткы жана маалымат базасын иштетүүгө жооптуу …

1. Ыңгайлаштырылган Raspbian Image орнотуу

Берилген сүрөт бул долбоорду баштоо үчүн зарыл болгон программалык пакеттерди камтыйт:

  • Вебсайттын алдыңкы бети үчүн Apache
  • MariaDB маалымат базасы үчүн
  • Маалыматтар базасын башкарууга PhpMyAdmin
  • Проблемаларды болтурбоо үчүн ыңгайлаштырылган уруксаттар

Ыңгайлаштырылган сүрөттү бул жерден көчүрүп алса болот.

Сүрөттөрдү орнотуу боюнча окуу куралын бул жерден тапса болот:

Сүрөт орнотулгандан кийин, Raspberry Pi'ни компьютериңизге ethernet кабели менен туташтырыңыз. Эми сиз 169.254.10.1 IP дарегине туташуу үчүн SSH кардарын колдоно аласыз

Passwd буйругун колдонуу менен дароо жаңы сырсөздү коюу жакшы практика

2. Зымсыз APди конфигурациялоо

Долбоор аяктагандан кийин, биз WiFi аркылуу RPiге туташа алгыбыз келет, андыктан аны зымсыз APге айландыралы. Бул үчүн окуу куралын бул жерден тапса болот.

Сиз бул үйрөткүчтү 7 -кадамга чейин аткарышыңыз керек. 8 -кадам талап кылынбайт, анткени биз интернетке туташууну талап кылбайбыз, бирок өз алдынча тармакты түзөбүз.

3. Интерфейстерди иштетүү

Raspi-configга өтүңүз

sudo raspi-config

Интерфейстин параметрлерине өтүңүз жана 1-зымды, SPI жана I2Cти иштетип, Пиди кайра жүктөңүз

3. Дисплей үчүн драйверлерди орнотуу

Дисплейди баштоо

Файлды түзөтүңүз /etc /modules

Sudo нано /ж.б. /модулдар

Кийинки 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 мазмунун дисплейге алуу үчүн, биз негизги экрандын мазмунун кичинекей ЖКга көчүрүүбүз керек. Бул үчүн 'fbcp' деген кызматты колдонобуз.

Fbcp кызматын орнотуу

sudo apt-get cmake орнотуу

git клону

cd rpi-fbcp

mkdir куруу

CD түзүү/

смейк..

жасоо

sudo fbcp/usr/local/bin/fbcp орнотуу

Азыр биз кызматты орноттук. Бирок, биз Pi башсыз колдонуп жаткандыктан, мазмунун көчүрүү үчүн экран жок. Пиди экран мазмунун чыгарууга мажбурлоо үчүн, /boot/config.txt файлын түзөтүңүз

sudo nano /boot/config.txt

Бул файлга төмөнкү саптарды таап, комментарий бербеңиз же кошуңуз:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 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. Тарых

Бул таблица бардык сенсор журналдарын камтыйт. Ар бир журналдын иш -аракетинин идентификатору, мааниси, убакыт белгиси жана маршруту бар

4. Аттракциондор

Бул столдо ар кандай аттракциондор сакталат. Колдонуучу жаңы саякатты баштаганда, бул таблицага жаңы жазуу киргизилет

Бул маалымат базасын Raspberry Piге алуу үчүн, менин GitHub'ыма өтүңүз жана репозиторийди клондоштуруңуз/жүктөп алыңыз. Маалыматтар базасында сиз 2.sql файлын таба аласыз. Буларды PhpMyAdmin же MySQL Workbenchте иштетиңиз. Эми маалымат базасы сиздин RPiде болушу керек.

4 -кадам: Backend

Эгерде сизде азырынча жок болсо, анда менин GitHub бөлүмүмө өтүңүз жана репозиторийди клондоштуруңуз/жүктөп алыңыз. Папканын артында сиз долбоордун толук арткы бөлүгүн таба аласыз.

Папкада /жардамчылар астындагы сенсорлорду окуу класстары, /репозиторийлердеги маалымат базасы менен байланышуу үчүн файлдар камтылган жана негизги тиркеме app.py деген аталышта жайгашкан.

Python пакеттерин орнотуу

Бир нерсени иштетүүдөн мурун, адегенде python үчүн кээ бир пакеттерди орнотушубуз керек. Сиздин RPi терминалына кирип, төмөнкү буйруктарды териңиз:

pip3 mysql-connector-python орнотуу

pip3 колбасы-сокетин орнотуу

pip3 колба-корлорду орнотуу

pip3 gevent орнотуу

pip3 gevent-websocket орнотуу

МААНИЛҮҮ ЭСКЕРТҮҮ: эгер сиз Mariadb/Mysql сырсөзүңүздү өзгөртсөңүз, config.pyдеги сырсөздү өзгөртүңүз!

Арткы жагын сынап көрүңүз

Python3 котормочусун колдонуп app.py иштетүү (/usr/bin/python3). Каталар жок экенин текшериңиз.

Арткы жагын жүктөөдө иштетүү

MotoDash_backend.service түзөтүү жана YOURFILEPATH сактагыч сакталган жолго өзгөртүү.

Эми бул файлды/etc/systemd/system/га көчүрүңүз

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

Эми арткы бөлүгү RPi жүктөлгөн сайын автоматтык түрдө башталат.

5 -кадам: Frontend

Frontend
Frontend
Frontend
Frontend

GitHub репога баш багыңыз. Frontend каталогунун мазмунун/var/www/htmlге көчүрүңүз.

Бул фронттун иштеши үчүн эмне кылышыңыз керек. Бул папкада веб -интерфейс үчүн бардык веб -баракчалар, стилдер жана скрипттер бар. Ал ошондой эле арка менен байланышат. Баары иштей тургандыгын текшерүү үчүн, RPiге туташканыңызды текшериңиз жана браузерге RPiдин IP дарегин териңиз. Сиз веб интерфейсинин башкы баракчасын көрүшүңүз керек.

Эскертүү: Вебсайт жооп берет, андыктан аны мобилдик столдо да колдоно аласыз

6 -кадам: Дисплейде панелди көрсөтүү

Куралдар тактасын дисплейде көрсөтүү
Куралдар тактасын дисплейде көрсөтүү

Frontend кичинекей дисплей үчүн гана колдонулган өзүнүн жашыруун веб -баракчасына ээ. Биз Pi жүктөөнү ушул вебсайтка автоматтык түрдө толук экран режиминде жасайбыз.

RPi жүктөө параметрлери астында raspi-config иш столунда autologin орнотулганын текшериңиз

sudo raspi-config

Эми жашыруун конфигурация папкасына кирип, ал жерде жаңы файл түзүңүз

cd.config

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Бул файлга төмөнкү саптарды кошуңуз жана сактаңыз

@xscreensaver -no -splash

@xset өчүк

@xset -dpms

@xset s noblank

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

Эми Pi бул веб -баракчага ар дайым жүктөлүшү керек

7 -кадам: Электрониканы ширетүү

Электрониканы ширетүү
Электрониканы ширетүү
Электрониканы ширетүү
Электрониканы ширетүү
Электрониканы ширетүү
Электрониканы ширетүү
Электрониканы ширетүү
Электрониканы ширетүү

Үзүлүш тактасын алыңыз жана ага компоненттериңизди структураланган түрдө жайгаштырыңыз. Мен анын компоненттерин кантип ширеткенимди талкуулабайм, анткени мен ал боюнча начар иштедим. Мен сенсорлорду жана модулдарды оң пинге туташтыруу үчүн гана тактада өзүнчө пин баштарын колдондум. Кайсы пин эмне үчүн экенин билиңиз!

Ширетүүдө кээ бир кеңештер:

  • Чоң аралыкты кесип өтүүдө изоляцияланган зымдарды колдонуңуз. Сиз каалаган акыркы нерсе - бул сиздин схемаңыздагы шорты
  • Компонентти же зымды ширеткенден кийин, анын үзгүлтүксүздүгүн мультиметр менен текшериңиз. Ошондой эле кыска туташууларды текшерип туруңуз.
  • Өтө көп же өтө аз ширетүүнү колдонбоңуз!
  • Эгерде сиз кантип ширетүүнү билбесеңиз, адегенде башка прототип тактасында машыгыңыз. Бул жерде ширетүү боюнча окуу куралын тапса болот.

Эми зымдарды датчиктерге узун салып койгула, жана алардын кыска жана таза эмес экенине ынануу үчүн тегерете кичине ороп коюңуз.

Бүткөндөн кийин, кыска же начар туташууларды эки жолу текшериңиз жана туура туташуу болсо, электр схемасы менен ар бир туташууну текшериңиз. Баары туура жасалганына көзүңүз жеткенден кийин, алдыга жылыңыз жана 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 -кадам: Турак жай

Турак жай
Турак жай
Турак жай
Турак жай
Турак жай
Турак жай

Корпусту көрсөтүү

Дисплей үчүн дисплейдин чоңдугунан катуу пластик кутучаны алыңыз. Дисплейдей чоң болгон төрт бурчтуу тешикти жана дисплейди буроо үчүн дал келген тешиктерди кесиңиз. Алдыңкы жагында RGB LED жана LDR үчүн дагы 2 тешик бургулашыңыз керек.

Бул кутуну болт менен смартфондун кармагычынын үстүнө орноттум.

Температура сенсору

Температура сенсорун жайгаштыруу үчүн, мен мотоциклиме туура келген май өлчөгүчтү 3D басып чыгардым.

Raspberry Pi

Малинанын Пи мотоциклинин ичинде коопсуз жерге орнотуп койгула, мен аны велкро боолорду колдонуп канаттардын биринин астына койдум. Жана аны корпустун жана пластиктин жардамы менен элементтерден коргогон.

Акселерометр

Акселерометрди коопсуз жерге, жакшысы мотоциклдин рамасына орнотуңуз.

Эскертүү:

Меникиндей турак жайдын кереги жок, каалагандай бүтүрө аласыз. Электрондук компоненттер жамгырдан жана чаңдан корголгонун текшериңиз.

Сунушталууда: