Алексей
код стандартный...
Slava
const char* ssid = "your-ssid"; const char* password = "your-password"; тут ты свои данные написал, правильно?
#include <WiFi.h> const char* ssid = "your-ssid"; const char* password = "your-password"; const char* host = "data.sparkfun.com"; const char* streamId = "...................."; const char* privateKey = "...................."; void setup() { Serial.begin(115200); delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } int value = 0; void loop() { delay(5000); ++value; Serial.print("connecting to "); Serial.println(host); // Use WiFiClient class to create TCP connections WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { Serial.println("connection failed"); return; } // We now create a URI for the request String url = "/input/"; url += streamId; url += "?private_key="; url += privateKey; url += "&value="; url += value; Serial.print("Requesting URL: "); Serial.println(url); // This will send the request to the server client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); unsigned long timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 5000) { Serial.println(">>> Client Timeout !"); client.stop(); return; } } // Read all the lines of the reply from server and print them to Serial while(client.available()) { String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("closing connection"); }
Ребята есть pastebin/hastebin с удобной подсветкой. Хватит сюда простыни постить
wpa / wpa2 на авто
Для начала переведи в WPA2
У есп бывают глюки в пограничных типах типа wpa/wpa2 wpa2/wpa3
Slava
и ширину канала проверь
Алексей
Для начала переведи в WPA2
попробовал - никаких изменений ....
Алексей
дебаг выдает [W][WiFiGeneric.cpp:391] _eventCallback(): Reason: 2 - AUTH_EXPIRE
дебаг выдает [W][WiFiGeneric.cpp:391] _eventCallback(): Reason: 2 - AUTH_EXPIRE
Ну не может договориться о чем то. А шифрование какое TKIP AES ?
авто в роутере настроено
А ширина канала какая? Поставь 20
Могу лишь предложить убрать авто режими и поставить принудительно. Есп может капризничать иногда, да
Алексей
А ширина канала какая? Поставь 20
в роутере стоит авто (но можно выбрать 20 или 40). поставлю сейчас 20
в роутере стоит авто (но можно выбрать 20 или 40). поставлю сейчас 20
Вообщем постарайся уйти от авто режимов для начала. Если не поможет то увы у тебя совпадение не совместимости радиомодулей. У меня такое бывало когда одна карточка в упор не хотела цепляться к определенному роутеру. Правда это было давно
Алексей
Вообщем постарайся уйти от авто режимов для начала. Если не поможет то увы у тебя совпадение не совместимости радиомодулей. У меня такое бывало когда одна карточка в упор не хотела цепляться к определенному роутеру. Правда это было давно
безрезультатно в отношении ширины канала... причем у меня 3 таких модуля esp32 dev module (как nodeMCU) и ни один не коннектится... странно что подключается без проблем к iPhone XS...
Алексей
при этом через дебаг модуль точно видит нужный ssid с уровнем сигнала -59dbi
безрезультатно в отношении ширины канала... причем у меня 3 таких модуля esp32 dev module (как nodeMCU) и ни один не коннектится... странно что подключается без проблем к iPhone XS...
Возьми сканер сети какой нибудь (помоему таже винда показывает) и сравни параметры сетей которую создает айфон и твою. Если они идентичны, то сочувствую
Konstantin
Господа, у меня снова нестандартный вопрос про ESPNOW на ESP8266 (FreeRTOS). Проблема следующая: в режиме бродскаста всё работает, оба модуля передают и принимают. Но стоит перейти в юникаст (задать конкретный MAC вместо FFок) и всё ломается: функция отправки возвращает ESP_OK, а затем sending callback возвращает ESP_NOW_SEND_FAIL в статусе, т.е. данные не доставлены получателю. Мак верный, PMK прописан, каналы одинаковые, wifi включен.
Konstantin
В ардуино-гайдах фигурирует функция esp_now_set_self_role(), которая задаёт роль (master / slave / combo) — кто-нибудь в курсе, что и куда она устанавливает? Не могу найти ничего похожего у себя в SDK.
Evgen
#include <WiFi.h> const char* ssid = "your-ssid"; const char* password = "your-password"; const char* host = "data.sparkfun.com"; const char* streamId = "...................."; const char* privateKey = "...................."; void setup() { Serial.begin(115200); delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } int value = 0; void loop() { delay(5000); ++value; Serial.print("connecting to "); Serial.println(host); // Use WiFiClient class to create TCP connections WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { Serial.println("connection failed"); return; } // We now create a URI for the request String url = "/input/"; url += streamId; url += "?private_key="; url += privateKey; url += "&value="; url += value; Serial.print("Requesting URL: "); Serial.println(url); // This will send the request to the server client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); unsigned long timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 5000) { Serial.println(">>> Client Timeout !"); client.stop(); return; } } // Read all the lines of the reply from server and print them to Serial while(client.available()) { String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("closing connection"); }
а WiFi.mode() Пушкин будет писать?
Алексей
а WiFi.mode() Пушкин будет писать?
писал туда STA но толку никакого... вообще без изменений
а WiFi.mode() Пушкин будет писать?
Это не обязательно. Там ста по дефолту
Алексей
писал туда STA но толку никакого... вообще без изменений
я даже ставил прошивку Tasmota и espEasy - и именно к роутеру esp32 никак не подключается... а эти же прошивки на esp-01 (esp8266) с первой попытки в сети!
Айфона и не айфона
Alex
куплю сдвиговый регист 74HC595 или аналог. В Москве сегодня)
Алексей
Я тебе говорю сравни в каком нибудь сканером сетей свои сети
у меня ubuntu, подскажите какие сканеры есть?
у меня ubuntu, подскажите какие сканеры есть?
Там из командной строки как-то смотрится. Уже не помню
iw list что-ли или че-то такое
iwlist
Но я не помню. Нет линукса с вифи под рукой
Slava
Я вчера спрашивал, как узнать длину строки рууских буков. Ну вот у меня всё получилось. Получаем длинную строку хоть откуда и выводим её на экран построчно. 😀 но с символами градусника градуса часиками кружочками и тп. проблема
Konstantin
Serjio
авто в роутере настроено
Оно не работает с 5ггц сетью.
Алексей
Оно не работает с 5ггц сетью.
естественно... у меня и 2.4 и 5 работают... подключаться пытаюсь именно к 2.4
Оно не работает с 5ггц сетью.
Он же пишет что сеть видит, но не может войти
Алексей
а к соседскому роутеру подключается?
пароль не знаю, так бы попробовал))
Slava
пароль не знаю, так бы попробовал))
есть вариант-не вариант, скинуть настройки роутера по умолчанию и проверить на другом роутере.
Алексей
пароль не знаю, так бы попробовал))
на сегодня закончу разбор... зав возьму другой роутер и буду с ним пробовать... видимо у этого слишком много неотключаемых защит
Slava
Slava
Алексей
есть вариант-не вариант, скинуть настройки роутера по умолчанию и проверить на другом роутере.
так и поступлю.... вопрос лишь в одном КААААК esp8266 подключаются, а esp32 почему не может???
Slava
может это снимки помогут
так и поступлю.... вопрос лишь в одном КААААК esp8266 подключаются, а esp32 почему не может???
Может у тебя на есп32 внешняя антенна и он "докричаться" не может?)
Алексей
у меня настройки роутера аналогичны... при этом в квартире работают 5 устройств на esp8266 на постоянке... и более 15 устройств разного рода... есть WLED на esp32 WROOM. и все работает более года.... без проблем... а именно эти новые модули никак не подключить((( и дело именно в них и роутере.... так как прошивка работает исправно на другом модуле.... (заливка происходила через терминал esptools.py)
Алексей
Может у тебя на есп32 внешняя антенна и он "докричаться" не может?)
может 100% так как уровень сигнала через дебаг видит в -59dbi на мою сеть
Алексей
Я тебе писал выше. Словил банальную не совместимость чипов
писец конечно... это постораться же надо и то фик получится
Resident
Всем доброй ночи, юзал кто сие чудо?
Resident
Konstantin
Господа, у меня снова нестандартный вопрос про ESPNOW на ESP8266 (FreeRTOS). Проблема следующая: в режиме бродскаста всё работает, оба модуля передают и принимают. Но стоит перейти в юникаст (задать конкретный MAC вместо FFок) и всё ломается: функция отправки возвращает ESP_OK, а затем sending callback возвращает ESP_NOW_SEND_FAIL в статусе, т.е. данные не доставлены получателю. Мак верный, PMK прописан, каналы одинаковые, wifi включен.
UPD: разобрался, всё работает. Оказалось, что мои ESPшки отправляют данные, но по какой-то причине не могут их принять. Нагуглил, что esp_now_set_self_role() на ардуине управляет режимом работы Wifi (STA / AP / AP+STA), после чего решил поменять режимы у себя. Итоги: 1. Если обе борды находятся в Station Mode, то ESPNOW работает в обе стороны. #define ESPNOW_WIFI_MODE WIFI_MODE_STA #define ESPNOW_WIFI_IF ESP_IF_WIFI_STA 2. Если обе борды находятся в режиме SoftAP, то ESPNOW работает только на передачу. Unicast невозможен вообще, т.к. ESPNOW не работает на прием. Broadcast при этом работает. #define ESPNOW_WIFI_MODE WIFI_MODE_AP #define ESPNOW_WIFI_IF ESP_IF_WIFI_AP 3. Если обе борды настроены как SoftAP + Station, ESPNOW работает в обе стороны (unicast и broadcast). #define ESPNOW_WIFI_MODE WIFI_MODE_APSTA #define ESPNOW_WIFI_IF ESP_IF_WIFI_AP Это всё справедливо для ESP8266 и RTOS_SDK v3.4. Ирония в том, что в примере от Espressif используется вариант №2, и он нерабочий от слова "совсем". Связано это скорее всего с тем, что пример скопирован с ESP32, а там ESPNOW работает во всех режимах работы Wifi. Это подтверждается тем, что в ардуино-примерах ESPNOW для ESP32 нет функции управления ролями esp_now_set_self_role() А на 8266 разрабы свой пример не тестили. Там, кстати, пары дефайнов еще не хватает.
Serjio
(Это я так, бредовые гипотезы двигаю)
Serjio
Можно еще попробовать логи роутера поднять..
Ruslan
камрады, надо расширить функционал этого https://github.com/espressif/esp-protocols/blob/master/components/esp_modem/src/esp_modem_c_api.cpp у меня всё на си написано, я с совокуплением С и С++ не возился, есть шансы в моём си коде расширить функционал этой либы?
Serjio
Я в свое время избавлялся от классов, уходил от ООП, но там кода было мало...
Serjio
А зачем? Удобная штука.
Не нашел способов реюзать такой код в проекте на си.
Ну вы блин даете:
Так читать никто не хочет же. Там в коде видно что для C интерфейса сделаны врапперы
Ruslan
А ты код ,который скинул, читать то пробовал?
Пробовал, с первого раза не очень зашло.
Пробовал, с первого раза не очень зашло.
По ночам в пятницу читать код гиблая идея
Ruslan
Ну вы блин даете:
И это я читал, но пока только научился пользоваться, а не расширять
Ruslan
По ночам в пятницу читать код гиблая идея
Согласен, как дошёл до этого момента, так и попытался въехать
И это я читал, но пока только научился пользоваться, а не расширять
Учитывая что весь esp modem написан на c++ а для си у него лишь обертки, то тебе придется писать и на си++ и на сях