Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Сделала «умный» террариум / виварий как школьный проект.
ElectroTerra управляется Raspberry Pi, на котором размещен веб-сайт и хранятся данные, собранные с датчиков, в базе данных MariaDB.
Сайт показывает температуру и относительную влажность с датчиков и позволяет управлять вентилятором и светодиодной лентой. Эта полоса также может автоматически работать с датчиком LDR.
Я предполагаю некоторые практические знания об использовании Raspberry Pi, Arduino, MariaDB (Mysql) и разводке макетов.
Запасы
Я составил список материалов, чтобы вы могли найти все необходимое для этого проекта.
Шаг 1: Настройка Raspberry Pi
Сначала вам нужно настроить основы для Raspberry Pi:
Я использовал ssh-соединение для управления Pi с помощью ноутбука:
Для кодирования я использовал Visual Studio Code с расширением ssh:
Чтобы сделать веб-сайт доступным в вашей частной сети, вы можете проверить эту инструкцию на шагах 1-3: https://www.instructables.com/id/Host-your-website-on-Raspberry-pi/ Нет дополнительной сборки безопасности в этом проекте, так что остерегайтесь выставлять его в Интернете.
Шаг 2: Создание электронной схемы
На схеме фритзинга вы можете увидеть все необходимые компоненты в этом проекте. 1-проводной датчик температуры можно заменить встроенным датчиком температуры DHT22.
Arduino питается от Pi через USB-кабель.
Шаг 3: Программирование Arduino +
Поскольку функции в библиотеках Arduino для DHT22 и драйвера светодиодной ленты очень проработаны, я решил добавить Arduino для этих частей.
Поэтому вам нужна IDE Arduino.
Обязательно импортируйте эти библиотеки:
- Библиотека DHT:
- RGBdriver: в репозитории electroterra на github
Шаг 4: Тестирование датчиков и исполнительных механизмов на Pi
В репозитории Github есть несколько тестовых файлов для отдельных компонентов.
Это классы: mcp.py (охватывающий аналоговые данные из LDR) pcf.py (передача данных I2C) и pcf_lcd.py (интерфейс с ЖК-дисплеем).
Шаг 5: База данных
Создайте базу данных electroterra на Mysql worckbench через файл дампа (final_dump_electroterra.sql в репозитории Github) с некоторыми тестовыми данными.
Существует проблема совместимости при использовании мастера «Переадресация инженера в базу данных» в Mysql Workbench. Обязательно удалите параметр VISIBLE в операторах sql, поскольку он не работает в MariaDB.
Шаг 6: интерфейс
Код HTML, CSS и Javascript можно найти в репозитории Github. Их следует поместить в каталог, в котором будет размещен веб-сайт. Дизайн оптимизирован для мобильного использования и был протестирован на последних стабильных версиях Chrome, Firefox и Edge.
Шаг 7: бэкэнд
Код app.py, datarepository.py и Database.py должен находиться в домашнем каталоге пользователя Pi. Чтобы Pi запускал файл автоматически при перезагрузке, используйте эти инструкции:
Вы можете найти код в репозитории github:
Шаг 8: соединяем все вместе
Эта установка является доказательством правильности концепции.
Вентилятор фиксируется горячим клеем. В вентиляционной планке просверлены дополнительные отверстия для проводки.
Далее был ящик для электронных деталей. Использовался простой пластиковый ящик. Рассмотрите возможность добавления вентиляционной полосы на случай перегрева.
Шаг 9: Тестирование
Включите Raspberry Pi и блоки питания.
Перейдите к IP-адресу, отображаемому на ЖК-дисплее.
Таким образом, вы можете контролировать данные и управлять исполнительными механизмами.