Оглавление:
- Шаг 1: Подключение оборудования к Pi
- Шаг 2: Кодирование основных программ
- Шаг 3: Создание базы данных
- Шаг 4: Аппаратное кодирование
Видео: Beargardian: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Привет, ребята из школы. Мне нужна была идея для проекта. Итак, я подумал, что это должен быть проект с 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
с использованием 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 ---------------------------------------')
далее в самом коде все объясняю.
Рекомендуемые:
Дизайн игры в 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 ++)