Умная буя: обзор проекта — сборка, электроника, 3D-печать и дашборд
Компоненты и материалы
| Arduino Nano R3 | × | 1 |
| Raspberry Pi Zero Wireless | × | 1 |
О проекте
Краткий обзор проекта «Умная буя»
Привет всем! Это краткое резюме нашего проекта умной буи. Техническую реализацию разберем в отдельных постах: электроника, 3D-печать, дашборд.
Необходимое оборудование
Для полной сборки нужно много компонентов. Полные списки для каждого этапа будут в соответствующих уроках, а здесь — общий контекст:
- Arduino Nano — Amazon
- Raspberry Pi Zero — Amazon
- Аккумулятор 18650 — Amazon
- Солнечные панели — Amazon
- Блокирующие диоды — Amazon
- Контроллер заряда — Amazon
- DC-DC преобразователь (buck booster) — Amazon
- GPS-модуль — Amazon
- GY-86 (акселерометр, гироскоп, барометр, компас) — Amazon
- Датчик температуры воды — Amazon
- Модуль мониторинга питания — Amazon
- Модуль реального времени (RTC) — Amazon
- Радиомодули — Amazon
- I²C-мультиплексор — Amazon
- 3D-принтер — Amazon
- PETG-пластик — Amazon
- Эпоксидная смола — Amazon
- Грунт-спрей — Amazon
- Веревка — Amazon
- Плавучи — Amazon
- Клей — Amazon
Весь код: https://gitlab.com/t3chflicks/smart-buoy.
Что делает буя?
Датчики измеряют: высоту волн, период волн, волновую мощность, температуру воды, температуру воздуха, атмосферное давление, напряжение, потребление тока и GPS-координаты. В идеале также направление волн — мы были близки к решению, но это сложная задача, над которой работает научное сообщество. Если кто знает эффективный способ — пишите, будем благодарны!
Все данные передаются по радио на базовую станцию (Raspberry Pi). Дашборд для отображения создан на Vue JS.
Сборка
Корпус буи
Это самая сложная 3D-печать в нашем опыте. Много нюансов: морская среда, солнце, влага. Подробнее в отдельной серии. Кратко: напечатали почти полую сферу в двух половинах. Верхняя — со слотами для солнечных панелей и отверстием для радиоволны. Нижняя — с отверстием для датчика температуры воды и ручкой для веревки.
После печати PETG: шлифовка, грунт-спрей, несколько слоев эпоксидной смолы. Электронику поместили внутрь, загерметизировали датчик температуры, антенну и солнечные панели клеевым пистолетом. Две половины склеили суперклеем StixAll.





И надеялись, что это герметично…
Электроника буи
Много датчиков, подробности в соответствующих уроках. Здесь — кратко.
Питание: аккумулятор 18650, заряжаемый четырьмя 5V солнечными панелями. Постоянно запитан только модуль реального времени (RTC). Он через транзистор включает питание остальной системы. При включении система снимает показания со всех датчиков, включая напряжение с модуля мониторинга питания. Это значение определяет время сна до следующего измерения. Устанавливается будильник, система выключается!
Схема: множество датчиков + радиомодуль на Arduino. GY-86, RTC, модуль питания, I²C-мультиплексор — по I²C. Мультиплексор нужен, так как GY-86 и RTC имеют одинаковый адрес. Радиомодуль — по SPI. Изначально был SD-карта для бэкапа, но библиотека SD слишком велика — отказались.



Код структурирован логически: отдельные файлы, подключаемые через main-файл — удобно работало.
Электроника базовой станции
Raspberry Pi Zero с радиомодулем. Корпус отсюда: https://www.thingiverse.com/thing:1595429 — спасибо автору!
После загрузки кода на Arduino, на Raspberry Pi просто запускаем receive.py для приема данных.
Один из участников T3ch Flicks — веб-разработчик, недавно изучивший Vue JS. Он создал отличный дашборд.

Дашборд
Полное описание создания дашборда — отдельная большая тема. Если интересно — веб-разработчик с радостью сделает туториал!
Файлы на Raspberry Pi → запуск сервера → дашборд с данными. Для разработки добавлен генератор тестовых данных — запустите, чтобы увидеть заполненный дашборд.


Версия 2??
Проблемы
- Главная — невозможность обновить код после герметизации. Решение: USB-порт с резиновой заглушкой, но это усложнило бы водонепроницаемость.
- Алгоритмы определения волн примитивны. Много времени ушло на математику объединения данных магнитометра, акселерометра и гироскопа. Нашли интересное видео, но не помогло. Если кто разбирается — помогите улучшить точность!
- Некоторые датчики вели себя странно. Датчик температуры воды показывал на ~10° выше реальной. Причина: брак или нагрев от электроники.
Улучшения
- Arduino был неплох, но SD-карту пришлось убрать из-за памяти. Можно перейти на Arduino Mega, Teensy или другой Raspberry Pi Zero — но дороже и больше потребление.
- Радиомодуль дает пару км в прямой видимости. С множеством буев можно организовать mesh-сеть. Варианты дальней связи: LoRa, GSM. Если использовать их — возможно, mesh-сеть вокруг острова!
Применение в научных целях
Бую построили и запустили на Гренаде (малый остров в южно-карибском море). Общались с правительством Гренады — им нужны количественные измерения характеристик воды. Автоматизация исключит человеческий фактор и ошибки, даст контекст для понимания изменений побережья. Также предложили добавить измерение ветра — пока не знаю как, идеи приветствуются. Важно: хотя технологии для прибрежных исследований развиваются, до полного внедрения еще далеко.
Спасибо за чтение! Видео на YouTube. В части 1 — измерения волн и температуры. Если понравилось — поддержите на Patreon. Спасибо Джакомо — нашему первому спонсору!

Следующий пост: измерения волн и температуры — https://create.arduino.cc/projecthub/t3chflicks/smart-buoy-making-wave-and-temperature-measurements-257ca1
Код
Репозиторий Smart Buoy
https://gitlab.com/t3chflicks/smart-buoy
Схемы


Производственный процесс
- Топ-5 преимуществ умных складских систем для современной логистики
- Истории успеха NB-IoT: умные города, сельское хозяйство и коммунальные сети
- Умное управление отходами: как IoT повышает эффективность и снижает мусор
- Умные города: доставка осязаемых выгод через проверенные решения связности
- Умный бармен: создайте свою Raspberry Pi-станцию для коктейлей
- Умный светофор: адаптивное уличное освещение на базе IoT
- Интеллектуальное умное мусорное ведро: оптимизация сбора отходов с IoT-датчиками
- Умная теплица IoT на Arduino и Azure: датчики, автополив и удалённый контроль
- Autodesk Smart Manufacturing: автоматизируйте рабочий процесс и свяжите разработку продукта
- Умное производство (Smart Manufacturing): трансформация производства с IoT