SPIFFS – (Serial Peripheral Interface Flash File System) файловая система флеш-памяти, подключаемой по последовательному периферийному интерфейсу. Простыми словами: есть микроконтроллер ESP32 (рисунок 1), у него есть встроенная перезаписываемая энергонезависимая NOR-память, в которой хранятся: настройки (Preferences), загрузчик (Bootloader), микропрограмма (скомпилированный скетч), файловая система (SPIFFS) и ещё что-нибудь, типа обновления "по воздуху" (OTA).
Рубрика «M5Stack»
ESP32 и файловая система SPIFFS
2020-01-09 в 10:49, admin, рубрики: arduino, esp32, esp8266, M5Stack, SPIFFS, память, программирование микроконтроллеровШлюз для UDP между Wi-Fi и LoRa
2019-12-26 в 13:16, admin, рубрики: lora, M5Stack, wi-fi, Беспроводные технологии, программирование микроконтроллеров, связь, Сетевое оборудование, Сетевые технологии, сетьДелаем шлюз между Wi-Fi и LoRa для UDP
У меня была детская мечта — выдать каждому бытовому «безВайФайному» устройству билет в сеть, т. е. IP-адрес и порт. Спустя какое-то время я понял, что не стоит откладывать. Надо взять и сделать.
Техническое задание
Сделать шлюзом M5Stack с установленным Модулем LoRa. Шлюз будет подключён к Wi-Fi-сети, в которой получиь по DHCP локальный IP-адрес. Шлюз с определённой периодичностью будет вещать в «LoRa-эфир» своё имя (аналог SSID для Wi-Fi) и диапазон допустимых портов, чтоб другие устройства знали, что есть такая сеть, к которой можно подключиться и в каком диапазоне можно повыбирать свободный порт. Поскольку это будет прототип, аутентификация не в этот раз. Новые устройства-клиенты будут находить доступную LoRa-сеть и передавать ей выбранный порт. После того, как шлюз получил от нового клиента порт, проверяет свободен ли он, если да, то регистрирует нового клиента и начинает слушать данный порт на собственном асинхронном UDP-сервере. После регистрации клиент получит согласие или отказ на использование заявленного порта. Порядок работы отображён в таблице 1.
Таблица 1
сторона | направление и данные | сторона | сеанс |
---|---|---|---|
[ клиент ] | <— сигнал-маяк — | [ шлюз ] | 0xA1 |
[ клиент ] | — выбранный порт —> | [ шлюз ] | 0xB1 |
[ клиент ] | <— согласие или отказ — | [ шлюз ] | 0xA2 |
[ клиент ] | — UPD-пакет —> | [ шлюз ] | 0xB2 |
[ клиент ] | <— UPD-пакет — | [ шлюз ] | 0xA3 |
[ сеть ] | <— UPD-пакет — | [ шлюз ] | 0xC1 |
Передо мной на столе лежат всякие Модули для M5Stack и скучают. Давайте возьмем LoR’у и развлечёмся с ней. Сама концепция модулей прекрасна! Что тут скажешь? Но, модули у меня первой ревизии, в которых ужаснейшая встроенная антенна, выполненная на гибкой печатной плате и приклеенная к боковой стенке корпуса. Я проводил однажды полевые тесты таких модулей (можно посмотреть на русскоязычном канале на
). Естественно, пришлось удалить эти рудименты и впаять стандартные спиралевидные антенны, которые идут в комплекте с Ra-01. После такой кастомизации дальность связи заметно улучшилась, но появился побочный момент — антенна имеет диаметр больший, чем допустимое расстояние между модулями. Пришлось отказаться от Завершающего модуля на время проекта.