-
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