Умная система мониторинга растений на Windows 10 IoT: Arduino Due + Raspberry Pi
Компоненты и материалы
| Arduino Due (ARM, 3.3 В) | 1 |
| Raspberry Pi 2 Model B | 1 |
| Датчик давления/температуры/высоты BMP180 (Adafruit или аналог) | 1 |
| ADC ADS1115 16-бит (I2C) | 1 |
| Датчик влажности почвы (с компаратором) | 4 |
| Сервоприводы Tower Pro MG996R | 2 |
| Реле (двухканальное) | 2 |
| Макетная плата | 1 |
Программное обеспечение
- Microsoft Visual Studio 2015 (UWP-приложение)
- Arduino IDE
О проекте
Введение
Цель — автоматический мониторинг и полив растений. Raspberry Pi не имеет встроенного АЦП, поэтому использую внешний ADC (ADS1115) и Arduino Due как шлюз (gateway) по I2C. Для управления сервами (ШИМ) применены два подхода: программный ШИМ на Pi и аппаратный через Arduino.
Приложение (UWP)
Два режима: автоматический (определяет сухость и поливает) и ручной (управление сервами/реле вручную). Один серво (180°) поливает 2 растения. Авто-режим по умолчанию. Значения влажности разбиты на 5 категорий: 5 (красный, критично сухо) → 1 (зеленый, норма). Таймер периодически проверяет: если категория > порога — поливает более сухое растение пары (A/B и C/D по очереди).
Ключевые компоненты и нюансы
Сервопривод SG90
Требует высокой частоты GPIO. Стандартный провайдер не справлялся — переключился на Lightning provider. Проблемы питания: серво жрет ток, слабый блок питания Pi вызывал глюки. Решение — внешний 5В на серво (общая земля, сигнал от Pi). С зарядкой от iPad заработало стабильно.
ADS1115 16-бит I2C ADC
Драйвер почти готов, пороговые регистры не реализованы. Требует доработки и тестов.
BMP180 I2C (температура/давление)
Драйвер адаптирован под Lightning provider. Полезен для метеостанций и агро-мониторинга.
Реле
Простое GPIO-управление.
Фотодиод (Osram BPW21) + усилитель LTC1050
Измерение освещенности, может пригодиться в смежных проектах.
Arduino-шлюз (Due)
Выбран за 3.3В I2C (нет нужен конвертер уровней). Код простой: читает датчики, отдает по I2C.
Датчики влажности почвы
Китайские модули с компаратором.
Итог проекта
Базовая демонстрация: как поливать растения автоматически. Полезные паттерны для своих проектов:
- I2C-взаимодействие Raspberry Pi ↔ Arduino (шлюз)
- АЦП на Raspberry Pi через внешний модуль
- ШИМ на Raspberry Pi (серво) — программный и через шлюз
Планы
- Интеграция с Azure IoT
- Мобильное приложение на Xamarin
- Замена I2C на Bluetooth для связи с Arduino
Исходный код
Производственный процесс
- Умное мусорное ведро: клеточное IoT-решение для автоматизированного управления отходами
- Создание безопасной двери с распознаванием лиц на Windows IoT и Raspberry Pi
- Точный мониторинг температуры и влажности с SHT15 на Windows 10 IoT Core
- Установка Windows 10 IoT Core на Raspberry Pi 3 Model B+: Пошаговое руководство
- Построение робота с голосовым управлением на Windows 10 IoT Core на Raspberry Pi 2
- Расширение GoPiGo v2 на Windows 10 IoT Core для Raspberry Pi 3
- Передовая IoT-система с ИИ для ультра-раннего обнаружения лесных пожаров и мониторинга здоровья деревьев
- IoT-система удаленного мониторинга нефте- и дизельных баков
- 8 ключевых преимуществ IoT-мониторинга веса автопарка
- Революция в управлении молочным производством с IoT-мониторингом уровня молока