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

EasyTalk: Հեշտ հաղորդակցություն և օրացույց ձեր կողքին ՝ 6 քայլ
EasyTalk: Հեշտ հաղորդակցություն և օրացույց ձեր կողքին ՝ 6 քայլ
Anonim
EasyTalk: Հեշտ հաղորդակցություն և օրացույց ձեր կողքին
EasyTalk: Հեշտ հաղորդակցություն և օրացույց ձեր կողքին
EasyTalk: Հեշտ հաղորդակցություն և օրացույց ձեր կողքին
EasyTalk: Հեշտ հաղորդակցություն և օրացույց ձեր կողքին

Իմ անունն է Կոբի Մարչալ, սովորում եմ Բելգիայի Հաուեստ քաղաքում և ուսանող եմ Մուլտիմեդիա և հաղորդակցական տեխնոլոգիաներ (MCT): Առաջին տարվա իմ վերջին հանձնարարության համար ես պետք է IoT սարք սարքեի:

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

Այս սարքը կոչվում է EasyTalk և լուծում է այս խնդիրը: Դա փոքր սարք է, որն օգտագործում է OLED էկրան, որպեսզի կարողանաք տեսնել ձեր իրադարձությունները, ժամանակը կամ ջերմաստիճանը և օդի որակը հենց հիմա: Երբ հաղորդագրությունն ուղարկվում է, այն ձեզ նկատում է ծանուցման ձայնով և էկրանին ցույց է տալիս հաղորդագրությունը, որտեղ կարող եք պատասխանել այո կամ ոչ:

Եթե ցանկանում եք կառուցել այս իրը կամ ցանկանում եք տեսնել, թե ինչպես է այն պատրաստված, ես կտրականապես առաջարկում եմ կարդալ շարունակությունը: Եթե ցանկանում եք ավելին իմանալ իմ մասին, կարող եք գնալ իմ պորտֆոլիո:

Քայլ 1: Նյութեր

Նյութեր
Նյութեր
Նյութեր
Նյութեր
Նյութեր
Նյութեր

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

  • Raspberry Pi 4 Model B - 4 ԳԲ
  • Pibow Coupé 4 - Ninja
  • 12 x Premium Jumperwires op strip - 40 stuks - M/M - 20 սմ
  • 6 x Premium Jumperwires op strip - 40 stuks - M/F - 20 սմ
  • 2 x 36-փին Stacking վերնագիր
  • 40-փին արական տուփի գլխագիր
  • 40 կապում Regenboog GPIO kabel
  • Մոնոխրոմ 2.42 "128x64 OLED գրաֆիկական ցուցադրման մոդուլի հավաքածու
  • Kleine Metalen խոսնակ հանդիպեց Draadjes - 8 ohm 0.5W
  • Adafruit Mono 2.5W Class D Audio Versterker
  • 3.5 մմ Aux Jack մալուխ
  • 7 մմ թել Momentary Push Button
  • Տույմելշաքելար
  • PIR Bewegingssensor
  • DS18B20 Digitale ջերմաստիճանի տվիչ
  • Grove - Lucht kwaliteit ցուցիչ v1.3
  • Grove - I2C ADC
  • Raspberry Pi 4 USB-C Voeding
  • Ֆլեքսիբելի մինի-վիճակագիր
  • 470 Օմ դիմադրիչներ
  • 4, 7K Օմ դիմադրություն
  • Atերմային նեղացման խողովակ
  • 6 x պտուտակներ M2 x 6 մմ
  • 6 x պտուտակներ M2 x 8 մմ
  • 3 x պտուտակներ M2 x 16 մմ
  • Ալյումին 3 մմ

Ես նաև կազմեցի Bill Of Materials (BOM) նյութը, որպեսզի տեսնեք, թե որքան եմ վճարել բոլոր նյութերի համար և որտեղից եմ դրանք ձեռք բերել:

Քայլ 2: Ազնվամորի Պի

Այս նախագծի համար մենք օգտագործում ենք Raspberry Pi- ն, քանի որ այն հեշտ է կարգավորել և այն կարող է օգտագործվել շատ բաների համար: Այն կատարյալ է այն բանի համար, ինչ մենք ուզում ենք անել:

Ներբեռնեք Raspberry Pi Desktop OS- ը և տեղադրեք այն ձեր Raspberry Pi- ի վրա: Դուք պետք է միացնեք SPI, I2C և One Wire raspi-config- ում: Ես առաջարկում եմ անջատել որոշ բաներ նաև Boot Options- ում, որպեսզի այն ավելի արագ բեռնվի: Բացի այդ, ես օգտագործում եմ որոշ գրադարաններ, որոնք դուք պետք է տեղադրեք pip- ով `այս աշխատանքը կատարելու համար:

pip3 տեղադրել:

  • adafruit-circuitpython-ssd1305
  • ics
  • Շիշ
  • Flask-Cors
  • Flask-JWT- Ընդլայնված
  • mysql-connector-python

Ձեզ նույնպես պետք է apache2 կայք ստեղծելու համար, այստեղ մենք օգտագործում ենք apt:

sudo apt տեղադրել apache2 -y

Դուք պետք է անլար կապ ստեղծեք, քանի որ Raspberry Pi- ում չեք կարող ստանալ UTP մալուխ, եթե այն պատյանում է:

Դուք նույնպես պետք է կարգավորեք MariaDB- ն, որպեսզի կարողանաք մուտք գործել տվյալների բազա:

Քայլ 3: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

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

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

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

Այս սարքը օգտագործում է նորմալացված MySQL տվյալների բազան ՝ իր ամբողջ տեղեկատվությունը պահելու և այն ցուցադրելու համար կայքում և հենց սարքում: Ես այն ստեղծել եմ MySQL Workbench- ում:

Այս տվյալների բազայում կա 5 աղյուսակ:

Աղյուսակ Activiteiten (= գործողություններ, իրադարձություններ) օգտագործվում է օրացույցի բոլոր իրադարձությունները պահելու համար: Սա նաև ներառում է մեկ այլ օրացույցից ներմուծված բոլոր իրադարձությունները:

Table Apparaten (= սարքեր) օգտագործվում են տարբեր տեսակի սարքեր պահելու համար, որոնք օգտագործվում են աղյուսակի Historiek (= պատմություն) մեջ: Այս նախագծում օգտագործվում են երկու տվիչներ ՝ ջերմաստիճանի տվիչ և օդի որակի սենսոր, բայց ես ունեմ նաև երրորդ «սարքը», որն ինքնին կայքն է ՝ կայքից ուղարկվող հաղորդագրությունները սարքին պահելու համար:

Աղյուսակ Gebruikers (= օգտվողներ) պահում է օգտվողներին: Նրանք կարող են մուտք գործել իրենց գաղտնաբառով և նշել այն մականունը, որը հայտնվում է հաղորդագրությամբ, երբ ուղարկվում է սարքին:

Աղյուսակ Historiek (= պատմություն) օգտագործվում է սարքին ուղարկվող սենսորների արժեքներն ու հաղորդագրությունները պահելու համար:

Եվ վերջապես, աղյուսակի հղումները (= URL) պահում են բոլոր արտաքին օրացույցի URL- ները:

Քայլ 5: Կոդ

Կոդ
Կոդ
Կոդ
Կոդ
Կոդ
Կոդ

Ես խորհուրդ եմ տալիս նոր օգտվող դարձնել, քանի որ դա լավագույն փորձն է, բայց դա անհրաժեշտ չէ, կարող եք նաև օգտագործել լռելյայն pi օգտագործողը:

Ֆրոնտենդի կոդը տեղադրվում է apache2- ի կանխադրված html թղթապանակում: Այս թղթապանակը կարող եք գտնել/var/www/html- ում:

Հետևի համար անհրաժեշտ է թղթապանակ պատրաստել ձեր տան թղթապանակում և այնտեղ տեղադրել ամբողջ ծածկագիրը:

Մենք պետք է որոշ արժեքներ փոխենք նաև այս ծածկագրում: Նախ գնացեք app.py: 23 -րդ տողում սահմանեք մեկ լարով ջերմաստիճանի տվիչի անունը: Սա հավանաբար ձեզ համար այլ բան կլինի: Nameիշտ անունը գտնելու համար բացեք տերմինալ և մուտքագրեք ՝

ls/sys/bus/w1/սարքեր

և փնտրեք տող, որը բաղկացած է բազմաթիվ տարբեր թվերից և փոխարինեք 23 -րդ տողում գտնվողին:

Մյուս բանը, որ մենք պետք է փոխենք, config.py ֆայլում է, փոխել տվյալների բազայի գաղտնաբառը:

Եթե ցանկանում եք, որ սա գործարկվի բեռնման վրա, ապա պետք է փոխեք նաև EasyTalk.service ֆայլը: Պարզապես փոխեք WorkingDirectory և User: Դուք պետք է պատճենեք այս ֆայլը հետևյալ հրամանով.

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

Այնուհետեւ գործարկեք այն.

sudo systemctl գործարկել EasyTalk.service- ը

Եվ ապա միացրեք այն, որպեսզի այն սկսվի բեռնման ժամանակ

sudo systemctl միացրեք EasyTalk.service- ը

Քայլ 6: Գործ

Գործ
Գործ
Գործ
Գործ
Գործ
Գործ
Գործ
Գործ

Ես որոշեցի պատյանը 3D տպել, որպեսզի այն հնարավորինս փոքր լինի: Տպագրությունը բաղկացած է 3 մասից, տուփը ինքնին, կափարիչը և բարձրախոսը, քանի որ այն անցքեր չունի պտուտակներ պտուտակելու համար:

Ձեզ նույնպես կպահանջվեն որոշ համարձակ գծեր ՝ ամեն ինչ իրար խառնելու համար:

  • 6 x պտուտակներ M2 x 6 մմ
  • 6 x պտուտակներ M2 x 8 մմ
  • 3 x պտուտակներ M2 x 16 մմ

Չնայած անկեղծ կլինեմ: Ինձանից 4-5 ժամ պահանջվեց այս բանը կառուցելու համար: Քանի որ այն այնքան փոքր է, ամեն ինչ պարզապես տեղավորվում է, և երբեմն դժվար է կողպեքները ներկել, բայց դա աշխատում է, եթե դա անում եք ուշադիր:

Ես նաև նախագծել եմ PCB, որը փոխարինելու է տախտակին, նախ պետք է միացնել վերնագրերը և 5 դիմադրիչներ (4 x 470 Օմ, 1 x 4.7K Օմ):

Երբ ունեք PCB, ես առաջարկում եմ սկսել ամեն ինչին մալուխների զոդումից, որը ենթադրվում է միացնել PCB- ին:

Երբ դա արվի, դուք պատրաստվում եք պտուտակել OLED էկրանը տեղում և միացնել PCB- ն դրան: Էկրանը պահում է PCB- ն: Դրա համար օգտագործում եք 6 մմ պտուտակներ:

Այնուհետև դուք պտուտակում եք օդի որակի սենսորը այնտեղ, որտեղ ենթադրվում է, բայց դա մի փոքր բարդ է, քանի որ ADC- ն միանում է դրան: Որպեսզի դա ճիշտ կատարվի, որպեսզի երկու բաղադրիչները չդիպչեն միմյանց, դուք օգտագործում եք 16 մմ պտուտակներ 3 x 5 մմ ալյումինե խողովակներով, որոնք դուք պետք է տեսնեք: Ես դա արեցի երկու պտուտակով, քանի որ չկարողացա հասնել երրորդին: Դուք միացնում եք 4 լարերը, որտեղ դրանք պետք է անցնեն PCB- ով:

Այնուհետև ձայնային ուժեղացուցիչը միացնում եք PCB- ին և բարձրախոսը տեղադրում տեղում ՝ 3D տպված կրիչով:

Այս քայլերից հետո ամենադժվար հատվածներն ավարտված են, և մնացած ամեն ինչ կարող եք միացնել PCB- ին և պտուտակել այն տեղում: Նկատի ունեցեք, որ ձեր տեսած լուսանկարներում ես օգտագործում եմ այլ ջերմաստիճանի տվիչ, վերջնական արտադրանքի համար ես օգտագործել եմ ջերմաստիճանի տվիչը երկար մալուխով, որը դուրս է գալիս տուփից, քանի որ այն չափում էր ջերմությունը տուփի ներսից:

Երբ այս բոլորը տեղում են, դուք պետք է պտուտակեք Raspberry Pi- ն: Ես պատյանն օգտագործում եմ դրա համար, քանի որ չեմ վստահում դրա արտադրած ջերմությանը, այս պատյանը պաշտպանված է, որպեսզի 3D տպումը չհալչի: Նախքան այն տեղում ամրացնելը, դուք պետք է միացնեք հոսանքի մալուխը և օժանդակ մալուխը (որը դուք պետք է բացեք և միացնեք մեկ մետաղալար, ապա միացրեք Raspberry Pi- ից PCB- ին), քանի որ դրանից հետո չեք կարող հասնել դրան:

Այնուհետև պարզապես միացրեք GPIO- ի վերնագրի մալուխը PCB- ից Raspberry Pi- ին և ստուգեք, արդյոք ամեն ինչ աշխատում է, նախքան կափարիչը փակելը:

Ներքևում կա մի անցք, որտեղ կարող եք միացնել եռոտանի, բայց դա պարտադիր չէ:

Վերջ! Հուսով եմ, որ ձեզ դուր եկավ այս հոդվածը կարդալը: -Կոբե

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