Оглавление:

Home_X: 5 шагов
Home_X: 5 шагов

Видео: Home_X: 5 шагов

Видео: Home_X: 5 шагов
Видео: TBS Crossfier Micro TX V2 подключаем и настраиваем в 5 шагов 2024, Июль
Anonim
Home_X
Home_X

Я студент 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
База данных с использованием 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: жилье

Корпус
Корпус
Корпус
Корпус
Корпус
Корпус
Корпус
Корпус

Я быстро нарисовал, каким я хотел свой дом, но ваш может выглядеть совершенно иначе. Вам просто нужно убедиться, что у вас есть целое, чтобы сервопривод мог открывать и закрывать окно.

В основном я использовал маленькое сверло и пилу, чтобы распилить дерево. Я также удостоверился, что стенки были достаточно толстыми, чтобы я мог разместить в них свой сервопривод.

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

Как я уже упоминал ранее, ваш дом может выглядеть точно так же, как мой, вам нужно только освободить место для сервопривода и окна.

Наконец, вы закончили с проектом. Я надеюсь, что это руководство достаточно ясное, чтобы вы тоже смогли сделать такой же потрясающий умный домик, как я.

Удачи.

Рекомендуемые: