Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

HydroMazing: умная система гидропоники с IoT-мониторингом

Компоненты и материалы

Компонент Количество Примечание
Raspberry Pi 3 Model B 1 Опционально — для IoT (SMS, веб-интерфейс)
Arduino Nano R3 2
Arduino Nano Expansion Shield 2
Датчик температуры/влажности DHT21/22 1 Может потребоваться резистор 10 кОм между Vcc/Data
Модуль фоторезистора (освещённость) 1
Радиомодуль nRF24L01 2.4 ГГц 1 С SMA-антенной или без
Датчик температуры Dallas (для питательного раствора) 1 Требуется разъём
433 МГц RF передатчик + приёмник 1 комплект
Набор беспроводных розеток с пультом (3–5 шт.) 1
DFRobot LCD Shield с кнопками для Arduino Uno 1

Инструменты

Программное обеспечение

О проекте

Изначально целью не был продукт, а решение проблемы: как создать оптимальные условия для выращивания растений дома из доступных компонентов. HydroMazing — автономная система сбора данных и веб-интерфейс на вашем устройстве, а не в облаке.

Домашняя автоматизация: путь к беспроводным розеткам

Первая попытка — хак расширителя с реле — дала глючный набор проводов. Идея: использовать пульты от беспроводных розеток 433 МГц. Arduino эмулирует сигналы пульта. Библиотека RCSwitch позволила считать коды пульта и воспроизводить их. Надёжность оказалась высокой.

Программирование: «TheDecider»

Разработан набор алгоритмов «TheDecider» — на основе показаний датчиков и заданных порогов решает, включать/выключать приборы (вентиляторы, обогреватели, увлажнители, насосы, фонари) через беспроводные розетки. Код вырос до пределов памяти Arduino Uno — пришлось оптимизировать, вынести части на второй Arduino Nano и использовать nRF24L01 для связи между контроллерами.

Беспроводной мониторинг без интернета

Второй Arduino Nano с nRF24L01 и LCD-шилдом показывает текущие показания датчиков, состояния приборов и алерты. Система полностью автономна, открытая и расширяемая.

Интернет-мониторинг через Raspberry Pi

Raspberry Pi с nRF24L01 принимает данные, пишет в логи, текущее состояние сенсоров/приборов в файлы, алерты — в отдельные файлы. PHP-скрипт на Apache отображает дашборд в реальном времени. Python-скрипт проверяет папку алертов и отправляет Email/SMS. Данные накапливаются в БД для аналитики. Веб-мастер «HydroMazing Garden Wizard» ведёт через весь цикл выращивания: hydroMazing.com.

Мониторинг питательного раствора

Контроллер питательного раствора отслеживает уровень (пополнение воды — «topping off»), pH и EC, управляет дозирующими насосами и уведомляет о необходимости вмешательства.

Хотите больше?

Код: CoreSettings.h (ключевые настройки)

/* CoreSettings.h - настройки сети nRF, коды пультов, таймеры, приборы, сенсоры */
#ifndef __CORESETTINGS_H__
#define __CORESETTINGS_H__

// nRF24L01 адреса
const uint64_t nRFbaseAddress = 1034834473100;
uint64_t tx_pipes[3] = { 0xF0F0F0F0F8LL, 0xF0F0F0F0F7LL, 0xF0F0F0F0F6LL };
uint64_t rx_pipes[3] = { 0xF0F0F0F0F1LL, 0xF0F0F0F0F2LL, 0xF0F0F0F0F3LL };

// Коды беспроводных розеток (пример для ETEKCITY #0319)
uint8_t totalSwitches = 5;
unsigned long mySwitchOn[]  = {24,333107,333251,333571,335107,341251};
unsigned long mySwitchOff[] = {24,333116,333260,333580,335116,341260};

// Приборы (appliances)
Appliance Appliance_Light_1       = {101, 1, APPLIANCE_LIGHT,       DEFAULT_TIME, true, false, OFF, NULL};
Appliance Appliance_IntakeFan     = {104, 1, APPLIANCE_INTAKE_FAN,  DEFAULT_TIME, true, false, OFF, &Appliance_Light_1};
Appliance Appliance_ExhaustFan    = {103, 1, APPLIANCE_EXHAUST_FAN, DEFAULT_TIME, true, false, OFF, &Appliance_IntakeFan};
Appliance Appliance_Humidifier    = {102, 0, APPLIANCE_HUMIDIFIER,  DEFAULT_TIME, true, false, OFF, &Appliance_ExhaustFan};
Appliance Appliance_Heater        = {101, 0, APPLIANCE_HEATER,      DEFAULT_TIME, true, false, OFF, &Appliance_Humidifier};
Appliance Appliance_FeedPump      = {105, 1, APPLIANCE_PUMP,        DEFAULT_TIME, true, false, OFF, &Appliance_Heater};
uint8_t totalAppliances = 6;

// Датчики (sensors)
Sensor Sensor_Photocell   = {PIN_A0, 1, SENSOR_PHOTO,      100, 50, 100, 0, 25, NULL};
Sensor Sensor_Temp        = {PIN7,   1, SENSOR_TEMPF,      50,  70, 80,  0, 75, &Sensor_Photocell};
Sensor Sensor_Humidity    = {PIN7,   1, SENSOR_HUMIDITY,   50,  40, 70,  0, 50, &Sensor_Temp};
Sensor Sensor_WaterTemp   = {PIN3_INT1,1,SENSOR_WATER_TEMPF,100,50, 70,  0, 65, &Sensor_Humidity};
Sensor Sensor_Flow        = {PIN2_INT0,2, SENSOR_FLOW,     100, 50, 50,  0, 75, &Sensor_WaterTemp};
Sensor Sensor_Float       = {PIN_A2, 1, SENSOR_FLOAT,     100,  0,  1,  0,  1, &Sensor_Flow};
Sensor Sensor_Voltage     = {PIN1_TX,1, SENSOR_VOLTAGE,   100,  0,100,  0, 50, &Sensor_Float};
uint8_t totalSensors = 7;

#endif

Схемы и фото

Схемы подключения вентиляторов, фонарей, нагревателей, насосов через беспроводные розетки; фото прототипа и веб-интерфейса доступны в разделе Schematics.

Производственный процесс

  1. Профессиональный мониторинг температуры на Raspberry Pi с датчиком DS18B20
  2. Система управления температурой на базе LM35 с микроконтроллером AT89S52
  3. Использование АЦП MCP3008 для чтения аналоговых датчиков с Raspberry Pi
  4. Преодоление разрыва навыков умного дома: почему Британия отстает от Европы
  5. Будущее городской жизни: ключевые черты эмерджинг Smart Cities — Часть 1
  6. Повышение эффективности напиточного производства с IoT-мониторингом уровня жидкости
  7. Принцип работы ABS: полное руководство по антиблокировочной системе
  8. Принцип работы электронной системы зажигания: полное руководство
  9. Принцип работы магнитной системы зажигания: ключевые принципы и применение
  10. Американская система производства: история, техники и влияние