Skocz do zawartości

Kacper1263

Użytkownicy
  • Zawartość

    12
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O Kacper1263

  • Ranga
    2/10
  1. Pokombinowałem trochę z tym delay'em. Kiedy ustawiłem go na większą wartość np 2,5 s to arduino oczywiście odbierało dane co 2,5 s, ale ciągle przy szybszym tempie wysyłania danych Arduino padało. Przy ustawieniu niskich wartości Arduino ciągle padało. Jako ciekawostkę podam ze podczas gdy ustawiłem delay na 100 ms to kiedy już zauważyłem że Arduino się zacięło i przestała migać niebieska dioda ESP to kiedy wysyłałem jakieś dane to mimo braku reakcji samego Arduino oraz diody na ESP widziałem ze lekko przygasa ekran LCD czyli dane docierały do samego Arduino. Po chwili Arduino sie zresetowało. Czasem sytuacja wygląda tak że Arduino nie reaguje, dioda TX nie miga podczas odbioru danych ale dioda na ESP mruga, czyli ESP odbiera dane. Oczywiście po kilku sekundach następuje samoczynny reset Arduino. EDIT: Właśnie zauważyłem, że jeśli ustawiłem delay na 10 ms to dane bardzo czesto nie pokazywaly sie na LCD, ale podczas "spamienia" klawisza wyślij Arduino nie padało. Może uda mi się nieco zmniejszyć intensywność tego problemu ustawiając odpowiedni delay. Mimo wszystko chcialbym się dowiedzieć czym jest to wszystko powodowane. Czasem kiedy Arduino się zetnie, to dostaję w serial monitorze: [WiFiEsp] TIMEOUT: 21
  2. Tak. Jeśli ustawiłem za mało milisekund to Arduino nie odbierało żadnych danych, a jeśli za dużo to dane dochodziły z opóźnieniem ale to nic dziwnego . Dzisiaj po południu spróbuję ustawić dla testów jakiś większy delay i przetestuję reakcję.
  3. Szczerze przyznaje, że nie mam pojęcia dlaczego to pomogło. Mogę się tylko domyślać
  4. Bez tego odbieranie danych w ogóle nie działało. Znalazłem to rozwiązanie na jakimś zagranicznym forum.
  5. Witam, Od dłuższego czasu próbuje rozwiązać problem z modułem ESP-01 podpiętym pod Arduino Mega. Mianowicie kiedy wysyłam dane przez serwer MQTT do ESP np. z telefonu i wyślę tych danych zbyt dużo w czasie od 1 do 5 sekund, to cały program przestaje reagować na kolejne dane przez najbliższe 20-40 sekund lub następuje ponowne uruchomienie Arduino. Program nie jest jakoś super skomplikowany (ponieważ służył mi tylko do testów ESP) więc myślę, że nie będzie on trudny do zrozumienia. Moduł jest podpięty do Arduino przez konwerter poziomów logicznych. Myślę, że problemem nie będzie połączenie, ponieważ wysyłanie danych działa bez problemu, a kiedy dane są wysyłane do ESP w odstępach 1-2 s to wszystko działa bez problemu. Kod: #include <LiquidCrystal.h> #include <WiFiEsp.h> #include <WiFiEspClient.h> #include <WiFiEspUdp.h> #include <PubSubClient.h> #include <SPI.h> char ssid[] = "My-WiFi"; // your network SSID (name) char pass[] = "1234567890"; // your network password char server[] = "broker.hivemq.com"; // your network password int status = WL_IDLE_STATUS; // the Wifi radio's status // Initialize the Ethernet client object WiFiEspClient espClient; PubSubClient client(espClient); LiquidCrystal lcd(7, 6, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.clear(); lcd.print("Loading: "); delay(1500); lcd.clear(); // initialize serial for debugging Serial.begin(115200); // initialize serial for ESP module Serial1.begin(115200); // initialize ESP module lcd.setCursor(0, 0); lcd.print("ESP initialize "); lcd.setCursor(0, 1); lcd.print("40%"); WiFi.init(&Serial1); lcd.setCursor(0, 0); lcd.print("Connect to WiFi "); lcd.setCursor(0, 1); lcd.print("65%"); // check for the presence of the shield if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // don't continue while (true); } // attempt to connect to WiFi network while (status != WL_CONNECTED) { Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); // Connect to WPA/WPA2 network status = WiFi.begin(ssid, pass); } lcd.setCursor(0, 0); lcd.print("Connect to MQTT "); lcd.setCursor(0, 1); lcd.print("80%"); Serial.println("You're connected to the network"); //connect to MQTT server client.setServer(server , 1883); client.setCallback(callback); lcd.setCursor(0, 0); lcd.print("Connect to MQTT "); lcd.setCursor(0, 1); lcd.print("100%"); delay(400); lcd.clear(); } //print any message received for subscribed topic void callback(char* topic, byte* payload, unsigned int length) { payload[length] = '\0'; String value = String((char*)payload); Serial.println(value); lcd.clear(); lcd.print(value); if (value == "State" || value == "state") { lcd.clear(); lcd.print("ESP is ready"); client.publish("km/esp/data", "ESP is still ready"); } else { client.publish("km/esp/data", "OK"); } } void loop() { if (!client.connected()) { reconnect(); } client.loop(); delay(250); } void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting connection "); // Attempt to connect, just a name to identify the client if (client.connect("AMega")) { Serial.println("connected"); // Once connected, publish an announcement… client.publish("km/esp/data","ESP is ready"); // … and resubscribe client.subscribe("km/esp/input", 0); } else { Serial.print("failed"); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } } Z góry dziękuje za pomoc.
  6. Dziękuję wszystkim za pomoc! Myślę że teraz już wszystko rozumiem
  7. Tak naprawdę zastanawiałem się tylko nad podpięciem innych pinów niż RX, TX i oczywiście pinów zasilających ale z tego co rozumiem to muszę do tego dodać pin RST podpięty pod 3,3 V a reszta ma zostać pusta. Jak się domyślam pin TX mam połączyć z RX i odwrotnie. I też widziałem jak ludzie wgrywają kod na ESP więc zastanawiałem się czy potrzebuję wgrać specjalny projekt na ESP który bedzie ogarniał połączenie z MQTT czy poprostu wystarczy kod na Arduino. Jutro na spokojnie wszystko złoże i przetestuję. Wcześniej bawiłem się trochę połączeniem Arduino z MQTT za pomocą 1Sheeld+ więc tu raczej będzie wszystko podobnie i może uda mi się rozwiązać problemy które miałem podczas używania tej nakładki .
  8. Witam, Od ponad tygodnia męczę się z podłączeniem modułu ESP-01 do Arduino Mega. Szukając schematu połączenia w internecie, spotykam się z różnymi sposobami. Niektórzy używają konwertera poziomów logicznych a inni nie. Każdy podpina piny w inne miejsca. Jeden używa wszystkich pinów z modułu a inny tylko czterech. Chciałbym się dowiedzieć jak mam podłączyć mój moduł do Arduino w celu komunikacji z serwerami MQTT oraz czy mój moduł ESP będzie od razu gotowy do pracy, czy mam go wcześniej zaprogramować, zanim przejdę do pisania kodu na Arduino. Posiadam: - Arduino Mega - Moduł ESP-01 ESP8266 (Link do sklepu) - Czterokanałowy konwerter poziomów logicznych. Z góry dziękuje za pomoc Pozdrawiam.
  9. Witam, Może pytanie trochę głupie ale czy istnieje opcja aby w kodzie na Arduino w zmiennej zawierała się inna zmienna? np. String zmienna1 = "tekst3"; String zmienna2 = "tekst1/tekst2/ZAWARTOŚĆ_ZMIENNEJ_1";
  10. OK. Dzięki za odpowiedź. Liczyłem na powiadomienie mailem od "forum-arduinopolska.pl" dlatego przeoczyłem odpowiedź.
  11. Tak. Niestety bez skutku. Testowałem tez wszystko na iPhonie i problem jest identyczny. Sama aplikacja rozpoznaje polskie znaki podczas rozpoznawania mowy ponieważ pokazuję rozpoznane słowo w dolnej części ekranu. Jeśli wysyłam polskie znaki z Arduino do aplikacji to ta rozpoznaje je jako nieznane (znak zapytania w kwadracie).
  12. Witam, Od pewnego czasu bawię 1Sheeld'em. Mój aktualny projekt opiera się na sterowaniu głosem. Kiedy rozpoznawanie mowy oraz przetwarzanie tekstu na mowę odbywa się w języku angielskim wszystko jest OK. Problem zaczyna się kiedy chcę używać języka polskiego . Polskie słowa są jak najbardziej rozpoznawane chyba że zawierają polskie ogonki. Problem występuje podczas rozpoznawania mowy i zamiany tekstu na mowę. Jeśli podczas przetwarzania tekstu na mowę użyję polskich znaków to pojawią się one na telefonie jako znaki zapytania i zostaną źle odczytane. Czy zna ktoś jakiś sposób na naprawę tego problemu? Do kompilowania kodu używam programu Visual Studio 2017 i dodatku do obsługi Arduino: Visual Micro. Płytka to Arduino UNO R3 Jeśli będzie potrzebny kod to go dorzucę. Z góry dziękuje za pomoc.
×
×
  • Utwórz nowe...