Modyfikacja przykładu WebInterface Arduino

User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

lukfud wrote: Mon Aug 05, 2024 2:41 pm

Code: Select all

#ifndef READONLY_H_
#define READONLY_H_

namespace Supla {
namespace Html {

class ReadOnly : public Supla::HtmlElement {
 public:
  ReadOnly() : HtmlElement(HTML_SECTION_FORM) {}

  void send(Supla::WebSender* sender) {
    sender->send("<div class=\"form-field\">");
    sender->sendLabelFor("read_only", "Read only");
    sender->send("<input type=\"text\" readonly");
    sender->sendNameAndId("read_only");
    sender->send("placeholder=\"");
    sender->send(Wstaw tu zmienną z programu); <-
    sender->send("\">");
    sender->send("</div>");
  }

  bool handleResponse(const char* key, const char* value) {
    return true;
  }
  
  void onProcessingEnd() {}

 protected:

}; // ReadOnly

}; // namespace Html
}; // namespace Supla

#endif
W powyższym przykładzie jest błąd. Powinno być "return false" a nie true.

Code: Select all

bool handleResponse(const char* key, const char* value) {
  return false;
}
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

lukfud wrote: Fri Aug 23, 2024 7:40 am W powyższym przykładzie jest błąd. Powinno być "return false" a nie true.
@lukfud a czym ten błąd skutkuje akurat w przypadku tego kodu? Chodzi o to żeby się wykonywanie funkcji nie powtarzało?
Bo u mnie nic nie wskazuje na to że coś jest nie tak... a mam true.
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

zzrr wrote: Fri Aug 23, 2024 9:11 am
lukfud wrote: Fri Aug 23, 2024 7:40 am W powyższym przykładzie jest błąd. Powinno być "return false" a nie true.
@lukfud a czym ten błąd skutkuje akurat w przypadku tego kodu? Chodzi o to żeby się wykonywanie funkcji nie powtarzało?
Bo u mnie nic nie wskazuje na to że coś jest nie tak... a mam true.
Jak umieścisz tą klasę przed innymi formularzami, to pozostałe nie są przetwarzane, kiedy jest "true" ;)
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

lukfud wrote: Fri Aug 23, 2024 9:20 am Jak umieścisz tą klasę przed innymi formularzami, to pozostałe nie są przetwarzane, kiedy jest "true" ;)
Hmm... ciekawa sprawa. A zobacz na tym screnie moim kilka postów wcześniej. Dwa ostatnie pola są zrobione dokładnie wg Twojego kodu. W obu jest true i obie działają jak należy. To o co tu chodzi? :) Formularz to w kontekście całej strony, czyli formularz. Czy chodzi o pola?
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

zzrr wrote: Fri Aug 23, 2024 9:30 am
lukfud wrote: Fri Aug 23, 2024 9:20 am Jak umieścisz tą klasę przed innymi formularzami, to pozostałe nie są przetwarzane, kiedy jest "true" ;)
Hmm... ciekawa sprawa. A zobacz na tym screnie moim kilka postów wcześniej. Dwa ostatnie pola są zrobione dokładnie wg Twojego kodu. W obu jest true i obie działają jak należy. To o co tu chodzi? :) Formularz to w kontekście całej strony, czyli formularz. Czy chodzi o pola?
Przenieś Alę z kotem nad "kalibracja wody" i spróbuj zapisać ;)
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

lukfud wrote: Fri Aug 23, 2024 9:38 am Przenieś Alę z kotem nad "kalibracja wody" i spróbuj zapisać ;)
Jak będę w domu nie omieszkam tego obadać :) Na tą chwilę dzięki 👍
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

W mojej stacji mam BME280 i DS18B20.
Przy odczycie tego drugiego korzystam z bibliotek Miles'a Burton'a:
https://github.com/milesburton/Arduino- ... ol-Library

W głównej pętli co 1000ms wykonują się wszystkie odczyty (impulsy: wiatr, deszcz, odczyty kanałów BME (T,H,P), kąta wiatru AS5600) oraz wykonują się obliczenia prędkości dla poszczególnych impulsów.
Całość trwa około 2 ms, jak widać poniżej (LoopTime):

Code: Select all

*****--__--***** millis: 30153 | LoopTime: 2
Kiedy w tej pętli wstawiłem odczyty DS18b20, zacząłem tracić impulsy itd.
Okazało się, że kawałek odczytujący sensory temp trwa około 60 millis.
Dołożyłem w pierwszej pętli drugą, która się wykonuje co 30s i w niej wstawiłem min. inputy i odczyty temp:

Code: Select all

*****--__--***** 30s Loop: millis: 30168 | Reset30s: 30168

*****--__--***** millis: 30180 >> sensors.requestTemperatures()
*****--__--***** millis: 30234 >> sensors.getTempC(TSensAdr1)
*****--__--***** millis: 30235 >> Iteracije Kpop 8 Kraj
*****--__--***** millis: 30235 | LoopTime: 72
W sumie pierwsza linijka: sensors.requestTemperatures() zabiera 54 ms.
Oczywiście, że mogę odczytywać temp. co 30s (lub rzadziej), ale czy w ogóle robię to prawidłowo, czy coś błędnie i dlatego ten "request" zabiera tak dużo czasu?
Wiem, że to 1-Wire itd. i że przecież mam BME280 na I2C, który jest dużo szybszy, jasne.
Chodzi mi tylko o potwierdzenie, że "te typy [1-Wire] tak mają" i mam to zostawić w spokoju.
Lub wskazanie, jak należy to zrobić prawidłowo.
[email protected]
Posts: 1585
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

iM@rek wrote: Fri Aug 23, 2024 1:10 pm W mojej stacji mam BME280 i DS18B20.
Przy odczycie tego drugiego korzystam z bibliotek Miles'a Burton'a:
https://github.com/milesburton/Arduino- ... ol-Library

W głównej pętli co 1000ms wykonują się wszystkie odczyty (impulsy: wiatr, deszcz, odczyty kanałów BME (T,H,P), kąta wiatru AS5600) oraz wykonują się obliczenia prędkości dla poszczególnych impulsów.
Całość trwa około 2 ms, jak widać poniżej (LoopTime):

Code: Select all

*****--__--***** millis: 30153 | LoopTime: 2
Kiedy w tej pętli wstawiłem odczyty DS18b20, zacząłem tracić impulsy itd.
Okazało się, że kawałek odczytujący sensory temp trwa około 60 millis.
Dołożyłem w pierwszej pętli drugą, która się wykonuje co 30s i w niej wstawiłem min. inputy i odczyty temp:

Code: Select all

*****--__--***** 30s Loop: millis: 30168 | Reset30s: 30168

*****--__--***** millis: 30180 >> sensors.requestTemperatures()
*****--__--***** millis: 30234 >> sensors.getTempC(TSensAdr1)
*****--__--***** millis: 30235 >> Iteracije Kpop 8 Kraj
*****--__--***** millis: 30235 | LoopTime: 72
W sumie pierwsza linijka: sensors.requestTemperatures() zabiera 54 ms.
Oczywiście, że mogę odczytywać temp. co 30s (lub rzadziej), ale czy w ogóle robię to prawidłowo, czy coś błędnie i dlatego ten "request" zabiera tak dużo czasu?
Wiem, że to 1-Wire itd. i że przecież mam BME280 na I2C, który jest dużo szybszy, jasne.
Chodzi mi tylko o potwierdzenie, że "te typy [1-Wire] tak mają" i mam to zostawić w spokoju.
Lub wskazanie, jak należy to zrobić prawidłowo.
Poczytaj sobie: https://forum.arduino.cc/t/sanding-ds18 ... e/665169/9
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

Dzięki.
Poczytałem, ale tam chłopaki poddają w wątpliwość dokładność odczytów DS18b20.
Kupiłem z 10 czujników i je skalibrowałem (uśredniłem) odczyty.
Czyli wskazują w miarę to samo.
Moje pytanie dotyczyło czasu odczytu.
Nie znalazłem tam odpowiedzi.
[email protected]
Posts: 1585
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

iM@rek wrote: Sun Aug 25, 2024 7:39 pm Dzięki.
Poczytałem, ale tam chłopaki poddają w wątpliwość dokładność odczytów DS18b20.
Kupiłem z 10 czujników i je skalibrowałem (uśredniłem) odczyty.
Czyli wskazują w miarę to samo.
Moje pytanie dotyczyło czasu odczytu.
Nie znalazłem tam odpowiedzi.
Ale było napisane że przy 12 bitowym odczycie zajmuje to ileś ms

Return to “Pomoc”