Оглавление:

UCL - IIOT Теплица: 11 ступеней
UCL - IIOT Теплица: 11 ступеней

Видео: UCL - IIOT Теплица: 11 ступеней

Видео: UCL - IIOT Теплица: 11 ступеней
Видео: UCL-IIoT-Datalogger 2024, Июль
Anonim
UCL - IIOT Теплица
UCL - IIOT Теплица

Этот проект является продолжением нашего более раннего проекта с Greenhouse (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

В этом проекте мы добавили базу данных, в которой мы регистрируем все наши данные, а затем визуализируем их с помощью красного узла для лучшего обзора.

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

Помимо регистрации данных, мы также можем контролировать, какой профиль активен в теплице, и управлять им удаленно.

Затем мы также можем управлять насосом и вентилятором вручную.

Шаг 1. Руководство по установке

Инструкция по установке
Инструкция по установке

Первый шаг - установить все различные компоненты.

Внутри скобок () мы указали, куда подключается компонент. Так, например, Arduino подключается к Raspberry Pi через USB-кабель.

Используемое оборудование:

  • Ардуино (Raspberry Pi)
  • Малина Pi 3 B +
  • Влагомер почвы (Arduino)
  • Датчик DHT11 (Arduino)
  • Погружной водяной насос HG-320 (реле)
  • Реле 5V (Arduino)
  • Компьютерный вентилятор (реле)
  • Электропитание 230 В (насос)

Используемое программное обеспечение:

  • Raspbian (ОС для Raspberry Pi)
  • IDE Arduino
  • Python (Raspberry Pi) - PySerial- MySQLclient
  • Node-Red (Raspberry Pi) - Pythonshell - Summariser - MySQL - Панель инструментов
  • Сервер MySQL (freemysqlhosting.net)

Сначала вам нужно будет подключить аппаратные компоненты, поэтому следуйте этому руководству, чтобы построить теплицу: Руководство по установке.

Затем вам нужно будет установить Raspbian OS на Raspberry Pi. После этого вам нужно будет установить Python, а затем установить библиотеки python.

Следующим шагом является установка Node-Red на Raspberry Pi, а затем перейдите к диспетчеру поддонов и установите указанные ранее модули.

Затем перейдите на этот сайт Free MySQL Server и создайте бесплатный сервер MySQL.

Когда все это будет сделано, вы готовы перенести скрипт python на Raspberry Pi, импортировать скрипт Node-Red и загрузить код для Arduino.

Шаг 2: демонстрация контроля

Image
Image

Шаг 3: Список частей / программного обеспечения, используемых в проекте

Мы использовали следующую технологию для изготовления теплицы

  • Ардуино
  • Raspberry Pi
  • Узел-красный
  • Python
  • PHPMyAdmin

Шаг 4: Список I / 0

Схема подключения
Схема подключения

Шаг 5: Схема подключения

Шаг 6: Код Arduino

Код Arduino работает путем печати данных, измеренных датчиками, в последовательном соединении, где они считываются Raspberry Pi и передаются в базу данных.

Arduino также имеет несколько цифровых входных контактов, подключенных к Raspberry Pi, которые считывает Arduino, и если один из трех становится ВЫСОКИМ, профиль изменится из-за оператора IF.

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

Шаг 7: Raspberry Pi 3 B +

Малина Pi 3 B +
Малина Pi 3 B +

Мы использовали Raspberry Pi 3 B + для подключения нашего Arduino к Интернету и базе данных MySQL. Это позволило нам хранить данные с наших датчиков и создавать визуальный интерфейс для конечного пользователя. Для пользовательского интерфейса мы использовали Node-Red с палитрой Dashboard.

Но прежде чем мы смогли показать данные наших датчиков на Node-Red, нам нужен был способ загрузки данных в базу данных MySQL, и для этого мы создали скрипт Python, который будет работать на нашем Raspberry Pi.

Шаг 8: Python

Python
Python

Скрипт Python используется для получения данных по последовательному каналу связи, идущему от Arduino. Затем сценарий отправляет данные в базу данных MySQL.

Мы использовали две библиотеки: pyserial и mysqlclient.

Итак, первым шагом будет загрузка этих двух библиотек:

  1. PySerial
  2. MySQLclient

PySerial используется для сбора данных от Arduino через последовательную связь.

устройство = '/ dev / ttyUSB0'

arduino = serial. Serial (устройство, 9600)

Первая строка используется для определения нашего COM-порта. На Raspberry Pi это / dev / ttyUSB0, который мы используем для Arduino. Вторая строка предназначена для открытия последовательного порта для Arduino. Мы просто определяем, какой COM-порт и с какой скоростью работает соединение.

Остальная часть кода выполняется в цикле while.

Затем мы используем несколько блоков Try и Except. Сначала код пытается запустить внутри блока Try, если это не удается, запускает блок Except. Но если блок Try работает нормально, он не запускает блок Except, а просто выполняет остальную часть кода.

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

гигролист = arduino.readlines (1)

templist = arduino.readlines (2) влажный список = arduino.readlines (3)

Таким образом, приведенный выше код предназначен для чтения строк в последовательной связи. Число в конце кода определяет строку, которая была прочитана в серийном номере. Итак, эти строки классифицируются по разным переменным.

Когда данные от Arduino получены, мы использовали модуль mysqlclient для отправки данных на наш сервер MySQL.

db = _mysql.connect (host = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

Эта строка предназначена для подключения к нашей базе данных MySQL. Он указывает сервер, имя пользователя, пароль и базу данных, к которой он должен подключиться внутри сервера. Здесь вы должны указать подключение к вашей БД MySQL.

db.query ("INSERTINTO` TempHumid` (`temp`,` humid`, `hygro`) VALUES (% s,% s,% s)"% (temp, humid, hygro))

Итак, здесь мы берем наше соединение с БД и делаем SQL-запрос. В запросе говорится, что значения необходимо вставить в таблицу «TempHumid», а затем в столбцы «temp», «humid» и «hygro». Последняя часть «(% s,% s,% s)» представляет собой форматирование строки и используется для предоставления базе данных формата, который она может читать.

И все это действие помещается в цикл while, чтобы мы продолжали получать данные, отправляемые на сервер MySQL.

Если вы хотите увидеть весь код, загрузите скрипт Python (TempHumid.py).

Шаг 9: MySQL

MySQL
MySQL
MySQL
MySQL

Для сервера MySQL мы использовали бесплатный сервис на www.freemysqlhosting.net. Мы могли бы создать локальный сервер на Raspberry Pi, но мы выбрали бесплатную услугу, чтобы сделать его полностью подключенным к облаку / Интернету.

Чтобы получить доступ к MySQL, вам нужно перейти на phpmyadmin.co и войти в систему с учетными данными из своей учетной записи freemysqlhosting.

Находясь внутри, вы должны создать таблицу под названием «TempHumid», внутри этой таблицы вы должны создать 4 столбца с именами «ID», «temp», «humid» и «hygro». В первом столбце (ID) нужно поставить галочку в поле A_I (Auto Increment). Это сделано для того, чтобы в столбце ID каждому набору данных был присвоен идентификатор. Все следующие столбцы должны быть установлены как INT (целые числа), а стандартное значение равно NULL.

Шаг 10: красный узел

Узел-красный
Узел-красный
Узел-красный
Узел-красный
Узел-красный
Узел-красный

В нашем проекте мы использовали Node-Red для создания графического интерфейса. Node-Red работает на Raspberry Pi и собирает данные из нашей базы данных MySQL и показывает эти данные с помощью датчиков в форме пончика и графических диаграмм, чтобы конечный пользователь мог отслеживать данные. Преимущество Node-Red в том, что его можно просматривать на любом устройстве, а это означает, что размер сайта будет изменен для данного устройства, которое просматривает контент.

Чтобы установить программу Node-Red, посмотрите на шаг 1 и загрузите документ под названием «Node-Red.docx». Затем скопируйте и вставьте текст в Node-Red с помощью функции импорта в правом верхнем углу.

После этого измените настройки БД для вашей БД MySQL.

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