Mundarija:

Home_X: 5 qadam
Home_X: 5 qadam

Video: Home_X: 5 qadam

Video: Home_X: 5 qadam
Video: Kudmayi x Zaalima song 2024, Iyul
Anonim
Uy_X
Uy_X

Men Howest Kortrijk talabasiman, u yangi media va kommunikatsiya texnologiyalari (NMCT) ni o'rganadi.

Biz hammamiz malina va/yoki Arduino asosidagi loyihani tuzishimiz kerak edi. Veb -saytdagi ma'lumotlarni ko'rsatish uchun biz datchiklar va ma'lumotlar bazalaridan foydalanishimiz kerak edi va o'shanda men mini -aqlli uy yaratish g'oyasini ilgari surganman.

Aqlli uy yordamida siz veb -saytdagi sensorlarning barcha ko'rsatkichlarini ko'rishingiz mumkin bo'ladi.

Bu yo'riqnomada men sizga har bir qadamda ko'rsatma beraman, shunda siz ushbu loyihani o'zingiz qayta yaratishingiz mumkin.

1 -qadam: Materiallar: Sizga nima kerak

  • Raspberry Pi
  • DHT22
  • Grove - havo sifati sensori
  • Grove - gaz sensori (MQ2)
  • Non paneli
  • Raspberry Pi T Cobbler
  • Erkak/ayol o'tish simlari
  • 5 mm LED
  • Rezistorlar
  • Yog'och va asboblar
  • Servo dvigatel
  • GrovePi+

Siz bu mahsulotlarni onlayn (Ali express, amazon, kivi elektronikasi …) yoki mahalliy do'konlardan sotib olishingiz mumkin.

Do'konlarga havolasi bo'lgan qismlarning batafsil ro'yxati quyida BOMda keltirilgan.

2 -qadam: simlarni ulash

Ulanish
Ulanish
Ulanish
Ulanish

Men Fritzing -dan simlarni qanday ulash kerakligini yaxshi ko'rib chiqish uchun ishlatardim. Men o'zim ikkita sensori uchun GrovePi+ dan foydalanardim. Agar siz buni GrovePi+ holda bajarishni rejalashtirmoqchi bo'lsangiz, Fritzing sxemasiga amal qiling. Men sensorlar siz uchun ishlamaydi, har xil pinlardan foydalanishga harakat qiling.

Fritzing faylini quyida topishingiz mumkin.

3 -qadam: MySQL yordamida ma'lumotlar bazasi

MySQL yordamida ma'lumotlar bazasi
MySQL yordamida ma'lumotlar bazasi

Biz amalga oshirishimiz kerak bo'lgan eng muhim vazifalardan biri bu MySQL ma'lumotlar bazasi bilan bog'lanish edi.

Har safar sensor o'qiyotganida yoki chiroq yonganda, ma'lumotlar bazasida bu o'zgarishlarni ko'rasiz.

Keyin ma'lumotlar bazasi ushbu ma'lumotlarni veb -saytga yuboradi, shunda foydalanuvchi ularni u erda ham ko'rishi mumkin.

Quyida mening.xml faylimni topishingiz mumkin, u erda ma'lumotlar bazasi qanday ishlashini ko'rib chiqasiz, lekin oldin siz Raspberry Pi -ga MySQL va idishni o'rnatishingiz kerak.

Datchiklarni kodlash pycharm orqali sodir bo'lgan, shuning uchun ham (kompyuteringizda) o'rnatilganligiga ishonch hosil qiling.

Avval siz yangilanishlarni tekshirishingiz va paketlarni o'rnatishingiz kerak, masalan:

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

Endi biz virtual muhitdan foydalanamiz:

me@my-rpi: ~ $ python3 -m pip o'rnatish-pip setuptools g'ildiragini virtualenvme@my-rpi yangilash: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- sayt-paketlar menga@my-rpi: ~/project1 $ manba env/bin/activate (env) me@my-rpi: ~/project1 $ python -m pip mysql-ulagich-python argon2-cffi Flask Flask-HTTPAuth o'rnatish Flask-MySQL mysql-ulagichi-python passlib

Bu sizga mariadb.service faol ekanligini bildirishi kerak.

Endi pycharmda VCS> Version Control dan import> GitHub en clone-ga o'ting

So'ngra, siz hozir qilgan katalog uchun tarqatish konfiguratsiyasini sozlang, masalan. /uy/men/loyiha1.

Bu bajarilgandan so'ng, tarjimon sozlamalariga o'ting va o'zingiz yaratgan virtual muhitni sozlang, masalan. /home/me/project/env/bin/python. Yo'l xaritasini ham to'ldirish kerak.

Agar siz bularning barchasini qilgan bo'lsangiz, ma'lumotlar bazasi allaqachon ishlayotgan bo'lishi kerak.

sudo systemctl status mysql

Endi biz ma'lumotlar bazamiz uchun foydalanuvchilarni yaratishimiz kerak, masalan:

sudo mariadb

CREATE USER 'project-admin'@'localhost' 'adminpassword' tomonidan aniqlanadi; CREATE USER 'project-web'@'localhost' IDENTIFIED 'webpassword'; CREATE USER 'project-sensor'@'localhost' IDENTIFIED 'senspassword'; DATABASE loyihasini yaratish;

Loyiha bo'yicha barcha imtiyozlarni berish.* 'Loyiha-admin'@'localhost' ga GRANT OPSIYASI bilan; GRANT SELECT, INSERT, UPDATE, O'CHIRISH loyihasini.* TO 'project-web'@'localhost' ga; GRANT SELECT, INSERT, UPDATE, O'CHIRISH loyihasini.* TO 'project-sensor'@'localhost'; YUQARISH IMKONIYATLARI;

Endi bizning ma'lumotlar bazamizni pycharmda ko'rish uchun biz ulanishimiz kerak.

Buni "Ko'rish> Asboblar Windows> Ma'lumotlar bazasi" ga o'tish va yashil "ortiqcha" tugmasini bosish orqali qilishimiz mumkin.

Ma'lumot manbai> MySQL -ni tanlang va ochiladigan drayverni yuklab olish tugmasini bosing (agar mavjud bo'lsa).

Keyin SSH/SSL -ga o'ting va SSH -ni tekshiring. Pi uchun host/foydalanuvchi/parolni to'ldiring va hali to'ldirilmagan bo'lsa, 22 -portdan foydalaning.

Agar siz pycharm parolingizni eslab qolishini istasangiz, "Parolni eslab qolish" katagiga belgi qo'ying.

"Umumiy" yorlig'ida localhost host, ma'lumotlar bazasidagi loyihani to'ldiring va ulanishni sinab ko'rish uchun parol bilan project-admin-dan foydalaning.

Ma'lumotlar bazasini ishlatish uchun men quyida joylashtirgan.sql -ni ishga tushirishim kerak. Import variantini ishlatib ko'ring, agar dampfaylni import qila olmasangiz, jadvallarni qo'lda qo'shishingiz kerak.

Bu bajarilgandan so'ng, ikkita.service faylli conf katalogini topishingiz kerak. U erda siz pi -da ishlatadigan foydalanuvchi nomi bilan topilgan har bir yog'ni o'zgartiring. Shuningdek, guruh www-data bo'lishi kerak.

Keyingi qadam, bu xizmatlarni pi -da boshlashdir, masalan:

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

sudo systemctl daemon-reload

sudo systemctl loyihani boshlash-*

sudo systemctl status loyihasi-*

Hammasi reja bo'yicha ketganda, siz ikkita faol xizmatni ko'rishingiz kerak.

Oxirgi qadam nginx -ni yoqishdir.

Avval pi -da apache2 ni tekshiring, agar sizda bu o'rnatilgan bo'lsa, uni o'chiring yoki o'chiring.

Nginx faylida siz avval uwsgi_pass ni o'zgartirishingiz kerak, keyin bu buyruqlarni bajaring.

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

sudo rm/etc/nginx/sites-yoqilgan/standart

sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-yoqilgan/loyiha

sudo systemctl nginx.service -ni qayta ishga tushiring

sudo systemctl holati nginx.service

Nginx faol va ishlaydigan bo'lishi kerak. Agar hamma narsa to'g'ri bo'lsa, endi siz pi -ga bemaqsad kirishingiz mumkin. Siz birinchi navbatda "Salom dunyo" ni ko'rasiz, lekin siz hali ham quyidagi faylning mazmunini o'zgartirishingiz kerak bo'ladi.

Siz xizmatlarni yoqishingiz mumkin, shunda ular pi ishga tushganda avtomatik ravishda ishlaydi.

Buni qilganingizda, ma'lumotlar bazasiga kamida bitta uy yozilganligiga ishonch hosil qiling. Siz buni oddiy qo'shish bilan qilishingiz mumkin.

4 -qadam: kodlash

Kodlash
Kodlash
Kodlash
Kodlash

Siz kodni Github orqali yuklab olishingiz mumkin:

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

Sensorlar kodi sensor.py fayliga kiritilgan.

Xizmat fayllarida mening ismimni o'z ismingizga o'zgartirishni unutmang (yoki siz pi -da ishlatadigan foydalanuvchini), ular to'g'ri ishlashi va kodimni Pycharm -dagi mavjud fayllarga joylashtirishlari uchun.

5 -qadam: uy -joy

Uy -joy
Uy -joy
Uy -joy
Uy -joy
Uy -joy
Uy -joy
Uy -joy
Uy -joy

Men o'z uyimni qanday xohlaganimni tezda chizdim, lekin sizning uyingiz butunlay boshqacha ko'rinishi mumkin. Servo oynani ochishi va yopishi uchun sizda butun borligiga ishonch hosil qilishingiz kerak.

Yog'ochni kesish uchun asosan kichik matkap va arra ishlatardim. Bundan tashqari, men devorlarning qalinligini aniqladim, shunda men o'z servoimni ularning ichiga joylashtirdim.

Dizayningiz tugagach va servo joyida bo'lsa, siz faqat datchiklarni ulashingiz va pi -ni uyning ichiga joylashtirishingiz kerak bo'ladi.

Men aytganimdek, sizning uyingiz meniki bilan bir xil bo'lishi mumkin, siz faqat servo va deraza uchun joy ajratishingiz kerak.

Nihoyat, siz loyiha bilan shug'ullanasiz. Umid qilamanki, bu ko'rsatma etarlicha aniq, shuning uchun siz ham men kabi ajoyib uy qura olasiz.

Omad tilaymiz.

Tavsiya: