
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

Я студент Howest Kortrijk, изучающий новые медиа и коммуникационные технологии (NMCT).
Нам всем пришлось создать проект, основанный на Raspberry и / или Arduino. Нам пришлось использовать датчики и базы данных, чтобы отображать данные на веб-сайте, и тогда мне пришла в голову идея создать мини-умный дом.
С умным домом вы сможете видеть все показания датчиков на сайте.
В этом руководстве я проведу вас через каждый шаг, чтобы вы могли воссоздать этот проект для себя.
Шаг 1. Материалы: что вам нужно
- Raspberry Pi
- DHT22
- Grove - Датчик качества воздуха
- Grove - Датчик газа (MQ2)
- Макетная плата
- Сапожник Raspberry Pi T
- Провода перемычки папа / мама
- Светодиоды 5мм
- Резисторы
- Дерево и инструменты
- Серводвигатель
- GrovePi +
Вы можете купить эти товары в Интернете (Ali express, amazon, kiwi electronics…) или в местных магазинах.
Подробный перечень запчастей со ссылкой на магазины приведен ниже в спецификации.
Шаг 2: Подключение


Я использовал Fritzing для проводки, чтобы получить хороший обзор того, как моя проводка должна быть сделана. Я сам использовал GrovePi + для двух своих датчиков. Если вы планируете сделать это без GrovePi +, следуйте схеме Fritzing. I датчики у вас не работают, попробуйте использовать другие контакты.
Вы можете найти файл 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 --upgrade pip setuptools wheel virtualenvme @ my-rpi: ~ $ mkdir project1 && cd project1 me @ my-rpi: ~ / project1 $ python3 -m venv --system- site-packages env me @ my-rpi: ~ / project1 $ source env / bin / activate (env) me @ my-rpi: ~ / project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL, mysql-коннектор-python passlib
Он должен сообщить вам, что служба mariadb.service активна.
Теперь в pycharm перейдите в VCS> Импорт из управления версиями> GitHub en clone
Затем настройте конфигурацию развертывания для только что созданного каталога, например. / дом / меня / проект1.
После этого перейдите в настройки интерпретатора и настройте виртуальную среду, которую вы только что создали, например. / домой / меня / проект / env / bin / python. Также необходимо заполнить отображение пути.
Если вы все это сделали, база данных уже должна быть запущена.
sudo systemctl статус mysql
Теперь нам нужно создать пользователей для нашей базы данных, например:
судо мариадб
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'project-admin' @ 'localhost' ИДЕНТИФИЦИРОВАНО 'adminpassword'; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'project-web' @ 'localhost' ИДЕНТИФИЦИРОВАНО 'webpassword'; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'project-sensor' @ 'localhost' ИДЕНТИФИЦИРОВАНО 'sensorpassword'; СОЗДАТЬ проект БАЗЫ ДАННЫХ;
ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА project. * 'Project-admin' @ 'localhost' С ОПЦИЕЙ GRANT; GRANT SELECT, INSERT, UPDATE, DELETE ON project. * TO 'project-web' @ 'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project. * TO 'сенсор проекта' @ 'localhost'; ПРИВИЛЕГИИ ПРОМЫВКИ;
Теперь, чтобы увидеть нашу базу данных в pycharm, нам нужно установить соединение.
Мы можем сделать это, перейдя в View> Tool Windows> Database и нажав зеленую кнопку «плюс».
Источник данных> MySQL и нажмите (если есть) на всплывающую кнопку Загрузить драйвер.
Затем перейдите в SSH / SSL и проверьте SSH. Введите host / user / password для pi и используйте порт 22, если он еще не заполнен.
Если вы хотите, чтобы pycharm запомнил ваш пароль, установите флажок «Запомнить пароль».
На вкладке «Общие» введите localhost в host, проект в базе данных и используйте project-admin с паролем, чтобы иметь возможность проверить соединение.
Чтобы сделать базу данных пригодной для использования, вам нужно запустить.sql, который я разместил ниже. Попробуйте использовать опцию импорта, если вы не можете импортировать файл дампа, вам придется добавить таблицы вручную.
После этого вам нужно найти каталог conf с двумя файлами.service. Там измените каждый найденный вами seb на имя пользователя, которого вы используете на своем пи. Также группа должна быть www-data.
Следующим шагом будет запуск этих служб на вашем пи, например:
sudo cp conf / project - *. служба / etc / systemd / system /
sudo systemctl демон-перезагрузка
sudo systemctl запустить проект- *
sudo systemctl статус проекта- *
Если все идет по плану, вы должны увидеть две активные службы.
Последний шаг - включить nginx.
Сначала проверьте apache2 на вашем пи, если он у вас установлен, удалите его или отключите.
В файле nginx сначала нужно изменить uwsgi_pass, а затем запустить эти команды.
sudo cp conf / nginx / и т.д. / nginx / сайты-доступные / проект
sudo rm / и т. д. / nginx / с включенными сайтами / по умолчанию
sudo ln -s / etc / nginx / sites-available / project1 / etc / nginx / sites-enabled / project
sudo systemctl перезапустить nginx.service
sudo systemctl status nginx.service
Nginx должен быть активен и запущен. Если все в порядке, теперь вы можете перейти к своему пи. Сначала вы увидите «Hello world», но вам все равно придется изменить содержимое этого файла с помощью моего кода ниже.
Вы можете включить службы, чтобы они запускались автоматически при запуске пи.
Когда вы это сделаете, убедитесь, что вы занесли в базу данных хотя бы 1 дом с адресом. Вы можете сделать это с помощью простой вставки в.
Шаг 4: кодирование


Вы можете скачать код через Github:
github.com/NMCT-S2-Project-I/project-i-Tib…
Код датчиков включен в файл sensor.py.
Не забудьте изменить мое имя на ваше (или имя пользователя, которого вы используете на своем пи) в служебных файлах, чтобы они могли работать должным образом и разместить мой код в уже существующих файлах в вашем Pycharm.
Шаг 5: жилье




Я быстро нарисовал, каким я хотел свой дом, но ваш может выглядеть совершенно иначе. Вам просто нужно убедиться, что у вас есть целое, чтобы сервопривод мог открывать и закрывать окно.
В основном я использовал маленькое сверло и пилу, чтобы распилить дерево. Я также удостоверился, что стенки были достаточно толстыми, чтобы я мог разместить в них свой сервопривод.
Когда вы закончите свой дизайн и сервопривод находится на месте, вам нужно только подключить датчики и поместить пи внутри дома, и вы готовы к работе.
Как я уже упоминал ранее, ваш дом может выглядеть точно так же, как мой, вам нужно только освободить место для сервопривода и окна.
Наконец, вы закончили с проектом. Я надеюсь, что это руководство достаточно ясное, чтобы вы тоже смогли сделать такой же потрясающий умный домик, как я.
Удачи.
Рекомендуемые:
Дизайн игры в Flick за 5 шагов: 5 шагов

Дизайн игры в Flick за 5 шагов: Flick - это действительно простой способ создания игры, особенно чего-то вроде головоломки, визуального романа или приключенческой игры
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)

Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Играйте в Doom на своем IPod за 5 простых шагов !: 5 шагов

Играйте в Doom на своем IPod за 5 простых шагов!: Пошаговое руководство по двойной загрузке Rockbox на iPod, чтобы играть в Doom и десятки других игр. Это действительно легко сделать, но многие люди до сих пор удивляются, когда видят, как я играю дум на своем iPod, и путаются с инструкциями
Кормушка для рыбы Arduino Uno за 6 простых и простых шагов !: 6 шагов

Arduino Uno Fish Feeder за 6 простых и дешевых шагов !: Итак, для этого проекта может потребоваться немного предыстории. Людям с домашними рыбками, вероятно, приходилось сталкиваться с той же проблемой, что и мне: отпуск и забывчивость. Я постоянно забывала покормить рыбу и всегда старалась это сделать, пока она не упала
Акустическая левитация с Arduino Uno, шаг за шагом (8 шагов): 8 шагов

Акустическая левитация с Arduino Uno Пошаговая инструкция (8 шагов): ультразвуковые преобразователи звука L298N Женский адаптер питания постоянного тока с штыревым контактом постоянного тока Arduino UNOBreadboard Как это работает: сначала вы загружаете код в Arduino Uno (это микроконтроллер, оснащенный цифровым и аналоговые порты для преобразования кода (C ++)