Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

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

Elektronik_Kraków 23 Lis 2015 15:36 4932 6
  • #1 23 Lis 2015 15:36
    Elektronik_Kraków
    Poziom 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:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    problem pojawia się, gdy chcę wysłać tekst.
    Jako pierwsze chciałem wysłać 25 znaków
    Kod: text
    Zaloguj się, aby zobaczyć kod

    czyli wcześniej powinienem wysłać
    Kod: text
    Zaloguj się, aby zobaczyć kod


    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.

    0 6
  • #2 24 Lis 2015 16:55
    Elektronik_Kraków
    Poziom 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ść

    Kod: text
    Zaloguj się, aby zobaczyć kod


    i nie wiem dlaczego moduł czasem odpowiada
    Kod: text
    Zaloguj się, aby zobaczyć kod


    a czasami
    Kod: text
    Zaloguj się, aby zobaczyć kod


    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.

    0
  • #3 01 Gru 2015 11:04
    Elektronik_Kraków
    Poziom 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ć:

    Kod: text
    Zaloguj się, aby zobaczyć kod

    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:
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    W przypadku wywołania modułu przez przeglądarkę wysyłanych jest sporo znaków i linii,. między innymi
    Kod: text
    Zaloguj się, aby zobaczyć kod


    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

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    1
  • #4 04 Gru 2015 14:10
    Elektronik_Kraków
    Poziom 13  

    Witam ponownie - trochę sam do siebie chyba piszę

    Zrobiłem taki sposób odbierania:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    I teraz, gdy wpisuje z terminala:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    to bez problemu zaczyna wysyłać zawartość strony, mogę to robić wielokrotnie. Ale po podpięciu modułu, gdy wysyła on:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    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 ?

    1
  • #5 03 Mar 2017 12:15
    george2002

    Poziom 19  

    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 ;)

    0
  • #6 03 Mar 2017 14:16
    373522
    Użytkownik usunął konto  
  • #7 03 Mar 2017 14:30
    george2002

    Poziom 19  

    niveasoft napisał:
    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

    0