Сканер WIFI диапазона на основе RP2040 или ESP32 и NRF24L01
- Войдите на сайт для отправки комментариев
Пнд, 12/09/2022 - 11:24
Адаптировал проект Сканера к модулям Rasberry PI Pico и ESP32.
Для вывода информации искользуется TFT дисплей 1.8" 128х160 на чипе ST7735.
Задействованы два SPI интерфейса, один под монитор, второй под NRF24.
Форумчане посоветовали разместить информацию в проектах, если это действительно имеет смысл,
то просьба следующий пост не цитировать, там будут размещаться актуальные версии прошивок.
Адаптация этого проекта
Первый пост, здесь будут размещаться актуальные версии прошивок.
ESP32 версия 0.01b
Добавил сканирование WiFi сетей, вывод информации в монитор порта (максимум) и на экран.
Объединил скетчи для Rasberry PI Pico (и иные) и ESP32 в один, иначе замучаешься шоркаться по версиям.
Скетч крайней версии, поддерживаются дисплеи ST7735 (128*160) и ILI9341 (240*320):
// 07.10.2022 - Добавлена поддержка дисплея ILI9341
// - в локальной библиотеке ST77XX расширен набор цветов
// - в локальной библиотеке ILI9341 исправлена последовательность пинов для &SPI
// - добавлен вывод на большой дисплей частоты и MAC адресов обнаруженных устройств.
// 09.10.2022 - Дорисована сетка каналов, исправлены мелкие ошибки,работа проверена с конфигурацией
// дисплея и модуля NRF24 на портах SPI по умолчанию, альтернативное подключение
// не проверялось. (SPI0 - NRF24, SPI1 - дисплей.) Для ESP32 реализован только SOFT SPI
// так как в ядре прописан только один SPI и по умолчанию выбран SPI3,(hard-в реализации )
// Для ESP32 распиновка SPI выбрана в соответствии с ядром GENERIC.
// Режим HARD SPI создаёт помехи на NRF модуль на частотах до 500Mhz (выше не проверялось)
// При монтаже линии SPI делаем как можно короче!!!
// Из планируемого - добавление энкодера и усилителя на вход NRF24 что даст возможность
// видеть сигналы с уровнем -100дб и просматривать конкретный участок частотного диапазона.
Added scanning of WiFi networks, output of information to the port monitor (maximum) and to the screen. I combined sketches for Rasberry PI Pico (and others) and ESP32 into one, otherwise you'll get tired of blowing your nose on versions. Sketch of the extreme version:
Для выравнивания текста (SSID - WiFi.SSID(i) ) необходимо получить длину строки,
если делать так получаю независимо от длины строки - 16, как это одолеть?
PS странно почему 16, по стандарту под длину SSID выделено 32 байта
ssid.length()
Не тупи, sizeof-ом ты мериишь скока байт занимают в памяти члены класса String, не более
ssid.length()
Не тупи, sizeof-ом ты мериишь скока байт занимают в памяти члены класса String, не более
после двух корон что-то в консерватории не то, даже сухое вино не могу...
В скетче для ESP32 одолел вывод информации в монитор порта, по максимому, что можно вытащить, с производителем оборудования пока не заморачивался и вывод на экран.
Версия бэтта вполне работает!
На ESP32 не все дисплеи заработали на 50-ти мегагерцовой шине SPI, добавил раздельную установку скорости шины для ESP32 и RP2040!
Поправил некоторые мелкие огрехи. Если кто-то захочет поэкспериментировать дайте знать о багах.
На ESP32 не все дисплеи заработали
и много дисплеев пробовал?
На ESP32 не все дисплеи заработали
и много дисплеев пробовал?
у меня их всего 5 штук (было, разодрал их в попытке промыть, теперь минус два ))) )
Для чего нужна кнопка в этом проекте? При нажатии загорается АТТ, которая меняет цвет АТТ, график уровня сигнала по частотам перестает строиться на 24L01, перезагрузка не помогает, перепрошивка тоже. До нажатия кнопки график нормально отображался
Для чего нужна кнопка в этом проекте? При нажатии загорается АТТ, которая меняет цвет АТТ, график уровня сигнала по частотам перестает строиться на 24L01, перезагрузка не помогает, перепрошивка тоже. До нажатия кнопки график нормально отображался
задумана для отображения сигнала в узком диапазоне, в стадии написания..., нажмите резет, всё должно работать без перепрошивки...
PS по ESP32 пока не скажу, но на RP2040 если задирать скорость SPI начинают лезть помехи в широком диапазоне, до 450 мегагерц точно, SPI в Soft режиме этим не грешит...
PS похоже у вас кнопка залипает
Шустро по каналам бегает ESP, опрос 128 каналов на 24L01 занимает 130 милисекунд.
Надо сделать обнаружение дронов. Пока простое обнаружение излучения в диапазоне 2.4 - 2.52 Мгц. Железка запоминает излучения в течении минуты-пяти минут и если появляется новое излучение то сигналит. Конечно, железка не обнаружит излучение если оно попадет в существующие пакеты WiFi сигналов, поэтому надо делать с распознованием протоколов жедлезку, но это дальнейшее будет развитие
Шустро по каналам бегает ESP, опрос 128 каналов на 24L01 занимает 130 милисекунд.
Надо сделать обнаружение дронов. Пока простое обнаружение излучения в диапазоне 2.4 - 2.52 Мгц. Железка запоминает излучения в течении минуты-пяти минут и если появляется новое излучение то сигналит. Конечно, железка не обнаружит излучение если оно попадет в существующие пакеты WiFi сигналов, поэтому надо делать с распознованием протоколов жедлезку, но это дальнейшее будет развитие
нужна хорошая колинеарная антенна и малошумяший предусилитель (на 40 дб однако) на входе, далее сигнал подаём на циркулятор, с циркулятора на NRF24 , а выход циркулятора нагружаем резистором 50 Ом и, будем видеть сигналы до уровня -120дб
Не могу понять, что такое АТТ? На что идет проверка if (signalStrength[MHz] / 73 >= 78) ?
Переписал под больший дисплей ili9341 2.8", надо запоминание сделать, чтобы железка сигнализировала при появлении новых радиоизлучений
АТТ это стандартный синоним включенного аттенюатора, здесь намётки на его программную реализацию, всё условно, сигнал не калибровался
По дисплею, я сам жду на ILI9341...
В принципе можно многое, особенно если подключить использование известной библиотеки для радио модулей, NRF24 там есть )))
Не могу понять, что такое АТТ? На что идет проверка if (signalStrength[MHz] / 73 >= 78) ?
Переписал под больший дисплей ili9341 2.8", надо запоминание сделать, чтобы железка сигнализировала при появлении новых радиоизлучений
можно конечно и так, но для универсальности думаю надо определения цветов в отдельный файл вынести, тогда в скетче потребуются минимальные правки, чтобы новый дисплей применить,смотрим:
Дисплей на контроллере ILI9341 3.2"
Быстренько накидал код для проверки (ESP32 только Soft SPI):
Крайняя самая свежая версия пост #1
Привет. Тоже задумал детектор коптеров. К вашему железу можно добавить rx5808 приемник, чтобы сканировать диапазон 5G8. Эти модули используются в дешевых приемниках RG02 там их два и отдельно продаются на али. Модуль выдает композитный видео и аудио, RSSI, частоты настраиваются по SPI или дискретно.
https://aliexpress.ru/item/763399767.html?spm=a2g2w.orderdetails.0.0.79764aa6hyZygP&sku_id=54234247208&_ga=2.44980196.1532547175.1666633671-692580827.1652964311
Но для начала попробую повторить ваш скетч на m5stack модуле, там вроде ili9341
https://shop.robotclass.ru/item/1496
Привет. Тоже задумал детектор коптеров. К вашему железу можно добавить rx5808 приемник, чтобы сканировать диапазон 5G8. Эти модули используются в дешевых приемниках RG02 там их два и отдельно продаются на али. Модуль выдает композитный видео и аудио, RSSI, частоты настраиваются по SPI или дискретно.
https://aliexpress.ru/item/763399767.html?spm=a2g2w.orderdetails.0.0.79764aa6hyZygP&sku_id=54234247208&_ga=2.44980196.1532547175.1666633671-692580827.1652964311
Но для начала попробую повторить ваш скетч на m5stack модуле, там вроде ili9341
https://shop.robotclass.ru/item/1496
хороший девайс! Какой дисплей без разницы, у меня есть версия под десяток дисплеев и пяток тачскринов )))
Добавить можно, я так понимаю нужен один аналоговый пин для измерения RSSI и три пина для переключения диапазонов
Кстати модуль 5803 получше будет, у него 48 каналов (на самом деле 47) и чувствительность на 5 децибел выше, но пинов для управления потребуется поболее аж 6!
Тему перенёс на новый форум, там один из самых свежих скетчей
Для 5808 есть возможность выбирать точно частоту через SPI шину вместо грубого шага через CS
https://kt-315.livejournal.com/5376.html
https://bitbucket.org/atmega128/reciver-module-rx5808/src/67d9a9660b9d3f...
А вот по 5803 информации намного меньше. Но на али они продаются и я закажу одну штучку на поиграться.
PS. Писать в новый форум или сюда?
Для 5808 есть возможность выбирать точно частоту через SPI шину вместо грубого шага через CS
https://kt-315.livejournal.com/5376.html
https://bitbucket.org/atmega128/reciver-module-rx5808/src/67d9a9660b9d3f...
А вот по 5803 информации намного меньше. Но на али они продаются и я закажу одну штучку на поиграться.
PS. Писать в новый форум или сюда?
я перенёс тему в новый, этот скоро прикроют
Для определения БПЛА проект на nrf24l01 подойдет при загородных условиях при отсутствии WiFi сетей. В городе много помех на этой частоте и чувствительность модуля оставляет желать лучшего. В общем для БПЛА я его не буду использовать.
Сам взял RX5808, пока разбираюсь с прошивками, модуль пришел без сопротивления, которое надо отпаивать для включения SPI.
Еще заказал приемник Flysky 2.4G 6CH i-bus PPM, для телеметрии. Ждем. Не знаю какие еще модули заказать. Как передается видео в цифровом виде на 2.4 и 5 ГГЦ? Какие модули для этого нужны. По телеметрии какие еще модули других протоколов можно взять на Али? Понятно, что с этим Flysky 2.4G 6CH будут трудности, там надо ключ прописывать передатчика и как без ключей мониторить эфир надо будет думать.
Есть еще 1-1.3 ГГц частоты, потом 868-927 частоты и слышал еще на 433 что-то летает. Нужна инфа по модулям телеметрии и передачи видео для БПЛА
Отвечу пока здесь.
Летают во всех диапазонах, сейчас моделистов стало намного меньше, чем 10 лет назад. Возможно поэтому используют обычно готовые модули на 2,4 для управления и 5,8 для видео. Управление считается приоритетней и связь должна быть стабильнее, поэтому обычно для пульта выбирали частоту ниже, меньше помех от видео передатчика на борту.
Цифровое управление DJI использует DSSS для канала. Обычные аппы использовали FHSS. Ключи если они вообще используются, у всех производителей разные.
Полноценный детектор БПЛА - думаю это сложнейшая система с направленными антеннами, работающая на многих диапазонах, декодирующая разные протоколы, перебирающая ключи.... И возможно они строятся на мощных системах с многоканальными SDR и моощными процами. Но можно поигратся с gnuradio и свистком SDR )
Этот проект зацепил своей автономностью и простотой.
Но можно поигратся с gnuradio и свистком SDR
для частот выше 1700MHz что-то не попадались (именно свистки)
HackRF до 6 ГГц
это саамый доступный и действительно крутой для такой низкой цены ! Плюс к нему есть допы с того же али, можно портативный чехол купить, но не знаю насколько он практичный.
Доброго времени суток!
Полностью согласен с тем, что этот проект в первую очередь интересен своей простотой и малой стоимостью. Учитывая специфику подобного устройства - оно должно быть очень простым (наверно достаточно просто видеть наличие радиоизлучения на 2,4 ГГц и возможно отображение занятости условных каналов - это для упрощенного определения "своя-чужая птичка"). Должно быть универсальное питание и компактные размеры. Минимум индикации - "всё спокойно и внимание!" и номера каналов может условный уровень сигнала. И всё, большего пока не надо.
Более сложные и навороченные устройства тоже нужны, но это уже совсем другой уровень.