Нужно подкорректировать скетч. Отправка MAC адреса на SDCard

KokoWRX
Offline
Зарегистрирован: 22.05.2021

Всем привет! Есть ttgo t-display, подключена флешка. Меня есть скетч заготовка, mac адреса отображает в сериал, а на карту не могу настроить запись. Кто может помочь дописать код, чтобы собирались mac адреса устройств находящихся в радиусе действия wifi(желательно уникальных, которых еще не записано на карту, если это возможно) и записи их на карту. Так же на встроенный дисплей нужно вывести информацию о заряде батареи и желательно, сколько собрано уникальных адресов. У. Меня есть заготовка, mac адреса отображает в сериал, а на карту не могу настроить запись. За вознаграждение. Срок сегодня, завтра до обеда

001#include "freertos/FreeRTOS.h"
002#include "esp_wifi.h"
003#include "esp_wifi_types.h"
004#include "esp_system.h"
005#include "esp_event.h"
006#include "esp_event_loop.h"
007#include "nvs_flash.h"
008#include "driver/gpio.h"
009 
010//Display
011#include <TFT_eSPI.h> // Hardware-specific library
012#include <SPI.h>
013TFT_eSPI tft = TFT_eSPI();       // Invoke custom library
014 
015 
016 
017#define LED_GPIO_PIN                     5
018#define WIFI_CHANNEL_SWITCH_INTERVAL  (500)
019#define WIFI_CHANNEL_MAX               (13)
020 
021char mactxt[2];
022 
023uint8_t level = 0, channel = 1;
024 
025static wifi_country_t wifi_country = {.cc="RU", .schan = 1, .nchan = 13}; //Most recent esp32 library struct
026 
027typedef struct {
028  unsigned frame_ctrl:16;
029  unsigned duration_id:16;
030  uint8_t addr1[6]; /* receiver address */
031  uint8_t addr2[6]; /* sender address */
032  uint8_t addr3[6]; /* filtering address */
033     
034  unsigned sequence_ctrl:16;
035  uint8_t addr4[6]; /* optional */
036} wifi_ieee80211_mac_hdr_t;
037 
038typedef struct {
039  wifi_ieee80211_mac_hdr_t hdr;
040  uint8_t payload[0]; /* network data ended with 4 bytes csum (CRC32) */
041} wifi_ieee80211_packet_t;
042 
043static esp_err_t event_handler(void *ctx, system_event_t *event);
044static void wifi_sniffer_init(void);
045static void wifi_sniffer_set_channel(uint8_t channel);
046static const char *wifi_sniffer_packet_type2str(wifi_promiscuous_pkt_type_t type);
047static void wifi_sniffer_packet_handler(void *buff, wifi_promiscuous_pkt_type_t type);
048 
049esp_err_t event_handler(void *ctx, system_event_t *event)
050{
051  return ESP_OK;
052}
053 
054void setup() {
055  // initialize digital pin 5 as an output.
056  Serial.begin(115200);
057  delay(10);
058  wifi_sniffer_init();
059  pinMode(LED_GPIO_PIN, OUTPUT);
060 
061  //Настройки дисплея
062  tft.init();
063  tft.setRotation(1);
064  tft.fillScreen(TFT_BLACK);
065  tft.setTextSize(2);
066  tft.setTextColor(TFT_WHITE, TFT_BLACK);
067  tft.setCursor(5, 5);
068  tft.println(F("WiFi Scaner"));
069}
070 
071void wifi_sniffer_init(void)
072{
073  nvs_flash_init();
074  tcpip_adapter_init();
075  ESP_ERROR_CHECK( esp_event_loop_init(event_handler, NULL) );
076  wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
077  ESP_ERROR_CHECK( esp_wifi_init(&cfg) );
078  ESP_ERROR_CHECK( esp_wifi_set_country(&wifi_country) ); /* set country for channel range [1, 13] */
079  ESP_ERROR_CHECK( esp_wifi_set_storage(WIFI_STORAGE_RAM) );
080  ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_NULL) );
081  ESP_ERROR_CHECK( esp_wifi_start() );
082  esp_wifi_set_promiscuous(true);
083  esp_wifi_set_promiscuous_rx_cb(&wifi_sniffer_packet_handler);
084}
085 
086void wifi_sniffer_set_channel(uint8_t channel)
087{
088  esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE);
089}
090 
091const char * wifi_sniffer_packet_type2str(wifi_promiscuous_pkt_type_t type)
092{
093  switch(type) {
094  case WIFI_PKT_MGMT: return "MGMT";
095  case WIFI_PKT_DATA: return "DATA";
096  default
097  case WIFI_PKT_MISC: return "MISC";
098  }
099}
100 
101void wifi_sniffer_packet_handler(void* buff, wifi_promiscuous_pkt_type_t type)
102{
103  if (type != WIFI_PKT_MGMT)
104    return;
105 
106  const wifi_promiscuous_pkt_t *ppkt = (wifi_promiscuous_pkt_t *)buff;
107  const wifi_ieee80211_packet_t *ipkt = (wifi_ieee80211_packet_t *)ppkt->payload;
108  const wifi_ieee80211_mac_hdr_t *hdr = &ipkt->hdr;
109 
110  printf(   
111    "%02x:%02x:%02x:%02x:%02x:%02x\n",
112    /* ADDR2 */
113    hdr->addr2[0],hdr->addr2[1],hdr->addr2[2],
114    hdr->addr2[3],hdr->addr2[4],hdr->addr2[5]
115  );
116  }
117 
118void loop() {
119   //Дисплей Главный Экран
120//  tft.fillScreen(TFT_BLACK);
121//  tft.setTextSize(2);
122//  tft.setTextColor(TFT_WHITE);
123//  tft.setCursor(5, 5);
124//  tft.println(F("WiFi Scaner"));
125 
126   //Serial.print("inside loop");
127  delay(1000); // wait for a second
128   
129  if (digitalRead(LED_GPIO_PIN) == LOW)
130    digitalWrite(LED_GPIO_PIN, HIGH);
131  else
132    digitalWrite(LED_GPIO_PIN, LOW);
133  vTaskDelay(WIFI_CHANNEL_SWITCH_INTERVAL / portTICK_PERIOD_MS);
134  wifi_sniffer_set_channel(channel);
135  channel = (channel % WIFI_CHANNEL_MAX) + 1;
136   
137}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

KokoWRX пишет:
Срок сегодня, завтра до обеда

А потом что?  Вангуешь, что к тебе придут одинаковые люди в серых пальто, и внимательно глядя в глаза, строго спросют: "А зачем ты, Кока, матьтваю, секретные MAC-адреса собираешь?"

KokoWRX
Offline
Зарегистрирован: 22.05.2021

В РФ, насколько мне известно, нет запрета на сбор MAC адресов телефонов и других девайсов. По крайней мере я такого не нашел.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

KokoWRX пишет:

В РФ, насколько мне известно, нет запрета на сбор MAC адресов телефонов и других девайсов. По крайней мере я такого не нашел.

Ну это вы не нашли. А те люди быстро найдут, у них большие возможности.

Тут вон один дед на свою. корову маячёк прицепил, чтоб следить, где пасётся, так его чуть не посадили, нарушение прав животного,  хорошо президент вмешался.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ТС, ну если назвал срок, озвучь бюджет. 

negavoid2
negavoid2 аватар
Offline
Зарегистрирован: 06.05.2020

Это называется wi-fi радар, и это законно в РФ, у одного из моих клиентов был такой.

https://hot-wifi.ru/radar/

https://wifiradar.ru

Но смысл быстро теряется, айфоны-макбуки рандомизируют мак-адрес, в последних андроидах тоже можно включить, в следующем андроиде будет включено по умолчанию.

KokoWRX
Offline
Зарегистрирован: 22.05.2021

я не знаю сколько это займет времени, предполагаю, что для профи минут 30. Пара тыщ за знания и 30 минут времени это норма?

sadman41
Offline
Зарегистрирован: 19.10.2016

Много что-то. Думаю, что минут пять. Пару кнопок нажать.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:
Много что-то. Думаю, что минут пять. Пару кнопок нажать.

естественно, щёлкнуть в ПО роутера сканирование WI-FI )))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

KokoWRX пишет:

я не знаю сколько это займет времени, предполагаю, что для профи минут 30. Пара тыщ за знания и 30 минут времени это норма?

Ну тогда ищете такого профи. Вы понимаете, что можно написать, а можно написать и проверить(отладить) ? За написать вы заплатили, щедро... А за проверить ?

KokoWRX
Offline
Зарегистрирован: 22.05.2021

Мне надо хотя бы дописать часть, чтобы MAC, который уже собирается, записывался на SD.Без отладки и т.д.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

То есть вам не нужен работоспособный код? Вы меня рассмешили :) 

KokoWRX
Offline
Зарегистрирован: 22.05.2021

brokly пишет:

То есть вам не нужен работоспособный код? Вы меня рассмешили :) 

Если по делу нечего написать, то мимо пожалуйста, если есть варианты помочь, то лс или propaints@yandex.ru, там обсудим. Судя по последним топикам в разделе, тут больше тролей, чем исполнителей. Я более чем понятно написал, чтобы согласиться или отказаться от задачи.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Я тебе как раз по делу пишу. Вот я тебе за твои две тыщи напишу код и он не будет у тебя работать, дальше что ?

Cудя по твоему поведению и апломбу работать он точно не будет, ибо ты не совсем вменяем если умудряешься сунуть нос на форум и начать сраться со всеми подряд. И лички тут нет. И писать я тебе не буду, у тебя денег нет оплатить мою работу и ума, что бы ее понять. 

Да и на всякий случай, ты тут ни о чем, что бы кому либо говорить о "мимо". Пойми сначала, мимо это тут ты :)

KokoWRX
Offline
Зарегистрирован: 22.05.2021

brokly пишет:

Я тебе как раз по делу пишу. Вот я тебе за твои две тыщи напишу код и он не будет у тебя работать, дальше что ?

Cудя по твоему поведению и апломбу работать он точно не будет, ибо ты не совсем вменяем если умудряешься сунуть нос на форум и начать сраться со всеми подряд. И лички тут нет. И писать я тебе не буду, у тебя денег нет оплатить мою работу и ума, что бы ее понять. 

Да и на всякий случай, ты тут ни о чем, что бы кому либо говорить о "мимо". Пойми сначала, мимо это тут ты :)

Неуважаемый, судя по разделу "Ищу Исполнителя", я как раз там, где надо. Ты бы лучше работой занялся, чем чужие деньги считать. Я сюда пришел, так как не обладаю знаниями для данной работы и готов заплатить за проделанную работу ровно столько, о чем договоримся с исполнителем. Расписал подробно, на какой платформе делаю, скинул код, что на данный момент имею. Чё блен еще надо? Сказал, что надо сделать бесплатно? Глаза открой. Но за 3 дня никто даже примерно не смог обозначить ни сколько это реально займет времени, ни сколько это стоит. Только тролинг и не более. Спасибо, не актуально.

b707
Offline
Зарегистрирован: 26.05.2017

KokoWRX пишет:

Но за 3 дня никто даже примерно не смог обозначить ни сколько это реально займет времени, ни сколько это стоит. Только тролинг и не более. Спасибо, не актуально.

это значит, что ваша работа за обьявленные деньги никого не заинтересовала

KokoWRX
Offline
Зарегистрирован: 22.05.2021

b707 пишет:

KokoWRX пишет:

Но за 3 дня никто даже примерно не смог обозначить ни сколько это реально займет времени, ни сколько это стоит. Только тролинг и не более. Спасибо, не актуально.

это значит, что ваша работа за обьявленные деньги никого не заинтересовала

Так в том то и дело, что я не объявлял бюджет, так как не знаю, сколько это может стоить.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

KokoWRX пишет:

Так в том то и дело, что я не объявлял бюджет

Так обьяви. 

KokoWRX
Offline
Зарегистрирован: 22.05.2021

DetSimen пишет:

KokoWRX пишет:

Так в том то и дело, что я не объявлял бюджет

Так обьяви. 

Уже не актуально. Задача выполнена, расходимся.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Тут сложность в ценообразовании ;))). В есп32 есть необычная фишка ремаппинга пинов любых. Это приводит новичков в ступор с вопросом: "как сделать второй SPI (для SD карты). У ТС на первом SPI экран. Если он поймет или посмотрит примеры работы двух SPI, то сделает сам. Тут деньги можно брать только за ссылку в Гугл! ;))) Остальное стандартные примеры.

KokoWRX
Offline
Зарегистрирован: 22.05.2021

wdrakula пишет:
Тут сложность в ценообразовании ;))). В есп32 есть необычная фишка ремаппинга пинов любых. Это приводит новичков в ступор с вопросом: "как сделать второй SPI (для SD карты). У ТС на первом SPI экран. Если он поймет или посмотрит примеры работы двух SPI, то сделает сам. Тут деньги можно брать только за ссылку в Гугл! ;))) Остальное стандартные примеры.

Я в ардуино как бэ совсем новичок, в кодинге не силен особо, обычно смотрю как сделано у других и переделываю под свои задачи, и при этом флэшку к есп32 прикрутил за 30 минут. Сложность возникла только в работе с данными, как из одного формата, перевернуть в другой, чтобы в понятном виде записывалось на флешку.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

 К этой плате примеров как дерьма за баней,  там ничего "прикручивать" не надо, все давно прикручено.  И сложность тут одна - быдлозачазчик :)