Analogowy KPOP - AKPOP

iM@rek
Posts: 247
Joined: Thu Feb 09, 2023 1:25 pm

Post

Dla KPOP trzeba ustawić nast. dane:

Code: Select all

1.
// plik nagłówkowy:
#include <supla/sensor/general_purpose_measurement.h>
2.
// dodajemy wskaźnik do kanału, jako zmienną globalną (aby mieć do niego dostęp w setup i w loop):
Supla::Sensor::GeneralPurposeMeasurement *gpm = nullptr;
3.
// w setup tworzymy instancję kanału:
gpm = new Supla::Sensor::GeneralPurposeMeasurement();
4.
// i przykładowy loop wygląda tak:
void loop() {
  SuplaDevice.iterate();
  static uint32_t lastTime = 0;
  if (millis() - lastTime > 1000) {
    lastTime = millis();
    // set some new value on gpm:
    gpm->setValue(millis() / 1000.0);
  }
}
Co trzeba ustawić dla Analogowego KPOP?

EDIT:

Zrobiłem jak poniżej i działa (w każdym razie się kompiluje bez błędów):

ad. 1. // plik nagłówkowy:
#include <supla/sensor/general_purpose_measurement.h>
ad. 2. // wskaźnik do kanału:
Supla::Sensor::GeneralPurposeMeasurement *akpop = nullptr;
ad. 3. instancja kanału:
akpop0 = new Supla::Sensor::AnalogReading()

A jak mam ustawić/podać wartości wejściowe i oczekiwane?
User avatar
veeroos
Posts: 363
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów

Post

a nie lepiej Ci zrobić wszystko funkcją "map" i wynik zapisywać do kanału?
w loopie zrobisz korzystając z przykładu na przykład coś takiego:

Code: Select all

void loop() {
  SuplaDevice.iterate();
  static uint32_t lastTime = 0;
  if (millis() - lastTime > 1000) {
    lastTime = millis();
    akpop ->setValue( map(analogRead(pin_analogowy), wejściowa_min, wejściowa_max, oczekiwana_min, oczekiwana_max));
  }
}
Zamel Mew-01, Wemos D1 mini Pro + Ikea vindriktning + BME280, 3x - SonOff mini, 3x - SonOff Basic, 3xGosund SP111, SonOff S55, 2x GOSUND WB4
iM@rek
Posts: 247
Joined: Thu Feb 09, 2023 1:25 pm

Post

veeroos wrote: Tue Jun 11, 2024 5:14 am
Pewnie, że lepiej.
Tylko nie wiedziałem, jak to zrobić.
Dziękuję.
W sumie to tylko jeszcze nie wiem, jak skalibrować wartości wejściowe.
User avatar
veeroos
Posts: 363
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów

Post

Musiałbyś na szybko zrobić szkic który będzie Ci zwracał w terminalu wartość odczytaną z pinu analogowego. Nie napisałeś do czego to będziesz używał, czy do pomiaru napięcia, czy masz czujnik ciśnienia z wyjściem napięciowym czy cokolwiek innego też z wyjściem napięciowym, jeśli napięcie to wartość minimalną masz zawsze 0, wartość maksymalną podajesz na wejście i odczytujesz wartość w terminalu. Tylko musisz pamiętać, że na wejście esp32 możesz podać max 3,3v, do wemosa mini, node MCU i innych dev płytkach też (jest tam fabrycznie montowany dzielnik napięcia 220k/100k), ale już gołe esp8266, czy też jakieś ESP12, esp-07 itp na wejście możesz maksymalnie 1V podać, bo tam nie ma tego dzielnika napięcia. Jeśli masz czujniki z wyjściem napięciowym to w dokumentacji powinieneś mieć podane jakie napięcie masz przy minimalnej i maksymalnej wartości. Wielkością wejściową maksymalną dla esp8266 jest 1023, a dla esp32 - 4095. Czyli przy maksymalnym dopuszczalnym napięciu, układ będzie nam zwracał taką wartość.
Zamel Mew-01, Wemos D1 mini Pro + Ikea vindriktning + BME280, 3x - SonOff mini, 3x - SonOff Basic, 3xGosund SP111, SonOff S55, 2x GOSUND WB4
iM@rek
Posts: 247
Joined: Thu Feb 09, 2023 1:25 pm

Post

veeroos wrote: Tue Jun 11, 2024 10:32 am
To do czujnika deszczu. Zabawka.
Dziękuję za przypomnienie zakresów napięć wejściowych dla różnych modułów.
W moim przypadku to ESP32, stacja pogody, dalsza rozbudowa.
Zrobię odczyt zakresów w terminalu.
Jeszcze raz dzięki za pomoc.

Return to “supla-dev”