Czujniki temperatury ds18b20

User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

Jak najbardziej może mieć to wpływ, ale bardziej termiczny niż zakłócenia.Jakby były zakłócenia to pomiar byłby nieczytelny lub bardzo mocno przekłamany. Pamiętaj że miedź zawarta w przewodzie bardzo dobrze przewodzi ciepło i temperatura przechodzi poprzez miedź bezpośrednio do czujnika, nagrzewając go od środka.
Lechu_
Posts: 219
Joined: Tue Oct 11, 2016 5:41 pm
Has thanked: 1 time

Post

Zastosowalem tez rezystor smd 4.7k przylutowany do nóżek czujnika ale to chyba nie ma znaczenia?
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

Przy 3.3v powinno być mniej, np. 3.3k lub 2.2k lub nawet 1k. Zależy od odległości wyrażanej w metrach.
alankedzior
Posts: 114
Joined: Mon Jun 18, 2018 5:38 pm

Post

Czujniki niekiedy działają niekiedy nie. Ostatnio czujnik na ostatnim kanale od dwóch dni nie zmienia wartości wisi w powietrzu, nie potrafię zmienić rozdzielczości w arduino może to by pomogło? Jak to zrobić?
User avatar
slawek
Posts: 2685
Joined: Mon Mar 14, 2016 11:48 pm
Location: Biała Podlaska

Post

alankedzior wrote: Sun Dec 30, 2018 10:04 pm Czujniki niekiedy działają niekiedy nie. Ostatnio czujnik na ostatnim kanale od dwóch dni nie zmienia wartości wisi w powietrzu, nie potrafię zmienić rozdzielczości w arduino może to by pomogło? Jak to zrobić?
Nie odpowiedziałeś jaki masz soft - @Wojtas567? @Duch__? a jeśli własny to pokaż kod, bo te kilka termometrów na softach wymienionych kolegów działa bez problemu, ale nikt tu nie jest jasnowidzem... też miałem ten problem, ale ci koledzy go już rozwiązali...
TEORIA jest wtedy gdy wszystko wiemy i nic nie działa
PRAKTYKA jest wtedy gdy wszystko działa a my nie wiemy dlaczego
My łączymy teorię z praktyką czyli nic nie działa i nikt nie wie dlaczego
alankedzior
Posts: 114
Joined: Mon Jun 18, 2018 5:38 pm

Post

Pisze ze używam arduino.
User avatar
slawek
Posts: 2685
Joined: Mon Mar 14, 2016 11:48 pm
Location: Biała Podlaska

Post

A ja SUPLI... :lol:
Zauważasz różnice w obsłudze termometrów w prezentowanych na forum kodach?
TEORIA jest wtedy gdy wszystko wiemy i nic nie działa
PRAKTYKA jest wtedy gdy wszystko działa a my nie wiemy dlaczego
My łączymy teorię z praktyką czyli nic nie działa i nikt nie wie dlaczego
alankedzior
Posts: 114
Joined: Mon Jun 18, 2018 5:38 pm

Post

@slawek o to mój kod, nie wiem jak zmienić rozdzielczość temperature precision nie pomaga, problemem może być też zastosowany przeze mnie kabel omy 3 x 0,5mm i myślę jeszcze nad zmiana na skrętkę dopóki nie przykręciłem jeszcze płyt kg, najdłuższe odcinki to około 25m

Code: Select all

#include <SPI.h>
#include <Ethernet.h>
#include <SuplaDevice.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define BTN_COUNT 20
#define TEMPERATURE_PRECISION 10

OneWire oneWire(41);
DallasTemperature sensors(&oneWire);

DeviceAddress DS18B20_1 = { 0x28, 0x2, 0x0, 0x7, 0x5E, 0x6B, 0x1, 0x5E };       // termometr szafa 
DeviceAddress DS18B20_2 = { 0x28, 0xAA, 0x52, 0x8, 0x12, 0x13, 0x2, 0x87 };       // termometr kotłownia
DeviceAddress DS18B20_3 = { 0x28, 0xF9, 0x4B, 0x55, 0x1A, 0x13, 0x1, 0xFD };       // termometr front
DeviceAddress DS18B20_4 = { 0x28, 0xFF, 0xF5, 0x35, 0xB4, 0x16, 0x5, 0xAE };       // termometr SALON
DeviceAddress DS18B20_5 = { 0x28, 0xFF, 0xB3, 0x27, 0xB4, 0x16, 0x5, 0xE4 };       // termometr KORYTARZ
DeviceAddress DS18B20_6 = { 0x28, 0xFF, 0xEB, 0xA8, 0xB4, 0x16, 0x3, 0xD1 };       // termometr TARAS
DeviceAddress DS18B20_7 = { 0x28, 0xFF, 0xE6, 0x45, 0x60, 0x17, 0x4, 0x29 };       // termometr garaz



// DS18B20 Sensor read implementation
double get_temperature(int channelNumber, double last_val) {

    double t = -275;
    
    if ( sensors.getDeviceCount() > 0 )
      {
         sensors.requestTemperatures();
         switch(channelNumber)

          {
            case 0:
                   
                    t = sensors.getTempC(DS18B20_1); 
                    break;
            case 1:
                    t = sensors.getTempC(DS18B20_2);
                    break;
           
           case 2:
                    t = sensors.getTempC(DS18B20_3);
                    break;
                    
           case 3:
           
                    t = sensors.getTempC(DS18B20_4);
                    break;

           case 4:
                    t = sensors.getTempC(DS18B20_5);
                    break;          
             
           case 5:
                    t = sensors.getTempC(DS18B20_6);
                    break;             
           case 6:
                    t = sensors.getTempC(DS18B20_7);
                    break; 
             
             };
      };

    return t;  
}

typedef struct {
  int pin;
  int relay_pin;
  int channel;
  char last_val;
  unsigned long last_time;
} _btn_t;

_btn_t btn[BTN_COUNT];

void supla_timer() {
  char v;
  unsigned long now = millis();
  
  
  for(int a=0;a<BTN_COUNT;a++)
    if (btn[a].pin > 0) {
        v = digitalRead(btn[a].pin);
        if (v != btn[a].last_val && now - btn[a].last_time ) {
           btn[a].last_val = v;
           btn[a].last_time = now;
           if (v==0)
             {
                 if ( digitalRead(btn[a].relay_pin) > 0 ) {
                  SuplaDevice.relayOff(btn[a].channel);
                 } else {
                  SuplaDevice.relayOn(btn[a].channel, 0);
                 }        
             }
        }
  
    }
}

void supla_btn_init() {
  for(int a=0;a<BTN_COUNT;a++)
    if (btn[a].pin > 0) {
        pinMode(btn[a].pin, INPUT_PULLUP); 
        btn[a].last_val = digitalRead(btn[a].pin);
        btn[a].last_time = millis();
    }
}



void setup() {

  Serial.begin(9600);
  

  // Init DS18B20 library 
  sensors.begin();
  
  // Set temperature callback
  SuplaDevice.setTemperatureCallback(&get_temperature);
 
 
 
  // Replace the falowing GUID
  char GUID[SUPLA_GUID_SIZE] = {};
  // with GUID that you can retrieve from https://www.supla.org/arduino/get-guid


  // Ethernet MAC address
  uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};

  



SuplaDevice.addDS18B20Thermometer();                        // kanał 0 termometr  
SuplaDevice.addDS18B20Thermometer();                        // kanał 1 termometr 
SuplaDevice.addDS18B20Thermometer();                        // kanał 2 termometr  
SuplaDevice.addDS18B20Thermometer();                        // kanał 3 termometr 
SuplaDevice.addDS18B20Thermometer();                        // kanał 4 termometr 
SuplaDevice.addDS18B20Thermometer();                        // kanał 5 termometr 
SuplaDevice.addDS18B20Thermometer();                        // kanał 6 termometr 

SuplaDevice.addRollerShutterRelays(0, 1, true);                // kanal 7 testowy 2
SuplaDevice.addRelay(2);                                     // kanal 8    lampa front k12 
SuplaDevice.addRelay(3);                                     // kanal 9    lampa taras  k11 
SuplaDevice.addRelay(4);                                     // kanal  10   lampa kotłownia k14
SuplaDevice.addRelay(5);                                      // kanal 11    kinkiety salon k15
SuplaDevice.addRelay(6);                                      // kanal 12    lampa piwnica k16
SuplaDevice.addRelay(7,true);                                      // kanal 13   lampa płot k01
SuplaDevice.addRelay(8);                                      // kanal 14    kuchnia Led k17
SuplaDevice.addRelay(21);                                      // kanal 15    salon led k21
SuplaDevice.addRelay(11,true);                                      // kanal 16   girlanda k02
SuplaDevice.addRelay(12);                                      // kanal 17    brama wjazd otworz kdc11
SuplaDevice.addRelay(13);                                      // kanal 18    brama wjazd zamknij  kdc12 
SuplaDevice.addRelay(14);                                      // kanal 19    akwarium k22
SuplaDevice.addRelay(15);                                    // kanal 20    brama wjazd 2 otworz 
SuplaDevice.addRelay(16);                                     // kanal 21    brama wjazd 2 zamknij kdc14
SuplaDevice.addRelay(17);                                      // kanal 22   gniazdo salon 1 (lampa)
SuplaDevice.addRelay(18);                                      // kanal 23   gniazdo salon 2 (choinka ) k24
SuplaDevice.addRelay(42);                                      // kanal 24   taras led k25
SuplaDevice.addRelay(28);                                      // kanal 25   brama garaz kdc22
SuplaDevice.addRelay(39);                                      // kanal 26   furtka kdc21
SuplaDevice.addRelay(40,true);                                    // kanal 27   lampy zewnetrzne k03

                           




   
  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    mac,               // Ethernet MAC address
                    ",  // SUPLA server address
                    ,                // Location ID 
                    "");           // Location Password 


  
  memset(btn, 19, sizeof(btn));
  
  btn[0].pin = 20;                       // przycisk front s2
  btn[0].relay_pin = 2;                 // przekaznik front k12   
  btn[0].channel = 7;                    // numer kanału

  btn[1].pin = 19;                       // przycisk lampa taras  s1
  btn[1].relay_pin = 3;                 // przekaznik lampa taras  k11  
  btn[1].channel = 8;                    // numer kanału

  btn[2].pin = 43 ;                       // przycisk lampa kotłownia s18
  btn[2].relay_pin = 4;                 // przekaznik lampa kotłownia k14  
  btn[2].channel = 9;                    // numer kanału

   btn[3].pin = 22 ;                       // przycisk kinkiety salon s7
  btn[3].relay_pin = 5;                 // przekaznik kinkiety salon k15  
  btn[3].channel = 10;                    // numer kanału

 btn[4].pin = 44 ;                       // przycisk piwnica s17
  btn[4].relay_pin = 6;                 // przekaznik lampa piwnica k16  
  btn[4].channel = 11;                    // numer kanału

  btn[5].pin =9  ;                       // przycisk lampa płot s4
  btn[5].relay_pin = 7;                 // przekaznik lampa plot k01  
  btn[5].channel = 12;                    // numer kanału

    btn[6].pin =23  ;                       // przycisk kuchnia led s8
  btn[6].relay_pin = 8;                 // przekaznik kuchnia led k17  
  btn[6].channel = 13;                    // numer kanału

btn[7].pin =24  ;                       // przycisk salon led s9
  btn[7].relay_pin = 21;                 // przekaznik salon led  k21 
  btn[7].channel = 14;                    // numer kanału

  btn[8].pin =46  ;                       // przycisk girlanda s6
  btn[8].relay_pin = 11;                 // przekaznik girlanda k02
  btn[8].channel = 15;                    // numer kanału


   btn[9].pin =0  ;                       // przycisk brama 
  btn[9].relay_pin = 0;                 // przekaznik brama wirtualny
  btn[9].channel =16 ;                    // numer kanału


  btn[10].pin =0  ;                       // przycisk brama
  btn[10].relay_pin = 0;                 // przekaznik brama wirtualny
  btn[10].channel = 17;                    // numer kanału

btn[11].pin =29  ;                       // przycisk akwarium s11
  btn[11].relay_pin =14 ;                 // przekaznik akwarium k22
  btn[11].channel = 18;                    // numer kanału

   btn[12].pin =0  ;                       // przycisk brama 
  btn[12].relay_pin = 0;                 // przekaznik brama wirtualny
  btn[12].channel =19 ;                    // numer kanału


  btn[13].pin =0  ;                       // przycisk brama
  btn[13].relay_pin = 0;                 // przekaznik brama wirtualny
  btn[13].channel = 20;                    // numer kanału

   btn[14].pin =48  ;                       // przycisk gniazdo salon 1 (lampa)s12
  btn[14].relay_pin = 17;                 // przekaznik gniazdo salon 1(lampa) k23
  btn[14].channel = 21;                    // numer kanału

  btn[15].pin =47  ;                       // przycisk gniazdo salon 2 (choinka )s13
  btn[15].relay_pin = 18;                 // przekaznik gniazdo salon 2( choinka) k24
  btn[15].channel = 22;                    // numer kanału

    btn[16].pin =49  ;                       // przycisk taras led s14
  btn[16].relay_pin = 42;                 // przekaznik taras led k25
  btn[16].channel = 23;                    // numer kanału

  
    btn[17].pin =0  ;                       // przycisk brama garaz wirtualny
  btn[17].relay_pin = 0;                 // przekaznik brama garaz wirtualny
  btn[17].channel = 24;                    // numer kanału

btn[18].pin =45  ;                       // przycisk furtki 
  btn[18].relay_pin = 39;                 // przekaznik furtka kdc21
  btn[18].channel = 25;                    // numer kanału

  
btn[19].pin =25  ;                       // przycisk lampy zewnatrz s10 
  btn[19].relay_pin = 40;                 // przekaznik lampy zewnetrzne k03
  btn[19].channel = 26;                    // numer kanału


  
 
  



  
  supla_btn_init();
  SuplaDevice.setTimerFuncImpl(&supla_timer);
        
  
 
    
}

void loop() {
  SuplaDevice.iterate();
  

}
pawbuj
Posts: 34
Joined: Mon Apr 27, 2020 8:39 am

Post

witam, kupiłem taki czujnik z modułem sonoff gate p5 i niestety cały czas pokazuje mi - 275 C . co jest nie tak ?
gbcolin
Posts: 121
Joined: Wed Jun 12, 2019 4:13 pm

Post

Ale pokazuje w cloudzie -275 czy w aplikacji? Aaa i jak kupiłeś to nie rób z przewodu żadnych pętli rozprostuj go i wtedy powinno być ok jak w cloudzie to brak połączenia z czujnikiem zaraz pewnie sie pojawią dokładne wyjaśnienia od kolegów. Jak w aplikacji - 275 to coś z pull upem nie styka ja taki przypadek miałem.
Nie atakuję projektu Supli ;)

Return to “Pomoc”