Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ESP8266 - Uruchomienie ESP8266-12 - mały serwer WWW -parsowanie

Elektronik_Kraków 23 Nov 2015 15:36 6183 6
Nazwa.pl
  • #1
    Elektronik_Kraków
    Level 13  
    Witam
    Chciałem przy użyciu ESP8266-12 ( ten większy z gniazdkiem na zewnętrzną antenę ) wyświetlać przez WWW wartości temperatur.
    Na razie komunikuję się z nim przez terminal. Moduł uruchamia się, a wzorując się na przykładach próbuję coś wyświetlić.

    Wzoruję się tej stronie - co prawda Arduino, ale można prześledzić co jest wysyłane.

    Komunikacja przebiega następująco:
    Code: text
    Log in, to see the code


    problem pojawia się, gdy chcę wysłać tekst.
    Jako pierwsze chciałem wysłać 25 znaków
    Code: text
    Log in, to see the code

    czyli wcześniej powinienem wysłać
    Code: text
    Log in, to see the code


    Jeśli dobrze zrozumiałem, najpierw wysyłam informacje, jaka będzie długość tekstu, a później sam tekst - przynajmniej tak robiłem przy wysyłaniu emaili po GPRS przez SIM800L i tam działało.
  • Nazwa.pl
  • #2
    Elektronik_Kraków
    Level 13  
    Sam sobie odpowiem. Niestety u mnie angielski słaby ( i lepszy raczej nie będzie ).
    Źle zrozumiałem zasadę wyświetlania stron - sądziłem, że wczytuje się od razu i moduł cały czas pamięta zawartość ( do momentu wyłączenia lub następnego wczytania ). A moduł na bieżąco wczytuje aktualne dane, może to i lepiej.

    Ale do rzeczy.
    Wczytuję taką zawartość
    Code: text
    Log in, to see the code


    i nie wiem dlaczego moduł czasem odpowiada
    Code: text
    Log in, to see the code


    a czasami
    Code: text
    Log in, to see the code


    Wynikają z tego błędy wyświetlanej strony, pojawiają się dodatkowe znaki <

    Zapomniałem dodać, że tam, gdzie są wyświetlane dodatkowe znaki > to przy wprowadzaniu z terminala tekstu HTML za pierwszym razem moduł nie reaguje, trzeba powtórzyć, być może z tego powodu pojawiają się dodatkowe znaki >



    No i wyjaśniło się skąd dodatkowe znaki >. Moduł nie lubi znaku #, który występuje w kodzie znaku stopnia Celsjusza, zastąpiłem go innym zapisem i jest OK.
  • Nazwa.pl
  • #3
    Elektronik_Kraków
    Level 13  
    Udało uruchomić moduł. Tzn. program w Bascom, zawiera między innymi dwa podprogramy, Setup_esp8266 i Send_esp8266.
    Miałem co prawda mały problem, ale wynikał on z niewłaściwej kolejności wysyłania znaków CR i LF. Prawidłowo powinno być:
    Code: text
    Log in, to see the code

    O ile konfiguracja nie nastręcza problemów ( bo idzie z automatu przy uruchomieniu ), to wysłanie danych na stronę już nie działa, ręcznie nie ma problemu - kilkadziesiąt razy kopiuj/wklej i strona jest wyświetlana.

    Problem z odbiorem danych z modułu, Do tej pory odbierałem krótkie ciągi, np. z modemu GSM i działało. Tutaj leci sporo znaków i kilka linijek.

    Teraz robię to tak:
    Code: vbnet
    Log in, to see the code


    W przypadku wywołania modułu przez przeglądarkę wysyłanych jest sporo znaków i linii,. między innymi
    Code: text
    Log in, to see the code


    Pewnie źle poodchodzę do tego, może trzeba zrobić duży bufor i załadować do niego wszystkie linie ? Dopiero wtedy parsować. Teraz mam wrażenie, że nadchodzące dane "zamazują" wcześniejsze.

    Znalazłem też taki przykład odbioru danych w tym linku

    Code: vbnet
    Log in, to see the code
  • #4
    Elektronik_Kraków
    Level 13  
    Witam ponownie - trochę sam do siebie chyba piszę

    Zrobiłem taki sposób odbierania:
    Code: vbnet
    Log in, to see the code


    I teraz, gdy wpisuje z terminala:
    Code: text
    Log in, to see the code


    to bez problemu zaczyna wysyłać zawartość strony, mogę to robić wielokrotnie. Ale po podpięciu modułu, gdy wysyła on:
    Code: text
    Log in, to see the code


    jakby za dużo linii go zapychało. Jakby się dało rozdzielić, że pierwsza linia do jednego stringa, a druga do drugiego, może przez sprawdzanie wartości zmiennej Event ?
  • #5
    george2002

    Level 21  
    Z ciekawości - czy kolega ogarnął może w drugą stronę - tzn na stronce jest do wpisania np SSIS i Password i to ma wrócić przez uC do ESP8266 :) ? chciałbym zrobić taką stronkę w bascom z konfiguracją ESP8266 przez stronkę internetową, bo w internecie wszędzie przykłady jak coś z ESP8266 wysłać np na Thingspeak ale w drugą stronę to mniej przykładów ... zwłaszcza w Bascomie ;)
  • #6
    Anonymous
    Anonymous  
  • #7
    george2002

    Level 21  
    niveasoft wrote:
    Takie rzeczy da się osiągnąć bez problemu. Tylko temat jest szeroki i nie oczekuj instrukcji krok po kroku w każdym z możliwych przypadków.
    Nośnik nie jest ważny czyli ESP8266 czy WS5100, WS5300 czy nowsze.

    Niedawno oprogramowywałem moduły bazujące na płytkach Arduino + Ethernet Shield`s.
    Program miał być jeden a płytki miały mieć konfigurowalne ustawienia sieciowe i inne.
    Stwierdziłem, że ustawianie sterownika szlabanu za pomocą strony WWW to przerost formy nad treścią i postawiłem na komendy AT. Link
    Powstał więc projekt w którym każdy z parametrów możesz ustawić podłączając się do urządzenia terminalem.
    Niemniej da się bez problemu napisać coś co będzie to programować za pomocą przeglądarki. Taki przykładowy projekt możesz zobaczyć Link

    Sprawa sprowadza się do zapisu ustawień i wczytaniu ich przy starcie/zmianie a potem wysłaniu do sterowanego medium.


    Nie no kolega mnie źle zrozumiał, ogólnie intersuje mnie tylko część obrobienia takiego czegoś że na stronce którą sobie ESP stawia są pola do wpisania SSID i Password i teraz jak to odebrać poprzez ESP8266 i tylko tyle potrzebuję info bo wyświetlanie na stronie czy stronek lub wysyłkę na thingspeak mam opanowaną ale odbieranie z stronki jeszcze nie :)

    Pozdrawiam
    George2002