Оглавление:

Beargardian: 5 шагов
Beargardian: 5 шагов

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

Видео: Beargardian: 5 шагов
Видео: Teddy Bear SCP-6330 Guardians of the Innocent (SCP Animation) 2024, Ноябрь
Anonim
Beargardian
Beargardian

Привет, ребята из школы. Мне нужна была идея для проекта. Итак, я подумал, что это должен быть проект с Raspberry Pi, и он локальный. Внезапно у меня возникла отличная идея, и я не спрашиваю, откуда она пришла, но я подумал об обновлении радионяни. Подумайте на секунду об этой идее, большинство радионяней просто имеют функцию прослушивания детской комнаты.

Особенности

  • Небольшое световое шоу с регулируемыми цветами
  • Камера, которая показывает живые изображения
  • Динамик для воспроизведения музыки
  • Датчики, фиксирующие движения ребенка
  • Все это отображается на веб-сайте

Краткая информация

Позвольте мне объяснить это вкратце. Итак, нам нужен веб-сайт, и для этого проекта я использую Flask, нам также нужна база данных, и я использую mysql, а также сценарий, который запускает оборудование, и это с python (3), и, наконец, нам нужна настройка сервера. это будет nginx на PI.

Что нам нужно

  • Raspberry Pi 3
  • Шаговый двигатель 28BYJ
  • Микросхема драйвера шагового двигателя ULN2003 шаговый модуль
  • Светодиод rgb с 3 резисторами 330 Ом
  • Камера Pi NoIR V2
  • Ультразвуковой датчик HC-SR04
  • Микромодуль от ardiuno
  • MAX98357A
  • Динамик 8Ом
  • И не забудьте купить медведя

Настройка raspberry pi ----------------------------------------------- -------------------------------------------------- --------------------------

Сначала нам нужно настроить Pi. Начните уже входить в систему через замазку, если у вас нет замазки, я рекомендую вам загрузить ее, просто введите свой статический IP-адрес Pi с помощью ssh, и вы идете с ним. Если вам нужно установить Raspberry Pi, у меня плохие новости, я не объясняю это в этом проекте.

Установить пакеты

sudo apt update

sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

Виртуальная среда

python3 -m pip install --upgrade pip setuptools wheel virtualenv

mkdir {имя папки вашего проекта} && cd {имя папки вашего проекта} python3 -m venv --system-site-packages env source env / bin / activate python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL-коннектор-python passlib

Теперь вам нужно клонировать репозиторий git в папку вашего проекта

github.com/NMCT-S2-Project-I/Project-I.git

Если вы посмотрите в папку своего проекта, вы должны увидеть 5 папок

  • conf
  • env
  • датчик
  • sql
  • сеть

База данных

sudo systemctl статус mysql

ss -lt | grep mysql sudo mysql

создать пользователя в базе данных со всеми привилегиями и сделать свою базу данных

создать пользователя 'user' @ 'localhost', идентифицированного по 'паролю';

создать базу данных yourdatabasename; предоставить все привилегии на yourdatabasename. * пользователю 'user' @ 'localhost' с опцией предоставления;

Файлы конфигурации для сервера

В uwsgi-flask.ini вы меняете 'module =…' на 'module = web: app' и путь к вашему виртуальному серверу, который вы создали. В других файлах вам нужно изменить пути на фактические абсолютные пути вашего каталога.

Как только вы это поняли, вы можете разместить файлы в нужном месте.

sudo cp conf / project1 - *. служба / etc / systemd / system /

sudo systemctl daemon-reload sudo systemctl start project1- * sudo systemctl status project1- *

теперь мы должны сделать это доступным

sudo cp conf / nginx / и т.д. / nginx / сайты-доступные / проект1

sudo rm / etc / nginx / sites-enabled / default sudo ln -s / etc / nginx / sites-available / project1 / etc / nginx / sites-enabled / project1 sudo systemctl restart nginx.service sudo nginx -t

Если все прошло хорошо, вы должны приветсвовать мир с этой командой

wget -qO - локальный хост

Выполнено ! Что ж, это часть, позволяющая запускать вашу систему на…

Шаг 1: Подключение оборудования к Pi

Подключение оборудования к Pi
Подключение оборудования к Pi

с использованием BCM

аудио MAX98357A

  • BCK в GPIO 18
  • Данные к GPIO 21
  • LRCK в GPIO 19

свет

  • красный к GPIO 17
  • зеленый к GPIO 27
  • синий к GPIO 22

модуль двигателя ULN2003

  • контакт 1 к GPIO 5
  • контакт 2 к GPIO 6
  • контакт 3 к GPIO 13
  • контакт 4 к GPIO 26

микро

D0 - GPIO 21

ультразвуковой датчик

  • триггер на GPIO 16
  • эхо к GPIO 20

Шаг 2: Кодирование основных программ

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

Для начала я сделал свои html и css, индекс, логин, регистрацию, домашний экран, музыку, addmusic, addbear, свет, камеру, настройки камеры, сенсор, страницу панели инструментов. Файлы html должны быть в шаблонах, а файлы css - в папке static / css. Вы можете полностью настроить CSS как хотите.

Если вы выполнили эту часть, вам нужно настроить фляжку. Flask прост в использовании, это просто пример приветственного мира

# сначала импортировать колбу

из флакона import * @ app.route ('/') def index (): return render_template ('index.html')

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

Шаг 3: Создание базы данных

Создание базы данных
Создание базы данных

Для настоящих фанатов я расскажу, как создать такую же базу данных.

Итак, сначала нам нужно создать базу данных, если вы этого не сделали на первом шаге.

создать базу данных Beargardian;

Как только вы это сделаете, вы создадите таблицы в mysql workbench или phpadmin

таблица пользователей имеет

  • ID пользователя
  • имя
  • фамилия
  • Эл. адрес
  • Babyname
  • пароль с sha1
  • папка пользователя
  • playmusic (int)
  • playlight (int)
  • playrecording (int)

музыкальный стол имеет

  • musicID
  • песня
  • дорожка
  • папка пользователя
  • положение дел
  • объем

таблица записи имеет

  • записьID
  • дорожка
  • папка пользователя
  • время
  • день

таблица цветов имеет

  • colorID
  • красный
  • зеленый
  • синий
  • яркость
  • ID пользователя

медведь стол имеет

  • BearID (десятичный (8))
  • userID по умолчанию null
  • имя

таблица датчиков имеет

  • sensorID
  • расстояние
  • микро
  • BearID
  • время
  • день
  • время сна

Итак, теперь вы успешно создали базу данных, перейдем к оборудованию.

Шаг 4: Аппаратное кодирование

Я покажу немного кода и расскажу, почему я сделал это именно так.

Для начала я использовал многопоточность, что абсолютно необходимо в этом проекте. Что такое резьба, хммм хороший вопрос! В Python угроза заключается в том, чтобы запускать несколько программ одновременно. Так что если вы, например, измените цвет, вы также можете записать. Это легко использовать, не волнуйтесь.

import _threaddef function_name (something, something_else): код для запуска

_thread.start_new_thread (имя_функции, кортеж с_переменными_функций)

Если вы посмотрели мою программу, то увидели logger.info ('…'). Это функция печати, но она намного лучше, потому что на Pi вы не можете распечатать материал, поэтому я создаю файл и распечатываю его там. Вы можете установить файл журнала с помощью этого кода.

logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # создать обработчик файла handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# создать формат регистрации

formatter = logging. Formatter ('% (asctime) s -% (name) s -% (message) s') handler.setFormatter (форматтер)

# добавляем обработчики в логгер

logger.addHandler (обработчик)

logger.info ('запускать оборудование / n ---------------------------------------')

далее в самом коде все объясняю.

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