ESP8266 + serwer z publikowaniem odczytu.

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
Awatar użytkownika
Karl
Majsterkowicz
Posty: 64
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: 140
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: 64
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: 140
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: 1645
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ą.
ODPOWIEDZ

Strony partnerskie: