Съдържание:
- Стъпка 1: Материали: Какво ви трябва
- Стъпка 2: Окабеляване
- Стъпка 3: База данни с помощта на MySQL
- Стъпка 4: Кодиране
- Стъпка 5: Жилища
Видео: Home_X: 5 стъпки
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-10 13:46
Аз съм студент в 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.
Всеки път, когато сензор получи показания или светне лампа, ще видите тези промени в базата данни.
След това базата данни изпраща тези данни до уебсайта, така че потребителят да може да ги види и там.
По -долу можете да намерите моя.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: Жилища
Направих бърз чертеж как искам моята къща, но вашата може да изглежда съвсем различно. Просто трябва да се уверите, че имате едно цяло, за да може сервото да отваря и затваря прозорец.
Използвах главно малка бормашина и трион за рязане на дървата. Също така се уверих, че стените са достатъчно дебели, за да мога да поставя моето серво в тях.
Когато приключите с дизайна и сервото е на място, трябва само да свържете сензорите и да поставите пи вътре в къщата и сте готови да тръгнете.
Както споменах преди, къщата ви може да изглежда абсолютно същата като моята, трябва само да освободите място за серво и прозореца.
Накрая приключихте с проекта. Надявам се, че това ръководство е достатъчно ясно, за да можете и вие да направите страхотен умен като мен.
Най-добър късмет.