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


В этом руководстве я расскажу вам, как создать Alarmostat, мой школьный проект для 1MCT в Howest. Концепция заключается в создании устройства, объединяющего в себе как охранную сигнализацию, так и термостат. Однако мой дизайн определенно можно улучшить, поэтому нет необходимости строго следовать инструкциям. Будь креативным!
Необходимые компоненты перечислены ниже, а точную электрическую схему можно найти на фотографии (однако я не несу ответственности за любые повреждения вашего оборудования:))
Запасы
-Raspberry Pi (я использовал 3B +) с адаптером и sd-картой
- макетная плата
-GPIO коммутационная плата может быть удобной
-Датчик движения (HCRS501)
-Дверной магнитный выключатель (ada375)
-несколько светодиодов и резисторов
-активный зуммер
-поворотный энкодер (keyes-0.40)
-2x16 жк-дисплей
-74hc595 регистр сдвига для привода lcd
-MFRC522 считыватель RFID
-много проводов
-материалы для изготовления чемодана и инструменты для его сборки
(дополнительный макетный блок питания)
Шаг 1. Получение файлов
Файлы этого проекта можно найти в этих репозиториях:
github.com/thomasdebiehw/project-backend
github.com/thomasdebiehw/project-frontend
Бэкэнд - это программа Python / Flask, которая взаимодействует с нашим оборудованием и передает информацию от него во внешний интерфейс, который является веб-интерфейсом.
Не ненавидьте код, я знаю, что некоторые из них написаны плохо и непонятно, но эй, это работает:)
Возможно, вам придется изменить некоторые вещи для правильной работы, например, пользователя mysql или IP-адреса, на которых работают программы.
Прочтите readme интерфейса, чтобы узнать, где разместить эти файлы
Получите файлы на свой Pi (или внесите в них потрясающие изменения) и будьте готовы подключить все к Pi.
Шаг 2: Подключение


Выключите Pi перед подключением компонентов. Электрическая схема должна быть довольно понятной, но одна деталь, на которую следует обратить внимание, - это датчик движения. По какой-то причине его расположение по электрической схеме другое. Я добавил несколько аннотаций к изображению, чтобы объяснить функцию компонентов.
Одна вещь, которую вы, возможно, захотите сделать, если у вас возникнут проблемы, - это использовать внешний источник питания макетной платы. У меня были проблемы с неработающим считывателем RFID. Хотя я не совсем уверен, что проблема была в питании, я не испытывал этого после использования внешнего источника, и это тоже не повредит.
Если вы хотите сделать это, соедините контакты GND от Pi и источника питания вместе. Подключите все + 3,3 В или + 5 В от компонентов к соответствующему выходу внешнего источника питания, и все будет хорошо.
НЕ подключайте Pi 3.3 или 5v к источнику питания. Если вы используете один из них, лучше оставить их полностью отключенными, чтобы избежать ошибок.
Вы можете увидеть мою схему тестирования на втором рисунке.
Шаг 3. Тестирование

Вы должны разместить базу данных на Pi через MySQL Workbench, выполнив импорт данных. Файл в репозитории представляет собой дамп базы данных. В противном случае вы можете столкнуться с некоторыми проблемами, потому что Pi использует MariaDB вместо MySQL. Возможно, вам также придется создать нового пользователя или изменить эти учетные данные в коде. Вы можете увидеть ERD на прикрепленной картинке
Вы можете попробовать запустить программу Alarmostat немедленно, но я рекомендую сначала протестировать компоненты по отдельности. Вы можете использовать классы, включенные в репозиторий github, и написать небольшую программу для тестирования всех ваших компонентов. Это значительно упростит устранение неполадок.
Как только вы узнаете, что ваши компоненты работают, мы можем приступить к созданию кейса.
Шаг 4: Дело




Корпус может быть каким угодно. Если вы хотите создать автономный прототип, подобный моему, есть несколько требований.
-Некоторые вырезы для крепления компонентов через переднюю панель
-Какие-то дверной механизм
-Достаточно места внутри
Я использовал древесину толщиной 6 мм. Он очень прочный и идеальный, если вы хотите вырезать его лазером, но установка компонентов без продевания винта на переднюю часть может быть сложной задачей.
Я остановился на винтах, показанных на картинке, а затем использовал гайки, чтобы сделать их короче. Я настоятельно рекомендую проверить, насколько далеко ваши винты заходят на выброшенный кусок материала, который вы используете, поскольку эти части могут отличаться.
На некоторых деталях не было хороших отверстий для винтов (keyes-040, hcsr501, светодиоды), поэтому я также использовал пистолет для горячего клея, чтобы закрепить их на месте. Это не самое чистое решение, но оно подойдет. Паяльник может и не понадобиться, но я использовал его, чтобы припаять провода лучшего качества к датчику двери ada375, так как они слишком легко отсоединялись.
Я установил на корпус следующие детали:
-2 светодиода
-ada375
-hcsr501
-lcd
-роторный экодер
-rfid считыватель
Остальное прикреплено к макету. (Хотя установка датчика температуры где-нибудь за пределами корпуса может быть предпочтительнее)
Шаг 5: несколько замечаний по моему делу




Вы можете найти черновую модель корпуса выше. Вот размеры:
передняя панель: 40,5 x 30 см
стороны корпуса компонента: 20 x 30 см
верх и низ: 20 х 20 см
Я просверлил небольшое отверстие сбоку, чтобы пропустить провода датчика, и большее отверстие на задней панели для кабелей питания и Ethernet. Также просверлены отверстия для двух светодиодов спереди.
Один совет: НЕ копируйте эти размеры! Верхняя пластина для меня должна была быть 20,6 x 21,2 см, потому что я не учел толщину дерева. И даже если бы это было правильно, корпус, в котором находятся Pi и компоненты, едва ли достаточно велик. Я не учел лишнюю длину блока питания макета, и мне просто повезло, что я смог разместить его там по диагонали.
Я предлагаю использовать переднюю пластину примерно такого же размера, а заднюю крышку просто сделать на 5 см шире. С левой стороны осталось более чем достаточно места, чтобы отодвинуть дверь и датчики немного ближе к краю.
Или вы знаете … Создайте свой собственный!
Шаг 6: Сборка



Я обнаружил, что работать в таком порядке проще всего:
1. Отрежьте древесину до нужного размера
2: возьмите переднюю панель и сделайте вырезы для компонентов (если вы хотите вырезать это лазером, файл прилагается, вам нужно два дополнительных отверстия для светодиодов)
3: установите необходимые компоненты на переднюю панель
4: Проверьте и подключите эти компоненты. Лучше сделайте это, пока у вас еще есть место для работы. Я склеил соответствующие провода вместе, чтобы сделать их своего рода заголовком. Это значительно упрощает их подключение, когда все на месте.
5: установите Raspberry Pi во внутреннюю часть корпуса (или найдите другое решение для его установки, потому что вынуть SD-карту будет практически невозможно). Гайки, которые я использовал, соприкасались с металлическими штырями на Pi, поэтому я закрыл часть нижней части. изолентой.
Шаг 7: дополнительная сборка




Теперь соберите его (я использовал очень прочный столярный клей, так как этому дереву не нравились гвозди или шурупы на стороне толщиной 6 мм).
Я приклеил две боковые панели корпуса к внешнему краю нижней пластины и положил заднюю панель поверх нижней пластины между боковыми пластинами. Это делает его прочнее, но мне пришлось отшлифовать верхнюю часть задней панели, так как она оказалась на 6 мм выше, чем боковые и передняя панели.
Шаг 8: Подключение



Наконец, пришло время снова подключить компоненты внутри корпуса. Я просто поставил макетную плату на место со всеми подключенными к ней кабелями, а затем подключил смонтированные компоненты один за другим.
Как видите, он на самом деле не слишком чистый, поэтому вы можете найти лучший способ правильно его установить.
Шаг 9: Программное обеспечение
Вам нужно будет добавить пользователя в базу данных, если вы хотите использовать считыватель RFID для постановки и снятия системы с охраны. Подключитесь к вашему пи через Workbench, выберите базу данных Alarmostat и выполните следующую команду:
ВСТАВИТЬ В alarmostat.user (iduser, username, usertype, userpassword, userrfidtag) VALUES (DEFAULT, '#yourusername', 'user', '#password', '#rfidid')
замените # правильными значениями. Вы можете найти rfidid, запустив сценарий rfidtest.py из репозитория. Он отобразит идентификатор вашего тега:
Чтобы запустить программу при запуске, см. Readme:
Шаг 10: вы готовы

Это сделано! вы готовы защитить и контролировать температуру своего воображаемого дома! Получайте удовольствие и попробуйте добавить в код новые функции!
Рекомендуемые:
Дизайн игры в 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 ++)