Мазмуну:

Home_X: 5 кадам
Home_X: 5 кадам

Video: Home_X: 5 кадам

Video: Home_X: 5 кадам
Video: MACAN - ASPHALT 8 2024, Июль
Anonim
Home_X
Home_X

Мен Howest Kortrijkтин студентимин, ал Жаңы Медиа жана Байланыш Технологиясын (NMCT) изилдейт.

Биз баарыбыз малина жана/же Arduino тегерегиндеги долбоорду түзүшүбүз керек болчу. Маалыматты веб -сайтта көрсөтүү үчүн сенсорлорду жана маалымат базаларын колдонушубуз керек болчу, ошондо мини акылдуу үйдү түзүү идеясы пайда болгон.

Акылдуу үй менен сиз веб -сайттан сенсордун бардык көрсөткүчтөрүн көрө аласыз.

Бул нускамада мен сизге ар бир кадамыңызда жол көрсөтөм, ошондо сиз өзүңүз үчүн бул долбоорду кайра жаратсаңыз болот.

1 -кадам: материалдар: Сизге эмне керек

  • Raspberry Pi
  • DHT22
  • Grove - Аба сапатынын сенсору
  • Grove - Газ сенсору (MQ2)
  • Breadboard
  • Raspberry Pi T Cobbler
  • Эркек/Аял Jumper Wires
  • 5мм LED
  • Резисторлор
  • Жыгач жана шаймандар
  • Servo Motor
  • GrovePi+

Сиз бул нерселерди онлайн (Ali express, amazon, kiwi electronics …) же жергиликтүү дүкөндөрдөн сатып алсаңыз болот.

Дүкөндөргө шилтемеси бар тетиктердин деталдуу тизмеси Төмөндө Банкта берилген.

2 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү

Мен Фритзингди зымдарды кантип жасоо керек экендигине жакшы көз карашта болуу үчүн колдондум. Мен өзүм 2 сенсорум үчүн GrovePi+ колдондум. Эгерде сиз муну GrovePi+ жок кылууну пландасаңыз, Fritzing схемасын аткарыңыз. Мен сенсорлор сиз үчүн иштебейт, ар кандай казыктарды колдонуп көрүңүз.

Төмөндө Fritzing файлын таба аласыз.

3 -кадам: MySQLди колдонуп маалымат базасы

MySQL колдонуу маалымат базасы
MySQL колдонуу маалымат базасы

Биз ишке ашырышыбыз керек болгон эң маанилүү милдеттердин бири - MySQL маалымат базасы менен байланыш.

Сенсор көрсөткүчтөрдү алганда же жарык күйгөндө, бул өзгөрүүлөрдү базадан көрө аласыз.

Маалымат базасы бул маалыматты вебсайтка жөнөтөт, андыктан колдонуучу аларды ошол жерден көрө алат.

Төмөндө менин.xml файлымды таба аласыз, анда сизде маалымат базасы кандай иштээри жөнүндө жалпы маалымат бар, бирок адегенде Raspberry Piге MySQL жана колбаны орнотушуңуз керек.

Сенсорлордун коддолушу 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 орнотуу-pip setuptools дөңгөлөгүнүн виртуалын жогорулатуу@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- сайт пакеттери мени@my-rpi: ~/project1 $ булагы env/bin/activate (env) me@my-rpi: ~/project1 $ python -m пипти орнотуу mysql-Connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Бул mariadb.service активдүү экенин сизге билдириши керек.

Эми, pycharmда VCS> Версия көзөмөлүнөн импорттоо> GitHub en clone https://github.com/NMCT-S2-Project-I/Project-I.git бөлүмүнө өтүңүз.

Андан кийин, сиз жаңы эле жасаган каталогдун жайгашуу конфигурациясын конфигурациялаңыз, мис. /home/me/project1.

Бул аяктагандан кийин, котормочунун жөндөөлөрүнө өтүп, өзүңүз жасаган виртуалдык чөйрөнү конфигурациялаңыз, мис. /home/me/project/env/bin/python. Жол картасын толтуруу керек.

Эгер сиз мунун баарын жасасаңыз, маалымат базасы иштеп жаткан болушу керек.

sudo systemctl status mysql

Эми биз маалымат базабыз үчүн колдонуучуларды түзүүбүз керек:

sudo mariadb

CREATE USER 'project-admin'@'localhost' IDENTIFIED by 'adminpassword'; CREATE USER 'project-web'@'localhost' IDENTIFIED by 'webpassword'; CREATE USER 'project-sensor'@'localhost' IDENTIFIED 'senspassword'; DATABASE долбоорун түзүү;

ГРАНТ ОПЦИОНУ МЕНЕН project-admin '@' localhost 'долбооруна ГРАНТ БЕРҮҮ; ГРАНТ ТАНДОО, КИРГИЗҮҮ, ЖАНЫЛТУУ, ДОЛБООРДУ ӨЧҮРҮҮ.* TO' project-web '@' localhost '; ГРАНТ SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; FLUSH артыкчылыктары;

Эми биздин базаны pycharmда көрүү үчүн биз байланыш түзүшүбүз керек.

Муну Көрүү> Курал Windows> Маалыматтар базасына өтүп, жашыл "плюс" баскычын басуу менен жасай алабыз.

Маалымат булагы> MySQL жана чыкылдатыңыз драйверди түшүрүү баскычы (эгер бар болсо).

Андан кийин SSH/SSLге барып, SSHди текшериңиз. Пи үчүн хост/колдонуучу/сырсөздү толтуруңуз жана эгер толтурула элек болсо, 22 -портту колдонуңуз.

Эгерде сиз pycharm сырсөзүңүздү эстеп калууну кааласаңыз, "Сырсөздү эстеп калуу" деген кутучаны белгилеңиз.

"Жалпы" өтмөгүндө, хостту, хостингдеги проектти толтуруңуз жана туташууну сыноо үчүн сырсөз менен project-admin колдонуңуз.

Азыр маалымат базасын колдонуу үчүн мен төмөндө жайгаштырган.sqlди иштетүү керек. Импорттоо параметрин колдонуп көрүңүз, эгер сиз дампфайлды импорттой албасаңыз, анда таблицаларды кол менен кошууга туура келет.

Бул бүткөндөн кийин, эки.service файлдары бар конф каталогун табышыңыз керек. Ал жерде тапкан ар бир себиңизди пиңизде колдонгон колдонуучунун аты менен алмаштырыңыз. Ошондой эле, топ www-data болушу керек.

Кийинки кадам - бул кызматтарды пиңизде баштоо, мисалы:

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

sudo systemctl демон-кайра жүктөө

sudo systemctl долбоорун баштоо*

sudo systemctl статусунун долбоору-*

Баары план боюнча жүргөндө эки активдүү кызматты көрүшүңүз керек.

Акыркы кадам nginxти иштетүү.

Алгач пиңизде apache2 бар экендигин текшериңиз, эгер сизде бул орнотулган болсо, аны жок кылыңыз же өчүрүңүз.

Nginx файлында сиз адегенде uwsgi_passты өзгөртүшүңүз керек, андан кийин бул буйруктарды аткарыңыз.

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

sudo rm/etc/nginx/sites иштетилген/демейки

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

sudo systemctl nginx.service кайра

sudo systemctl абалы nginx.service

Nginx активдүү жана иштеп жаткан болушу керек. Эгер баары туура болсо, азыр пиңизге кире аласыз. Сиз адегенде "Hello world" көрөсүз, бирок ал файлдын мазмунун менин кодум менен өзгөртүүгө туура келет.

Кызматтарды иштете аласыз, алар пи баштаганда автоматтык түрдө иштей баштайт.

Муну кылганда, жок дегенде 1 үйдү маалымат базасына киргизиңиз. Сиз муну жөнөкөй киргизүү менен жасай аласыз.

4 -кадам: Коддоо

Coding
Coding
Coding
Coding

Сиз кодду Github аркылуу жүктөп алсаңыз болот:

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

Сенсорлордун коду sensor.py файлына киргизилген.

Кызмат файлдарында менин атымды (же пиңизде колдонуучудан да) сиздин атыңызды өзгөртүүнү унутпаңыз, алар туура иштеши жана менин кодумду Pycharmыңыздагы мурунтан бар файлдарга жайгаштыруусу үчүн.

5 -кадам: Турак жай

Турак жай
Турак жай
Турак жай
Турак жай
Турак жай
Турак жай
Турак жай
Турак жай

Мен үйүмдү каалаганымды тез эле тарттым, бирок сиздин үй таптакыр башкача көрүнүшү мүмкүн. Серво терезени ачып жабуу үчүн, сизде бүтүндүк бар экенине ынануу керек.

Негизинен мен жыгачты кесүү үчүн кичинекей бургу менен араны колдондум. Мен ошондой эле дубалдардын калыңдыгын текшерип көрдүм, ошондуктан мен алардын ичине сервомду жайгаштыра алдым.

Дизайныңызды бүтүрүп, серво ордунда болгондон кийин, сенсорлорду туташтырып, пиди үйдүн ичине коюңуз жана сиз кетүүгө даярсыз.

Мен айткандай, сиздин үй менин үйүмө окшош болушу мүмкүн, болгону сервого жана терезеге орун бөлүшүңүз керек.

Акыры сиз долбоор менен иштейсиз. Мен бул көрсөтмө жетишерлик ачык деп үмүттөнөм, ошондо сен да мен сыяктуу укмуштай смартхаус жасай аласың.

Ийгилик каалайм.

Сунушталууда: