SmartAgro: Продвинутое IoT-решение для точного земледелия на Arduino MKR GSM 1400
Компоненты и материалы
| Arduino MKR GSM 1400 | ×1 |
| SORACOM Air Global IoT SIM | ×1 |
| Arduino MKR MEM Shield (слот для SD-карты) | ×1 |
| GY-21 (температура и влажность воздуха) | ×1 |
| Adafruit SI1145 (УФ-сенсор) | ×1 |
| SparkFun Soil Moisture Sensor (влажность почвы) | ×1 |
| Adafruit Waterproof DS18B20 (температура почвы) | ×1 |
| Провода-перемычки | ×1 |
Инструменты
- Паяльник
О проекте
Обзор
Земля — драгоценный ресурс. Сельское хозяйство сталкивается с вызовами: нужен правильный микроклимат, защита от засухи, болезней. Концепция «умного земледелия» (smart farming) позволяет удаленно мониторить поля, но готовые системы дороги и не масштабируются.
SmartAgro создает сеть недорогих устройств, легко размещаемых на поле. Они собирают атмосферные данные, параметры почвы и освещенность, отправляя в облако для визуализации на дашборде. Любая ферма, любого размера, может внедрить масштабируемую сеть датчиков с предупреждением о засухе.


Функциональность
Устройства берут замеры с заданным интервалом. Данные логируются в CSV на SD-карту и отправляются в бэкенд (Soracom) для отображения на дашборде. Проект состоит из фронтенда (физические устройства) и бэкенда.
Фронтенд (устройство на поле)


SD-карта: Данные дописываются в datalog.csv. При старте проверяется наличие файла — дописываем или создаем новый с заголовком.

Питание: LiPo через порт, пауэрбанк или батареи на VIN. Устройство спит между замерами для экономии.
Отправка данных: Через GSM на Soracom в JSON:
{ "Latitude":53.3570404, "Longitude":-6.2609935,
"soilTemp":20.56, "soilHumidity":40,
"atmoTemp":22.12, "atmoHumidity":62,
"uvLight":0.00, "irLight":257, "deviceName":"device1" }
Бэкенд (Soracom)
Данные принимает Soracom Air, собирает Soracom Harvest, визуализирует Soracom Lagoon.

Дашборд: Местоположение устройств и все сенсоры на карте/графиках.


Алерты: Email-уведомления при аномальном УФ-индексе или влажности почвы.
Преимущества
- Визуализация данных в любое время, откуда угодно.
- Легкое масштабирование — добавляйте устройства в флот.
- Ниже стоимость рыночных решений.
Сборка проекта
Шаг 1: Необходимое оборудование
- Arduino MKR GSM
- Arduino MKR MEM Shield
- GY-21 (темп. и влажность воздуха)
- Водонепроницаемый DS18B20 (темп. почвы)
- SI1145 (УФ/ИК/видимый свет)
- Soil Moisture Sensor
- 2×AA батарейный отсек (или LiPo)
- Soracom SIM
- SD-карта
- Перемычки

Шаг 2: Монтаж схемы
Требуется паяльник. Схема в Fritzing-файле. Не забудьте установить MEM Shield на плату!

Шаг 3: Структура кода
4 основных раздела:
- Prepare SD — проверка/создание
datalog.csv - Collect Data — опрос всех датчиков
- Burn Data to SD — дописывание строки в CSV
- Send Data to Soracom — HTTP POST JSON на harvest.soracom.io
Примеры функций (упрощенно):
bool checkFile() { if(SD.exists("datalog.csv")) return true; else return createFile(); }
void collectData() { /* опрос GY-21, DS18B20, SI1145, Soil Moisture */ }
bool burnData(String data) { /* append к CSV на SD */ }
void parseData(String json) { /* HTTP POST к Soracom Harvest */ }
Шаг 4: Настройка переменных
deviceName— имя устройства (в JSON для идентификации в флоте)sleepTime— сон между замерами (мс)proDebug— true для отладки (требует Serial Monitor), false в поле
Шаг 5: Подготовка SD-карты
Форматируйте в FAT32.

Шаг 6: Загрузка кода
Подключите MKR GSM, загрузите скетч (режим 1 для настройки). Окуните датчики в воду, нажмите кнопку — данные уйдут в Soracom. Повторите несколько раз.
Шаг 7: Настройка Soracom (Аккаунт + SIM + Harvest)
Регистрация аккаунта, добавление SIM, создание группы, включение Harvest.

Шаг 8: Настройка Soracom Lagoon (Дашборд + Алерты)
Создание дашборда, добавление виджетов, настройка email-алертов по УФ и влажности почвы.

Библиотеки
- ArduinoLowPower, MKRGSM, Wire, OneWire, DallasTemperature, RTCZero, SPI, SD
Корпус
Спроектирован корпус (желательно прозрачная крышка для УФ-сенсора).


Использование стороннего SD-модуля
MEM Shield удобен и компактен. Если используете другой SD-модуль (обычно 5В) — нужен логический преобразователь 3.3В → 5В.
Предыстория
Идея пришла в автобусе мимо полей. Узнал о стоимости промышленных систем — непосильно для мелких фермеров. Решил использовать дешевый Arduino для мониторинга множества параметров, делая IoT доступным для любого хозяйства.

Код
Полный код SmartAgro
Доступен в репозитории проекта (ссылка в исходнике).
Схемы

schematics_rrBJ3HiIfc.fzz
Производственный процесс
- Arduino-датчики: типы, применения и реальные проекты
- Построение доступной беспроводной сети датчиков для дома
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
- Цифровой стадиометр на Arduino: отслеживание роста лазерным датчиком VL53L0X
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266
- Сенсорная башня на Arduino Cloud: Мониторинг температуры, движения и газа
- Умный водяной пистолет с датчиком движения на Arduino Nano
- Создание PHP-веб-интерфейса для управления Arduino Uno
- Компактный радар на Arduino Nano с HC-SR04 и дисплеем 1.8"