WaterPi: умный удалённый полив и мониторинг комнатных растений
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Raspberry Pi 1 Model B | 1 |
| Arduino UNO | 1 |
| Датчик температуры/влажности DHT11 (4 пина) | 1 |
| Датчик влажности почвы YL-69 | 1 |
| Датчик уровня воды | 1 |
| LCD 16×2 (стандартный) | 1 |
| Насос для воды (5 В) | 1 |
| Реле 5 В | 1 |
| Держатель 4×АА батареек | 1 |
Программное обеспечение и сервисы
- Amazon Web Services AWS IoT
- Amazon Web Services AWS DynamoDB
- Johnny-Five (JavaScript робототехника для Node.js)
О проекте
Система для занятых людей, любящих растения. Регулярный полив забывают или невозможен в поездках. WaterPi мониторит температуру, влажность воздуха и почвы, поливает удалённо, сохраняет данные в DynamoDB через AWS IoT. Данные визуализируются графиками для понимания условий роста.
Raspberry Pi запускает Node.js-приложение (Johnny-Five) для опроса датчиков и управления насосом. Связь с AWS — через AWS IoT SDK для JavaScript.
Шаг 1: Настройка DynamoDB
Создайте таблицу waterpi_sensor_data:
- Partition Key:
key(String) - Sort Key:
timestamp(String)
Шаг 2: Настройка AWS IoT
- Создайте Thing:
raspi-water-pump. - Политика:
pump-policy, Actioniot:*, Resource*, EffectAllow. - Сертификат: 1-Click create → скачайте public key, private key, certificate.
- Активируйте сертификат → Attach policy → Attach thing.
- Правило (Rule): имя
saveToDynamoDB, Attribute*, Topic Filtersensor/data, Action «Insert into DynamoDB», Tablewaterpi_sensor_data, Hash key${topic()}, Range key${timestamp()}, создайте Role с Allow.
Шаг 3: Подготовка Arduino
Аналоговые датчики (влажность почвы, уровень воды) подключены к Arduino, который прошит StandardFirmata (File → Examples → Firmata → StandardFirmata). Arduino выступает ADC-переходником для Raspberry Pi по USB.
Подключение к Arduino:
- YL-69: VCC → Pin 7, GND → GND, AO → A1
- Water Level: (+) → Pin 4, (-) → GND, S → A0
Соедините Arduino с Raspberry Pi по USB. Установите датчики в горшок и бак с водой.
Шаг 4: Подготовка Raspberry Pi
Проводка к Pi:
- DHT11: S → GPIO4 (pin 7), (+) → 3V3 (pin 1), (-) → GND (pin 25)
- LCD I2C: VCC → 5V (pin 2), GND → GND (pin 6), SDA → GPIO2 (pin 3), SCL → GPIO3 (pin 5)
- Реле насоса: S → GPIO18 (pin 12), (+) → 5V (pin 4), (-) → GND (pin 20)
Шаг 5: Запуск Node.js на Pi
git clone git@github.com:demirhanaydin/waterpi-node.git
cd waterpi-node
npm install
Положите сертификаты (public key, private key, certificate, rootCA.pem) в папку certs/. Отредактируйте device.js: укажите пути к файлам и IOT_DEVICE_URL (из AWS IoT, вида https://XXXXXXXXX.iot.us-east-1.amazonaws.com).
sudo node index.js
На LCD появятся показания. В DynamoDB данные приходят каждые 20 секунд.
Шаг 6: Веб-приложение (Sinatra + Highcharts)
Визуализация данных из DynamoDB и удалённое управление насосом (кнопки Start/Stop публикуют события в AWS IoT, Pi их обрабатывает).
git clone git@github.com:demirhanaydin/waterpi-web.git
cd waterpi-web
bundle install
Сертификаты в certs/, настройте boot.rb (AWS Access Key/Secret из Security Credentials). Запуск: ruby app.rb. Откройте https://localhost:4567/ — графики и кнопки управления.
Исходный код
- Raspberry Pi Node.js: github.com/demirhanaydin/waterpi-node (добавьте сертификаты в
certs/, настройтеdevice.js) - WaterPi Web Client: github.com/demirhanaydin/waterpi-web (настройте
boot.rb)
Схемы
Схемы подключения (Fritzing) для Raspberry Pi и Arduino доступны в разделе Schematics.
Производственный процесс
- ADLINK запускает продвинутое MCM-решение для удаленного мониторинга объектов и предиктивного обслуживания
- Raspberry Pi управляемая аквапоника: гайд по сборке и код
- Домашний энергетический центр: мониторинг солнечных панелей, тепловых коллекторов и температуры комнат на Ra…
- Удалённый мониторинг погоды на Raspberry Pi 3 с PubNub
- Создание многодатчиковой системы мониторинга температуры и света с Raspberry Pi и DS18B20
- Мастерство управления датчиками и исполнительными механизмами на Raspberry Pi: акселерометр, сервопривод и потоко…
- Система домашней безопасности на Raspberry Pi: обнаружение движения PIR + камера с email-уведомлениями
- GE завершил поглощение SmartSignal, усилив удаленный мониторинг и предиктивную диагностику
- Cisco запускает облачное IoT-мониторинг для IT и OT сред
- IoT-система удаленного мониторинга нефте- и дизельных баков