Съдържание:

Home_X: 5 стъпки
Home_X: 5 стъпки

Видео: Home_X: 5 стъпки

Видео: Home_X: 5 стъпки
Видео: Установка маяков под штукатурку. Углы 90 градусов. #12 2024, Юли
Anonim
Начало_X
Начало_X

Аз съм студент в Howest Kortrijk, който изучава нови медии и комуникационни технологии (NMCT).

Всички трябваше да направим проект, който се основаваше на малината и/или Arduino. Трябваше да използваме сензори и бази данни, за да покажем данните в уебсайт и тогава ми хрумна идеята да създам мини умна къща.

С интелигентната къща ще можете да видите всички показания на сензора на уебсайта.

В тази инструкция ще ви водя през всяка стъпка, за да можете да пресъздадете този проект за себе си.

Стъпка 1: Материали: Какво ви трябва

  • Малина Пи
  • DHT22
  • Grove - Сензор за качество на въздуха
  • Grove - сензор за газ (MQ2)
  • Платка
  • Малина Pi T Cobbler
  • Мъжки/женски джъмперни проводници
  • 5 мм светодиоди
  • Резистори
  • Дърво и инструменти
  • Серво мотор
  • GrovePi+

Можете да закупите тези артикули онлайн (Ali express, amazon, kiwi electronics …) или в местните магазини.

Подробен списък на частите с връзка към магазините е даден по -долу в спецификацията.

Стъпка 2: Окабеляване

Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации

Използвах Fritzing за окабеляването, за да имам хубав преглед на това как трябва да се извърши моето окабеляване. Аз самият използвах GrovePi+ за 2 от моите сензори. Ако планирате да направите това без GrovePi+, следвайте схемата на Fritzing. Аз сензорите не работят за вас, опитайте да използвате различни щифтове.

Можете да намерите файла 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-надстройка на pip setuptools колело virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --система- сайтове-пакети env me@my-rpi: ~/project1 $ източник env/bin/активиране (env) мен@my-rpi: ~/project1 $ python -m pip инсталиране на mysql-конектор-python argon2-cffi колба колба-HTTPAuth Flask-MySQL mysql-конектор-python passlib

Трябва да ви каже, че mariadb.service е активен.

Сега, в pycharm отидете на VCS> Импортиране от Контрол на версиите> GitHub en clone

След това конфигурирайте конфигурацията за внедряване за директорията, която току -що направихте, напр. /home/me/project1.

След като това е направено, отидете на настройките на преводача и конфигурирайте виртуалната среда, която току -що сте направили, напр. /home/me/project/env/bin/python. Трябва да се попълни и картографиране на пътя.

Ако сте направили всичко това, базата данни вече трябва да работи.

sudo systemctl статус mysql

Сега трябва да създадем потребители за нашата база данни, така:

sudo mariadb

CREATE USER 'project-admin'@'localhost' ИДЕНТИФИЦИРАНО ОТ 'adminpassword'; CREATE USER 'project-web'@'localhost' ИДЕНТИФИЦИРАНО ОТ 'webpassword'; CREATE USER 'project-sensor'@'localhost' ИДЕНТИФИЦИРАНО ОТ 'sensorpassword'; CREATE DATABASE project;

ПРЕДОСТАВЕТЕ ВСИЧКИ ПРИВИЛЕГИИ НА ПРОЕКТ.* На 'project-admin'@'localhost' С ГРАНЦИЯ ОПЦИЯ; ГРАНТИРАНЕ ИЗБЕРЕТЕ, ВМЕСТИТЕ, АКТУАЛИЗИРАНЕ, ИЗТРИЙТЕ НА проекта.* НА 'project-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; ФЛУШ ПРИВИЛЕГИ;

Сега, за да видим нашата база данни в pycharm, трябва да направим връзка.

Можем да направим това, като отидем в View> Tool Windows> Database и щракнем върху зеления бутон "плюс".

Източник на данни> MySQL и щракнете (ако има такъв) върху изскачащия бутон Изтегляне на драйвер.

След това отидете на SSH/SSL и проверете SSH. Попълнете хост/потребител/парола за pi и използвайте порт 22, ако все още не е попълнен.

Ако искате pycharm да запомни вашата парола, поставете отметка в квадратчето „Запомни паролата“.

В раздела „Общи“попълнете localhost в хост, проект в база данни и използвайте project-admin с паролата, за да можете да тествате връзката.

За да направите базата данни използваема, трябва да стартирате.sql, който поставям по -долу. Опитайте да използвате опцията за импортиране, ако не можете да импортирате dumpfile, трябва да добавите таблиците ръчно.

След като направите това, трябва да намерите директорията conf с двата файла.service. Там променете всяка намерена себа с името на потребителя, който използвате на вашето pi. Също така, групата трябва да бъде www-data.

Следващата стъпка е да стартирате тези услуги на вашия pi, така:

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

sudo systemctl демон-презареждане

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 трябва да е активен и работещ. Ако всичко е правилно, сега можете да сърфирате в пи. Първо ще видите „Hello world“, но все пак трябва да промените съдържанието на този файл с моя код по -долу.

Можете да активирате услуги, така че те да се изпълняват автоматично, когато пи стартира.

Когато сте направили всичко това, уверете се, че сте поставили поне 1 къща с адрес в базата данни. Можете да направите това с просто вмъкване в.

Стъпка 4: Кодиране

Кодиране
Кодиране
Кодиране
Кодиране

Можете да изтеглите кода чрез Github:

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

Кодът за сензорите е включен във файла sensor.py.

Не забравяйте да промените името ми в ваше (или потребителя, отколкото използвате на вашия pi) в сервизните файлове, така че да могат да работят правилно и да поставят моя код във вече съществуващите файлове във вашия Pycharm.

Стъпка 5: Жилища

Жилища
Жилища
Жилища
Жилища
Жилища
Жилища
Жилища
Жилища

Направих бърз чертеж как искам моята къща, но вашата може да изглежда съвсем различно. Просто трябва да се уверите, че имате едно цяло, за да може сервото да отваря и затваря прозорец.

Използвах главно малка бормашина и трион за рязане на дървата. Също така се уверих, че стените са достатъчно дебели, за да мога да поставя моето серво в тях.

Когато приключите с дизайна и сервото е на място, трябва само да свържете сензорите и да поставите пи вътре в къщата и сте готови да тръгнете.

Както споменах преди, къщата ви може да изглежда абсолютно същата като моята, трябва само да освободите място за серво и прозореца.

Накрая приключихте с проекта. Надявам се, че това ръководство е достатъчно ясно, за да можете и вие да направите страхотен умен като мен.

Най-добър късмет.

Препоръчано: