[PORADNIK] Arduino IDE

Awatar użytkownika
klew
Posty: 1735
Rejestracja: czw cze 27, 2019 12:16 pm

wt cze 30, 2020 10:51 am

podobnoja pisze:
wt cze 30, 2020 9:05 am
Mam pytanie co tak naprawdę oznacza "true"? Bo po restarcie zasilania płytka podaję zasilanie na kilka przekaźników... Podejrzewam że to może być przyczyną...

Kod: Zaznacz cały

 SuplaDevice.addRelay(10, true);
Posiadam płytkę Nodemcu v3 w której wgrałem program (https://majsterkowo.pl/supla-nodemcu-v3 ... ogle-home/)
Z tego co pamiętam, to "true" odwaraca logikę - używa się to np. przy przekaźnikach sterowanch stanem niskim.
NetAs
Posty: 86
Rejestracja: pn maja 28, 2018 7:06 am
Lokalizacja: Wrocław
Kontaktowanie:

pn sty 04, 2021 11:09 am

Kod: Zaznacz cały

new Supla::Sensor::ImpulseCounter(34, true, false, 10);
mam pytanie odnośnie powyższego zapisu, jeśli mam zliczanie przez kontaktron dokładnie przez podajnik w piecu i zauważyłem, że nie zalicza mi impulsów, tzn podajnik obraca się dość wolno i czasami zatrzymuje się dokładnie nad lub w pobliżu kontaktronu więc jest stan wysoki przez dłuższą chwilę, np. 5 minut, to jaki czas ustawić w powyższym zapisie, czy przypadkiem 10 nie oznacza częstotliwości zliczania (co 10 milisekund) ?
Awatar użytkownika
klew
Posty: 1735
Rejestracja: czw cze 27, 2019 12:16 pm

pn sty 04, 2021 11:26 am

NetAs pisze:
pn sty 04, 2021 11:09 am

Kod: Zaznacz cały

new Supla::Sensor::ImpulseCounter(34, true, false, 10);
mam pytanie odnośnie powyższego zapisu, jeśli mam zliczanie przez kontaktron dokładnie przez podajnik w piecu i zauważyłem, że nie zalicza mi impulsów, tzn podajnik obraca się dość wolno i czasami zatrzymuje się dokładnie nad lub w pobliżu kontaktronu więc jest stan wysoki przez dłuższą chwilę, np. 5 minut, to jaki czas ustawić w powyższym zapisie, czy przypadkiem 10 nie oznacza częstotliwości zliczania (co 10 milisekund) ?
Długie impulsy nie są problematyczne. Nie pamiętam w tej chwili dokładnie, się 10ms oznacza czas filtrowania drgań sygnału. Czyli po wykryciu zmiany stanu, kolejne zmiany w ciągu 10 ms są ignorowane. Stan wysoki może być dowolnie długo
NetAs
Posty: 86
Rejestracja: pn maja 28, 2018 7:06 am
Lokalizacja: Wrocław
Kontaktowanie:

pn sty 04, 2021 11:56 am

Dzięki Klew za szybką odpowiedź, pytanko a aby zapisywać stan do STORAGE wystarczy tylko dodać:

Kod: Zaznacz cały

#define STORAGE_OFFSET 100
#include <supla/storage/eeprom.h>
Supla::Eeprom eeprom(STORAGE_OFFSET);
czy potrzebuje jeszcze w kodzie dodać co chce tam zapisywać?
widzę że jest w impulse_counter.cpp

Kod: Zaznacz cały

void ImpulseCounter::onSaveState() {
  Supla::Storage::WriteState((unsigned char *)&counter, sizeof(counter));
}
ale czy ona jest wywoływana automatycznie czy muszę ją w kodzie wywołać?
Awatar użytkownika
klew
Posty: 1735
Rejestracja: czw cze 27, 2019 12:16 pm

pn sty 04, 2021 12:41 pm

NetAs pisze:
pn sty 04, 2021 11:56 am
Dzięki Klew za szybką odpowiedź, pytanko a aby zapisywać stan do STORAGE wystarczy tylko dodać:

Kod: Zaznacz cały

#define STORAGE_OFFSET 100
#include <supla/storage/eeprom.h>
Supla::Eeprom eeprom(STORAGE_OFFSET);
STORAGE_OFFSET możesz dać na 0 albu usunąć - jeśli nie korzystasz samodzielnie z eepromu w aplikacji.
czy potrzebuje jeszcze w kodzie dodać co chce tam zapisywać?
widzę że jest w impulse_counter.cpp

Kod: Zaznacz cały

void ImpulseCounter::onSaveState() {
  Supla::Storage::WriteState((unsigned char *)&counter, sizeof(counter));
}
ale czy ona jest wywoływana automatycznie czy muszę ją w kodzie wywołać?
Zapis jest cyklicznie wykonywany co 3 minuty. Zapis się nie wykona jeśli nie zmieniły się dane do zapisania.
Domyślny interwał można zmienić używając w setup:

Kod: Zaznacz cały

eeprom.setStateSavePeriod(15*60*1000); // 15 minut - czas podany w ms
Także nic więcej samemu nie musisz dodawać.
NetAs
Posty: 86
Rejestracja: pn maja 28, 2018 7:06 am
Lokalizacja: Wrocław
Kontaktowanie:

czw sty 14, 2021 11:24 am

Chciałbym wyświetlać wynik procentowy, np. ilość wody ale nie w litrach, a w procentach, czy do tego celu wykorzystać (jakiś wirtualny) termometr czy może wykorzystać licznik wody ?
Awatar użytkownika
klew
Posty: 1735
Rejestracja: czw cze 27, 2019 12:16 pm

czw sty 14, 2021 11:37 am

NetAs pisze:
czw sty 14, 2021 11:24 am
Chciałbym wyświetlać wynik procentowy, np. ilość wody ale nie w litrach, a w procentach, czy do tego celu wykorzystać (jakiś wirtualny) termometr czy może wykorzystać licznik wody ?
Jaki kanał i jaki sensor Cię interesuje?
NetAs
Posty: 86
Rejestracja: pn maja 28, 2018 7:06 am
Lokalizacja: Wrocław
Kontaktowanie:

czw sty 14, 2021 11:55 am

klew pisze:
czw sty 14, 2021 11:37 am
NetAs pisze:
czw sty 14, 2021 11:24 am
Chciałbym wyświetlać wynik procentowy, np. ilość wody ale nie w litrach, a w procentach, czy do tego celu wykorzystać (jakiś wirtualny) termometr czy może wykorzystać licznik wody ?
Jaki kanał i jaki sensor Cię interesuje?
Przykład: mam wartość 56
Chcę ją pokazać w supli jako 56%, jak to zrobić?
Myślałem aby wrzucić wartość do value termomentra
Awatar użytkownika
Robert Błaszczak
Posty: 1596
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontaktowanie:

czw sty 14, 2021 12:01 pm

Najsensowniej poczekać na kanał uniwersalny.
Pozdrawiam
Robert Błaszczak

Strona prywatna: https://www.blaszczak.pl
Jakość powietrza: https://robert.aqi.eco
NetAs
Posty: 86
Rejestracja: pn maja 28, 2018 7:06 am
Lokalizacja: Wrocław
Kontaktowanie:

czw sty 14, 2021 1:02 pm

Robert Błaszczak pisze:
czw sty 14, 2021 12:01 pm
Najsensowniej poczekać na kanał uniwersalny.
A będzie taki kanał ?
można też czujnik temp i wilgotności, wtedy jako wartość temp wpisać np. wysokość do lustra wody, a w procentach wpisywać % zapełnienia. Ok czekamy.
ODPOWIEDZ

Wróć do „FAQ / Jak to zrobić”