Სარჩევი:

სიმღერა და კვალი მცირე მაღაზიებისთვის: 9 ნაბიჯი (სურათებით)
სიმღერა და კვალი მცირე მაღაზიებისთვის: 9 ნაბიჯი (სურათებით)

ვიდეო: სიმღერა და კვალი მცირე მაღაზიებისთვის: 9 ნაბიჯი (სურათებით)

ვიდეო: სიმღერა და კვალი მცირე მაღაზიებისთვის: 9 ნაბიჯი (სურათებით)
ვიდეო: რა ხდება კანონიერი ქურდების საკნებში 2024, ნოემბერი
Anonim
სიმღერა და კვალი მცირე მაღაზიებისთვის
სიმღერა და კვალი მცირე მაღაზიებისთვის

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

რას ნიშნავს Track and Trace?

Track and Trace არის სისტემა, რომელსაც იყენებენ გადამზიდავები ან კურიერული კომპანიები ტრანსპორტირებისას ამანათების ან ნივთების გადაადგილების ჩასაწერად. დამუშავების თითოეულ ადგილას, საქონელი იდენტიფიცირებულია და მონაცემები გადაეცემა ცენტრალურ დამუშავების სისტემას. ეს მონაცემები შემდგომ გამოიყენება ტვირთის ადგილმდებარეობის სტატუსის/განახლებისთვის გამგზავნებისთვის.

სისტემა, რომელსაც ჩვენ გავაკეთებთ, ასევე აჩვენებს მარშრუტს და მიღებულ დარტყმებსა და მუწუკებს. ეს ინსტრუქცია ასევე ითვალისწინებს, რომ თქვენ გაქვთ ძირითადი ცოდნა ჟოლოს პი, პითონი და mysql.

შენიშვნა: ეს გაკეთდა სასკოლო პროექტისთვის, ამიტომ დროის შეზღუდვის გამო გაუმჯობესების დიდი ადგილი არსებობს

მარაგები

-ჟოლო Pi 4 მოდელი B

-ჟოლოს PI T-cobbler

-4x3, 7V Li-ion ბატარეები

-2x ორმაგი ბატარეის დამჭერი

-DC Buck Step-down Converter 5v

-2x დიდი ფორთოხლის ლიდერები

-ჩართვა/გამორთვა/ჩართვა

-ღილაკი

-adafruit ultimate gps v3

-mpu6050

-16x2 LCD ეკრანი

-სერვერის ძრავა

ნაბიჯი 1: ჩართვა ჩართვა და Pi

ჩართვა ჩართვა და Pi
ჩართვა ჩართვა და Pi
ჩართვა ჩართვა და Pi
ჩართვა ჩართვა და Pi

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

თქვენ შეგიძლიათ გამოიყენოთ powerbank და დააინსტალიროთ pi USB– ს საშუალებით, იქნებ ააწყობთ მოწყობილობას ელექტრო ველოსიპედზე ან ელექტრონულ სკუტერზე, რომელსაც აქვს USB პორტი, შესაძლოა თქვენ გაქვთ 5 ვ ტელეფონის ტელეფონის ბატარეა, რომელიც ელოდება გამოყენებას ან შეგიძლიათ გამოიყენოთ 2 კომპლექტი 3.7V ბატარეის პარალელურად ნაბიჯი ქვემოთ კონვერტორი როგორც ნაჩვენებია სურათები

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

ნაბიჯი 2: MPU6050

MPU6050
MPU6050

შესავალი MPU6050 სენსორული მოდული არის ინტეგრირებული 6 ღერძიანი მოძრაობის თვალთვალის მოწყობილობა.

  • მას აქვს 3 ღერძიანი გიროსკოპი, 3 ღერძიანი აქსელერომეტრი, ციფრული მოძრაობის პროცესორი და ტემპერატურის სენსორი, ყველაფერი ერთ IC- ში.
  • სხვადასხვა პარამეტრების პოვნა შესაძლებელია I2C კომუნიკაციის გამოყენებით გარკვეული რეგისტრების მისამართებიდან მნიშვნელობების წაკითხვით. X, Y და Z ღერძების გასწვრივ გიროსკოპისა და ამაჩქარებლის კითხვა შესაძლებელია 2 -ის დამატებით ფორმაში.
  • გიროსკოპის კითხვა არის წამში გრადუსში (წმ); აქსელერომეტრის მაჩვენებლები g ერთეულშია.

I2C ჩართვა

როდესაც იყენებთ MPU6050– ს Raspberry Pi– ით, ჩვენ უნდა უზრუნველვყოთ, რომ Raspberry Pi– ზე I2C პროტოკოლი ჩართულია. ამისათვის გახსენით pi– ს ტერმინალი ბოთლით ან სხვა პროგრამული უზრუნველყოფით და გააკეთეთ შემდეგი:

  1. ჩაწერეთ "sudo raspi-config"
  2. აირჩიეთ ინტერფეისის კონფიგურაციები
  3. ინტერფეისის ვარიანტში აირჩიეთ "I2C"
  4. ჩართეთ I2C კონფიგურაცია
  5. აირჩიეთ დიახ როდესაც ის ითხოვს გადატვირთვას.

ახლა ჩვენ შეგვიძლია შევამოწმოთ/დაასკანიროთ ნებისმიერი I2C მოწყობილობა, რომელიც დაკავშირებულია ჩვენს Raspberry Pi დაფასთან, i2c ინსტრუმენტების დაყენებით. ჩვენ შეგვიძლია მივიღოთ i2c ინსტრუმენტები apt პაკეტის მენეჯერის გამოყენებით. გამოიყენეთ შემდეგი ბრძანება Raspberry Pi ტერმინალში.

"sudo apt-get install -y i2c- ინსტრუმენტები"

ახლა დააკავშირეთ ნებისმიერი I2C დაფუძნებული მოწყობილობა მომხმარებლის რეჟიმის პორტთან და დაასკანირეთ ეს პორტი შემდეგი ბრძანების გამოყენებით, "sudo i2cdetect -y 1"

შემდეგ ის გამოეხმაურება მოწყობილობის მისამართს.

თუ მისამართი არ დაბრუნდება, დარწმუნდით, რომ MPU6050 სათანადოდ არის დაკავშირებული და სცადეთ ხელახლა

ხდის მუშაობას

ახლა, როდესაც ჩვენ დარწმუნებული ვართ, რომ i2c ჩართულია და pi- ს შეუძლია მიაღწიოს MPU6050- ს, ჩვენ ვაპირებთ ბიბლიოთეკის დაყენებას "sudo pip3 install adafruit-circuitpython-mpu6050" ბრძანების გამოყენებით.

თუ ჩვენ გავაკეთებთ პითონის სატესტო ფაილს და ვიყენებთ შემდეგ კოდს, ჩვენ ვხედავთ მუშაობს თუ არა:

იმპორტის დრო

იმპორტის დაფა

იმპორტის ბიზნესი

oimport adafruit_mpu6050

i2c = busio. I2C (board. SCL, board. SDA)

mpu = adafruit_mpu6050. MPU6050 (i2c)

მართალია:

ბეჭდვა ("აჩქარება: X: %. 2f, Y: %.2f, Z: %.2f მ/წ^2" %(mpu. აჩქარება))

ბეჭდვა ("Gyro X: %. 2f, Y: %.2f, Z: %.2f გრადუსი/წ" %(mpu.gyro))

ბეჭდვა ("ტემპერატურა: %.2f C" % mpu.temperature)

ბეჭდვა ("")

დრო. ძილი (1)

როდესაც ჩვენ გვსურს აჩქარება X/Y/Z ღერძში, ჩვენ შეგვიძლია გამოვიყენოთ შემდეგი:

accelX = mpu.ჩქარება [0] accelY = mpu.ჩქარება [1] accelZ = mpu.ჩქარება [2]

აერთიანებს ამას უბრალო თუ მუდმივ მარყუჟში, ჩვენ შეგვიძლია გამოვთვალოთ დარტყმის რაოდენობა მოგზაურობაზე

ნაბიჯი 3: Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

შესავალი

გარღვევა აგებულია MTK3339 ჩიპსეტის გარშემო, უაზრო, მაღალი ხარისხის GPS მოდული, რომელსაც შეუძლია თვალყური ადევნოს 22 თანამგზავრს 66 არხზე, აქვს შესანიშნავი მაღალი მგრძნობელობის მიმღები (-165 დბ თვალთვალის!) და ჩაშენებული ანტენა რა მას შეუძლია წამში 10 – მდე განახლება განახორციელოს მაღალი სიჩქარით, მაღალი მგრძნობელობის მონიტორინგით ან თვალთვალისთვის. ენერგიის მოხმარება წარმოუდგენლად დაბალია, ნავიგაციის დროს მხოლოდ 20 mA.

დაფას მოყვება: ულტრა დაბალი 3.3V მარეგულირებელი, ასე რომ თქვენ შეგიძლიათ მისი ჩართვა 3.3-5VDC, 5V დონის უსაფრთხო შეყვანის საშუალებით, LED აციმციმდება დაახლოებით 1 Hz– ზე, როდესაც ის თანამგზავრებს ეძებს და აციმციმდება ყოველ 15 წამში ერთხელ, როდესაც გამოსწორებულია აღმოჩნდა ძალაუფლების შესანარჩუნებლად.

GPS– ის ტესტირება არდუინოთი

თუ თქვენ გაქვთ arduino– სთვის კარგი იდეაა მოდულის გამოცდა მასთან ერთად.

დააკავშირეთ VIN +5V დაუკავშირეთ GND მიწას დააკავშირეთ GPS RX (მონაცემები GPS– ში) ციფრულ 0 – თან დაკავშირება GPS TX (მონაცემები GPS– დან) ციფრულ 1 – თან

უბრალოდ გაუშვით ცარიელი arduino კოდი და გახსენით სერიული მონიტორი 9600 baud– ზე. თუ GPS მონაცემებს მიიღებთ, თქვენი gps მოდული მუშაობს. შენიშვნა: თუ თქვენი მოდული არ გამოსწორდება, სცადეთ ფანჯრიდან ან ტერასაზე გარეთ გატანა.

ხდის მუშაობას

დაიწყეთ adafruit gps ბიბლიოთეკის დაყენება "sudo pip3 install adafruit-circuitpython-gps" ბრძანების გამოყენებით.

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

იმპორტის დროიმპორტის დაფა იმპორტი busioimport adafruit_gpsimport სერიული uart = სერიული. სერიული ("/dev/ttyS0", baudrate = 9600, ვადა = 10)

gps = adafruit_gps. GPS (uart, debug = false) gps.send_command (b'PMTK314, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ') gps.send_command (b'PMTK220, 1000')

მართალია:

gps.update () ხოლო gps.has_fix:

ბეჭდვა (gps.nmea_sentence) ბეჭდვა ('ელოდება გამოსწორებას …') gps.update () time.sleep (1) გაგრძელება

ბეჭდვა ('=' * 40) # ამობეჭდვა გამყოფი ხაზი. ბეჭდვა ('გრძედი: {0:.6f} გრადუსი'. ფორმატი (gps.latitude)) ბეჭდვა ('განედი: {0:.6f} გრადუსი'. ფორმატი (gps.longitude)) ბეჭდვა ("ხარისხის დაფიქსირება: {}". ფორმატი (gps.fix_quality))

# გრძედის, გრძედის და დროის ნიშნულის მიღმა ზოგიერთი ატრიბუტი არჩევითია# და შესაძლოა არ იყოს. შეამოწმეთ ისინი არ არიან გამოყენებამდე! თუ gps.satellites არ არის:

ბეჭდვა ("# თანამგზავრი: {}". ფორმატი (gps.satellites))

თუ gps.altitude_m არ არის არცერთი:

ბეჭდვა ("სიმაღლე: {} მეტრი". ფორმატი (gps.altitude_m))

თუ gps.speed_knots არ არის არცერთი:

ბეჭდვა ("სიჩქარე: {} კვანძი". ფორმატი (gps.speed_knots))

თუ gps.track_angle_deg არ არის:

ბეჭდვა ("სიმღერის კუთხე: {} გრადუსი". ფორმატი (gps.track_angle_deg))

თუ gps.horizontal_dilution არ არის:

ბეჭდვა ("ჰორიზონტალური განზავება: {}". ფორმატი (gps.horizontal_dilution))

თუ gps.height_geoid არ არის:

ბეჭდვა ("სიმაღლე გეო ID: {} მეტრი". ფორმატი (gps.height_geoid))

დრო. ძილი (1)

ნაბიჯი 4: 16x2 LCD

16x2 LCD
16x2 LCD

შესავალი

LCD მოდულები ძალიან ხშირად გამოიყენება ჩაშენებულ პროექტებში, ამის მიზეზი არის მისი იაფი ფასი, ხელმისაწვდომობა და პროგრამისტებისთვის მეგობრული. უმეტესობა ჩვენგანი შეხვდებოდა ამ ჩვენებებს ყოველდღიურ ცხოვრებაში, PCO– ს ან გამომთვლელებთან. 16 × 2 LCD ეწოდება ასე იმიტომ; მას აქვს 16 სვეტი და 2 სტრიქონი. არსებობს მრავალი კომბინაცია, როგორიცაა, 8 × 1, 8 × 2, 10 × 2, 16 × 1 და ა.შ. მაგრამ ყველაზე ხშირად გამოიყენება 16 × 2 LCD. ამრიგად, მას ექნება (16 × 2 = 32) 32 სიმბოლო და თითოეული პერსონაჟი შედგება 5 × 8 პიქსელ წერტილებისგან.

Smbus- ის დაყენება

სისტემის მართვის ავტობუსი (SMBus) მეტ -ნაკლებად არის I2C ავტობუსის წარმოებული. სტანდარტი შემუშავებულია ინტელის მიერ და ახლა შენარჩუნებულია SBS ფორუმის მიერ. SMBus– ის მთავარი პროგრამა არის კომპიუტერის დედაპლატებსა და ჩაშენებულ სისტემებში კრიტიკული პარამეტრების მონიტორინგი. მაგალითად, არსებობს ბევრი მიწოდების ძაბვის მონიტორი, ტემპერატურის მონიტორი და ვენტილატორის მონიტორი/კონტროლის ICs SMBus ინტერფეისით.

ბიბლიოთეკა, რომელსაც ჩვენ გამოვიყენებთ, ასევე მოითხოვს smbus– ის დაყენებას. Rb– ზე smbus– ის ინსტალაციისთვის გამოიყენეთ ბრძანება "sudo apt install python3-smbus".

ხდის მუშაობას

პირველ რიგში დააინსტალირეთ RPLCD ბიბლიოთეკა "sudo pip3 install RPLCD" ბრძანების გამოყენებით.

ახლა ჩვენ ვამოწმებთ LCD– ს IP– ს ჩვენებით შემდეგი კოდის გამოყენებით:

RPLCD.i2c იმპორტი CharLCDimport სოკეტიდან

def get_ip_address ():

ip_address = '' s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_address = s.getsockname () [0] s.close () ip_address დაბრუნება

lcd = CharLCD ('PCF8574', 0x27)

lcd.write_string ('IP მისამართი: / r / n'+str (get_ip_address ()))

ნაბიჯი 5: Servo, Leds, Button და Switch

Servo, Leds, Button და Switch
Servo, Leds, Button და Switch

შესავალი

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

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

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

ჩართვის/გამორთვის/ჩართვის გადამრთველს აქვს 3 პოზიცია, სადაც შუაში არის გამორთული მდგომარეობა, ეს ტიპები ძირითადად გამოიყენება მარტივი საავტომობილო კონტროლისთვის, სადაც თქვენ გაქვთ წინ, გამორთვა და საპირისპირო მდგომარეობა.

მისი მუშაობა: სერვო

Servo იყენებს PWM სიგნალს იმის დასადგენად, თუ რა კუთხით უნდა იყოს ის საბედნიეროდ ჩვენთვის GPIO– ს აქვს ეს ფუნქცია ჩამონტაჟებული. ამიტომ ჩვენ შეგვიძლია უბრალოდ გამოვიყენოთ შემდეგი კოდი სერვოს გასაკონტროლებლად: იმპორტი RPi. GPIO როგორც GPIOimport დრო

servo_pin = 18 მოვალეობა_ციკლი = 7.5

GPIO.setmode (GPIO. BCM)

GPIO.setup (servo_pin, GPIO. OUT)

pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (მორიგე_ციკლი)

მართალია:

duty_cycle = float (შეყვანა ("შეიყვანეთ სამუშაო ციკლი (მარცხნიდან 5 მარჯვნივ = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

მუშაობს იგი: led და switch

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

მისი მუშაობა: ღილაკი

ღილაკზე ჩვენ შევქმნით ჩვენს მარტივ კლასს ამ გზით, ჩვენ ადვილად ვხედავთ, როდესაც ის დაჭერილია ყოველ ჯერზე გამოსაყენებელი მოვლენის დამატების გარეშე. ჩვენ გავაკეთებთ ფაილს classbutton.py შემდეგი კოდის გამოყენებით:

RPi იმპორტი GPIOclass ღილაკი:

def _init _ (self, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP)@საკუთრება def დაჭერილი (self):

ingedrukt = GPIO.input (self.pin) დაბრუნება არა ingedrukt

def on_press (თვით, ზარის_ მეთოდი):

GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)

def on_release (self, call_method):

GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)

ნაბიჯი 6: სრული წრე

სრული წრე
სრული წრე
სრული წრე
სრული წრე

ახლა, როდესაც ჩვენ გადავიარეთ ყველა კომპონენტი, დროა გავაერთიანოთ ყველა მათგანი.

მიუხედავად იმისა, რომ სურათები აჩვენებს, რომ კომპონენტები აჩვენებენ ყველაფერს breadboard– ზე, უკეთესია LCD, adafruit GPS და ღილაკი, რომელიც დაკავშირებულია მდედრობითი სქესის მავთულხლართებთან ერთად. მხოლოდ t-cobbler და mpu6050 აქვს პურის დაფაზე. როდესაც საქმე ეხება led და switch გამოიყენეთ უფრო გრძელი მავთულები, რათა დარწმუნდეთ, რომ მიაღწევთ მოციმციმე ზოლს და საჭის ზოლს.

ნაბიჯი 7: კოდი

ამ ინსტრუქციის სისუფთავის შესანარჩუნებლად მე მოგაწოდეთ github საცავი, როგორც უკანა, ასევე ფრონტენტ ფაილებით. უბრალოდ განათავსეთ ფაილები frontend საქაღალდეში/var/www/html საქაღალდეში და ფაილები უკანა საქაღალდეში საქაღალდეში/სახლში/ [მომხმარებლის სახელი]/[საქაღალდის სახელი] საქაღალდე

ნაბიჯი 8: მონაცემთა ბაზა

მონაცემთა ბაზა
მონაცემთა ბაზა

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

ნაბიჯი 9: საქმე

Იმ შემთხვევაში
Იმ შემთხვევაში

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

გირჩევთ: