Оглавление:
- Шаг 1: материалы
- Шаг 2: Изготовление схемы
- Шаг 3: Создайте базу данных
- Шаг 4: Запись данных датчика в базу данных
- Шаг 5: Отображение вашего IP на дисплее
- Шаг 6: Измерение датчиков каждые 10 минут
- Шаг 7: Создание веб-сайта
- Шаг 8: Создание серверной части
- Шаг 9: Создание Front-end
- Шаг 10: Изготовление теплицы
- Шаг 11: Собираем все вместе
Видео: Мини-Серр: 11 ступеней
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В студенческие годы у меня есть дурная привычка что-то забывать. Из-за этого, если я хочу вырастить определенный сорт растений, я обычно забываю о нем, и оно умирает, потому что некому о нем заботиться.
Я постараюсь решить эту проблему с помощью Mini-Serre. Mini-Serre - это автоматизированная система мониторинга садоводства, которая отправляет данные различных типов датчиков, установленных на веб-сервер, работающий на Raspberry Pi. Таким образом, пользователь может отслеживать свои растения на веб-сайте, где бы они ни находились. Эта концепция разрабатывается как заключительный проект в течение первого года развития мультимедийных и коммуникационных технологий в Ховест Кортрейк, Бельгия.
Шаг 1: материалы
Для создания этого проекта вам потребуются следующие предметы:
Электроника
- Raspberry pi 3 - комплект
- Макетная плата
- Разъемы типа папа-папа
- Разъемы типа "папа-мама"
- Dallas 18B20 (датчик температуры)
- Фоточувствительный датчик света с обнаружением фоторезистора
- MCP3008
- Потенциометр
- ЖК дисплей
- Резисторы
- Синий светодиод
- RGB светодиод
Корпус:
13. Kweekkas Central Park (https://www.brico.be/nl/tuin-buitenleven/moestuin/…) 14. Деревянная пластина (нижняя часть корпуса) 15. Гвозди 16. Винты
Инструменты:
17. Молоток 18. Пила 19. Отвертка 20. Сверло
Шаг 2: Изготовление схемы
На шаге 2 мы собираемся сделать схему для этого проекта. Это абсолютный минимум, который вам нужен, если вы хотите, чтобы он работал. Воспользуйтесь таблицей фритзинга и схемой, чтобы сделать копию схемы. Здесь вам понадобятся все электрические материалы из шага 1.
Информация о схеме:
К MCP3008 подключены 2 датчика: датчик освещенности и датчик влажности почвы. Датчик температуры имеет цифровой выход и использует вывод GPIO на Raspberry Pi.
Дополнительный:
Я также реализовал ЖК-дисплей, который в дальнейшем упростит подключение к Raspberry Pi без необходимости подключения к ноутбуку. Это не обязательно, но настоятельно рекомендуется.
Шаг 3: Создайте базу данных
Очень важно хранить данные с датчиков организованным, но в то же время безопасным способом. Вот почему я решил хранить свои данные в базе данных. Таким образом, только я могу получить доступ к этой базе данных (с личной учетной записью) и поддерживать ее порядок. На картинке выше вы можете найти мою схему из моей базы данных, а ниже - файл для экспорта базы данных в программу базы данных, например MySQL.
База данных-программа Важно, чтобы наша база данных могла работать самостоятельно с нашей Raspberry Pi. Вы можете сделать это, загрузив MySQL или MariaDB для Raspberry Pi. Сначала вы хотите создать базу данных на своем компьютере в MySQL Workbench. Затем вы экспортируете эту базу данных как автономный файл. Теперь подключитесь к базе данных Raspberry Pi через MySQL Workbench и восстановите базу данных здесь. Теперь у вас есть база данных, запущенная на вашем Raspberry Pi!
Шаг 4: Запись данных датчика в базу данных
После того, как база данных будет запущена на вашем Raspberry Pi, мы хотим, чтобы наши датчики могли хранить в ней свои данные. Мы можем сделать это, создав 3 отдельных скрипта (что и сделано в PyCharm). Приятная функция, включенная в PyCharm, заключается в том, что вы можете подключиться к своему Pi, и таким образом вы можете получить доступ к своей базе данных и писать прямо в нее. Данные также напрямую считываются Raspberry Pi, и светодиоды загораются в соответствии с тем, что вам нужно.
Горит синий светодиод: почва недостаточно влажная. Светодиод RGB горит зеленым: все в порядке. Светодиод RGB горит красным: слишком жарко, откройте крышу, чтобы немного остыть. Светодиод RGB горит синим: слишком холодно, закройте крышу, если она открыта.
Вы можете скачать все скрипты из моего репозитория на github:
Примечание. Я использовал свою личную информацию для входа в базы данных, поэтому вам, возможно, придется изменить ее, чтобы она соответствовала вашей.
Примечание. Папка DB1 содержит класс «база данных», который импортируется в коде, который будет подключаться к вашей базе данных.
Шаг 5: Отображение вашего IP на дисплее
На дисплее отображается IP-адрес, на котором работает ваш Raspberry Pi, таким образом вы можете легко подключиться к Raspberry Pi без каких-либо проводов. Я также написал для этого сценарий, который считывает IP-адрес вашего пи и отображает его на дисплее (обратите внимание, что ваши контакты GPIO совпадают, иначе это может не сработать). Raspberry Pi запускает этот сценарий автоматически при запуске. Вы можете сделать это, добавив код в файл rc.local на Raspberry Pi. Вы можете попасть туда, набрав «sudo nano /etc/rc.local» перед последней строкой кода, в которую вы хотите добавить «Python3.5 / home / user / filelocation &».
Вы можете найти сценарий здесь:
Примечание: '&' в конце, это заставит скрипт запускаться один раз и немедленно остановит его, чтобы другие скрипты могли работать так же.
Шаг 6: Измерение датчиков каждые 10 минут
Мы не хотим, чтобы наша база данных заполнялась сенсорными данными за 0,001 секунды, в противном случае базе данных будет сложно справляться со всеми поступающими данными, и это может привести к сбою. Вот почему я добавил записку в crontab на Raspberry Pi. Crontab - это программа, которая отслеживает запланированные задачи, поэтому вы можете просто запускать скрипт каждые 10 минут только один раз.
Как это настроить:
Вы можете настроить это, сначала набрав в командной строке Raspberry Pi «crontab -e», это откроет редактор для crontab. Прокрутите файл до конца и добавьте 3 строки, по одной для каждого датчика.
'* / 10 * * * * python3.5 / home / user / filepath / sensor1'
Примечание. «* / 10» - это 10 минут, которые мы хотим проводить между каждым измерением. Код, который я ввел после того, как это версия Python, которую вы запускаете, и файл, который вы хотите запустить, поэтому вам нужно написать одну строку для каждого датчика, потому что они существуют из 3 разных файлов.
Шаг 7: Создание веб-сайта
Свой сайт я сделал в программе под названием Atom. Это очень простая в использовании программа, и ее можно посоветовать, если вы новичок в написании HTML и CSS, как я.
Вы можете найти весь использованный код и изображения по этой ссылке:
Я сделал интерфейс веб-сайта в Visual Studio Code, поэтому, если вы не планируете создавать HTML и CSS самостоятельно, вы можете просто добавить файлы в новую папку в Visual Studio Code вместо Atom.
Шаг 8: Создание серверной части
Back-end и front-end - это то, что на самом деле заставляет что-то происходить на только что созданном веб-сайте. В бэкэнде мы снова подключаемся к нашей базе данных, вместо того, чтобы помещать данные в базу данных. Теперь мы прочитаем все данные с разных датчиков и с помощью Socket. IO отправим их в наш интерфейс, чтобы мы могли отобразить их на веб-сайте.
Вы можете найти код серверной части здесь:
Примечание: мы используем класс базы данных, который мы использовали ранее, поэтому я не включил его в этот репозиторий.
Шаг 9: Создание Front-end
Интерфейс - это то место, где мы объединяем наш код HTML и CSS вместе с JavaScript и нашим сервером. Написанный мной JavaScript пытается установить соединение с серверной частью, которая должна быть запущена. Теперь серверная часть будет отправлять нам все данные с датчиков, и мы можем сделать несколько функций в JavaScript, которые редактируют файл HTML, чтобы он соответствовал нашим текущим значениям.
Код JavaScript можно найти здесь:
Примечание: убедитесь, что вы ссылаетесь в своем HTML-коде на правильную папку вместо вашего JavaScript, иначе это может не сработать.
Шаг 10: Изготовление теплицы
Я купил готовый пакет от Brico:
Просто следуйте инструкциям в пакете. После того, как это будет сделано, мы еще не совсем готовы помещать туда Raspberry Pi. Сначала нам нужно сделать «пол» или дно теплицы. Вы можете сделать это, взяв деревянную пластину и измерив ее размер, чтобы она подходила. Сначала я сделал деревянную раму, чтобы деревянной пластине было на чем опираться.
Шаг 11: Собираем все вместе
Мы почти готовы! Всего лишь один последний шаг, и вы готовы к работе. Возьмите Raspberry Pi и теплицу, сделайте несколько отверстий, чтобы вы могли пропустить через них светодиоды, сделайте отверстие для дисплея и отверстие для блока питания Raspberry Pi. Поместите все в теплицу, подключите Pi, и все готово! У тебя своя теплица!
Рекомендуемые:
Мини-усилитель для наушников: 7 ступеней (с изображениями)
Мини-усилитель для наушников: сделайте небольшой усилитель для наушников из готовых модулей. Я сделал этот усилитель для наушников после того, как разочаровался в ужасном качестве звука, исходящем из моей гарнитуры для наушников во время недавней поездки в Китай. Звук был металлическим и звучал так, как будто я ша
Мини-усилитель для наушников / усиление низких частот: 6 ступеней (с изображениями)
Миниатюрный усилитель для наушников / усиление низких частот: я слушаю музыку, когда еду на работу в метро. Поскольку в метро очень шумно, низкие частоты музыки имеют тенденцию маскироваться. Поэтому я сделал небольшой усилитель для наушников, который может усиливать басы по мере необходимости. Я перечислил свои требования, как показано ниже, а
Мини-динамик: 6 ступеней
Мини-динамик: Сегодня я собираюсь сделать мини-динамик для мобильного телефона или ноутбука …. Этот проект предназначен для одного из моих друзей из Instructables. Чье имя Verticees … Итак, начнем
Светодиодный мини-прожектор Highbeamer: 6 ступеней
Светодиодный мини-прожектор Highbeamer: Highbeamer - это действительно яркий маленький светодиодный проект, в котором используется от 5 до 20 5-миллиметровых белых светодиодов размером с визитную карточку. Используйте его, чтобы взволновать своих друзей или просто заглянуть в темноту! Этот проект был разработан Capdiamont. Вы можете получить
Мини-сабвуфер с прорезями: 9 ступеней
Мини-сабвуфер с щелевым портом: в этой инструкции (мой первый) я покажу вам, как сделать портативный мини-сабвуфер с щелевым портом! Пожалуйста, оставляйте комментарии - будьте критичны, но вежливы, так как это моя первая инструкция, а мне всего пятнадцать. ЕСЛИ ВЫ ВЫБИРАЕТЕ СДЕЛАТЬ ЭТО, Я БЫ ПОЛУЧИЛ УВИДЕТЬ П