Სარჩევი:

Raspberry Pi Motorcycle Dashboard: 9 ნაბიჯი (სურათებით)
Raspberry Pi Motorcycle Dashboard: 9 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi Motorcycle Dashboard: 9 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi Motorcycle Dashboard: 9 ნაბიჯი (სურათებით)
ვიდეო: ბახშ პილოვი ბუხარელი ებრაელები 1000 წლის რეცეპტი როგორ მოვამზადოთ 2024, ივლისი
Anonim
Raspberry Pi მოტოციკლის საინფორმაციო დაფა
Raspberry Pi მოტოციკლის საინფორმაციო დაფა

როგორც სტუდენტი მულტიმედია და საკომუნიკაციო ტექნოლოგია Howest Kortrijk– ში, მე უნდა შემექმნა ჩემი IoT პროექტი. ეს აერთიანებს პირველ წელს გატარებულ ყველა მოდულს ერთ დიდ პროექტში. იმის გამო, რომ თავისუფალ დროს ბევრს ვატარებ მოტოციკლზე, მე გადავწყვიტე გამოვიყენო ჩემი ცოდნა MCT– ში და ავაშენო რაღაც ჩემი მოტოციკლისთვის: ჭკვიანი დაფა.

MotoDash არის Raspberry Pi დაფაზე დაფუძნებული დაფა, რომელიც განკუთვნილია ფანატიკური მოტოციკლისტებისთვის, რაც მხედარს აძლევს შესაძლებლობას თვალყური ადევნოს მათ შესრულებას.

რა არის ამ დაფის მახასიათებლები?

  • მიმდინარე დახრის კუთხის ნახვა
  • მიმდინარე აჩქარების ნახვა
  • ზეთის ტემპერატურის მონიტორინგის უნარი
  • სიბნელეში სიარულისას ავტომატურად გადაერთეთ მუქ თემაზე
  • დაარეგისტრირეთ თქვენი მოგზაურობის მონაცემები და ნახეთ თქვენი საკუთარი სტატისტიკა

მარაგები

ძირითადი გამოთვლითი ერთეული:

Raspberry Pi ეს არის სისტემის მთავარი კონტროლერი

ელექტრონიკა:

  • USB დამტენი მოტოციკლისთვის 12V-5V ძირითადი კვების წყარო RPi
  • 4 პინი შერწყმული რელე 12V გადართეთ RPi დენის ჩართვის ჩართვის/გამორთვისთვის
  • პურის დაფა ჯუმბერის მავთულხლართებით (სურვილისამებრ) შესამოწმებლად და პროტოტიპირებისთვის
  • რეზისტორების ნაკრები

    სხვადასხვა ფერის 0.2 მმ მავთული

  • Breakout Pi plus ეს არის პროტოტიპის დაფა, სადაც შეგიძლიათ შეაერთოთ ყველა თქვენი კომპონენტი. იგი დამზადებულია ისე, რომ მოთავსდეს პირდაპირ Raspberry Pi– ს თავზე, ამიტომ პროექტის ზომები მინიმუმამდეა დაყვანილი.

სენსორები და მოდულები:

  • წყალგაუმტარი DS18B20 1 მავთულის ტემპერატურის სენსორი ზეთის ტემპერატურის სენსორი
  • 3 ღერძი Gyro აქსელერომეტრი MPU6050 დახრის/დაჩქარების სენსორი
  • სინათლეზე დამოკიდებული რეზისტორი (LDR)
  • MCP3008-8 არხიანი 10 ბიტიანი ADC SPI ინტერფეისით

    TFT SPI ჩვენება (ან ნებისმიერი სხვა LCD ეკრანი, რომელიც შეესაბამება თქვენს საჭიროებებს)

    RGB LED

გარსაცმები

  • პლასტიკური ყუთი
  • ჟოლოს პი

ინსტრუმენტები:

  • Soldering რკინის და solder
  • 2.5 მმ ხრახნები და შუასადებები
  • წყალგაუმტარი საკაბელო კონექტორები
  • Სუპერ წებო

ნაბიჯი 1: პროტოტიპირება

პროტოტიპირება
პროტოტიპირება
პროტოტიპირება
პროტოტიპირება

სანამ ყველაფერს პერმანენტულად ვაქცევთ, ჩვენ დავაყენებთ პროექტს პურის დაფაზე. ეს ნაბიჯი შეიძლება გამოტოვდეს, თუ დარწმუნებული ხართ, რომ შეცდომებს არ დაუშვებთ. ელექტრო/პურის დაფის სქემა შეგიძლიათ იხილოთ ქვემოთ მოცემულ PDF– ში. განათავსეთ წრე ზუსტად ისე, როგორც აღწერილია. დარწმუნდით, რომ გამოიყენოთ მხოლოდ 3.3V პინი და არა 5V პინი RPi– ზე. ასევე სანამ ჟოლოს Pi აძლიერებთ, ორმაგად შეამოწმეთ თქვენი წრე. დარწმუნდით, რომ შორტები არ არის!

ნაბიჯი 2: ჟოლოს პი მომზადება

ჟოლოს პიის მომზადება
ჟოლოს პიის მომზადება

უპირველეს ყოვლისა, ჩვენ ვაპირებთ Raspberry Pi– ს შექმნას. Raspberry Pi არის მინი კომპიუტერი, რომელსაც შეუძლია მართოს საკუთარი ოპერაციული სისტემა. ამ პროექტისთვის ის არის პასუხისმგებელი სენსორდატების დამუშავებაზე, ვებსაიტის მასპინძლობაზე, უკანა და მონაცემთა ბაზების გაშვებაზე,…

1. დააინსტალირეთ პერსონალური Raspbian Image

მოწოდებული სურათი უკვე შეიცავს პროგრამულ პაკეტებს, რომლებიც საჭიროა ამ პროექტის დასაწყებად:

  • Apache ვებსაიტისთვის
  • MariaDB მონაცემთა ბაზისთვის
  • PhpMyAdmin მონაცემთა ბაზის მანიპულირებისთვის
  • პერსონალური ნებართვები პრობლემების თავიდან ასაცილებლად

პერსონალური სურათის ჩამოტვირთვა შესაძლებელია აქედან.

სურათების დაყენების სახელმძღვანელო შეგიძლიათ იხილოთ აქ:

სურათის დაყენების შემდეგ დაუკავშირეთ Raspberry Pi თქვენს კომპიუტერს Ethernet კაბელით. ახლა თქვენ შეგიძლიათ გამოიყენოთ SSH კლიენტი, რომ დაუკავშიროთ მას IP მისამართი 169.254.10.1

კარგი პრაქტიკაა ახალი პაროლის დაუყოვნებლივ დაყენება ბრძანების passwd გამოყენებით

2. უკაბელო AP– ის კონფიგურაცია

როდესაც პროექტი დასრულდება, ჩვენ გვსურს, რომ შევძლოთ RPi– სთან დაკავშირება wifi– ით, ასე რომ, მოდით გადავიყვანოთ იგი უკაბელო AP– ში. ამის სახელმძღვანელო შეგიძლიათ იხილოთ აქ.

თქვენ მხოლოდ უნდა მიყევით ამ სახელმძღვანელოს მე –7 საფეხურამდე. ნაბიჯი 8 არ არის საჭირო, რადგან ჩვენ არ გვჭირდება ინტერნეტ კავშირის გადალახვა, არამედ დამოუკიდებელი ქსელის შექმნა.

3. ინტერფეისების ჩართვა

გადადით raspi-config– ში

sudo raspi-config

გადადით ინტერფეისის პარამეტრებზე და ჩართეთ 1 მავთული, SPI და I2C და გადატვირთეთ Pi

3. დრაივერების დაყენება ჩვენებისთვის

ჩვენების ინიციალიზაცია

შეცვალეთ ფაილი /etc /modules

sudo nano /etc /modules

დაამატეთ შემდეგი 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 დააინსტალირეთ cmake

git კლონი

cd rpi-fbcp

მკდირის აშენება

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. მიდის

ეს მაგიდა ინახავს სხვადასხვა გასეირნებას. ყოველ ჯერზე, როდესაც მომხმარებელი იწყებს ახალ ტარებას, ახალი ჩანაწერი ხდება ამ ცხრილში

რომ მიიღოთ ეს მონაცემთა ბაზა თქვენს Raspberry Pi– ზე, გადადით ჩემს GitHub– ში და კლონირება/გადმოტვირთეთ საცავი. მონაცემთა ბაზის ქვეშ ნახავთ 2.sql ფაილს. გაუშვით ეს PhpMyAdmin ან MySQL სამუშაო მაგიდაზე. ახლა მონაცემთა ბაზა უნდა იყოს თქვენს RPi– ზე.

ნაბიჯი 4: უკანა მხარე

თუ ჯერ არ გაგიკეთებიათ, გადადით ჩემს GitHub– ში და კლონირება/გადმოტვირთეთ საცავი. საქაღალდის Backend თქვენ იხილავთ პროექტის სრულ ბექენდს.

საქაღალდე შეიცავს სენსორების /დამხმარეების სენსორების კითხვის კლასებს, ფაილებს მონაცემთა ბაზასთან კომუნიკაციისთვის /საცავებში, ხოლო ძირითადი პროგრამა მდებარეობს ძირში, სახელწოდებით app.py.

პითონის პაკეტების დაყენება

სანამ რაიმეს გაშვებას შევეცდებით, ჩვენ ჯერ უნდა დავაინსტალიროთ რამდენიმე პაკეტი პითონისთვის. შედით თქვენი RPi ტერმინალში და ჩაწერეთ შემდეგი ბრძანებები:

pip3 დააინსტალირეთ mysql-connector-python

pip3 დააინსტალირეთ flask-socketio

pip3 დააინსტალირეთ კოლბები

pip3 დააინსტალირეთ gevent

pip3 დააინსტალირეთ gevent-websocket

მნიშვნელოვანი შენიშვნა: თუ თქვენ შეცვალეთ თქვენი Mariadb/Mysql პაროლი, შეცვალეთ პაროლი config.py- ში!

გამოსცადე უკანა მხარე

გაუშვით app.py python3 თარჯიმნის გამოყენებით (/usr/bin/python3). დარწმუნდით, რომ შეცდომები არ არის.

გაშვებული backend on boot

შეცვალეთ motoDash_backend.service და შეცვალეთ YOURFILEPATH იმ გზაზე, სადაც საცავი ინახება.

ახლა დააკოპირეთ ეს ფაილი/etc/systemd/system/

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

ახლა backend დაიწყება ავტომატურად ყოველ ჯერზე RPi ჩექმები.

ნაბიჯი 5: გადახედეთ

ფრონტონდი
ფრონტონდი
ფრონტონდი
ფრონტონდი

გაემგზავრეთ GitHub Repo– ში. დააკოპირეთ Frontend დირექტორიის შინაარსი/var/www/html.

ეს არის ყველაფერი რაც თქვენ უნდა გააკეთოთ იმისათვის, რომ ფრონტონმა იმუშაოს. ეს საქაღალდე შეიცავს ყველა ვებ გვერდს, სტილს და სკრიპტებს ვებ ინტერფეისისთვის. ის ასევე ურთიერთობს უკანა მხარესთან. იმის შესამოწმებლად, მუშაობს თუ არა ყველაფერი ისე, როგორც უნდა, დარწმუნდით, რომ დაკავშირებული ხართ თქვენს RPi– თან და ბრაუზერში ჩაწერეთ RPi– ს IP მისამართი. თქვენ უნდა ნახოთ ვებ - ინტერფეისის საწყისი გვერდი.

შენიშვნა: ვებგვერდი არის პასუხისმგებელი, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ იგი როგორც მობილურზე ასევე დესკტოპზე

ნაბიჯი 6: ჩვენების დაფის ჩვენება ეკრანზე

ეკრანის პანელის ჩვენება
ეკრანის პანელის ჩვენება

Frontend– ს აქვს საკუთარი ფარული ვებ გვერდი, რომელიც გამოიყენება მხოლოდ მცირე ეკრანისთვის. ჩვენ გავაკეთებთ Pi ჩატვირთვას ამ ვებსაიტზე სრული ეკრანის რეჟიმში.

დარწმუნდით, რომ RPi დაყენებულია დესკტოპის ავტოლოგინზე raspi-config ჩატვირთვის პარამეტრების ქვეშ

sudo raspi-config

ახლა შედით კონფიგურაციის ფარული საქაღალდეში და შექმენით ახალი ფაილი

cd.კონფიგურაცია

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

დაამატეთ შემდეგი ხაზები ამ ფაილში და შეინახეთ

@xscreensaver -არა -გაფრქვევა

@xset გამორთულია

@xset -dpms

@xset s noblank

@chromium- ბრაუზერი-უშიშროება-გამორთვა-სესია-შეჯახება

ახლა 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: საცხოვრებელი

საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი

ჩვენება საცხოვრებელი

ეკრანისთვის, აიღეთ მყარი პლასტიკური ყუთი ეკრანის ზომადან. გაჭერით მასში კვადრატული ხვრელი, როგორც ეკრანი, და შესატყვისი ხვრელები ეკრანის შესაკრავად. წინა მხარეს თქვენ უნდა გააღოთ კიდევ 2 ხვრელი RGB LED და LDR.

ეს ყუთი დავაყენე სმარტფონის დამჭერის თავზე ჭანჭიკის გამოყენებით.

Ტემპერატურის სენსორი

ტემპერატურის სენსორის დასაყენებლად, მე 3D დაბეჭდე ზეთის მრიცხველი, რომელიც ჩემს მოტოციკლს შეესაბამება.

ჟოლო პი

მოათავსეთ ჟოლო Pi თავის უსაფრთხო ადგილას მოტოციკლის შიგნით, მე ის ერთ -ერთი ბალიშის ქვეშ მოვათავსე ხავერდოვანი სამაჯურების გამოყენებით. და დაიცვა იგი ელემენტებისგან საცხოვრებლისა და პლასტმასის გამოყენებით.

აქსელერომეტრი

დააინსტალირეთ ამაჩქარებელი უსაფრთხო ადგილას, სასურველია მოტოციკლის ჩარჩოზე.

Შენიშვნა:

თქვენ არ გჭირდებათ ზუსტად ისეთივე საცხოვრებელი, როგორიც მე მქონდა, თქვენ თავისუფლად შეგიძლიათ დაამთავროთ ის, როგორც მოგწონთ. უბრალოდ დარწმუნდით, რომ ელექტრონული კომპონენტები დაცულია წვიმისა და მტვრისგან.

გირჩევთ: