eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › esp8266 64bajty buforu? Dlaczego to sie sypie?
Ilość wypowiedzi w tym wątku: 6

  • 1. Data: 2017-07-12 00:33:40
    Temat: esp8266 64bajty buforu? Dlaczego to sie sypie?
    Od: s...@g...com

    Ten kawałek kodu:
    void loop() {
    String dht_out;
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    if (isnan(h) || isnan(t)) {
    dht_out="No DHT!";
    } else {
    dht_out="TD="+String(t,1)+" HD="+String(h,1);
    }
    lcd.setCursor(0, 0);
    lcd.print("TB="+String(bmp.readTemperature(),1)+"PB=
    "+String(bmp.readPressure()/100)+" ");
    lcd.setCursor(0, 1);
    lcd.print(dht_out);

    delay(500);

    //Komunikacja z esp do debuga
    String tmp="";
    while (Serial.available()>0) {
    char inByte=Serial.read();
    tmp+=inByte;
    }
    if (tmp.length()>0) {
    DebugSerial.print(tmp);
    }


    //komunikajca z debuga do esp
    while (DebugSerial.available()>0) {
    char outByte=DebugSerial.read();
    Serial.write(outByte);
    }
    }

    Ma słuzyc narazie tylko jako interfejs przerzucający dane między jednym a drugim
    serialem.
    I dziala prawie dobrze.
    Problemem jest mianowicie przycinanie wyniku do 64bajtów.
    Mimo że kopiuje po kolei bajty z Serial za pomoca Serial.read to po 64 sztukach petla
    while sie konczy a po drugim przejsciu ogólnej petli juz nic nie czyta.

    Po zwiększeniu bufora do 164 w pliku HardwareSerial.h wczytuje sie więcej.

    Co robie nie tak?
    Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle wolne ze przy 115200
    wczytanie 64 trwa tyle ze mi sie bufor od nowa napełni?


  • 2. Data: 2017-07-12 08:18:30
    Temat: Re: esp8266 64bajty buforu? Dlaczego to sie sypie?
    Od: s...@g...com

    W dniu środa, 12 lipca 2017 00:33:42 UTC+2 użytkownik s...@g...com napisał:

    > Co robie nie tak?
    > Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle wolne ze przy
    115200 wczytanie 64 trwa tyle ze mi sie bufor od nowa napełni?

    Dobra, juz wiem :)
    Bez sensu najpierw czytam odpowiedź a potem zadaje zadanie dla esp i nastepnie robie
    cale czytanie sensorów i czekam 500ms.

    Trzeba to przepisać na cos sensowniejszego :)


  • 3. Data: 2017-07-12 11:54:26
    Temat: Re: esp8266 64bajty buforu? Dlaczego to sie sypie?
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik napisał w wiadomości grup
    dyskusyjnych:b0189164-fde6-4345-802e-17c7ab71e98a@go
    oglegroups.com...
    W dniu środa, 12 lipca 2017 00:33:42 UTC+2 użytkownik
    s...@g...com napisał:
    >> Co robie nie tak?
    >> Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle
    >> wolne ze przy 115200 wczytanie 64 trwa tyle ze mi sie bufor od nowa
    >> napełni?

    >Dobra, juz wiem :)
    >Bez sensu najpierw czytam odpowiedź a potem zadaje zadanie dla esp i
    >nastepnie robie cale czytanie sensorów i czekam 500ms.
    >Trzeba to przepisać na cos sensowniejszego :)

    A moze wystarczy bufor powiekszyc?

    Bo jak sie domyslam, ta softwareowa biblioteka na przerwaniach port
    czyta ... to dac wiekszy bufor i po sprawie.

    Tylko pamietac, ze z Wifi moze przyjsc z 10MB/s :-)

    J.


  • 4. Data: 2017-07-12 12:00:26
    Temat: Re: esp8266 64bajty buforu? Dlaczego to sie sypie?
    Od: s...@g...com

    W dniu środa, 12 lipca 2017 11:54:34 UTC+2 użytkownik J.F. napisał:
    > Użytkownik napisał w wiadomości grup
    > dyskusyjnych:b0189164-fde6-4345-802e-17c7ab71e98a@go
    oglegroups.com...
    > W dniu środa, 12 lipca 2017 00:33:42 UTC+2 użytkownik
    > s...@g...com napisał:
    > >> Co robie nie tak?
    > >> Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle
    > >> wolne ze przy 115200 wczytanie 64 trwa tyle ze mi sie bufor od nowa
    > >> napełni?
    >
    > >Dobra, juz wiem :)
    > >Bez sensu najpierw czytam odpowiedź a potem zadaje zadanie dla esp i
    > >nastepnie robie cale czytanie sensorów i czekam 500ms.
    > >Trzeba to przepisać na cos sensowniejszego :)
    >
    > A moze wystarczy bufor powiekszyc?
    >
    > Bo jak sie domyslam, ta softwareowa biblioteka na przerwaniach port
    > czyta ... to dac wiekszy bufor i po sprawie.
    >
    > Tylko pamietac, ze z Wifi moze przyjsc z 10MB/s :-)
    >
    > J.

    Dla testu dalem 250 bajtów. Ale to złe rozwiązanie :)

    Juz znalazlem feler. Wieczorkiem sobie poprawie.

    A DOS-a to mozna zrobic w sumie chyba kazdemu :) na różne sposoby więc narazie sie
    tym nie martwie, jak mi ktos zdosuje te stacje pogody to sie zaczne martwic :)


  • 5. Data: 2017-07-12 18:06:49
    Temat: [OT] esp8266 64bajty buforu? Dlaczego to sie sypie?
    Od: wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <N...@g...pl>

    ryzykując przecfelenie, zapytam...

    z czego korzystasz przy kompilacji - jaki tool i jaki opis pdf?

    o co chodzi z tym debugowaniem po serialu?


  • 6. Data: 2017-07-12 20:32:25
    Temat: Re: [OT] esp8266 64bajty buforu? Dlaczego to sie sypie?
    Od: s...@g...com

    W dniu środa, 12 lipca 2017 18:07:05 UTC+2 użytkownik wół, wół roboczy, wół dojno
    roboczo obronny 'POPIS/EU napisał:
    > ryzykując przecfelenie, zapytam...
    >
    > z czego korzystasz przy kompilacji - jaki tool i jaki opis pdf?
    >
    > o co chodzi z tym debugowaniem po serialu?

    Całośc sie nazywa arduino.

    Normalnie musisz mieć mikrokontroler, plytke pcb, programator i co tam sobie chcesz
    do tego mikrokontrolera podłaczyć. To sporo zachodu nawet jak sie montuje takie
    zabawy na plytce prototypowej (tej grubej, nie tej pcb z milyjonem otworów).

    Jakieś ludki wymyslili ze mozna ludziom sprzedać mikrokontroler na plytce z
    interfejsem usb i headerami dla wygodnego podpinania dodatkowych układów.

    Do tego dodali środowisko programistyczne które tez nazywa sie arduino.
    Pisze sie w nim w C. Ale w praktyce programy wychodzą mocno podobne do basica bo
    wiekszość tego co chcesz robic jest juz przez kogos napisana i tylko posługujesz sie
    biblioteką.

    I np. zamiast dumać jak ustawić port szeregowy po prostu piszesz
    Serial.begin(115200); i juz masz calosc ustawiona.

    W praktyce praca wyglada tak ze podpinasz te plytke do kompa po usb, uruchamiasz te
    środowisko arduino i piszesz programy. Do dyspozycji masz mini terminal szeregowy i
    zazwyczaj aby sprawdzić co tam w programie sie dzieje piszesz sobie np.
    Serial.println("wartosc zmiennej X:"+X);
    I elegancko widzisz jaka wartosc ma ta zmienna w okienku terminala.

    W moim przypadku uparłem się ze wykorzystam mniejsza i tansza plytke która ma tylko
    jeden sprzetowy serial. A moduł wifi komunikuje sie z plytka wlasnie po serialu. I
    aby debugowac i korzystac z modułu wifi potrzebuje dwu serialów.
    Dlatego skorzystałem z programowego seriala jako dodatkowego.

    Serial - łącze szeregowe Pi*oko zgodne z rs232
    Arduino - https://www.arduino.cc/
    srodowisko do pisania dla arduino - https://www.arduino.cc/en/Main/Software

    Na allegro mozna kupic "podróbki" arduino za niewielkie pieniądze i zacząc się bawić.

    Dokumentacja jest w wiekszości tu: https://www.arduino.cc/en/Reference/HomePage
    dodatkowo kazda biblioteka ma swoje przyklady do odmałpowania.
    I czasem trzeba grzebnąć w dokumentacji np. w przypadku modułu wifi tu:
    https://www.espressif.com/en/support/download/docume
    nts?keys=&field_type_tid%5B%5D=14

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: