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

Բիրգարդյան. 5 քայլ
Բիրգարդյան. 5 քայլ

Video: Բիրգարդյան. 5 քայլ

Video: Բիրգարդյան. 5 քայլ
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Նոյեմբեր
Anonim
Բարգարդյան
Բարգարդյան

Ողջույն, տղերք դպրոց, ինձ պետք էր մի գաղափար նախագծի համար: Այսպիսով, ես մտածում էի, որ այն պետք է նախագիծ լինի ազնվամորու պիի հետ և այն տեղական է: Հանկարծ ես հիանալի գաղափար ունեցա և մի հարցրու ինձ, թե ինչպես ես ստանում այդ գաղափարը, բայց ես մտածեցի մանկական մոնիտորի բարելավման մասին: Պարզապես մի վայրկյան մտածեք այդ գաղափարի մասին, մանկական մոնիտորների մեծամասնությունը պարզապես երեխայի սենյակ լսելու գործառույթ ունի:

Առանձնահատկությունները

  • Մի փոքր լուսային շոու ՝ կարգավորվող գույներով
  • Տեսախցիկ, որը ցույց է տալիս կենդանի պատկերներ
  • Երաժշտություն նվագելու բարձրախոս
  • Սենսորներ ՝ երեխայի շարժումը գրավելու համար
  • Այդ ամենը ցուցադրվում է կայքում

Կարճ տեղեկատվություն

Թույլ տվեք դա բացատրել կարճ տարբերակով: Այսպիսով, մեզ վեբ կայք է պետք, և այս նախագծի համար ես օգտագործում եմ Flask, մենք նաև տվյալների բազա ունենք և ես օգտագործում եմ mysql- ը, ինչպես նաև սցենար, որն աշխատում է ապարատով, և դա Python- ի հետ է (3), և վերջին հաշվով մեզ անհրաժեշտ է սերվերի կարգավորում դա nginx կլինի PI- ի վրա:

Ինչ է մեզ պետք

  • Raspberry Pi 3
  • Քայլքայլ 28BYJ
  • Ոտքի շարժիչի վարորդական չիպ ULN2003 ստեպ մոդուլ
  • A rgb առաջնորդվել է 3 ռեզիստորով 330 Օմ
  • Pi NoIR տեսախցիկ V2
  • Ուլտրաձայնային տվիչ HC-SR04
  • Միկրո մոդուլը ardiuno- ից
  • MAX98357A
  • Բարձրախոս 8 Օմ
  • Եվ մի մոռացեք արջ գնել

Տեղադրեք ազնվամորի պի --------------------------------------------------- ------------------------------------------------------ ------------------------------

Սկզբում մենք պետք է տեղադրենք Pi- ն: Սկսեք արդեն մուտք գործել ծեփամածիկի միջոցով, եթե ծեփոն չունեք, խորհուրդ եմ տալիս ներբեռնել սա, պարզապես ssh- ով մուտքագրեք Pi- ի ձեր ստատիկ ip- ն և գնացեք դրանով: Եթե դուք պետք է տեղադրեք ձեր Raspberry Pi- ն, ապա ես վատ նորություններ եմ ստացել, ես դա չեմ բացատրում այս նախագծում:

Տեղադրեք փաթեթներ

sudo apt թարմացում

sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

Վիրտուալ միջավայր

python3 -m pip install -upgrade pip setuptools wheel virtualenv

mkdir {your project foldername} && cd {your project foldername} python3 -m venv --system-site-packages env source env/bin/activ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib

Այժմ դուք պետք է կլոնավորեք git պահոցը ձեր նախագծի թղթապանակում

github.com/NMCT-S2-Project-I/Project-I.git

Եթե նայեք ձեր նախագծի թղթապանակին, ապա պետք է տեսնեք 5 պանակ

  • կոնֆ
  • նախանձ
  • սենսոր
  • քառ
  • վեբ

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

sudo systemctl կարգավիճակը mysql

ss -lt | grep mysql sudo mysql

ստեղծել տվյալների բազայում օգտագործող `բոլոր արտոնություններով և կազմել ձեր տվյալների բազան

ստեղծել օգտվողի 'user'@'localhost' նույնականացված 'գաղտնաբառով';

ստեղծել տվյալների բազայի ձեր տվյալների բազայի անունը; տրամադրել բոլոր արտոնությունները ձեր տվյալների բազայի անվան վրա:* 'user'@'localhost' - ին `դրամաշնորհի տարբերակով.

Conf սերվերների համար ֆայլեր

Uwsgi-flask.ini- ում դուք փոխում եք 'module =…'-ը 'module = web: app' և ձեր ստեղծած virtualenv- ի ուղին: Մնացած ֆայլերում դուք պետք է փոխեք ձեր գրացուցակի իրական բացարձակ ուղիների ուղիները:

Դա պարզելուց հետո կարող եք ֆայլերը տեղադրել ճիշտ տեղում:

sudo cp conf/project1-*. service/etc/systemd/system/

sudo systemctl daemon-reload sudo systemctl սկսել նախագիծը 1-* sudo systemctl կարգավիճակի նախագիծ 1-*

այժմ մենք պետք է սա մատչելի դարձնենք

sudo cp conf/nginx/etc/nginx/sites-available/project1

sudo rm/etc/nginx/sites-enabled/default sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 sudo systemctl վերագործարկել nginx.service sudo nginx -t

Եթե ամեն ինչ լավ է ընթանում, ապա պետք է բարև ունենաս այս հրամանով

wget -qO - localhost

Կատարած ! Դե, դա այն մասի համար է, որը թույլ է տալիս գործարկել ձեր համակարգը…

Քայլ 1. Սարքավորումը միացնել Pi- ին

Սարքավորումը միացնել Pi- ին
Սարքավորումը միացնել Pi- ին

BCM- ի օգտագործմամբ

աուդիո MAX98357A

  • BCK- ից GPIO 18 -ին
  • Տվյալները GPIO 21 -ին
  • LRCK- ից GPIO 19 -ին

լույս

  • կարմիր ՝ GPIO 17
  • կանաչ GPIO 27 -ից
  • կապույտ ՝ GPIO 22

շարժիչի մոդուլ ULN2003

  • կապում 1 GPIO 5 -ին
  • կապում 2 GPIO 6 -ին
  • կապում 3 GPIO 13 -ին
  • կապում 4 GPIO 26 -ին

միկրո

D0- ից GPIO 21 -ին

ուլտրաձայնային տվիչ

  • միացնել GPIO 16 -ին
  • արձագանք GPIO 20 -ին

Քայլ 2: Հիմնական ծրագրերի կոդավորում

Ես այստեղ չեմ մանրամասնում, բայց դուք կարող եք ստուգել իմ կոդը github- ում:

Սկսելու համար ես պատրաստեցի իմ html- ը և css- ը ՝ ինդեքս, մուտք, գրանցում, հիմնական էկրան, երաժշտություն, ավելորդ երաժշտություն, addbear, լույս, տեսախցիկ, տեսախցիկի կարգավորում, տվիչ, վահանակի էջ: Html ֆայլերը պետք է լինեն կաղապարներում, իսկ css ֆայլերը ՝ static/css թղթապանակում: Դուք կարող եք լիովին հարմարեցնել css- ը, ինչպես ցանկանում եք:

Եթե դուք կատարել եք այս մասը, դուք պետք է կարգավորեք ձեր տափաշիշը: Flask- ը հեշտ է օգտագործել միայն բարև աշխարհի օրինակ

# ներմուծման շիշ սկզբում

տափաշիշ ներմուծումից * @app.route ('/') def index (): վերադարձնել render_template ('index.html')

Այժմ իմ ծածկագրում սա արդեն լրացված է, միակ բանը, որ դուք պետք է անեք, տվյալների բազայի օգտագործողի և գաղտնաբառի փոփոխումն է ձեզանից և, բնականաբար, ստեղծեք նույն տվյալների բազան, որը կարող եք գտնել նաև github- ում:

Քայլ 3: Տվյալների բազայի ստեղծում

Ստեղծելով տվյալների շտեմարան
Ստեղծելով տվյալների շտեմարան

Իսկական երկրպագուների համար ես ձեզ կասեմ, թե ինչպես ստեղծել նույն տվյալների բազան:

Այսպիսով, նախ մենք պետք է ստեղծենք տվյալների բազան, եթե դուք դա չեք կատարել առաջին քայլում:

ստեղծել տվյալների բազան beargardian;

Դա անելուց հետո դուք ստեղծում եք աղյուսակներ mysql workbench- ում կամ phpadmin- ում

օգտագործողի սեղանն ունի

  • օգտագործողի այ - Դի
  • անուն
  • Ազգանուն
  • էլ
  • մանկանուն
  • գաղտնաբառ sha1- ով
  • userfolder
  • նվագախաղ (ինտ.)
  • լուսարձակ (ինտ)
  • խաղերի ձայնագրում (int)

երաժշտական սեղանն ունի

  • musicID
  • երգ
  • ուղի
  • userfolder
  • կարգավիճակը
  • ծավալը

ձայնագրման սեղան ունի

  • ձայնագրման ID
  • ուղի
  • userfolder
  • ժամանակը
  • օր

գույնի սեղանն ունի

  • գույնի ID
  • կարմիր
  • կանաչ
  • Կապույտ
  • պայծառություն
  • օգտագործողի այ - Դի

արջի սեղան ունի

  • bearID (տասնորդական (8))
  • userID լռելյայն null
  • նշանի անուն

սենսորային սեղան ունի

  • sensorID
  • հեռավորությունը
  • միկրո
  • bearID
  • ժամանակը
  • օր
  • քնի ժամանակ

Այսպիսով, այժմ դուք հաջողությամբ ստեղծեցիք տվյալների բազան, եկեք գնանք ապարատային:

Քայլ 4: Սարքավորման կոդավորում

Ես ցույց կտամ մի փոքր ծածկագիր և կասեմ, թե ինչու եմ այդպես վարվել:

Սկզբից ես օգտագործեցի թելեր, ինչը բացարձակ պարտադիր է այս նախագծում: Ի՞նչ է թելը, հմմ, լավ հարց: Պիթոնում սպառնացողը միանգամից բազմաթիվ ծրագրեր գործարկելն է: Այսպիսով, եթե դուք, օրինակ, փոխեք գույնը, կարող եք նաև ձայնագրել: Հեշտ է օգտագործել, մի անհանգստացեք:

ներմուծել _threaddef ֆունկցիայի անունը (ինչ -որ բան, այլ բան). գործարկել կոդը

_thread.start_new_thread (ֆունկցիայի_անուն, բազմապատիկ_ֆունկցիաների_փոփոխականներով)

Եթե նայեցիք իմ ծրագրին, տեսաք logger.info ('…'): Սա տպագրման գործառույթն է, բայց շատ ավելի լավ, քանի որ Pi- ով դուք չեք կարող տպել իրեր, այնպես որ ես ֆայլ եմ պատրաստում և տպում այնտեղ: Yoe- ն կարող է սահմանել տեղեկամատյան ֆայլը այս ծածկագրով:

logger = logging.getLogger (_ անուն _) logger.setLevel (logging. INFO) # ստեղծել ֆայլ մշակողի մշակող = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# ստեղծել մուտքագրման ձևաչափ

formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)

# ավելացրեք կարգավորիչները անտառահատին

logger.addHandler (վարիչ)

logger.info ('սարքի գործարկում / n ---------------------------------------')

այնուհետև հենց օրենսգրքում ես բացատրում եմ ամեն ինչ:

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