Witam, znalazłem w domu czujnik NTC 10K, chciałbym zapytać jak go podłączyć (tzn przez jaki rezystor), jak na razie wrzuciłem oprogramowanie przez GUI_GENERIC?
Jaka część kodu do odczytania danych z czujnika na ESP8266 (mam na myśli Arduino IDE) ?
Podstawowe wszelkie biblioteki, sketch mam, brakuje mi samej funkcji żeby to odczytać.
Jeśli mógłbym prosić o pomoc w tych dwóch tematach bardzo proszę
Czujnik NTC10 10K, GUI-GENERIC vs Arduino ESP8266
-
- Posts: 9679
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Nie do końca rozumiem o co pytasz.
GG chyba ma wsparcie do czytania NTC10k.
Sama supla-device nie ma aktualnie obsługi NTC10k. Musiałbyś albo samemu napisać funkcję robiącą analogowy odczyt z pinu i przeliczyć pomiar zgodnie z wzorami i rodzajemu czujnika, albo możesz poszukać sobie w Arduino jakichś bibliotek do obsługi NTC10k. Tylko parametry do przeliczeń są specyficzne dla danego urządzenia. Tzn. dwa różne NTC10k mogą wymagać innych współczynników we wzorach.
Aby pomiar pojawił się w Supli, to musisz jego wartość wstawić do klasy Supla::Sensor::Thermometer, albo Supla::Sensor::VirtualThermometer.
W przypadku Thermometer musiałbyś czytanie wartości temepratury zrobić w ramach klasy dziedziczącej po Thermometer (analogicznie jak to jest robione np. w klasach do obsługi DHT22).
W przypadku VirtualThermometer, odczyt możesz robić sobie na boku w metodzie "loop" i wartość temperatury tylko ustawiać na instancji klasy VirtualThermometer.
GG chyba ma wsparcie do czytania NTC10k.
Sama supla-device nie ma aktualnie obsługi NTC10k. Musiałbyś albo samemu napisać funkcję robiącą analogowy odczyt z pinu i przeliczyć pomiar zgodnie z wzorami i rodzajemu czujnika, albo możesz poszukać sobie w Arduino jakichś bibliotek do obsługi NTC10k. Tylko parametry do przeliczeń są specyficzne dla danego urządzenia. Tzn. dwa różne NTC10k mogą wymagać innych współczynników we wzorach.
Aby pomiar pojawił się w Supli, to musisz jego wartość wstawić do klasy Supla::Sensor::Thermometer, albo Supla::Sensor::VirtualThermometer.
W przypadku Thermometer musiałbyś czytanie wartości temepratury zrobić w ramach klasy dziedziczącej po Thermometer (analogicznie jak to jest robione np. w klasach do obsługi DHT22).
W przypadku VirtualThermometer, odczyt możesz robić sobie na boku w metodzie "loop" i wartość temperatury tylko ustawiać na instancji klasy VirtualThermometer.
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 36
- Joined: Sat Dec 16, 2017 10:46 pm
O własnie na taka odpowiedź oczekiwałem, dziękuję.
A co do podłączenia termistora ntc 10, przez jakis rezystor czy przez ten dzielnik napięcia do ma wbudowany np Wemos?
A co do podłączenia termistora ntc 10, przez jakis rezystor czy przez ten dzielnik napięcia do ma wbudowany np Wemos?
-
- Posts: 9679
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Niestety nie wiem.
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 36
- Joined: Sat Dec 16, 2017 10:46 pm
Załóżmy ze chcę odczytać wartość która sobie już przekazałem do zmiennej float "temperatura" użyje klasy VirtualThermometer, wstępnie napisałem taki kod:
oraz w setup
Powstaje jeden problem który niewiem jak do konca rozwiązać, pokazuje temperature lecz jej nie odświerza, chyba zapomniałem o funkcji millis() tylko niewieme jak ja zastosować w tym kodzie
Code: Select all
class VirtualThermometer : public Supla::Sensor::Thermometer
{
public:
double getValue() override
{
return myValue;
}
void setValue(double val)
{
myValue = val;
}
protected:
double myValue = TEMPERATURE_NOT_AVAILABLE;
};
Code: Select all
auto t1 = new VirtualThermometer;
t1->setValue(temperatura);
-
- Posts: 9679
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Klasa VirtualThermometer jest już dodana do biblioteki, więc nie musisz jej pisać od nowa.
Code: Select all
Supla::Sensor::VirtualThermometer *therm = nullptr;
// w setup:
therm = new Supla::Sensor::VirtualThermometer;
// w loop:
static uint64_t lastTempTimestamp = 0;
if (!lastTempTimestamp || millis() - lastTempTimestamp > 5000) { // co 5000 ms
lastTempTimestamp = millis();
double temp = getTemperatureFromNtc(); // lub dowolna metoda pobierająca aktualny pomiar temperatury
therm->setValue(temp);
}
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 36
- Joined: Sat Dec 16, 2017 10:46 pm
oooo super, a mam dodatkowe pytanie:
czy tym kodem odczytam wartość temperatury danego kanału i przekaże go do zmiennej ? Znalazłem kiedyś bodajże twój post i miedzy innymi zapisałem sobie ten urywek kodu
Generalnie chodzi na odczyt i przekazanie go na nodemcu do wyświetlacza TFT (ale z tym sobie już poradzę)
Termoment bedzie działać na innym osobnym esp8266 wysyłajacym dane do supla cloud
czy tym kodem odczytam wartość temperatury danego kanału i przekaże go do zmiennej ? Znalazłem kiedyś bodajże twój post i miedzy innymi zapisałem sobie ten urywek kodu
Code: Select all
auto element = Supla::Element::begin();
auto channel = element->getChannel();
int lastTemperature = channel->getValueDouble();
Serial.println(lastTemperature);
Termoment bedzie działać na innym osobnym esp8266 wysyłajacym dane do supla cloud
-
- Posts: 9679
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Ten fragment kodu odczyta wartość "double" przechowywaną na pierwszym (zerowym) kanale na lokalnym urządzeniu.
Jeśli tam będziesz miał termometr, to odczytasz tą wartość.
W Supli nie ma natywnie metody na odczyt wartości kanałów z innych urządzeń. Musiałbyś użyć sobie do tego linków bezpośrednich i odpytywać serwer co jakiś czas o ten pomiar. Ale to zupełnie inny temat. Na forum powinny być gdzieś przykłady.
Tylko pamiętaj, że odczyt linku bezpośredniego wymaga nawiązania połączenia po https, a więc może być kiepsko z pamięcią RAM na ESP8266.
Jeśli tam będziesz miał termometr, to odczytasz tą wartość.
W Supli nie ma natywnie metody na odczyt wartości kanałów z innych urządzeń. Musiałbyś użyć sobie do tego linków bezpośrednich i odpytywać serwer co jakiś czas o ten pomiar. Ale to zupełnie inny temat. Na forum powinny być gdzieś przykłady.
Tylko pamiętaj, że odczyt linku bezpośredniego wymaga nawiązania połączenia po https, a więc może być kiepsko z pamięcią RAM na ESP8266.
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 36
- Joined: Sat Dec 16, 2017 10:46 pm
ok a gdybym chciał na tym samym urządzeniu otrzymać wartość ?
-
- Posts: 9679
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław