Постановка задачи
Всё чаще можно слышать, что Интернет становится «Интернетом вещей». Всё больше устройств подключается к сети и начинают жить по своим собственным (заложенным производителями) законам. Часть этих устройств подключается к сети с помощью проводов, часть — с помощью Wi-Fi, а оставшаяся часть — с помощью 2G/3G/4G мобильных технологий. Если речь идёт о стационарных устройствах, работа которых имеет важное значение, то их, как правило, подключают с помощью проводов (медь, оптика, xDSL). В небольшом радиусе от роутера также часто используется Wi-Fi, ну а если требуется подсоединить к сети транспорт, то здесь, понятно, используется 2G/3G/4G. В качестве примера таких устройств можно назвать холодильники, микроволновки, кофеварки и стиральные машины.
Я же хотел бы рассмотреть несколько иной случай. Предположим, есть у нас набор датчиков, информация от которых нам достаточно важна, но при этом мы готовы смириться с частичной потерей данных и нас не очень беспокоит их несвоевременная доставка. Например, мы мониторим показания температуры и влажности в лесном массиве. Пусть у нас будет 100 устройств с датчиками. Если мы получим информацию с запозданием в несколько часов — это не так страшно. Если часть устройств выйдет из строя — будем считать, что мы компенсируем этот недостаток слегка избыточным количеством этих самых устройств-датчиков. Давайте рассмотрим ситуацию с экономической точки зрения. Тянуть провода к каждому из устройств — очень затратно. К тому же на поддержку инфраструктуры ежемесячно будут уходить серьёзные суммы (вдруг медведь или кабан кабель порвёт или грибники себе домой утащат). Wi-Fi тоже не выход. Где же взять для такие дальнобойные модули и как их запитать? Можно, конечно монтировать их где то на столбах, но тогда сколько надо заплатить за установку этих самых столбов? Может использовать 2G/3G/4G? Пожалуй вариант, однако, если плотность населения невелика то может там сотовой связи и нет вовсе или она плохая и плюс питание и затраты на сотовую связь помноженные на 100. Так что же выхода нет? Давайте подумаем.
Возможное решение
А что если не бегать за связью, а связь будет бегать за нами, точнее ходить, ездить, летать по определённому маршруту, так чтобы посредством беспроводной связи можно было считывать накопленную информацию с датчиков, накапливать её и передавать куда нужно пусть даже с помощью E-mail?
Прежде всего исходим из того, что датчики потребляют энергии немного, тогда можно использовать обычные солнечные батареи с аккумуляторами, которые днём накапливают энергию, а ночью отдают. Беспроводные модули Wi-Fi сейчас стоят недорого и существуют для Arduino, Raspberry Pi, Cubeitrack и других систем.
Вот как, на мой взгляд, может выглядеть сценарий передачи информации:
Сценарий устройства с датчиками (клиента)
- Устройство накапливает показания от датчиков.
- Параллельно, возможно по расписанию (в целях экономии энергии), идёт мониторинг эфира на наличие сети с определённым SSID.
- В случае обнаружения заданной сети происходит подключение к ней.
- Далее идёт передача данных на определённый сетевой порт и, возможно, получение «ЦУ из Центра».
Сценарий устройства-посредника (почтальона)
- Приложение слушает определённый порт и принимает посылки. Каждая посылка содержит адрес, кому она предназначается и собственно данные. В целях защиты информации её можно шифровать и использовать механизмы аутентификации дабы избежать возможной подмены.
- При наличии подключения к сети Интернет отправлять письма адресатам или использовать другие протоколы для передачи данных (ftp, http, ...).
- Возможно также получение обратных сообщений, их загрузка и последующая передача устройствам-клиентам во время следующих сеансов связи.
Сценарий головного устройства (сервера)
- Просматриваем почту на предмет наличия новых сообщений.
- Получаем, обрабатываем (добавляем в базу данных).
- При необходимости генерируем обратные посылки и отправляем их.
Wi-Fi держать всё время включённым нет смысла, можно, как было сказано выше, выходить на сеансы связи по расписанию. Кроме того основная энергия тратится на передачу, а передача начнётся только когда почтальон будет в нашей зоне видимости.
Кто же может быть почтальоном?
- Автотранспорт, курсирующий по определённому маршруту
- Дрон
- Малая авиация
- Велосипедист
- Просто человек со смартфоном
Возможные применения
- Снятие показаний с приборов учёта (счётчики газа, воды, тепла, электричества). Ходит мужик по подъезду со включенным смартфоном и собирает данные.
- Датчики, собирающие информацию о ж./д. грузах, автотранспорте и т.д.
- Сбор и передача информации о радиационном фоне или химических загрязнениях, а также другие характеристики (температура, давление, сила ветра и прочее).
- Звуковая и фото/видео фиксация определённых событий: правонарушений, наблюдение за местностью, разведдеятельность.
- Банальная электронная почта в тех глухих местах, где есть движение автотранспорта или летает малая авиация, а Интернета нет (развивающиеся страны).
Необходимый инструментарий
- Программа-почтальон для разных операционных систем: Android, iOS, Linux, Windows и др.
- Клиентские библиотеки для Arduino-подобных маломощных устройств или устройств на основе Raspberry Pi и др. А также для ноутбучных и десктопных ОС.
В заключение
Думаю многие серъёзные игроки разрабатывают сегодня проекты для расширения доступа в сеть Интернет. В качестве примера можно назвать Google Loon. Тема «Интернета вещей» в ближайшее время будет развиваться.
Собственно, хотелось бы узнать мнение сообщества есть ли смысл в разработке и стандартизации софта для озвученных применений, а также пригласить желающих к участию в данном проекте.
Автор: alekseev_ap