Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Error unknown typ name 'DS18B20'
Forum Updated to NodeBB v4.3 + New Features

Error unknown typ name 'DS18B20'

Scheduled Pinned Locked Moved Solved Mobile and Embedded
93 Posts 4 Posters 33.0k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A AlexKrammer
    11 Jul 2020, 10:21

    @mrjj
    Now I includes #include <stdio.h> in ds18b20.cpp but nothing changed.
    the error C1083 does not depend on stdio.h, does it?

    yes i have both systems running.

    M Offline
    M Offline
    mrjj
    Lifetime Qt Champion
    wrote on 11 Jul 2020, 10:25 last edited by mrjj 7 Nov 2020, 10:26
    #30

    @AlexKrammer
    Ok. Good. Just checking
    No that error comes from some missing .h file. As it shows.
    From the utils folder
    https://github.com/PaulStoffregen/OneWire/tree/master/util
    so you should add those too it seems.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      AlexKrammer
      wrote on 11 Jul 2020, 10:31 last edited by
      #31

      oh thanks. that i missed. but its funny. i have the same errors on windows and raspien.
      i think it dont depend where to compily. The only different i think will be, on raspberry will the outputs work. Dont you think?

      M 1 Reply Last reply 11 Jul 2020, 10:34
      0
      • A AlexKrammer
        11 Jul 2020, 10:31

        oh thanks. that i missed. but its funny. i have the same errors on windows and raspien.
        i think it dont depend where to compily. The only different i think will be, on raspberry will the outputs work. Dont you think?

        M Offline
        M Offline
        mrjj
        Lifetime Qt Champion
        wrote on 11 Jul 2020, 10:34 last edited by
        #32

        @AlexKrammer
        Well it should give same errors from compile on both systems if they are related to missing includes.
        What are the errors now ?

        Still bitRead etc ?

        And yes, the biggest difference is when you run it. On win pc there would be no hardware to to talk to.

        A 1 Reply Last reply 11 Jul 2020, 11:04
        0
        • M mrjj
          11 Jul 2020, 10:34

          @AlexKrammer
          Well it should give same errors from compile on both systems if they are related to missing includes.
          What are the errors now ?

          Still bitRead etc ?

          And yes, the biggest difference is when you run it. On win pc there would be no hardware to to talk to.

          A Offline
          A Offline
          AlexKrammer
          wrote on 11 Jul 2020, 11:04 last edited by
          #33

          @mrjj no but much more ^
          screenshot.png

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mrjj
            Lifetime Qt Champion
            wrote on 11 Jul 2020, 11:13 last edited by
            #34

            Hi
            Seems to come from
            https://www.arduino.cc/reference/en/language/functions/interrupts/nointerrupts/

            So I think we are down the wrong path using this with a pi board as it seems tied to
            Arduino.

            A 1 Reply Last reply 11 Jul 2020, 11:18
            0
            • M mrjj
              11 Jul 2020, 11:13

              Hi
              Seems to come from
              https://www.arduino.cc/reference/en/language/functions/interrupts/nointerrupts/

              So I think we are down the wrong path using this with a pi board as it seems tied to
              Arduino.

              A Offline
              A Offline
              AlexKrammer
              wrote on 11 Jul 2020, 11:18 last edited by
              #35

              @mrjj
              and what will be the right way. is it possible to use qt for this?
              is it possible to create a own library to convert the input of the sensor in a temperatur?

              M 1 Reply Last reply 11 Jul 2020, 11:21
              0
              • A AlexKrammer
                11 Jul 2020, 11:18

                @mrjj
                and what will be the right way. is it possible to use qt for this?
                is it possible to create a own library to convert the input of the sensor in a temperatur?

                M Offline
                M Offline
                mrjj
                Lifetime Qt Champion
                wrote on 11 Jul 2020, 11:21 last edited by
                #36

                @AlexKrammer
                Hi
                But do you have such sensor ?
                and hook it up to the board like they do here ?
                https://www.circuitbasics.com/raspberry-pi-ds18b20-temperature-sensor-tutorial/

                A 1 Reply Last reply 11 Jul 2020, 11:26
                0
                • M mrjj
                  11 Jul 2020, 11:21

                  @AlexKrammer
                  Hi
                  But do you have such sensor ?
                  and hook it up to the board like they do here ?
                  https://www.circuitbasics.com/raspberry-pi-ds18b20-temperature-sensor-tutorial/

                  A Offline
                  A Offline
                  AlexKrammer
                  wrote on 11 Jul 2020, 11:26 last edited by
                  #37

                  @mrjj yea for sure. but i want to use qt with c++. do create this application

                  M 1 Reply Last reply 11 Jul 2020, 11:31
                  0
                  • A AlexKrammer
                    11 Jul 2020, 11:26

                    @mrjj yea for sure. but i want to use qt with c++. do create this application

                    M Offline
                    M Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on 11 Jul 2020, 11:31 last edited by
                    #38

                    @AlexKrammer
                    I think you need a c++ lib then like
                    https://github.com/TeraHz/DS18B20
                    to interface with the hardware.

                    A 2 Replies Last reply 11 Jul 2020, 11:39
                    0
                    • M mrjj
                      11 Jul 2020, 11:31

                      @AlexKrammer
                      I think you need a c++ lib then like
                      https://github.com/TeraHz/DS18B20
                      to interface with the hardware.

                      A Offline
                      A Offline
                      AlexKrammer
                      wrote on 11 Jul 2020, 11:39 last edited by AlexKrammer 7 Nov 2020, 11:39
                      #39

                      @mrjj to interface with the hardware ill use wiringpi. thats work good. i can turn on und off leds and i can read pins.
                      how does this lib work?

                      1 Reply Last reply
                      0
                      • M mrjj
                        11 Jul 2020, 11:31

                        @AlexKrammer
                        I think you need a c++ lib then like
                        https://github.com/TeraHz/DS18B20
                        to interface with the hardware.

                        A Offline
                        A Offline
                        AlexKrammer
                        wrote on 11 Jul 2020, 12:08 last edited by
                        #40

                        @mrjj ou i just saw. it looks like that one right?
                        "are you using the DS18B20::DS18B20(const char* address) version"

                        M 1 Reply Last reply 11 Jul 2020, 16:09
                        0
                        • A AlexKrammer
                          11 Jul 2020, 12:08

                          @mrjj ou i just saw. it looks like that one right?
                          "are you using the DS18B20::DS18B20(const char* address) version"

                          M Offline
                          M Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on 11 Jul 2020, 16:09 last edited by
                          #41

                          @AlexKrammer
                          Heh yes but on this is says it should work with PI
                          and it has more includes.
                          So maybe this will actually work once we find out what that address should be :)

                          A 1 Reply Last reply 13 Jul 2020, 10:43
                          0
                          • M mrjj
                            11 Jul 2020, 16:09

                            @AlexKrammer
                            Heh yes but on this is says it should work with PI
                            and it has more includes.
                            So maybe this will actually work once we find out what that address should be :)

                            A Offline
                            A Offline
                            AlexKrammer
                            wrote on 13 Jul 2020, 10:43 last edited by
                            #42

                            @mrjj
                            Now i tried to evaluate the temperatur with the c++ library.
                            The code looks good. There is no error, but if i run the projekt. its going to do this step

                            char w1_address [ 16 ];
                            DS18B20 w1Device1 (w1_address);
                            tempNow = w1Device1. getTemp ();
                            

                            its going to crash. So i think there is a mistake in the adress.
                            i put in the raspberry pin.

                            M 1 Reply Last reply 13 Jul 2020, 12:00
                            0
                            • A AlexKrammer
                              13 Jul 2020, 10:43

                              @mrjj
                              Now i tried to evaluate the temperatur with the c++ library.
                              The code looks good. There is no error, but if i run the projekt. its going to do this step

                              char w1_address [ 16 ];
                              DS18B20 w1Device1 (w1_address);
                              tempNow = w1Device1. getTemp ();
                              

                              its going to crash. So i think there is a mistake in the adress.
                              i put in the raspberry pin.

                              M Offline
                              M Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on 13 Jul 2020, 12:00 last edited by
                              #43

                              @AlexKrammer
                              im not sure a pin is right there.
                              Try read some the many tuts and see what they use for adress.

                              A 1 Reply Last reply 14 Jul 2020, 10:04
                              0
                              • M mrjj
                                13 Jul 2020, 12:00

                                @AlexKrammer
                                im not sure a pin is right there.
                                Try read some the many tuts and see what they use for adress.

                                A Offline
                                A Offline
                                AlexKrammer
                                wrote on 14 Jul 2020, 10:04 last edited by AlexKrammer
                                #44

                                @mrjj
                                Now it works.
                                i reached the slave-address each sensor, made a code like this

                                char w1_address[16];
                                const char* adr1  = "10-000803673bfb";
                                DS18B20 w1Device1 (adr1);
                                actualTemp1 = w1Device1.getTemp();
                                

                                And it's working.
                                But unfortunately if i add a new sensor. i have to find out his address and add it to the code. its not only plug and play^^

                                But now a basic c++ problem.
                                I created a class:
                                checktemperature.h

                                #ifndef CHECKTEMPERATURE_H
                                #define CHECKTEMPERATURE_H
                                
                                #include <settemperature.h>
                                #include <readtemperature.h>
                                #include <wiringPi.h>
                                
                                class CheckTemperature
                                {
                                private:
                                    SetTemperature S;
                                    ReadTemperature R;
                                public:
                                    void CheckTemp();
                                    float TempEin;
                                    float TempAus;
                                };
                                
                                #endif // CHECKTEMPERATURE_H
                                
                                

                                checktemperature.cpp

                                #include "checktemperature.h"
                                
                                void CheckTemperature::CheckTemp()
                                {
                                    TempEin = S.getHystTemperature();
                                    TempAus = S.getHystTemperature();
                                
                                    if (R.actualTemp1 <= TempEin) digitalWrite(31, LOW);
                                    else if (R.actualTemp1 >= TempAus) digitalWrite(31, HIGH);
                                
                                    if (R.actualTemp2 <= TempEin) digitalWrite(26, LOW);
                                    else if (R.actualTemp2 >= TempAus) digitalWrite(26, HIGH);
                                
                                    if (R.actualTemp3 <= TempEin) digitalWrite(27, LOW);
                                    else if (R.actualTemp3 >= TempAus) digitalWrite(27, HIGH);
                                
                                    if (R.actualTemp4 <= TempEin) digitalWrite(28, LOW);
                                    else if (R.actualTemp4 >= TempAus) digitalWrite(28, HIGH);
                                
                                    if (R.actualTemp5 <= TempEin) digitalWrite(29, LOW);
                                    else if (R.actualTemp5 >= TempAus) digitalWrite(29, HIGH);
                                }
                                
                                

                                i call that funktion every 500ms in loop.
                                But the values of R.actualTemp and S.getHystTemperature the value does not adjust, so they still at the moment when i start the program.
                                Do you know whats wrong, cause i call that funktion every 500ms and at the beginning "TempEin= ..." and S.getHystTemperature(); is already changing^

                                M 1 Reply Last reply 14 Jul 2020, 10:22
                                0
                                • A AlexKrammer
                                  14 Jul 2020, 10:04

                                  @mrjj
                                  Now it works.
                                  i reached the slave-address each sensor, made a code like this

                                  char w1_address[16];
                                  const char* adr1  = "10-000803673bfb";
                                  DS18B20 w1Device1 (adr1);
                                  actualTemp1 = w1Device1.getTemp();
                                  

                                  And it's working.
                                  But unfortunately if i add a new sensor. i have to find out his address and add it to the code. its not only plug and play^^

                                  But now a basic c++ problem.
                                  I created a class:
                                  checktemperature.h

                                  #ifndef CHECKTEMPERATURE_H
                                  #define CHECKTEMPERATURE_H
                                  
                                  #include <settemperature.h>
                                  #include <readtemperature.h>
                                  #include <wiringPi.h>
                                  
                                  class CheckTemperature
                                  {
                                  private:
                                      SetTemperature S;
                                      ReadTemperature R;
                                  public:
                                      void CheckTemp();
                                      float TempEin;
                                      float TempAus;
                                  };
                                  
                                  #endif // CHECKTEMPERATURE_H
                                  
                                  

                                  checktemperature.cpp

                                  #include "checktemperature.h"
                                  
                                  void CheckTemperature::CheckTemp()
                                  {
                                      TempEin = S.getHystTemperature();
                                      TempAus = S.getHystTemperature();
                                  
                                      if (R.actualTemp1 <= TempEin) digitalWrite(31, LOW);
                                      else if (R.actualTemp1 >= TempAus) digitalWrite(31, HIGH);
                                  
                                      if (R.actualTemp2 <= TempEin) digitalWrite(26, LOW);
                                      else if (R.actualTemp2 >= TempAus) digitalWrite(26, HIGH);
                                  
                                      if (R.actualTemp3 <= TempEin) digitalWrite(27, LOW);
                                      else if (R.actualTemp3 >= TempAus) digitalWrite(27, HIGH);
                                  
                                      if (R.actualTemp4 <= TempEin) digitalWrite(28, LOW);
                                      else if (R.actualTemp4 >= TempAus) digitalWrite(28, HIGH);
                                  
                                      if (R.actualTemp5 <= TempEin) digitalWrite(29, LOW);
                                      else if (R.actualTemp5 >= TempAus) digitalWrite(29, HIGH);
                                  }
                                  
                                  

                                  i call that funktion every 500ms in loop.
                                  But the values of R.actualTemp and S.getHystTemperature the value does not adjust, so they still at the moment when i start the program.
                                  Do you know whats wrong, cause i call that funktion every 500ms and at the beginning "TempEin= ..." and S.getHystTemperature(); is already changing^

                                  M Offline
                                  M Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on 14 Jul 2020, 10:22 last edited by
                                  #45

                                  @AlexKrammer
                                  Hi
                                  So it works fine the first time you run ?
                                  Have you checked with debugger what happens when you read and set
                                  R.actualTemp1 ?

                                  Its hard to guess from this code.

                                  A 1 Reply Last reply 14 Jul 2020, 10:29
                                  0
                                  • M mrjj
                                    14 Jul 2020, 10:22

                                    @AlexKrammer
                                    Hi
                                    So it works fine the first time you run ?
                                    Have you checked with debugger what happens when you read and set
                                    R.actualTemp1 ?

                                    Its hard to guess from this code.

                                    A Offline
                                    A Offline
                                    AlexKrammer
                                    wrote on 14 Jul 2020, 10:29 last edited by AlexKrammer
                                    #46

                                    @mrjj
                                    yes it works. its still working. Thats a other problem.
                                    So R.actualTemp is the temperature from the sensor.
                                    if i show the R.actualTemp is changing his value.
                                    So if i show S.getHystTemperature(); its changing the value too.

                                    But if i show e.g. TempEin its not changing the Value its always the value as i run the program.

                                    A other example. If i put R,actualTemp into a variable in this class and im going to show the variable. its dont change the value too. If i show R.actualTemp its changing.

                                    Are you understanding my problem?

                                    M 1 Reply Last reply 14 Jul 2020, 10:41
                                    0
                                    • A AlexKrammer
                                      14 Jul 2020, 10:29

                                      @mrjj
                                      yes it works. its still working. Thats a other problem.
                                      So R.actualTemp is the temperature from the sensor.
                                      if i show the R.actualTemp is changing his value.
                                      So if i show S.getHystTemperature(); its changing the value too.

                                      But if i show e.g. TempEin its not changing the Value its always the value as i run the program.

                                      A other example. If i put R,actualTemp into a variable in this class and im going to show the variable. its dont change the value too. If i show R.actualTemp its changing.

                                      Are you understanding my problem?

                                      M Offline
                                      M Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on 14 Jul 2020, 10:41 last edited by
                                      #47

                                      @AlexKrammer
                                      Hi
                                      Your naming confuses me a bit. :)
                                      So S.getHystTemperature(); changes but
                                      TempEin = S.getHystTemperature(); dont ?

                                      A 1 Reply Last reply 14 Jul 2020, 10:58
                                      0
                                      • M mrjj
                                        14 Jul 2020, 10:41

                                        @AlexKrammer
                                        Hi
                                        Your naming confuses me a bit. :)
                                        So S.getHystTemperature(); changes but
                                        TempEin = S.getHystTemperature(); dont ?

                                        A Offline
                                        A Offline
                                        AlexKrammer
                                        wrote on 14 Jul 2020, 10:58 last edited by
                                        #48

                                        @mrjj
                                        Ohhh im sry TempEin means TempOn, TempAus means TempOff:)
                                        I like to show you my completely code but i dont know how:P

                                        yes if i try to: qDebug() << S.getHystTemperature(); in mainwindow.cpp
                                        the value is changing in relation when im moving the horizontal slider.
                                        The same with R.actualTemp.
                                        But if i try to: qDebug() << S.getHystTemperature(); in checktemperature.cpp
                                        its taking the value of the veriable when i run the program. e.g. i declared in setTemperature.h "float HystTemperature;" So its got value 0;
                                        So qDebug() just show 0.

                                        In conclusion it can be said that in class CheckTemperature the variable and values do not adapt to the current values. They stuck on the values when the program start to run.

                                        M 1 Reply Last reply 14 Jul 2020, 11:02
                                        0
                                        • A AlexKrammer
                                          14 Jul 2020, 10:58

                                          @mrjj
                                          Ohhh im sry TempEin means TempOn, TempAus means TempOff:)
                                          I like to show you my completely code but i dont know how:P

                                          yes if i try to: qDebug() << S.getHystTemperature(); in mainwindow.cpp
                                          the value is changing in relation when im moving the horizontal slider.
                                          The same with R.actualTemp.
                                          But if i try to: qDebug() << S.getHystTemperature(); in checktemperature.cpp
                                          its taking the value of the veriable when i run the program. e.g. i declared in setTemperature.h "float HystTemperature;" So its got value 0;
                                          So qDebug() just show 0.

                                          In conclusion it can be said that in class CheckTemperature the variable and values do not adapt to the current values. They stuck on the values when the program start to run.

                                          M Offline
                                          M Offline
                                          mrjj
                                          Lifetime Qt Champion
                                          wrote on 14 Jul 2020, 11:02 last edited by
                                          #49

                                          @AlexKrammer
                                          And you only have one instance of the CheckTemperature class?
                                          since S.getHystTemperature(); in mainwindow.cpp Works
                                          it should also in CheckTemperature so i wonder if you have 2 of them or something like that ?

                                          A 1 Reply Last reply 14 Jul 2020, 11:24
                                          0

                                          39/93

                                          11 Jul 2020, 11:39

                                          • Login

                                          • Login or register to search.
                                          39 out of 93
                                          • First post
                                            39/93
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved