Odczyt danych temperatury z DHT11 w Ardurino IDE

User avatar
lukfud
Posts: 2323
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

xzihen wrote: Sun May 24, 2020 9:08 pm sprawdziłem tą opcję:

Code: Select all

 //----------------------------------------------------------
  // podanie "0" na 12 (D6) wlacza 13 (D7), "1" gasi 13
  SuplaDevice.addRelayButton(13, 12, INPUT_TYPE_BTN_BISTABLE);
  //--------
Niestety w bilblio SuplaDevice nie ma addRelayButton i dostaje błąd kompilacji...
Dobry ;)
Nie brnij w starą bibliotekę, skorzystaj z nowej, którą zaproponował Ci @klew.
klew wrote: Thu May 21, 2020 10:15 pm Spróbuj może na nowej wersji biblioteki ( https://github.com/klew/arduino )
Tam jest przykład z dwoma DHT22 - wystarczy kilka drobnych zmian aby uruchomić jeden DHT11
https://github.com/klew/arduino/blob/ma ... la_DHT.ino
Poniżej przykład z tym co chcesz mieć (gpio pewnie do zmiany)

Code: Select all

#include <SPI.h>
#include <SuplaDevice.h>
#include <supla/sensor/DHT.h>
#include <supla/control/relay.h>
#include <supla/control/button.h>
#include <supla/sensor/binary.h>

#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");

/*
 * This example requires DHT sensor library installed. 
 * https://github.com/adafruit/DHT-sensor-library
 */

#define DHTPIN 2
#define DHTTYPE DHT11

Supla::Control::Relay przekaznik_1(12, false);
Supla::Control::Button bistabilny_1(4, true);

Supla::Control::Relay przekaznik_2(13, false);
Supla::Control::Button bistabilny_2(5, true);
 
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,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  
  new Supla::Sensor::DHT(DHTPIN, DHTTYPE);
  bistabilny_1.willTrigger(przekaznik_1, Supla::ON_CHANGE, Supla::TOGGLE);
  bistabilny_2.willTrigger(przekaznik_2, Supla::ON_CHANGE, Supla::TOGGLE);
  new Supla::Sensor::Binary(16, true);


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

void loop() {
  SuplaDevice.iterate();
}
Zajrzyj do tych wątków:
viewtopic.php?f=61&t=6163
viewtopic.php?f=61&t=5754
viewtopic.php?f=61&t=5486
Tu jest fajny przykład z powiadomieniem:
viewtopic.php?p=67919#p67919
https://www.facebook.com/groups/supladiy/
xzihen
Posts: 78
Joined: Sat Nov 23, 2019 2:21 pm
Location: Łódź

Post

Bardzo Ci dziękuję @lukfud, twój przykład rozwiązał moje wszystkie dotychczasowe problemy odnośnie przełączników :D O poście kolegi @klew całkowicie go przeoczyłem :shock:

Przełączniki i przełączniki działają tak jak powinny, lecz mam problem z kontraktonem, musi być on NO, lecz niestety na odwrót :? Chciałbym jeszcze o wskazówkę jak zmienić nazwę urządzenia, które doda się do clouda, w starej wersji biblioteki widziałem jak to zrobić

Code: Select all

#include <SPI.h>
#include <SuplaDevice.h>
#include <supla/sensor/DHT.h>
#include <supla/control/relay.h>
#include <supla/control/button.h>
#include <supla/sensor/binary.h>

#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("ZHN", "");

/*
 * This example requires DHT sensor library installed. 
 * https://github.com/adafruit/DHT-sensor-library
 */

#define DHTPIN 2
#define DHTTYPE DHT11

Supla::Control::Relay przekaznik_1(12, false);
Supla::Control::Button bistabilny_1(4, true);

Supla::Control::Relay przekaznik_2(13, false);
Supla::Control::Button bistabilny_2(5, true);
 
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] = {0xC7,0x2A,0x61,0x3B,0xA6,0x96,0x43,0xC2,0x41,0x41,0xE6,0xC9,0xBF,0x03,0xA1,0xDE};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = ;
  
  new Supla::Sensor::DHT(DHTPIN, DHTTYPE);
  bistabilny_1.willTrigger(przekaznik_1, Supla::ON_CHANGE, Supla::TOGGLE);
  bistabilny_2.willTrigger(przekaznik_2, Supla::ON_CHANGE, Supla::TOGGLE);
  
  new Supla::Sensor::Binary(14, true);


  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    "svr14.supla.org",  // SUPLA server address
                    "#####",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key
}

void loop() {
  SuplaDevice.iterate();
}
Pozdrawiam
User avatar
lukfud
Posts: 2323
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

xzihen wrote: Sun May 24, 2020 10:59 pm lecz mam problem z kontraktonem, musi być on NO, lecz niestety na odwrót :? Chciałbym jeszcze o wskazówkę jak zmienić nazwę urządzenia, które doda się do clouda, w starej wersji biblioteki widziałem jak to zrobić
Na kanale czujnika zaznacz odwróconą logikę (w cloud), a nazwę dodajesz tak samo

Code: Select all

SuplaDevice.setName("testowe");
https://www.facebook.com/groups/supladiy/
xzihen
Posts: 78
Joined: Sat Nov 23, 2019 2:21 pm
Location: Łódź

Post

mam jeszcze jedno pytanie, jak nazywa się funkcja, która pozwoli mi na wykorzystanie przełącznika dzwonkowego, zamiast tego tradycyjnego, o który prosiłem. Chodzi mi dokładnie o to:

Code: Select all

Supla::Control::Button bistabilny_1(0, true);
jak zmienić ten kawałek kody na tradycyjny przełącznik ?
Pozdrawiam
User avatar
lukfud
Posts: 2323
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

Code: Select all

Supla::Control::Button monostabilny_1(0, true, true);
monostabilny_1.willTrigger(przekaznik_1, Supla::ON_PRESS, Supla::TOGGLE);
https://www.facebook.com/groups/supladiy/
xzihen
Posts: 78
Joined: Sat Nov 23, 2019 2:21 pm
Location: Łódź

Post

okej, dziękuję bardzo działa :D
Pozdrawiam
Philip
Posts: 5
Joined: Sun Jan 21, 2024 8:10 pm

Post

Dobry wieczór,
Mam problem z biblioteką:

Code: Select all

#include <supla/sensor/DHT.h>
Kompilator Arduino IDE nie przepuszcza deklaracji czujnika DHT11. Czy jest ktoś w stanie stwierdzić czemu ma problem z klasą

Code: Select all

C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note: candidate: 'DHT::DHT()'
   38 | class DHT
      |       ^~~
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note:   candidate expects 0 arguments, 2 provided
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note: candidate: 'constexpr DHT::DHT(const DHT&)'
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note:   candidate expects 1 argument, 2 provided
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note: candidate: 'constexpr DHT::DHT(DHT&&)'
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note:   candidate expects 1 argument, 2 provided
In file included from D:\Dokumenty\Filip\7.Elektryka\Elektryka - Nasz dom\DS_Kotlownia_Debowa\DS_Kotlownia_Debowa.ino:18:
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h:31:9: error: 'class DHT' has no member named 'begin'
   31 |     dht.begin();
      |         ^~~~~
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h: In member function 'virtual double Supla::Sensor::DHT::getTemp()':
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h:41:17: error: 'class DHT' has no member named 'readTemperature'; did you mean 'getTemperature'?
   41 |     value = dht.readTemperature();
      |                 ^~~~~~~~~~~~~~~
      |                 getTemperature
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h: In member function 'virtual double Supla::Sensor::DHT::getHumi()':
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h:63:17: error: 'class DHT' has no member named 'readHumidity'; did you mean 'getHumidity'?
   63 |     value = dht.readHumidity();
      |                 ^~~~~~~~~~~~
      |                 getHumidity
exit status 1
Błąd kompilacji dla płytki Generic ESP8266 Module.

Proszę o jakąś wskazówkę
Pozdrawiam
Philip
krycha88
Posts: 5465
Joined: Fri Nov 16, 2018 7:25 am

Post

Philip wrote: Thu Oct 10, 2024 5:38 pm Dobry wieczór,
Mam problem z biblioteką:

Code: Select all

#include <supla/sensor/DHT.h>
Kompilator Arduino IDE nie przepuszcza deklaracji czujnika DHT11. Czy jest ktoś w stanie stwierdzić czemu ma problem z klasą

Code: Select all

C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note: candidate: 'DHT::DHT()'
   38 | class DHT
      |       ^~~
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note:   candidate expects 0 arguments, 2 provided
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note: candidate: 'constexpr DHT::DHT(const DHT&)'
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note:   candidate expects 1 argument, 2 provided
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note: candidate: 'constexpr DHT::DHT(DHT&&)'
C:\Users\MnB\Documents\Arduino\libraries\arduino-DHT-master/DHT.h:38:7: note:   candidate expects 1 argument, 2 provided
In file included from D:\Dokumenty\Filip\7.Elektryka\Elektryka - Nasz dom\DS_Kotlownia_Debowa\DS_Kotlownia_Debowa.ino:18:
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h:31:9: error: 'class DHT' has no member named 'begin'
   31 |     dht.begin();
      |         ^~~~~
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h: In member function 'virtual double Supla::Sensor::DHT::getTemp()':
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h:41:17: error: 'class DHT' has no member named 'readTemperature'; did you mean 'getTemperature'?
   41 |     value = dht.readTemperature();
      |                 ^~~~~~~~~~~~~~~
      |                 getTemperature
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h: In member function 'virtual double Supla::Sensor::DHT::getHumi()':
C:\Users\MnB\Documents\Arduino\libraries\supla-arduino-develop\src/supla/sensor/DHT.h:63:17: error: 'class DHT' has no member named 'readHumidity'; did you mean 'getHumidity'?
   63 |     value = dht.readHumidity();
      |                 ^~~~~~~~~~~~
      |                 getHumidity
exit status 1
Błąd kompilacji dla płytki Generic ESP8266 Module.

Proszę o jakąś wskazówkę
Pozdrawiam
Philip
A jak tworzysz obiekt DHT? kod byś pokazał będzie łatwiej.
https://gui-generic-builder.supla.io/
Philip
Posts: 5
Joined: Sun Jan 21, 2024 8:10 pm

Post

Przykład z biblioteki SuplaDevice kopiuj wklej. Nie ma filozofii.

Code: Select all

#include <SuplaDevice.h>
// Add include to DS sensor
#include <supla/sensor/DS18B20.h>
#include <supla/sensor/DHT.h>
//#include <DHT.h>

#include <supla/io.h>
#include <supla/control/relay.h>
#include <supla/control/button.h>
#include <supla/sensor/binary.h>

// Choose proper network interface for your card:
#ifdef ARDUINO_ARCH_AVR
  // Arduino Mega with EthernetShield W5100:
  #include <supla/network/ethernet_shield.h>
  // Ethernet MAC address
  uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
  //Supla::EthernetShield ethernet(mac);
  // Arduino Mega with ENC28J60:
  // #include <supla/network/ENC28J60.h>
  // Supla::ENC28J60 ethernet(mac);
#elif defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
  // ESP8266 and ESP32 based board:
  #include <supla/network/esp_wifi.h>
...
#endif
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] = {};

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

  /*
   * Having your device already registered at cloud.supla.org,
   * you want to change CHANNEL sequence or remove any of them,
   * then you must also remove the device itself from cloud.supla.org.
   * Otherwise you will get "Channel conflict!" error.
   */

  // CHANNEL0-3 - Thermometer DS18B20
  
  DeviceAddress ds1addr = {...}; //temp. CO_powrót - zimna
  DeviceAddress ds2addr ={...}; //temp. CO-wyjście - ciepła
  DeviceAddress ds3addr = {...}; //temp. dolne źródło_powrót - zimna
  DeviceAddress ds4addr = {...}; //temp. dolne źródło_wejście - ciepła
  DeviceAddress ds5addr = {...}; //temp. strych
  
  new Supla::Sensor::DS18B20(4, ds1addr); //D2
  new Supla::Sensor::DS18B20(4, ds2addr); //D2
  //new Supla::Sensor::DS18B20(4, ds3addr); //D2
  //new Supla::Sensor::DS18B20(4, ds4addr); //D2
  //new Supla::Sensor::DS18B20(4, ds5addr); //D2

  new Supla::Sensor::DHT(5,DHT11); 
  //D1 czujnik DHT temperatury kotłowni i wilgotności
  
  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    "",  // SUPLA server address
                    "",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key
    
}

void loop() {
  SuplaDevice.iterate();
}
Last edited by Philip on Sun Dec 15, 2024 5:18 pm, edited 1 time in total.
Philip
Posts: 5
Joined: Sun Jan 21, 2024 8:10 pm

Post

Ponawiam pytanie, czy miał ktoś z forum podobny problem z biblioteką czuj. wilgotności DHT?

Return to “Pomoc”