Termometr różnicowy

zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Rafalg wrote: Sat Jan 04, 2025 7:11 pm Dziękuję wszystskim za dyskusję. Zapisałem się na wtorkowe spotkanie i szukam jak stworzyć własny soft supli.
https://github.com/SUPLA/supla-device
To biblia... Wszystko inne włącznie z forum to pomoc w zrozumieniu. ;)
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Ach gdyby tak była dokumentacja…
Ostatnio wiele pracowałem na dokumentacji biblioteki lvgl. Wspaniale zrobiona, wszyściuteńko opisane, przykłady… ech… https://docs.lvgl.io/master/index.html
Marzenie po prostu.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
malarz
Posts: 506
Joined: Wed Jan 27, 2021 4:04 pm
Been thanked: 2 times

Post

SOYER wrote: Sat Jan 04, 2025 11:19 pm Ach gdyby tak była dokumentacja…
Ostatnio wiele pracowałem na dokumentacji biblioteki lvgl. Wspaniale zrobiona, wszyściuteńko opisane, przykłady… ech… https://docs.lvgl.io/master/index.html
Marzenie po prostu.
Ach te marzenia :-) Chyba trzeba by wspólnymi siłami coś takiego stworzyć wyciągając info z różnych wątków tego forum. Jako przykłady mogłyby posłużyć różne kody tu publikowane. Przydałby się jakiś serwis typu Wiki, np pod adresem http://wiki.supla.io
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
Rafalg
Posts: 21
Joined: Fri Jan 03, 2025 9:06 pm

Post

No i proszę:
Jedno szkolenie/spotkanie online. Kilka godzin dłubania i jest termometr róznicowy. Niesamowite. Działa.
Jeszcze tylko interface webowy (o ile się da) do ustawiania warunkowania i rzecz "niemożliwa" będzie zrobiona.
Dziękuję wszystkim powyżej, i prowadzącym wczoraj szkolenie, za pomoc i wskazanie drogi.
You do not have the required permissions to view the files attached to this post.
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

Rafalg wrote: Wed Jan 08, 2025 11:20 pm No i proszę:
Jedno szkolenie/spotkanie online. Kilka godzin dłubania i jest termometr róznicowy. Niesamowite. Działa.
Jeszcze tylko interface webowy (o ile się da) do ustawiania warunkowania i rzecz "niemożliwa" będzie zrobiona.
Dziękuję wszystkim powyżej, i prowadzącym wczoraj szkolenie, za pomoc i wskazanie drogi.
Brawo Ty! Gratuluję. Udostępnisz źródła? Byłoby dla potomnych :)
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036
Rafalg
Posts: 21
Joined: Fri Jan 03, 2025 9:06 pm

Post

Zibi_007 wrote: Wed Jan 08, 2025 11:51 pm

Brawo Ty! Gratuluję. Udostępnisz źródła? Byłoby dla potomnych :)
Oczywiście. Tylko tego też się muszę nauczyć. Uporządkuję kod. Rozpoznam GitHuba i chętnie wrzucę.
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

Rafalg wrote: Thu Jan 09, 2025 6:36 pm
Zibi_007 wrote: Wed Jan 08, 2025 11:51 pm

Brawo Ty! Gratuluję. Udostępnisz źródła? Byłoby dla potomnych :)
Oczywiście. Tylko tego też się muszę nauczyć. Uporządkuję kod. Rozpoznam GitHuba i chętnie wrzucę.
Super!
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036
lukasz06
Posts: 2543
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 45 times
Been thanked: 21 times

Post

To się dzieje w Supli 😱
Rafalg
Posts: 21
Joined: Fri Jan 03, 2025 9:06 pm

Post

Dzięki forum udało mi się stworzyć termometr różnicowy. ESP + 2 DS18B20. Róznica (delta) temperatury pomiędzy dwoma DS jest podawana na KPOP (GPM). Poniżej kod. Nie potrafiłem sobue poradzić z odświeżaniem delty i wrzuciłem odpowiednią instrukcję do pętli loop. Czy można inaczej? Żeby w loop pozostało tylko SuplaDevice.iterate().

Code: Select all

#include <SuplaDevice.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#include <supla/network/esp_wifi.h>
#include <supla/sensor/DS18B20.h>
#include <supla/sensor/general_purpose_measurement.h>
#include <supla/device/supla_ca_cert.h>

// This program is designed to create a differential thermometer.
// It calculates the temperature difference based on readings from two thermometers DS18B20 at pin D5
// and sends this value to the gpm channel.  

// Network interface: 
  Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");

// Channels DS + gpm
Supla::Sensor::DS18B20 *tt1 = nullptr;
Supla::Sensor::DS18B20 *tt2 = nullptr;
Supla::Sensor::GeneralPurposeMeasurement *gpm = nullptr;

void setup() {

  Serial.begin(115200);
  
  // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0xA3,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x00,0x00,0x00,0x00,0x000x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


  // Channel 0-1 - Thermometers DS18B20 at PIN D5.
  // Channel 3 - General Purpose Measurement 
  // The DS18B20 thermometer addresses must be entered manually,
  // or you can develop a function to automatically detect them.
  DeviceAddress ds1addr = {0x28, 0xFA, 0xA3, 0x49, 0xF6, 0x96, 0x3C, 0x85};
  DeviceAddress ds2addr = {0x28, 0xF1, 0x6D, 0x49, 0xF6, 0xE2, 0x3C, 0x70};


  tt1 = new Supla::Sensor::DS18B20(D5, ds1addr);
  tt2 = new Supla::Sensor::DS18B20(D5, ds2addr);
  gpm = new Supla::Sensor::GeneralPurposeMeasurement();

  gpm->setValue(tt1->getTemp()-tt2->getTemp()); 
 
 // Configure defualt Supla CA certificate
  SuplaDevice.setSuplaCACert(suplaCACert);
  SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);


 SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    "svrxx.supla.org",  // SUPLA server address
                    "[email protected]",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key


}

void loop() {

  SuplaDevice.iterate();
  gpm->setValue(tt1->getTemp()-tt2->getTemp());
             
  
}
User avatar
YoMan
Posts: 3521
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa
Has thanked: 3 times
Been thanked: 3 times

Post

Rafalg wrote: Thu Jan 09, 2025 9:18 pm Dzięki forum udało mi się stworzyć termometr różnicowy. ESP + 2 DS18B20. Róznica (delta) temperatury pomiędzy dwoma DS jest podawana na KPOP (GPM). Poniżej kod. Nie potrafiłem sobue poradzić z odświeżaniem delty i wrzuciłem odpowiednią instrukcję do pętli loop. Czy można inaczej? Żeby w loop pozostało tylko SuplaDevice.iterate().
nie lepiej tę deltę zrobić na virtual_thermometer zamiastn gpm? od razu masz jednostki, ikonki, etc.

Code: Select all

class temperatureSensor : public Supla::Sensor::VirtualThermometer {
 public:
  temperatureSensor() {}
    
  double getValue() override {
    
      return (tt1->getTemp()-tt2->getTemp());
    
  }
chyba zadziała (twierdzenie bambika, który zaczął pisać SUPLE 2 mies temu ;)) ewentualnie podpytaj wujaszka gpt o składnię

źródło: https://github.com/SUPLA/supla-device/b ... eter.h#L26
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024

Return to “Ogólna dyskusja”