Обсуждение NRF52840

azt59

Member
Вопросик на засыпку.
Блютус блютусом, но нужна связь с локальным сервером(роутер с mqtt). Варианты:
1. скрестить nrf52- с rtl8710 или esp
2.скрестить nrf и ethernet shield w5500
3. Купить nrf52 usb-dongle и по usb воткнуть в роутер и писать софт под openwrt
4. Ничего не изобретать а задействовать что-то готовое если таковое имеется

Пусть по минимуму функционал :датчик периодически коннектится к серверу ble и отсылает допустим температуру и заряд АКБ, наш "gateway" транслирует эти сообщения и размещает в неком топике mqtt. И обратно, если в топике mqtt посвященному данному датчику появляется какая-то инфа например сигнал на включение gpio1 гейтвей ждёт следующего коннекта от клиента и передаёт ему сигнал на включение чего либо.
Естьп что-то подобное? На открытых адекватных протоколах или изобретать велосипед?
Я пока что склоняюсь к связке nrf52840->>w5500->>mqtt
 
  • Like
Реакции: pvvx

azt59

Member
В спеках от нордика виднеется нокое устройство ble enabled router, что это и как оно устроено я таки не понял
 

pvvx

Активный участник сообщества
Вопросик на засыпку.
Блютус блютусом, но нужна связь с локальным сервером(роутер с mqtt). Варианты:
1. скрестить nrf52- с rtl8710 или esp
2.скрестить nrf и ethernet shield w5500
3. Купить nrf52 usb-dongle и по usb воткнуть в роутер и писать софт под openwrt
4. Ничего не изобретать а задействовать что-то готовое если таковое имеется

Пусть по минимуму функционал :датчик периодически коннектится к серверу ble и отсылает допустим температуру и заряд АКБ, наш "gateway" транслирует эти сообщения и размещает в неком топике mqtt. И обратно, если в топике mqtt посвященному данному датчику появляется какая-то инфа например сигнал на включение gpio1 гейтвей ждёт следующего коннекта от клиента и передаёт ему сигнал на включение чего либо.
Естьп что-то подобное? На открытых адекватных протоколах или изобретать велосипед?
Я пока что склоняюсь к связке nrf52840->>w5500->>mqtt
В коем веке хорошие вопросы :)
По пунктам разбирать не буду, но большая часть итого застряло на https://esp8266.ru/forum/threads/xiaomi-gateway-3-0.4736/
Там приведены все ответы местного "сообщества" на ваши вопросы. :)
Изобретать своё при полностью готовом устройстве до 1.5 тр. не особо...
 

pvvx

Активный участник сообщества
1. скрестить nrf52- с rtl8710 или esp
2.скрестить nrf и ethernet shield w5500
3. Купить nrf52 usb-dongle и по usb воткнуть в роутер и писать софт под openwrt
4. Ничего не изобретать а задействовать что-то готовое если таковое имеется
5. Запрограмить USB шлюз Mesh/Zigbee в TLSR826x. Примеры в Telink SDK, но как по мне - требуется переделка дров USB - уход от их USB устройства "принтер" на что-то более менее стандартное. На типовой USB-COM к примеру...
 

pvvx

Активный участник сообщества
6. Припаять BLE чип к этой фигне "Wir300n" (что-то порядка 700 руб на али)
WR02M-case.gif
, к выведенным там на плате ногам UART и писать-писать на OpenWRT.
 

azt59

Member
В коем веке хорошие вопросы :)
По пунктам разбирать не буду, но большая часть итого застряло на https://esp8266.ru/forum/threads/xiaomi-gateway-3-0.4736/
Там приведены все ответы местного "сообщества" на ваши вопросы. :)
Изобретать своё при полностью готовом устройстве до 1.5 тр. не особо...
Если правильно понимаю там некая закрытая пропиретарщина от сяоми, имею блютуз девайс от сяо(mi smart kettle), смотрел как люди ковыряют его протокол..там какие-то заковыристые процессы..по привязке к mi home, аутентификации через облако и прочее прочее.

По нордику на данный момент нагуглил следующее:
Берём роутер с openwrt+ bluetooth 4.0 свисток. На роутере поднимаем 6LoWPAN и поддержку ipv6
Берём nrf52 и запускаем на нем примеры из sdk из папки iot-experemental

Но как по мне это перегруз для термометра на батарейном питании, хотя надо тестировать может оно и в пару пакетов все уместится)
 

pvvx

Активный участник сообщества
Если правильно понимаю там некая закрытая пропиретарщина от сяоми, имею блютуз девайс от сяо(mi smart kettle), смотрел как люди ковыряют его протокол..там какие-то заковыристые процессы..по привязке к mi home, аутентификации через облако и прочее прочее.

По нордику на данный момент нагуглил следующее:
Берём роутер с openwrt+ bluetooth 4.0 свисток. На роутере поднимаем 6LoWPAN и поддержку ipv6
Берём nrf52 и запускаем на нем примеры из sdk из папки iot-experemental

Но как по мне это перегруз для термометра на батарейном питании, хотя надо тестировать может оно и в пару пакетов все уместится)
Есть же вариант проще, дешевле и что главное качественнее сама связь BLE, да дрова готовые (как всегда от Realtek, но чип CSR) - купить USB брелок
CSR8510 A10 MSFT100.jpg

А далее всё в одном:
Realtek RTL872x (WiFi+BLE5.0)

PS: для nRF места нет ;)
 

azt59

Member
Есть же вариант проще, дешевле и что главное качественнее сама связь BLE, да дрова готовые (как всегда от Realtek, но чип CSR) - купить USB брелок
Посмотреть вложение 8745

А далее всё в одном:
Realtek RTL872x (WiFi+BLE5.0)

PS: для nRF места нет ;)
Речь о готовом драйвере usb-bluetooth? Или каком?
Опять же не хороший тон из блютуса по вайфай слать пакеты) правильнее по-моему сразу на ейзернет, по проводу риска меньше
 

pvvx

Активный участник сообщества
Речь о готовом драйвере usb-bluetooth? Или каком?
Опять же не хороший тон из блютуса по вайфай слать пакеты) правильнее по-моему сразу на ейзернет, по проводу риска меньше
Это без разницы. Но чипы Wifi-BLE не умеют работать одновременно с BLE и WiFi. В прочем и не могут одновременно с LAN.
По этому и возникают 3 контроллера со своими мозгами. Если мозгов у кого из них мало, как это часто в малых SoC, то одновременная работа невозможна как ни крути.
Для решения этого надо много ядер в таком SoC и прочей фени, что увеличивает цену.
 

pvvx

Активный участник сообщества
Увеличение ядер в N раз несет за собой почти квадратичное увеличение объема RAM и скоростей её работы и Flash. Что не сделано в ESP32 и по этой причине он не отличается производительностью от ESP8266. Ограничение их производительности в скорости выборки кода для CPU из Flash и оно равно для обоих - линейное исполнение кода на уровне 10 МГц CPU, что является минимальным пределом для обслуживания WiFi или BLE дров для поддержки хотя-бы соединения (о трафике и разговора нет).
 

pvvx

Активный участник сообщества
nRF52840 имеет ресурсы на работу одновременно BLE и USB1.1. На большее не потянет.
 

pvvx

Активный участник сообщества
События в BLE могут идти со периодом в 7.5 ms и объемом:
1) BLE BT 4.2 до 20+27*5 байт данных - гарантированно для имеющихся и более для продвинутых.
2) BLE BT 5.1 за событие в 7.5 ms – сколько влезет в данный период от скорости и модуляции самого соединения (пару пакетов с 251 байт данных).
Maximizing BLE Throughput Part 3: Data Length Extension (DLE) - Punch Through

Кроме данных для события у нас есть адрес источника и прочие ID. Собирать паковать пакеты BLE лучше по их MTU.

Их необходимо запаковать в пакет пусть к MQTT.
MQTT текстовый и это значит увеличение объема потока минимум в 4 раза.
Итого – необходимо формировать от BLE к MQTT до 166.6 транзакций в сек с размером примерно в ~1 килобайт. Это трафик порядка 200 килобайт по HTTP или к 300 килобайт по HTTPS.

Стандартные дрова USB1.1 могут не справиться, т.к. у них теор.предел 64 000 байта в сек, если не используется следующий уровень - работа с несколькими пакетами (так-же за одно событие как и в BLE) в 1 ms опроса хоста и наличие у обоих расширенного FIFO RX/TX у контроллера для его endpoint. Современные компы поддерживают и USB3.0 и у них FIFO на USB десятки кило...

Но, как ни крути на тот-же USB1.1 USB-COM nRF52 не выведет поток более 500 килобайт в сек (оптимистично). Для HID и прочих bulk с аппаратурой USB1.1 - это до 800 килобайт в сек (сумма обоих направлений RX-TX).
 

pvvx

Активный участник сообщества
Шифровать HTTPS и вообще держать TCP/IP стек по стандарту nRF52840 не сможет. Для этого у него нет необходимых ресурсов по RAM и производительности.
 

azt59

Member
Видимо остается 2 варианта
1. на сервере линукс c mqtt broker-> 6LoWPAN ->ipv6 и BTсвисток а на клиенте голый чип.(энергопотребление под вопросом, зато все почти из коробки должно завестись)
2 писать некое подобие AT прошивки для nrf52840 и управлять им через любой wifi soc по уарт(можно сэкономить питание, писать отлаживать и тестировать много) на выходе web server с которого можно либо почитать либо записать характеристику в nrf52

паковать весь ble траффик в usb или транслировать по wifi очень накладно, и соглашусь что nrf этого не вытянет
 

azt59

Member
сейчас пересоберу openwrt для hlk-7688 с поддержкой ipv6 и 6LoWPAN потестирую как оно работает с mqtt из коробки.
 

cheblin

Member
@azt59 подруга моего друга спрашивает... ;). а что за данные собрались передавать? и в каком объёме?
если это просто термометр в парилке...то и обсуждать нечего.
 
Сверху Снизу