ESP v rezimu AP - zjistovani klientu

Tomáš Koželuh mr.death na ipq.cz
Čtvrtek Listopad 23 11:10:20 CET 2017


Nepotřebuje ESP32 jinou knihovnu? Omylem jsem dvě koupil, mají být lepší než 8266 a současně jsem našel, že je potřeba jiná knihovna.
Pokud by měl někdo zájem, tak je klidně vyměním, vše mám na ESP8266 a teď jsem rozšířil působnost na Arduino Nano + eth modul tam, kde nedosáhne wifi, ale výkon ESP32 je pro mě zbytečný a nevyužiju ho. Navíc mám rád unifikované prostředí, abych nemusel přemýšlet, co kam nahrát a jestli to vůbec pojede.

> -----Original Message-----
> From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of hwnews konference
> Sent: Thursday, November 23, 2017 10:54 AM
> To: HW-news
> Subject: Re: ESP v rezimu AP - zjistovani klientu
> 
> Pisu to v IDE Arduina a momnetalne tam mam pichnute ESP32.
> 
> Ted se mi podarilo najit tenhle kod tak to vyzkousim:
> 
> #include <ESP8266WiFi.h>
> // include plain C library
> extern "C" {
> #include "user_interface.h"
> }
> 
> #define YOUR_WIFI_SSID "******-******"
> #define YOUR_WIFI_PASSWD "******-******"
> 
> boolean waitingDHCP=false;
> char last_mac[18];
> 
> // Manage incoming device connection on ESP access point
> void onNewStation(WiFiEventSoftAPModeStationConnected sta_info) {
>   Serial.println("New Station :");
>   sprintf(last_mac,"%02X:%02X:%02X:%02X:%02X:%02X", MAC2STR(sta_info.mac));
>   Serial.printf("MAC address : %s\n",last_mac);
>   Serial.printf("Id : %d\n", sta_info.aid);
>   waitingDHCP=true;
> }
> 
> void setup() {
> 
>   static WiFiEventHandler e1;
> 
>   Serial.begin(115200);
>   Serial.println();
>   WiFi.mode(WIFI_AP_STA);
>   WiFi.begin(YOUR_WIFI_SSID, YOUR_WIFI_PASSWD);
> 
>   // Event subscription
>   e1 = WiFi.onSoftAPModeStationConnected(onNewStation);
> }
> 
> void loop() {
> 
>   if (waitingDHCP) {
>     String cb;
>     if (deviceIP(last_mac,cb)) {
>       Serial.println("Ip address :");
>       Serial.println(cb); //do something
>     } else {
>       Serial.println("Problem during ip address request :");
>       Serial.println(cb); //do something else
>     }
>   }
> 
>   delay(2000);
> }
> 
> boolean deviceIP(char* mac_device, String &cb) {
> 
>   struct station_info *station_list = wifi_softap_get_station_info();
> 
>   while (station_list != NULL) {
>     char station_mac[18] = {0}; sprintf(station_mac,
> "%02X:%02X:%02X:%02X:%02X:%02X", MAC2STR(station_list->bssid));
>     String station_ip = IPAddress((&station_list->ip)->addr).toString();
> 
>     if (strcmp(mac_device,station_mac)==0) {
>       waitingDHCP=false;
>       cb = station_ip;
>       return true;
>     }
> 
>     station_list = STAILQ_NEXT(station_list, next);
>   }
> 
>   wifi_softap_free_station_info();
>   cb = "DHCP not ready or bad MAC address";
>   return false;
> }
> 
> Dne 23. listopadu 2017 10:35 Jaroslav Buchta <jaroslav.buchta na hascomp.cz> napsal(a):
> 
> 
> 	Dne 23.11.2017 v 10:30 hwnews konference napsal(a):
> 
> 
> 		Zdravim,
> 
> 		vcera jsem prohlizel dokumentaci knihovny Wifi pro ESP a nejak v ni
> nevidim jak nejak jednoduse zjistit na jakych IP sedi klienti do AP prihlaseni.
> 
> 		Je tam metoda jak zjistit jejich pocet, ale ne kde jsou...aspon to nevidim.
> A take jsem zatim nenasel jakym zpusobem AP v ESP prideluje IP adresy klientum.
> 
> 		Libilo by se mi, kdybych cas od casu mohl vylistovat seznam klientu,
> abych jej mohl porovnat s aktualnim stavem a ty co pribyly mohl zacit vycitat.
> 
> 		Takhle by mi nezbylo nez projizdet celej subnet a zkouset zda se neco
> ozve
> 
> 		RV
> 
> 
> 
> 		_______________________________________________
> 		HW-list mailing list  -  sponsored by www.HW.cz
> 		Hw-list na list.hw.cz
> 		http://list.hw.cz/mailman/listinfo/hw-list
> <http://list.hw.cz/mailman/listinfo/hw-list>
> 
> 	A v čem to programujete? Jedná se o ESP8266 nebo 32? U 8266 nevím jestli
> používá LWIP, pokud ano, mělo by to jít zjistit přes rozhraní této knihovny.
> 
> 
> 
> 	_______________________________________________
> 	HW-list mailing list  -  sponsored by www.HW.cz
> 	Hw-list na list.hw.cz
> 	http://list.hw.cz/mailman/listinfo/hw-list <http://list.hw.cz/mailman/listinfo/hw-
> list>
> 
> 
> 




Další informace o konferenci Hw-list