kabanosik Napisano Marzec 23, 2021 Udostępnij Napisano Marzec 23, 2021 (edytowany) Witam Chciałem wykorzystać moduł WEMOS D1 Mini Pro (ESP-8266EX) jako wzmocnienie zasięgu sterowania dronem DJI TELLO przez WiFi. Wgrałem poprzez arduino gotowy przykład RangeExtender - NAPT. Na początek połączyłem się z moją domową siecią WiFi i połączyłem się z modułem telefonem. Extender ładnie się połączył z wifi i udostępniał internet. Następnie extender połączyłem z siecią wifi drona. Dron ma połączenie. Można nim sterować za pomącą telefonu ale nie ma podglądu obrazu na telefonie. Czy problemem jest za mała przepustliwość ESP-8266EX czy coś mam skopane ? Poniżej kod jaki wgrałem do ESP-8266: // NAPT example released to public domain #if LWIP_FEATURES && !LWIP_IPV6 #define HAVE_NETDUMP 0 #ifndef STASSID #define STASSID "TELLO" #define STAPSK "" #endif #include <ESP8266WiFi.h> #include <lwip/napt.h> #include <lwip/dns.h> #include <dhcpserver.h> #define NAPT 1000 #define NAPT_PORT 10 #if HAVE_NETDUMP #include <NetDump.h> void dump(int netif_idx, const char* data, size_t len, int out, int success) { (void)success; Serial.print(out ? F("out ") : F(" in ")); Serial.printf("%d ", netif_idx); // optional filter example: if (netDump_is_ARP(data)) { netDump(Serial, data, len); //netDumpHex(Serial, data, len); } } #endif void setup() { Serial.begin(115200); Serial.printf("\n\nNAPT Range extender\n"); Serial.printf("Heap on start: %d\n", ESP.getFreeHeap()); #if HAVE_NETDUMP phy_capture = dump; #endif // first, connect to STA so we can get a proper local DNS server WiFi.mode(WIFI_STA); WiFi.begin(STASSID, STAPSK); while (WiFi.status() != WL_CONNECTED) { Serial.print('.'); delay(500); } Serial.printf("\nSTA: %s (dns: %s / %s)\n", WiFi.localIP().toString().c_str(), WiFi.dnsIP(0).toString().c_str(), WiFi.dnsIP(1).toString().c_str()); // give DNS servers to AP side dhcps_set_dns(0, WiFi.dnsIP(0)); dhcps_set_dns(1, WiFi.dnsIP(1)); WiFi.softAPConfig( // enable AP, with android-compatible google domain IPAddress(172, 217, 28, 254), IPAddress(172, 217, 28, 254), IPAddress(255, 255, 255, 0)); WiFi.softAP(STASSID "extender", STAPSK); Serial.printf("AP: %s\n", WiFi.softAPIP().toString().c_str()); Serial.printf("Heap before: %d\n", ESP.getFreeHeap()); err_t ret = ip_napt_init(NAPT, NAPT_PORT); Serial.printf("ip_napt_init(%d,%d): ret=%d (OK=%d)\n", NAPT, NAPT_PORT, (int)ret, (int)ERR_OK); if (ret == ERR_OK) { ret = ip_napt_enable_no(SOFTAP_IF, 1); Serial.printf("ip_napt_enable_no(SOFTAP_IF): ret=%d (OK=%d)\n", (int)ret, (int)ERR_OK); if (ret == ERR_OK) { Serial.printf("WiFi Network '%s' with same password is now NATed behind '%s'\n", STASSID "extender", STASSID); } } Serial.printf("Heap after napt init: %d\n", ESP.getFreeHeap()); if (ret != ERR_OK) { Serial.printf("NAPT initialization failed\n"); } } #else void setup() { Serial.begin(115200); Serial.printf("\n\nNAPT not supported in this configuration\n"); } #endif void loop() { } Edytowano Marzec 23, 2021 przez kabanosik Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!