Tento projekt vznikol ako dôkaz konceptu „odchytávača cudzích packetov“ z mobilných telefónov, ich následné sčítanie podľa MAC adresy, a tým získanie približného počtu ľudí v okolí.
Program Paxcounter počíta, koľko mobilných zariadení je okolo. To dáva odhad, koľko ľudí je okolo. Paxcounter detekuje signály Wifi a Bluetooth vo vzduchu a zameriava sa na mobilné zariadenia filtráciou dodávateľov OUI do adresy MAC.
Zámerom tohto projektu je urobiť to bez narušenia súkromia: Nemusíme sledovať zariadenia vlastnené používateľmi, ak ich chceme len spočítať. Preto program neuchováva MAC adresy a nevykonáva žiadny druh snímania, známy ako fingerprinting na nájdených zariadeniach.
Údaje sa prenášajú na server cez sieť LoRaWAN, alebo cez rozhranie SPI (slave).
Môžete si vyrobiť tento projekt napájaný z batérie a dosiahnuť celodennú prevádzku s jedinou 18650 Li-Ion batériou.
To všetko sa dá robiť s jedinou malou a lacnou ESP32 doskou za menej ako 15€.
Hardware
Podporované ESP32 dosky:
LoRa & SPI:
- Heltec: LoRa-32
- TTGO: T1, T2, T3, T-Beam, T-Fox
- Pycom: LoPy, LoPy4, FiPy
- WeMos: LoLin32 + LoraNode32 shield, LoLin32lite + LoraNode32-Lite shield
- Adafruit ESP32 Feather + LoRa Wing + OLED Wing, #IoT Octopus32 (Octopus + ESP32 Feather)
Len SPI:
- Pyom: WiPy
- WeMos: LoLin32, LoLin32 Lite, WeMos D32
- Generic ESP32
V závislosti na hardvéri konkrétnej dosky sú k dispozícii nasledovné „fíčury“:
- LED (napájanie / stav)
- OLED Displej (detailný stav)
- RGB LED (farebný stav, užitočné)
- Tlačítko
- Jedinečný identifikátor ID („vytlačený na kremíku“)
- Sledovanie hladiny napätia batérie
- GPS (Obecné sériové NMEA, alebo Quectel L76 I2C)
- Senzor evnironmentálnych údajov (Bosch BME680 I2C)
- Real-timeové hodiny (Maxim DS3231 I2C)
- Generátor časového telegramu IF482 (sériový port)
Cieľová platforma musí byť vybratá v platformio.ini
.
Nastavenia závislé od hardvéru (pinout atď.) Sú uložené v súboroch v podadresári /hal
. Ak chceš použiť dosku ESP32, ktorá zatiaľ nie je podporovaná, použi generic.h
a prispôsob si mapovanie pinov svojim potrebám. Kontaktuj ma pre vyžiadanie detailov, alebo pridaj komentár pod článok. 🙂
Príprava
Pred kompiláciou,
- uprav src/paxcounter.conf a zvoľ nastavenia v tomto súbore podľa tvojho použitia, dosky a osobných preferencií. Nezabudni dbať na obmedzenie vyťaženia LoRaWAN siete, ktorú ideš použiť.
- uprav src/lmic_config.h a uprav krajinu a HW zariadenia. Dbaj na správnu voľbu frekvencie pre LoRaWAN.
- vytvor súbor loraconf.h v tvojom lokálnom /src adresári, použi šablónu loraconf.sample.h and vyplň osobné APPEUI a APPKEY pre sieť LoRaWAN. Ak používaš populárnu TheThingsNetwork môžeš copy-pastnúť kľúče z TTN konzoly.
- vytvor súbor ota.conf v /src adresári zo šablóny
ota.sample.conf
a zadaj svoje WiFi AP názov + heslo. Tieto nastavenia sú použité na sťahovanie aktualizácii firmwaru. Ak chceš vlastné updaty cez vzduch, potrbuješ Bintray účet. Zadaj svoje Bintray dáta do ota.conf. Ak nepotrebuješ updaty cez vzduch, stačí iba premenovaťota.sample.conf
naota.conf
.
Na prihlásenie do LoRaWAN siete, iba OTAA autentifikácia je podporovaná, ABP nie je. DEVEUI pre OTAA je odvodené z MAC adresy zariadenia počas štartu, a je aj zobrazená na OLED displeji (ak nejaký máš) ako aj v sériovej konzole na skopírovanie do tvojho LoRaWAN serverového nastavenia.
Ak máš fixné DEVEUI, zadaj ho do loraconf.h
. Počas kompilácie, DEVEUI bude načítané z loraconf.h
a vložené priamo do kódu.
Kompilácia
Použi PlatformIO, najlepšie s Visual Studio Code.
Prajem ti príjemné sniffovanie. 🙂
73 de OM7TEK.