Բովանդակություն:
- Քայլ 1: Նյութեր. Ի՞նչ է ձեզ անհրաժեշտ
- Քայլ 2: Լարերի տեղադրում
- Քայլ 3: MySQL- ի օգտագործմամբ տվյալների շտեմարան
- Քայլ 4: Կոդավորում
- Քայլ 5: Բնակարանային ապահովում
Video: Home_X: 5 քայլ
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-10 13:47
Ես 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 տվյալների բազայի հետ կապն էր:
Ամեն անգամ, երբ սենսորը կարդում է կամ լույսը վառվում է, դուք կտեսնեք այս փոփոխությունները տվյալների բազայում:
Այնուհետև տվյալների բազան այս տվյալները ուղարկում է կայք, որպեսզի օգտագործողը կարողանա դրանք տեսնել նաև այնտեղ:
Ստորև կարող եք գտնել իմ.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- ն տան ներսում, և դուք պատրաստվում եք գնալ:
Ինչպես արդեն նշեցի, որ ձեր տունը կարող է միանգամայն նույնը լինել, ինչ իմը, միայն անհրաժեշտ է ազատել սերվոյի և պատուհանի համար:
Ի վերջո, դուք ավարտեցիք նախագիծը: Հուսով եմ, որ այս ուղեցույցը բավականաչափ պարզ է, որպեսզի դուք նույնպես կարողանաք հիանալի խելագար տուն պատրաստել, ինչպես ես:
Ամենայն բարիք: