Skocz do zawartości

MrShadow

Użytkownicy
  • Zawartość

    21
  • Rejestracja

  • Ostatnio

Wszystko napisane przez MrShadow

  1. Ogromne dzięki za odpowiedź. Jak najbardziej zgadzam się z takim podejściem do rozwiązania tego problemu. Oczywiście, ten przykład już przeanalizowałem - wykorzystuje on jednak bibliotekę, której raczej na Androidzie nie zaimplementuję. ( nie mam pojęcia w jaki sposób ). Tak, strona dostępna jest pod adresem http://adres.html. Udało mi się umieścić przycisk wykorzystujący metodę GET, o której napisałeś powyżej. Problemem nadal pozostaje jednak sposób przesłania odpowiednich danych do Arduino poprzez port szeregowy.
  2. Oczywiście już wszystko precyzuję. Moduł mam następujący : Moduł ESP8266. Podłączam go do Arduino tworząc Software Serial. Arduino będzie głównym sterownikiem. Komunikacja z modułem odbywa się przez port szeregowy przy wykorzystaniu komend AT. Strona internetowa (bardzo prosta) zapisana jest w zmiennej typu String i jest ona wysyłana do esp korzystając z komendy : AT+CIPSEND, czekając na znak > i następnie odbywa się wysłanie strony. W głównej pętli programu odbywa się obsługa dla kolejnych połączeń z serwerem. Do tej pory udało mi się umieścić na stronie wskazania termometru, przy odświeżaniu działa bez zarzutów, lecz moim celem głównym jest sterowanie wyjściami Arduino np. po kliknięciu buttona umieszczonego na stronie. Zastanawiam się, w jaki sposób mogę przesłać dane ze strony do Arduino - po rozwiązaniu tego, teoretycznie problem będzie z głowy. Wystarczyłoby nawet przesłanie adresu strony, na przykład, gdyby przycisk powodował jego zmianę, chociaż nie wiem, czy ten sposób jest właściwy. W linku który podesłałem wyżej pokazana jest przykładowa strona.
  3. Ok, czyli coś typu nie pozwoli mi na wyświetlenie przesyłanych przez formularz danych na ekranie monitora portu szeregowego, ani na jakiekolwiek ich przechwycenie do zmiennej tekstowej? Zasugerowałem się przykładem z poniższego linku i dlatego zrodziły się moje wątpliwości, co myślę jest uzasadnione :Link Zastanawia mnie jednak, w jaki sposób tam to działa? Oraz o jakim istniejącym sposobie napisałeś w poście wyżej?
  4. Dlaczego biblioteki są dla cieniasów? Nigdzie nic takiego nie napisałem. Nie napisałem również, że doskonale znam http, a wręcz przeciwnie. Zadałem pytanie, czy istnieje sposób na wyświetlenie w Serial monitorze danych ze strony.
  5. Oczywiście, przepraszam za nieścisłości. Ten wysłany kod absolutnie nie ma na calu wysłania jakiejkolwiek informacji o stanie wyjściowym Arduino. Zaprezentowałem tutaj jak wygląda implementowana metoda "get". Moje pytanie natomiast odnosi się do jej poprawności. W jaki sposób mogę bezpośrednio na Serial monitor wysłać jakikolwiek tekst ze strony napisanej w HTML? Z bibliotek oczywiście kiedyś skorzystam, ale teraz staram się wszystko pisać od podstaw - wydaje mi się to nieco trudniejsze i bardziej czasochłonnej, ale jednocześnie ciekawsze i dające więcej satysfakcji po zadziałaniu. Jednym słowem, mam trochę czasu na eksperymenty
  6. Ustaliłem, że wszystko jest w porządku AT+CWMODE działa, bo sprawdziłem. Problemem nadal jest uzyskanie odpowiedzi modułu w postaci tekstu. Niestety po wpisaniu dowolnej komendy monitor portu szeregowego pozostaje nadal "pusty". Próbowałem wypisywania przy pomocy metody println() oraz write(), jednak obie zawiodły i rezultat jest taki jak opisałem - pusty monitor portu szeregowego - brak odpowiedzi. Bardzo proszę o jakieś sugestie, gdyż moduł mogę kontrolować przy pomocy Arduino, lecz chciałbym mieć możliwość podglądu odpowiedzi w czasie rzeczywistym. Dziękuję za poprzednie odpowiedzi deshipu. [ Dodano: 06-02-2018, 16:53 ] Ktoś ma jakiś pomysł? Udało mi się również wgrać nowego firmware.
  7. Tak bym zrobił, jednak nadal nie otrzymałem odpowiedzi po wpisaniu komendy "AT". Może stoi za tym połączenie układu? Może nie podłączam jakiegoś pinu w tym module, chociaż postępuję zgodnie ze schematami dostępnymi w sieci. Czy firmware może mieć na to wpływ?
  8. Ok, utworzyłem software seriala, po włożeniu baterii do koszyka otrzymuję następujący ciąg znaków : "ó#àáP%Ð"°]ãF...". Odłączając piny RX TX i wkładając baterię takie znaki się nie pojawiają, więc oznacza to, że jakaś odpowiedź jest. Niestety nawet przy obu prędkościach ustawionych na 9600 baud otrzymuję takie znaczki. Masz pomysł jak to rozwiązać?
  9. Czyli muszę zmodyfikować kod korzystając z biblioteki Software Serial. Mógłbyś rzucić okiem na ten kod? Dałem zmienną znak, aby wypisać na Serial Monitorze na komputerze chociaż pierwszą literę z danych odbieranych, na 9600 baud zero reakcji, na wyższych wartościach czasem x, czasem jakiś inny znaczek, nie wiem jak poprawnie dobrać te prędkości. I jeszcze jedno pytanie , czy deklaracja SoftwareSerial modul(2,3); jest poprawna? To znaczy, czy nie powinno być 0,1 jeżeli to piny 0 oraz 1? Znalazłem taki schemat pinoutów i tam jest podpisane 2,3 , lecz nie wiem do końca jak to interpretować. Pinout #include <SoftwareSerial.h> SoftwareSerial modul(2,3); void setup() { pinMode(13,OUTPUT); pinMode(8,OUTPUT); Serial.begin(9600); modul.begin(115200); } void loop() { char znak; modul.print("AT"); if(modul.available() > 0) { znak = modul.read(); if(modul.find("OK")) { digitalWrite(13,HIGH); delay(3000); digitalWrite(13,LOW); } } else { digitalWrite(8,HIGH); delay(3000); digitalWrite(8,LOW); } Serial.print(znak); delay(3000); }
  10. Dobrze, ale napisałeś, że moduł można podłączyć odłączając RX i TX od komputera. Jak w takim razie będzie przebiegała komunikacja z komputerem? W powyższym filmie pokazany jest Serial Monitor, więc Arduino połączone jest również z komputerem
  11. Czyli podłączenie tego w taki sposób nie jest możliwe?
  12. Ok, więc w jaki sposób można ten moduł połączyć z Arduino?
  13. Ok, opiszę dokładniej połączenie Laptop - moduł wifi. Konwerter wpięty jest do Laptopa ( USB ), tam w monitorze portu szeregowego w programie Arduino IDE mogę obserwować wysyłane komendy. Druga strona konwertera GND, RX, TX wpięta jest do płytki do odpowiednich pinów ( GND, TX, TX ). Z płytki z pinów (fizycznie inne niż te do których jest podpięty konwerter ) 0 (TX) oraz 1 (RX) - wyprowadzone są kabelki na moduł - RX, TX modułu wifi.
  14. Próbowałem na Pro mini (klon). Płytka zasilana jest z USB za pomocą tego samego konwertera, którego użyłem do podłączania modułu do laptopa (5V) . Podłączałem następująco : TX->RX, RX->TX (na tej płytce to piny 0 - TX, 1-RX), GDN (płytki)-> GND (modułu) , GPIO15 -> GND (modułu). Zastanawiam się, bo możne spróbować zasilić płytkę bezpośrednio z 3.3V napięciem obniżonym przez stabilizator?
  15. Witam serdecznie ! Od kilku dni męczę się z podłączeniem do Arduino modułu wifi 8266 yellow board - Moduł . W przypadku połączenia UART bezpośrednio do laptopa za pomocą konwertera, moduł reaguje bez żadnego problemu na zadawane komendy w terminalu portu szeregowego np. "AT". Moduł zasilam z dołączonego koszyka - układ ma stabilizator, pomierzyłem napięcie i rzeczywiście wszystko działa poprawnie. Podłączając wykorzystuję jedynie 3 piny : TX, RX oraz GND z konwertera. Schody zaczynają się przy podłączaniu do Arduino. Kompletnie brak jakiejkolwiek odpowiedzi na zadawane komendy. Do testów wykorzystuję poniższy program: void setup() { pinMode(13,OUTPUT); pinMode(8,OUTPUT); Serial.begin(115200); } // the loop function runs over and over again forever void loop() { String odebraneDane; Serial.print("AT"); if(Serial.available() > 0) { if(Serial.find("OK")) { digitalWrite(13,HIGH); delay(3000); digitalWrite(13,LOW); } } else { digitalWrite(8,HIGH); delay(3000); digitalWrite(8,LOW); } delay(3000); } W rezultacie, miga jedynie dioda podłączona do pinu 8. Przy transmisji nie zapalają się na płytce żadne diody związane z transmisją danych ( RX , TX ). Co mogę robić nie tak? Czy ktoś orientuje się, w jaki sposób poprawnie podłączyć to pod Arduino? Być może jest to sprawa niezaktualizowanego firmware, ale próbując wgrać najnowsze przez XTCOM_UTIL cały czas mam błąd połączenia. Bardzo proszę o wszelkie rady, próbowałem już chyba wszystkiego. Być może dokonany jest jakiś błąd w napisanym programie, gdyż na co dzień nie programuję Arduino, lecz podejrzewam jednak problem z komunikacją Arduino - moduł. Pozdrawiam serdecznie, MrShadow
  16. damian11, Nie rozumiem niestety co oznaczają Twoje elementu kodu: a) wypelnienie+= zmiana; b) while(wypelnienie!=0 && wypelnienie>0) c) wypelnienie-=zmiana; Wiem, że zapis coś++ jest to inkrementacja, wiem, że wykrzyknij przed zmienną zmienia jej wartość na przeciwną, ale nie mam pojęcia ( nie było chyba tego w kursie ) co oznacza wykrzyknik po zmiennej oraz te zapisy z punktu a) i c) Bardzo proszę o pomoc / wskazówki Pozdrawiam MrShadow:)
  17. Elvis, Chumanista, Panowie, dziękuję za odpowiedzi i przepraszam za takie pytania. Ale jeżeli chcę coś robić z tym Arduino, to muszę się wgłębiać w takie detale Pozdrawiam MrShadow
  18. igor, Igor, co oznacza digitalWrite(zielona, stanZielonej); digitalWrite(czerwona, stanCzerwonej); stanZielonej i stanCzerwonej to chyba nie jest LOW , ani HIGH , tylko true lub false
  19. Treker, Super, nie pomyślałem o tym a to bardzo ułatwia całą sprawę Dziękuję bardzo za pomoc
  20. Treker, Gratuluję, super kurs Jednak natknąłem się na trudność. Do dziś właściwie wszystko było spoko dopóki nie zacząłem robić zadania 4.5 (gry) Analizuję kod igor, ale coś nie mogę rozgryźć tego boolean , a dokładniej od_nowa=true , po drugim if. Czy mógłbym prosić o pomoc i ewentualne wyjaśnienie co i jak z tymi zmiennymi prawda/fałsz? Bo wcześniej tego w kursie nie było i ciężko mi się samemu zabrać za to zadanie. Nawet nie wiedziałem jak zmienić String na int A to było tutaj bardzo ważne Jeżeli jest ktoś, kto mógłby pomóc to bardzo proszę Po wytłumaczeniu jakieś łatwe zadanko na sprawdzenie czy rozumiem mile widziane
×
×
  • Utwórz nowe...