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

Home_X: 5 քայլ
Home_X: 5 քայլ

Video: Home_X: 5 քայլ

Video: Home_X: 5 քայլ
Video: Ավստրիա։ Ինչպես են ապրում տեղի հայերը։ Կյանքի համեմատական Հայաստանի հետ։ 2024, Հուլիսի
Anonim
Տուն_X
Տուն_X

Ես Howest Kortrijk- ի ուսանող եմ, ով սովորում է Նոր մեդիա և հաղորդակցման տեխնոլոգիա (NMCT):

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

Խելացի տան միջոցով դուք կկարողանաք տեսնել սենսորների բոլոր ընթերցումները կայքում:

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

Քայլ 1: Նյութեր. Ի՞նչ է ձեզ անհրաժեշտ

  • Ազնվամորի Պի
  • DHT22
  • Grove - օդի որակի ցուցիչ
  • Grove - գազի տվիչ (MQ2)
  • Breadboard
  • Ազնվամորի Pi T կոշկակար
  • Արական/իգական ցատկող լարեր
  • 5 մմ լուսադիոդներ
  • Ռեզիստորներ
  • Փայտ և գործիքներ
  • Servo Motor
  • GrovePi+

Դուք կարող եք գնել այս իրերը առցանց (Ali express, amazon, kiwi electronics…) կամ ձեր տեղական խանութներից:

Խանութներին հղում ունեցող մասերի մանրամասն ցանկը տրված է ստորև BOM- ում:

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

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

Ես օգտագործել եմ Fritzing- ը `էլեկտրագծերի տեղադրման համար, որպեսզի ունենա գեղեցիկ ակնարկ, թե ինչպես պետք է կատարվի իմ էլեկտրագծերը: Ես ինքս օգտագործել եմ GrovePi+ իմ 2 սենսորների համար: Եթե պլանավորում եք դա պատրաստել առանց GrovePi+ - ի, հետևեք Fritzing սխեմային: I սենսորները ձեզ մոտ չեն աշխատում, փորձեք օգտագործել տարբեր քորոցներ:

Ստորև կարող եք գտնել Fritzing ֆայլը:

Քայլ 3: MySQL- ի օգտագործմամբ տվյալների շտեմարան

MySQL- ի օգտագործմամբ տվյալների շտեմարան
MySQL- ի օգտագործմամբ տվյալների շտեմարան

Ամենակարևոր խնդիրներից մեկը, որը մենք պետք է իրականացնեինք, MySQL տվյալների բազայի հետ կապն էր:

Ամեն անգամ, երբ սենսորը կարդում է կամ լույսը վառվում է, դուք կտեսնեք այս փոփոխությունները տվյալների բազայում:

Այնուհետև տվյալների բազան այս տվյալները ուղարկում է կայք, որպեսզի օգտագործողը կարողանա դրանք տեսնել նաև այնտեղ:

Ստորև կարող եք գտնել իմ.xml ֆայլը, որտեղ դուք ունեք ակնարկ, թե ինչպես է գործում տվյալների բազան, բայց նախ պետք է տեղադրել MySQL և տափաշիշ Raspberry Pi- ի վրա:

Սենսորների կոդավորումը տեղի է ունեցել pycharm- ի միջոցով, այնպես որ համոզվեք, որ այն նույնպես տեղադրված է (ձեր համակարգչի վրա):

Նախ անհրաժեշտ է ստուգել թարմացումների առկայությունը և տեղադրել փաթեթներ, օրինակ ՝

sudo apt-get update && sudo apt-get upgrade

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

Այժմ մենք պատրաստվում ենք օգտագործել վիրտուալ միջավայր.

me@my-rpi: ~ $ python3 -m pip install-upgrade pip setuptools wheel virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi:/project1 $ python3 -m venv --system- site-packages env me@my-rpi:/project1 $ source env/bin/activ (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Այն պետք է ձեզ ասի, որ mariadb.service- ն ակտիվ է:

Այժմ, pycharm- ում, անցեք VCS> Import from Version Control> GitHub en clone

Այնուհետև կազմաձևեք տեղակայման կազմաձևը ձեր ստեղծած գրացուցակի համար, օրինակ. /տուն/ինձ/նախագիծ 1.

Դա անելուց հետո գնացեք թարգմանչի կարգավորումներ և կազմաձևեք վիրտուալ միջավայրը, որը դուք ստեղծել եք, օրինակ. /home/me/project/env/bin/python. Պետք է լրացնել նաև ճանապարհի քարտեզագրումը:

Եթե դուք արել եք այս ամենը, տվյալների բազան արդեն պետք է աշխատի:

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

Այժմ մենք պետք է օգտագործողներ ստեղծենք մեր տվյալների շտեմարանի համար, օրինակ ՝

sudo mariadb

Ստեղծել օգտվող 'project-admin'@'localhost' IDENTIFIED BY 'adminpassword'; Ստեղծել օգտվող 'project-web'@'localhost' IDENTIFIED BY 'webpassword'; CREATE USER 'project-sensor'@'localhost' IDENTIFIED BY by 'sensorpassword'; Ստեղծել տվյալների բազայի նախագիծ;

ՏՐԱՄԱԴՐԵԼ ԲՈԼՈՐ ՊՐՈՎԻԼՅՈՆԵՐԸ ՝ նախագծին:* to 'project-admin'@'localhost' ՝ GRANT OPTION- ով; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-web'@'localhost'; ՏՐԱՄԱԴՐՈԹՅԱՆ ԸՆՏՐՈԹՅՈՆ, ՆԵՐԿԱՅԱՆԵԼ, ԹԱՐՄԱՆԵԼ, DEՆTEԵԼ նախագիծը:* Դեպի 'project-sensor'@'localhost'; FLԱՌԱՅԻՆ ԱՌԱIՆՈԹՅՈՆՆԵՐ;

Այժմ pycharm- ում մեր տվյալների բազան տեսնելու համար մենք պետք է կապ հաստատենք:

Մենք կարող ենք դա անել ՝ գնալով Դիտել> Գործիք Windows> Տվյալների բազա և կտտացնելով կանաչ «գումարած» կոճակին:

Տվյալների աղբյուր> MySQL և կտտացրեք (առկայության դեպքում) Ներբեռնման վարորդի կոճակին, որը հայտնվում է:

Այնուհետև անցեք SSH/SSL և ստուգեք SSH: Լրացրեք pi- ի համար ընդունող/օգտվող/գաղտնաբառ և օգտագործեք 22 պորտը, եթե դեռ լրացված չէ:

Եթե ցանկանում եք, որ pycharm- ը հիշի ձեր գաղտնաբառը, նշեք «Հիշել գաղտնաբառը» վանդակը:

«Ընդհանուր» ներդիրում լրացրեք localhost- ը հյուրընկալողի մեջ, նախագիծը տվյալների շտեմարանում և օգտագործեք project-admin- ը գաղտնաբառով, որպեսզի կարողանաք ստուգել կապը:

Այժմ տվյալների բազան օգտագործելի դարձնելու համար հարկավոր է գործարկել.sql- ը, որը ես տեղադրում եմ ստորև: Փորձեք օգտագործել ներմուծման տարբերակը, եթե չեք կարող աղբանոց ներմուծել, ապա պետք է ձեռքով ավելացնել աղյուսակները:

Դա անելուց հետո դուք պետք է գտնեք conf գրացուցակը երկու.service ֆայլերով: Այնտեղ փոխեք յուրաքանչյուր սեբ, որը կգտնեք ձեր pi- ում օգտագործվող օգտվողի անունով: Բացի այդ, խումբը պետք է լինի www- տվյալներ:

Հաջորդ քայլն այն է, որ այս ծառայությունները սկսեն ձեր pi- ով, օրինակ ՝

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

sudo systemctl daemon-reload

sudo systemctl սկսել նախագիծը-*

sudo systemctl կարգավիճակի նախագիծ-*

Դուք պետք է տեսնեք երկու ակտիվ ծառայություն, երբ ամեն ինչ ընթանա ըստ պլանի:

Վերջին քայլը nginx- ը միացնելն է:

Նախ ստուգեք apache2- ի առկայությունը ձեր pi- ի վրա, եթե այն տեղադրված է, ջնջեք այն կամ անջատեք այն:

Nginx ֆայլում նախ պետք է փոխել uwsgi_pass- ը, ապա գործարկել այս հրամանները:

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

sudo rm/etc/nginx/sites-enabled/default

sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project

sudo systemctl վերագործարկեք nginx.service

sudo systemctl կարգավիճակը nginx.service

Nginx- ը պետք է լինի ակտիվ և աշխատող: Եթե ամեն ինչ ճիշտ է, ապա այժմ կարող եք նավարկել ձեր pi- ում: Սկզբում կտեսնեք «Բարև աշխարհ», բայց դեռ պետք է փոխեք այդ ֆայլի բովանդակությունը ՝ ներքևում գտնվող իմ կոդով:

Կարող եք միացնել ծառայությունները, որպեսզի pi- ն սկսելուց հետո դրանք ինքնաբերաբար գործարկվեն:

Երբ դա արեցիք, համոզվեք, որ տվյալների բազայում տեղադրել եք առնվազն 1 տուն հասցեով: Դուք կարող եք դա անել մի պարզ ներդիրի մեջ:

Քայլ 4: Կոդավորում

Կոդավորում
Կոդավորում
Կոդավորում
Կոդավորում

Դուք կարող եք ներբեռնել կոդը Github- ի միջոցով.

github.com/NMCT-S2-Project-I/project-i-Tib…

Սենսորների ծածկագիրը ներառված է sensor.py ֆայլում:

Մի մոռացեք փոխել իմ անունը ձեր (կամ օգտվողի համեմատ, քան դուք օգտագործում եք ձեր pi- ում) ծառայության ֆայլերում, որպեսզի նրանք կարողանան ճիշտ գործարկել և տեղադրել իմ կոդը ձեր Pycharm- ի արդեն գոյություն ունեցող ֆայլերում:

Քայլ 5: Բնակարանային ապահովում

Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն

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

Փայտը կտրելու համար ես հիմնականում օգտագործում էի մի փոքրիկ հորատիչ և սղոց: Նաև համոզվեցի, որ պատերը բավական հաստ են, որպեսզի կարողանամ իմ սերվոն տեղադրել դրանց ներսում:

Երբ ավարտեք ձեր դիզայնը և servo- ն տեղում է, ձեզ հարկավոր է միայն միացնել սենսորները և տեղադրել pi- ն տան ներսում, և դուք պատրաստվում եք գնալ:

Ինչպես արդեն նշեցի, որ ձեր տունը կարող է միանգամայն նույնը լինել, ինչ իմը, միայն անհրաժեշտ է ազատել սերվոյի և պատուհանի համար:

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

Ամենայն բարիք:

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