ESP8266 + serwer z publikowaniem odczytu.

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
Awatar użytkownika
Karl
Majsterkowicz
Posty: 75
Rejestracja: 3 gru 2014, 10:00

ESP8266 + serwer z publikowaniem odczytu.

Post autor: Karl » 11 lis 2020, 14:02

<- Kawałeczek serwerka z liczniczkiem:: ->

server.on("/status", [](){
String message = "Bieżący stan: ";
message += (wartoscWskazania);
server.send(404, "text/plain", message);


<- Problem:::: ->
'wartoscWskazania' jest float, a wyświetla się tylko 0.00

<- Pytanie ->
Jak zdefiniować wyświetlanie parametru na stronie, aby wystąpiły cztery miejsca po przecinku ?

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


uzi18
Majsterkowicz
Posty: 152
Rejestracja: 10 maja 2018, 05:06

Re: ESP8266 + serwer z publikowaniem odczytu.

Post autor: uzi18 » 12 lis 2020, 09:32

Wg czego ty to robisz, jakis link?

Wysłane z mojego Mi Note 10 przy użyciu Tapatalka

Awatar użytkownika
Karl
Majsterkowicz
Posty: 75
Rejestracja: 3 gru 2014, 10:00

Re: ESP8266 + serwer z publikowaniem odczytu.

Post autor: Karl » 12 lis 2020, 13:53

uzi18 pisze:
12 lis 2020, 09:32
Wg czego Ty to robisz ?
Może zabrzmi przewrotnie, ale według własnego pomysłu, potrzeb i umiejętności.
uzi18
Majsterkowicz
Posty: 152
Rejestracja: 10 maja 2018, 05:06

Re: ESP8266 + serwer z publikowaniem odczytu.

Post autor: uzi18 » 12 lis 2020, 23:34

No to trudno sie domyslec co poeta ma na mysli, w jakim jezyku ta strona jest?

Wysłane z mojego Mi Note 10 przy użyciu Tapatalka

stiven
Złota rączka
Posty: 1655
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: ESP8266 + serwer z publikowaniem odczytu.

Post autor: stiven » 13 lis 2020, 01:26

uzi18 pisze:
12 lis 2020, 23:34
No to trudno sie domyslec co poeta ma na mysli, w jakim jezyku ta strona jest?
Tu nie chodzi o stronę, to jest kod programu z arduino ide.

Trochę potestowałem, poszukałem i okazuje się, że to jest normalna rzecz, że jest ucinanie do dwóch miejsc po przecinku przy różnego typu wyświetleniach, na przykład na serialu, na wyświetlaczach, albo tak jak w podanym przypadku przy konwersji z float na String.

Kod: Zaznacz cały

  float zmienna = 123.45678;
  Serial.print(zmienna);

  Serial.print(123.45678);
W obu przypadkach będzie wyświetlone na serialu tylko do dwóch miejsc po przecinku, czyli 123.45. Żeby było więcej miejsc po przecinku wyświetlonych, to trzeba dopisać po przecinku liczbę miejsc, które chcemy wyświetlić.

Kod: Zaznacz cały

  float zmienna = 123.45678;
  Serial.print(zmienna, 5);

  Serial.print(123.45678, 5);
Teraz żeby zrobić konwersję z float na String, to tak samo, ale jeszcze dodatkowo z rzutowaniem, bo jak sprawdziłem u siebie, bez rzutowania do Stringa była zapisywana ta cyfra po przecinku, a nie wartość ze zmiennej float, czyli tak działa poprawnie:

Kod: Zaznacz cały

  server.on("/status", [](){
  String message = "Bieżący stan: ";
  message += String(wartoscWskazania, 5);
  server.send(404, "text/plain", message);
U mnie na arduino nano jakąś przykładową liczbę sobie wpisałem i maksymalnie do piątego miejsca wyświetla, na kolejnych miejscach już tylko zera są.
uzi18
Majsterkowicz
Posty: 152
Rejestracja: 10 maja 2018, 05:06

Re: ESP8266 + serwer z publikowaniem odczytu.

Post autor: uzi18 » 20 gru 2020, 22:30

To wynika z ograniczen typu float, daj double i bedzie wiecej

Wysłane z mojego Mi Note 10 przy użyciu Tapatalka

stiven
Złota rączka
Posty: 1655
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: ESP8266 + serwer z publikowaniem odczytu.

Post autor: stiven » 21 gru 2020, 10:55

uzi18 pisze:
20 gru 2020, 22:30
To wynika z ograniczen typu float, daj double i bedzie wiecej

Wysłane z mojego Mi Note 10 przy użyciu Tapatalka
No tak, jeśli piszesz to w kontekście tego, co ja napisałem, to żeby mieć więcej niż 5 miejsc po przecinku, to trzeba zmienić float na double. Ale sama zmiana typu z float na double nie spowoduje, że będzie więcej miejsc niż 2 miejsca po przecinku przy "zwykłym" wyświetlaniu. Również będą tylko 2, a żeby było ich więcej, to trzeba zrobić to w taki sam sposób, jaki podałem we wcześniejszym komentarzu.
ODPOWIEDZ

Strony partnerskie: