Рецепт простой — берем популярные модули nrf24L01+ (от 0,8$/штука в китаемагах), любой мелкий микроконтроллер (STM8S003 например, младшие STM32, PIC), легкую реализацию TCP/IP стека от Lifelover c we.easyelectronics.ru , задействуем один из МК в качестве шлюза — и профит 🙂
ping 192.168.201.231
Обмен пакетами с 192.168.201.231 по с 32 байтами данных:
Ответ от 192.168.201.231: число байт=32 время=17мс TTL=64
Ответ от 192.168.201.231: число байт=32 время=17мс TTL=64
Ответ от 192.168.201.231: число байт=32 время=17мс TTL=64
Ответ от 192.168.201.231: число байт=32 время=17мс TTL=64Статистика Ping для 192.168.201.231:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 17мсек, Максимальное = 17 мсек, Среднее = 17 мсек
В эксперименте использовались STM32VLDISCOVERY (192.168.201.231) и шлюз на базе PIC24FJ64GA002 + ENC28J60.
При отладке был отловлен аппаратный баг(?) у SPI модуля STM32F100 — флаг BSY, который по даташиту должен был сбрасываться при простое модуля на после последнего тактового импульса — в реальности при частоте SPI порядка 100КГц сбрасывался в середине такта. Повышение частоты работы проблему убирает.
Оптимизаций пока никаких нет, разве что шлюз жестко фильтрует широковещательные и прочие пакеты, которые адресом назначения никак не похоже на клиентские устройства, чтобы не засорять и так не резиновый эфир.
Никаких возможностей радиомодуля по фильтрации пакетов и повторной передаче при потерях тоже не задействовано, это все для версии 2.
Примеры из вышеупомянутого курса вполне работают через такой эрзац вайфай.
Ожидаемый вариант применений — датчики смогут сразу на сервер http запросами писать свое состояние, например.
Или управляться, соответственно, через web-интерфейс. Из очевидных на сейчас граблей — шифрования никакого еще нет, критичные вещи нельзя так открывать.