Mündəricat:

Home_X: 5 addım
Home_X: 5 addım

Video: Home_X: 5 addım

Video: Home_X: 5 addım
Video: Mehdi Sadiq × Noton - Səncə Nədən? (SƏS OST) 2024, Iyul
Anonim
Ev_X
Ev_X

Howest Kortrijk -də Yeni Media və Kommunikasiya Texnologiyaları (NMCT) üzrə təhsil alan bir tələbəyəm.

Hamımız moruq və/və ya Arduino ətrafında qurulmuş bir layihə hazırlamalı olduq. Veb saytdakı məlumatları göstərmək üçün sensorlardan və verilənlər bazalarından istifadə etməli olduq və bu zaman ağıllı bir mini ev yaratmaq fikri ortaya çıxdı.

Ağıllı evlə veb saytdakı bütün sensor oxunuşlarını görə biləcəksiniz.

Bu təlimatda sizə hər bir addımda yol göstərəcəyəm ki, bu layihəni özünüz üçün yenidən yaradasınız.

Addım 1: Materiallar: Nə lazımdır

  • Moruq Pi
  • DHT22
  • Grove - Hava keyfiyyəti sensoru
  • Grove - Qaz Sensoru (MQ2)
  • Çörək lövhəsi
  • Raspberry Pi T Cobbler
  • Kişi/Qadın Jumper Telləri
  • 5 mm LED
  • Rezistorlar
  • Ağac və alətlər
  • Servo Motor
  • GrovePi+

Bu məhsulları onlayn olaraq (Ali express, amazon, kivi elektronikası …) və ya yerli dükanlarınızdan əldə edə bilərsiniz.

Mağazalara keçidi olan hissələrin ətraflı siyahısı BOM -da aşağıda verilmişdir.

Addım 2: Kabel çəkmə

Kablolama
Kablolama
Kablolama
Kablolama

Kablolama işlərinin necə aparılacağına gözəl bir baxış üçün Fritzing -dən istifadə etdim. Mən özüm 2 sensorum üçün GrovePi+ istifadə etdim. Bunu GrovePi+ olmadan etməyi planlaşdırırsınızsa, Fritzing sxeminə əməl edin. Sensorlar sizin üçün işləmir, fərqli sancaqlar istifadə etməyə çalışın.

Fritzing faylını aşağıda tapa bilərsiniz.

Addım 3: MySQL istifadə edərək verilənlər bazası

MySQL istifadə edərək verilənlər bazası
MySQL istifadə edərək verilənlər bazası

Həyata keçirməli olduğumuz ən vacib vəzifələrdən biri MySQL verilənlər bazası ilə əlaqə idi.

Sensor hər dəfə oxuyanda və ya işıq yandıqda bu dəyişiklikləri verilənlər bazasında görürsünüz.

Verilənlər bazası bu məlumatları veb saytına göndərir ki, istifadəçi onları orada da görə bilsin.

Aşağıda verilənlər bazasının necə işlədiyinə dair ümumi bir məlumatınız olan.xml faylımı tapa bilərsiniz.

lakin əvvəlcə Raspberry Pi üzərində MySQL və balon qurmalısınız.

Sensorların kodlaşdırılması pycharm vasitəsilə baş verdi, buna görə də (kompüterinizdə) quraşdırıldığından əmin olun.

Əvvəlcə yeniləmələri yoxlamalı və aşağıdakı kimi paketləri qurmalısınız:

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

İndi bir virtual mühitdən istifadə edəcəyik:

me@my-rpi: ~ $ python3 -m pip install-pip setuptools təkərini təkmilləşdirmək virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- site paketləri mənə@my-rpi: ~/project1 $ source env/bin/activate (env) me@my-rpi: ~/project1 $ python -m pip mysql-connector-python argon2-cffi Flask Flask-HTTPAuth quraşdırın Flask-MySQL mysql-bağlayıcı-python keçid

Bu sizə mariadb.service -in aktiv olduğunu bildirməlidir.

İndi pycharm-da VCS> Versiya Nəzarətindən İdxal> GitHub en klonuna keçin

Daha sonra yeni hazırladığınız kataloq üçün yerləşdirmə konfiqurasiyasını konfiqurasiya edin, məsələn. /ev/mənə/layihə1.

Bunu etdikdən sonra tərcüməçi parametrlərinə keçin və yeni etdiyiniz virtual mühiti konfiqurasiya edin, məsələn. /home/me/project/env/bin/python. Yol xəritəsini də doldurmaq lazımdır.

Bütün bunları etsəniz, verilənlər bazası artıq işləməlidir.

sudo systemctl status mysql

İndi verilənlər bazamız üçün istifadəçilər yaratmalıyıq:

sudo mariadb

CREATE USER 'project-admin'@'localhost' 'adminpassword' tərəfindən müəyyən edilir; İstifadəçi 'layihə-veb'@'localhost' yarat 'veb parol ilə' TANIŞDIR; CREATE USER 'project-sensor'@'localhost' IDSIFEDED 'senspassword'; DATABASE layihəsi yaradın;

Layihədə BÜTÜN İSTİFADƏLƏR QORUN.* QRANT SEÇİMİ İLƏ 'project-admin'@'localhost' a; GRANT SELECT, INSERT, GÜNCƏLƏNDİRMƏ, layihəni SİLİN.* 'Project-web'@'localhost'a; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; FLUSH İSTİFADƏLƏRİ;

İndi verilənlər bazamızı pycharmda görmək üçün əlaqə qurmalıyıq.

Bunu Baxış> Alət Windows> Veritabanına gedərək yaşıl "artı" düyməsini basaraq edə bilərik.

Məlumat mənbəyi> MySQL və açılan sürücünü yüklə düyməsini (varsa) vurun.

Sonra SSH/SSL -ə gedin və SSH -ni yoxlayın. Pi üçün host/istifadəçi/parol daxil edin və hələ doldurulmamışsa 22 portunu istifadə edin.

Pycharmın şifrənizi xatırlamasını istəyirsinizsə, "Parolu yadda saxla" yanındakı qutuyu işarələyin.

"Ümumi" sekmesinde, ana bilgisayardaki localhost, Database'deki layihəni doldurun və əlaqəni sınamaq üçün parol ilə project-admin istifadə edin.

İndi verilənlər bazasını istifadə etmək üçün körfəzdə yerləşdirdiyim.sql -ni işə salmalısınız. İdxal seçimini istifadə etməyə çalışın, zibil faylını idxal edə bilmirsinizsə, cədvəlləri əl ilə əlavə etməlisiniz.

Bunu etdikdən sonra iki.service faylının olduğu conf qovluğunu tapmalısınız. Orada tapdığınız hər bir sebzi pi -də istifadə etdiyiniz istifadəçinin adı ilə dəyişdirin. Həmçinin qrupun www-data olması lazımdır.

Növbəti addım bu xidmətləri pi -də başlamaqdır:

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

sudo systemctl daemon-yenidən yüklə

sudo systemctl layihəyə başlayın*

sudo systemctl status layihəsi-*

Hər şey plana uyğun getdikdə iki aktiv xidmət görməlisiniz.

Son addım nginx'i aktivləşdirməkdir.

Əvvəlcə pi -də apache2 olub olmadığını yoxlayın, əgər onu quraşdırmısınızsa, silin və ya deaktiv edin.

Nginx faylında əvvəlcə uwsgi_pass -ı dəyişdirməlisiniz, sonra bu əmrləri yerinə yetirməlisiniz.

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

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

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

sudo systemctl nginx.service'i yenidən başladın

sudo systemctl status nginx.service

Nginx aktiv və işlək olmalıdır. Hər şey düzgündürsə, indi pi -yə gedə bilərsiniz. Əvvəlcə "Salam dünya" görəcəksən, amma yenə də aşağıdakı kodla həmin faylın məzmununu dəyişdirməlisən.

Xidmətləri işə sala bilərsiniz ki, pi başlayanda avtomatik olaraq işləsinlər.

Bunu etdiyiniz zaman, verilənlər bazasına ən azı 1 ünvanı olan bir ev qoyduğunuzdan əmin olun. Bunu sadə bir daxiletmə ilə edə bilərsiniz.

Addım 4: Kodlaşdırma

Kodlaşdırma
Kodlaşdırma
Kodlaşdırma
Kodlaşdırma

Kodu Github vasitəsilə yükləyə bilərsiniz:

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

Sensorların kodu sensor.py faylına daxil edilmişdir.

Xidmət fayllarında adımı öz adınıza (və ya pi -də istifadə etdiyinizdən daha çox istifadəçi) dəyişdirməyi unutmayın ki, düzgün işləsinlər və kodumu Pycharm -da mövcud fayllara yerləşdirsinlər.

Addım 5: Mənzil

Mənzil
Mənzil
Mənzil
Mənzil
Mənzil
Mənzil
Mənzil
Mənzil

Evimi necə istədiyimi tez bir şəkildə çəkdim, amma sizinki tamamilə fərqli görünə bilər. Servonun bir pəncərəni açıb bağlaya bilməsi üçün yalnız bir bütöv olduğunuzdan əmin olmalısınız.

Odun kəsmək üçün əsasən kiçik bir qazma və mişardan istifadə etdim. Divarlarımın kifayət qədər qalın olduğundan əmin oldum ki, servolarımı içərilərinə yerləşdirə bildim.

Dizaynınızı bitirdikdən və servo yerində olduqda, yalnız sensorları bağlamalısınız və pi -ni evin içərisinə qoymalısınız və getməyə hazırsınız.

Qeyd etdiyim kimi, eviniz mənimki ilə eyni görünə bilər, yalnız servo və pəncərə üçün yer açmalısınız.

Nəhayət, layihə ilə məşğul olursunuz. Ümid edirəm bu bələdçi kifayət qədər aydındır ki, siz də mənim kimi möhtəşəm bir ev tikə biləsiniz.

Uğurlar.

Tövsiyə: