This is an old revision of the document!


Project owner: Cyberian
Interested:
Related:
License: Uveďte původ-Zachovejte licenci CC BY-SA

Tento projekt má za cíl vytvořit přenosné zařízení umožňující sledovat dění na wifi pásmu 2.4GHz. ESP8266 bude běžet v AP režimu v promiskuitním módu a sledovat vybrané pakety. Počítá se i s případným druhým ESP8266, který může posílat zachycený provoz do Wiresharku Popud pro vyrobení tohoto zařízení vznikl při zaútočení jednoho mobilního přístroje hromadným ARP spoofingem na celou síť. Tímto zařízením bude možno vystopovat jeho pozici mezi cca 600 zařízeními přímo v zástavbě a zneškodnit jeho nakažený telefon taserem.

  • 2x ESP8266 Wemos D1 Pro
  • displej Nextion NX3224T0424_011, 320×240
  • převodník z USB na serial port ideálně s chipem FTDI232

Proč zrovna tento displej? Původně jsem hledal jakýkoliv displej s rozumným rozlišením a dotykovou vrstvou. Jako první jsem zakoupil v GME.CZ displej pro Raspberry PI s SPI rozhraním. Záhy jsem však zjistil, že displej je mi k ničemu, musel bych ho rozebrat a dostat se ke kontroleru a i tak by práce s displejem zabrala dost výpočetního výkonu a paměti. Problém byl v tom, že ESP8266 posílá do SPI pouze 8 bitové hodnoty a dislpej pracuje s 16 bitovými.

Po delším hledání jsem zvolil displej v basic verzi od Nextionu, se kterým se komunikuje po sériové lince. Displej si sám řeší zobrazení, má vlastní kontroler (chip od STM32F30), 4MB RAM, SD card slot (bohužel se používá zatím jen pro upgrade konfigurace). K displeji je editor, kde lze z toolboxu umístit drag & drop textová pole, tlačítka, progress bar, slidery, grafy, obrázky atp. Cenou je tedy obsah, který můžeme měnit tím, že sériovým portem pošleme název a hodnotu proměnné, kterou chceme na displeji změnit. Do jisté míry tedy statický obsah, předem dané obrázky, u základní verze bez zobrazení video sekvence, ale ušetřena spousta práce s GUI a výpočetní výkon.

Je tu ještě jedna věc, která zamrzí linuxáře, editor je jen pro windows s NET frameworkem 3.5. Zda funguje pod wine, jsem zatím nezkoušel.

Pracovní poznámky

Watchdog

A WDT timeout can occur if the repaint takes more than one second. This can be avoided by disabling the watchdog timer before the loops, then re-enabling it afterwards.

Example:

ESP.wdtDisable();
for (int u = 0; u < clients_known_count; u++) print_client(clients_known[u]);
for (int u = 0; u < aps_known_count; u++) print_beacon(aps_known[u]);
ESP.wdtEnable(1000);

Reference

  • project/esp8266_wifi_sniffer/wifi_sniffer_kit.1567321208.txt.gz
  • Last modified: 2019/09/01 09:00
  • by cyberian