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

Հետք և հետք փոքր խանութների համար. 9 քայլ (նկարներով)
Հետք և հետք փոքր խանութների համար. 9 քայլ (նկարներով)

Video: Հետք և հետք փոքր խանութների համար. 9 քայլ (նկարներով)

Video: Հետք և հետք փոքր խանութների համար. 9 քայլ (նկարներով)
Video: «Հողս կանչում ա, ախ, կարոտս տանջում ա». Ուրախ երգ ու պար շնիկի հետ 2024, Նոյեմբեր
Anonim
Հետևել և հետևել փոքր խանութների համար
Հետևել և հետևել փոքր խանութների համար

Սա մի համակարգ է, որը նախատեսված է փոքր խանութների համար, որը ենթադրաբար պետք է տեղադրվի էլեկտրոնային հեծանիվների կամ էլեկտրոնային սկուտերների վրա կարճաժամկետ առաքումների համար, օրինակ ՝ հացաբուլկեղեն, որը ցանկանում է խմորեղեն առաքել:

Ի՞նչ է նշանակում Հետք և հետք:

Track and trace- ը փոխադրողների կամ սուրհանդակային ընկերությունների կողմից օգտագործվող համակարգ է, որը գրանցում է փոխադրումների ընթացքում ծանրոցների կամ իրերի շարժը: Մշակման յուրաքանչյուր վայրում ապրանքները նույնականացվում են և տվյալները փոխանցվում են կենտրոնական մշակման համակարգին: Այս տվյալները այնուհետև օգտագործվում են առաքիչներին ապրանքների գտնվելու վայրի կարգավիճակ/թարմացում տալու համար:

Մեր պատրաստած համակարգը ցույց կտա նաև անցած ճանապարհը և ստացված ցնցումների և հարվածների քանակը: Այս հրահանգները ենթադրում են նաև, որ դուք ունեք հիմնական գիտելիքներ ազնվամորու pi- ի, python- ի և mysql- ի մասին:

նշում. սա արվել է դպրոցական ծրագրի համար, ուստի ժամանակի սղության պատճառով բարելավման շատ տեղ կա

Պարագաներ

-Ազնվամորի Pi 4 մոդել B

-Ազնվամորի PI T- կոշկակար

-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

Երբ խոսքը վերաբերում է միացում միացում մարտկոցով, դուք ունեք մի քանի տարբերակ, թե ինչպես դա անել:

Դուք կարող եք օգտագործել powerbank և միացնել pi- ն USB- ի միջոցով, գուցե դուք սարքը տեղադրում եք էլեկտրոնային հեծանիվի կամ էլեկտրոնային սկուտերի վրա, որն ունի USB պորտ, գուցե դուք ունեք 5V հեռախոսի մարտկոց, որը սպասում է օգտագործման համար կամ կարող եք օգտագործել 2-ը: 3.7 Վ մարտկոցի հավաքածուներ `զուգահեռաբար փոխարկիչին, ինչպես ցույց է տրված նկարներում

Thingանկացած բան լավ է, քանի դեռ կարող է ապահովել անընդհատ 5V և ունենալ ամբողջ կյանք, որից գոհ եք:

Քայլ 2: MPU6050

MPU6050
MPU6050

Ներածություն MPU6050 սենսորային մոդուլը ինտեգրված 6 առանցքի Շարժման հետևող սարք է:

  • Այն ունի 3 առանցքի գիրոսկոպ, 3 առանցքի արագացուցիչ, թվային շարժման պրոցեսոր և ջերմաստիճանի տվիչ ՝ բոլորը մեկ IC- ում:
  • I2C հաղորդակցության միջոցով որոշակի գրանցամատյանների հասցեներից արժեքներ կարդալիս կարելի է գտնել տարբեր պարամետրեր: X, Y և Z առանցքների երկայնքով գիրոսկոպը և արագացուցիչի ընթերցումը հասանելի են 2 -ի լրացման տեսքով:
  • Գիրոսկոպի ընթերցումները գտնվում են վայրկյանում (dps) միավորով; Արագացուցիչի ընթերցումները g միավորով են:

Միացնելով I2C- ը

Երբ օգտագործում եք MPU6050- ը Raspberry Pi- ով, մենք պետք է ապահովենք, որ Raspberry Pi- ի վրա I2C արձանագրությունը միացված լինի: Դա անելու համար բացեք pi- ի տերմինալը ծեփամածիկի կամ այլ ծրագրաշարի միջոցով և կատարեք հետևյալը.

  1. մուտքագրեք «sudo raspi-config»
  2. Ընտրեք Interfacing Configurations
  3. Ինտերֆեյսինգ տարբերակում ընտրեք «I2C»
  4. Միացնել I2C կոնֆիգուրացիան
  5. Ընտրեք Այո, երբ այն խնդրում է վերագործարկել:

Այժմ, մենք կարող ենք ստուգել/սկանավորել մեր Raspberry Pi տախտակին միացված ցանկացած I2C սարք ՝ տեղադրելով 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 »հրամանը:

եթե մենք պատրաստում ենք python- ի թեստային ֆայլ և օգտագործում ենք հետևյալ ծածկագիրը, կարող ենք տեսնել, արդյոք այն աշխատում է.

ներմուծման ժամանակը

ներմուծման տախտակ

ներմուծել բիզնես

oimport adafruit_mpu6050

i2c = busio. I2C (տախտակ. SCL, տախտակ. SDA)

mpu = adafruit_mpu6050. MPU6050 (i2c)

իսկական True:

տպել ("Արագացում` X: %. 2f, Y: %.2f, Z: %.2f մ/վ^2 " %(mpu. արագացում))

տպել ("Gyro X: %. 2f, Y: %.2f, Z: %.2f աստիճան/վ" %(mpu.gyro))

տպել («Temերմաստիճանը ՝ %.2f C» % mpu.temperature)

տպել ("")

ժամանակ. քուն (1)

երբ մենք ցանկանում ենք արագացումը X/Y/Z առանցքի վրա, կարող ենք օգտագործել հետևյալը.

accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu. արագացում [2]

սա համատեղելով պարզ, եթե մշտական օղակի հայտարարության հետ, կարող ենք հաշվել ճանապարհորդության ցնցումների քանակը

Քայլ 3. Adafruit Ultimate Breakout GPS- ը

Adafruit Ultimate Breakout GPS- ը
Adafruit Ultimate Breakout GPS- ը

Ներածություն

Խզումը կառուցված է MTK3339 չիպսեթի շուրջ, ոչ անհեթեթ, բարձրորակ GPS մոդուլ, որը կարող է 66 ալիքներով հետևել մինչև 22 արբանյակ, ունի գերազանց բարձր զգայունության ընդունիչ (-165 դԲ հետևում!) Եվ ներկառուցված ալեհավաք:. Այն կարող է վայրկյանում կատարել մինչև 10 տեղանքի թարմացում ՝ բարձր արագության, բարձր զգայունության գրանցման կամ հետևման համար: Էլեկտրաէներգիայի օգտագործումը աներևակայելիորեն ցածր է ՝ նավարկության ընթացքում ընդամենը 20 մԱ:

Սալիկն ունի. Ծայրահեղ ցածր 3.3 Վ կարգավորիչ, որպեսզի կարողանաք այն սնուցել 3.3-5VDC, 5 Վ մակարդակի անվտանգ մուտքերով: LED- ը թարթում է մոտ 1 Հց հաճախականությամբ, երբ արբանյակներ է փնտրում և թարթում է յուրաքանչյուր 15 վայրկյանը մեկ, երբ շտկում է կատարվում: պարզվել է, որ պահպանում է իշխանությունը:

GPS- ի փորձարկում arduino- ով

Եթե arduino- ին միացած եք, լավ գաղափար է մոդուլը դրա հետ փորձարկել:

Միացրեք VIN- ը +5V- ին GND- ին միացրեք Ground- ին Միացրեք GPS RX- ը (տվյալները GPS- ին) թվային 0 -ին Միացրեք GPS TX- ը (տվյալները GPS- ից) թվային 1 -ին

Պարզապես գործարկեք դատարկ arduino կոդ և բացեք սերիական մոնիտորը 9600 baud- ով: Եթե GPS տվյալներ եք ստանում, ձեր gps մոդուլն աշխատում է: Նշում.

Գործող դարձնելը

Սկսեք adafruit gps գրադարանի տեղադրումը `օգտագործելով« sudo pip3 install adafruit-circuitpython-gps »հրամանը:

Այժմ մենք կարող ենք օգտագործել հետևյալ պիթոնի ծածկագիրը ՝ տեսնելու, թե արդյոք մենք կարող ենք այն գործի դնել:

ներմուծման ժամանակ ներմուծման տախտակ

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')

իսկական True:

gps.update () մինչդեռ gps.has_fix:

տպել (gps.nmea_sentence) print («Սպասում է շտկման …») gps.update () time.sleep (1) շարունակել

տպել ('=' * 40) # Տպել տարանջատիչ տող: տպագիր ('Լայնություն ՝ {0:.6f} աստիճաններ'. ձևաչափ (gps.latitude)) տպել ('Երկարություն ՝ {0:.6f} աստիճան': ձևաչափ (gps.longitude)) տպել ("Fix quality: {}". format (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- ը Ոչ մեկը չէ.

տպել ("Height geo ID: {} meters".format (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 ավտոբուսի ածանցյալ է: Ստանդարտը մշակվել է Intel- ի կողմից և այժմ պահպանվում է SBS ֆորումում: SMBus- ի հիմնական կիրառումը համակարգչային մայր տախտակների և ներկառուցված համակարգերի վրա կարևոր պարամետրերի մոնիտորինգն է: Օրինակ, առկա են մատակարարման լարման մոնիտորներ, ջերմաստիճանի մոնիտորներ և օդափոխիչի մոնիտոր/հսկիչ IC- ներ ՝ SMBus ինտերֆեյսով:

Գրադարանը, որը մենք կօգտագործենք, պահանջում է նաև smbus- ի տեղադրում: rpi- ում 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'+փող (get_ip_address ()))

Քայլ 5: Servo, Leds, Button և Switch

Servo, Leds, Button և Switch
Servo, Leds, Button և Switch

Ներածություն

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

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 (տուրքի_հեծանիվ)

իսկական True:

duty_cycle = float (մուտքագրում («Մուտքագրեք պարտքի ցիկլը (ձախից 5 դեպի աջ = 10). )) pwm_servo. ChangeDutyCycle (տուրքի_ ցիկլ)

Գործող դարձնելը `led և անջատիչ

Theեկավարման և լուսարձակման միացման եղանակի պատճառով մենք կարիք չունենք վերահսկելու կամ կարդալու լուսարձակները և ինքնուրույն փոխարկվելու: Մենք պարզապես իմպուլսներ ենք ուղարկում կոճակի կախարդին, իր հերթին ազդանշանը կուղղի դեպի մեր ուզած լեդ:

Գործող դարձնելը `կոճակը

Կոճակի համար մենք կկազմենք մեր սեփական պարզ դասը այս կերպ, որը մենք հեշտությամբ տեսնում ենք, երբ այն սեղմվում է ՝ առանց դրա օգտագործումը հայտնաբերելիս ամեն անգամ օգտագործելիս: մենք ֆայլը կդարձնենք classbutton.py ՝ օգտագործելով հետևյալ ծածկագիրը.

RPi ներմուծման GPIOclass Button:

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 (self, call_method):

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: Լրիվ շրջան

Ամբողջական շրջան
Ամբողջական շրջան
Ամբողջական շրջան
Ամբողջական շրջան

Այժմ, երբ մենք անցել ենք բոլոր բաղադրիչները, ժամանակն է դրանք բոլորը համատեղել:

Մինչ նկարները ցույց են տալիս, որ բաղադրիչներն ամեն ինչ ցույց են տալիս տախտակի վրա, ավելի լավ է ունենալ LCD, adafruit GPS և կոճակ `իգական և արական լարերի միջոցով: Միայն տախտակի վրա ունեն t-cobbler- ը և mpu6050- ը: Երբ խոսքը գնում է led- ի և անջատիչի մասին: օգտագործեք ավելի երկար լարեր `համոզվելու համար, որ կարող եք հասնել թարթիչների և ղեկի ձողերին:

Քայլ 7: Կոդ

Այս ուսանելի ուսումը մաքուր պահելու համար ես տրամադրել եմ github պահեստ ՝ ինչպես հետնամասի, այնպես էլ առջևի ֆայլերով: Պարզապես ֆայլերը տեղադրեք առջևի թղթապանակում/var/www/html թղթապանակում և ֆայլերը հետնապահ թղթապանակում ՝/home/պանակում [օգտվողի անուն]/[foldername] թղթապանակ

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

Տվյալների բազան
Տվյալների բազան

Այս համակարգի ստեղծման եղանակի պատճառով կա մի պարզ վեբ խանութ, որը ստեղծվել է տվյալների բազայի արտադրանքի ցուցակի միջոցով, ավելին ՝ մենք այստեղ պահված բոլոր ճանապարհային կետերն ու պատվերները ունենք: Ստեղծման սցենար կարելի է գտնել github պահոցում ՝ հաջորդ քայլը

Քայլ 9: Գործը

Այն դեպքն է
Այն դեպքն է

Երբ մենք գիտենք էլեկտրոնիկայի աշխատանքը, կարող ենք դրանք տուփի մեջ դնել: Դրանով կարող եք ստեղծագործական ազատություն ունենալ: Նախքան այն կառուցելը, պարզապես վերցրեք ստվարաթղթե տուփը, որն այլևս ձեզ հարկավոր չէ, օրինակ դատարկ հացահատիկի տուփի նման և կտրեք այն, կպցրեք այն: և ծալեք այն մինչև ձեզ դուր եկած ինչ -որ բան: Չափեք և գծեք ձեր պատյանը թղթի վրա և պատրաստեք այն ավելի ամուր նյութից, ինչպիսին է փայտը, կամ եթե դա ձեր տպածը չէ, 3D տպեք այն: Պարզապես համոզվեք, որ բոլոր էլեկտրոնիկան տեղավորվում է ներսում և Դուք ունեք անցքեր կոճակի համար, մետաղալարն անցնում է անջատիչին, լուսադիոդային և LCD- ը: Երբ ձեր գործը դարձրեք, պարզապես ձեր հեծանիվի կամ սկուտերի վրա տեղադրելու միջոց գտնելու խնդիր է:

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